XML约束

XML约束:
    在XML技术力可以编写一个文档来约束一个XML文档的书写规范,称之为XML约束
常用约束技术:
    --XML DTO

    --XML Schema


编写一个简单的Schema 约束文件:book.xsd

<schema xmlns="http://www.w3.org/2001/XMLSchema"
    targetNamespace ="http://www.dong.com"
    elementFormDefault="qualified">
    <element name="书架">
        <!-- 复合类型 -->
        <complexType>
            <!-- 序列,unbounded  最大出现次数不受限制 -->
            <sequence maxOccurs="unbounded">
                <element name="书">
                    <complexType>
                        <sequence maxOccurs="unbounded">
                            <!-- type 定义类型 -->
                            <element name="书名" type="string"></element>
                            <element name="作者" type="string"></element>
                            <element name="售价" type="string"></element>
                        </sequence>
                    </complexType>
                </element>
                <element name="杂物" type="string"></element>
            </sequence>
        </complexType>
    </element>
</schema>

编写一个XML引入该约束:book.xml

<?xml version="1.0" encoding="utf-8"?>

<书架 xmlns="http://www.dong.com"
     xsi:schemaLocation="http://www.dong.com book.xsd"
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <书>
        <售价>12</售价>
        <书名>22</书名>
        <作者>董*龙</作者>
    </书>
    <杂物>
        12
    </杂物>
</书架>
   

schema约束规范:
1.所有标签和属性都需要有schema来定义
2.所有的schema文件都需要一个id,这里叫做命名空间namespace,由targetNamespace指定
3.引入schema约束,通过xmlns属性,值为约束文档的namespace及id值,
    每个文档都有,引入http://www.w3.org/2001/XMLSchema
4.elementForDefault="qualified" 关联所有标签
5.如果引入的schema文件约束不是W3C组织定义的必须要制定schema文件的位置
6.schema文件的位置由schemaLocation来指定,值为namespace 的值加 文件名
7.而schemaLocation 由W3C约束文档来指定,需要引入xmlns:dd ="http://www.w3.org/2001/XMLSchema-instance"
8.dd表示别名,告诉由哪个约束来定义的属性,所有schemaLocation 前面需要加dd:

schema约束重要知识
1.namespace:相当于schema文件的id
2.targetNameSpace:用来指定schema文件的namespace的值
3.xmlns属性:用来引入一个约束,值为一个schema文件的的namespace的值
4.schemaLocation:用来指定引入的schema文件的位置,namespace 文件名.xsd

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值