10、XML约束

来源:互联网 发布:java 换行符替换 编辑:程序博客网 时间:2024/06/12 09:38

XML约束

引入

XML语法: 规范的xml文件的基本编写规则。(由w3c组织制定的)XML约束: 规范XML文件数据内容格式的编写规则。(由开发者自行定义)

XML约束技术
DTD约束:语法相对简单,功能也相对简单。学习成本也低。
Schema约束:语法相对复杂,功能也相对强大。学习成本相对高!!!(名称空间)

DTD约束

导入dtd方式:

内部导入

<!DOCTYPE note [  <!ELEMENT note (to,from,heading,body)>  <!ELEMENT to      (#PCDATA)>  <!ELEMENT from    (#PCDATA)>  <!ELEMENT heading (#PCDATA)>  <!ELEMENT body    (#PCDATA)>]>

外部导入

本地文件系统:         <!DOCTYPE note SYSTEM "note.dtd">公共的外部导入:<!DOCTYPE 根元素 PUBLIC "http://gz.itcast.cn/itcast.dtd">

DTD语法
约束标签

<!ELEMENT 元素名称 类别>  或 <!ELEMENT 元素名称 (元素内容)>类别:    空标签: EMPTY。 表示元素一定是空元素。    普通字符串: (#PCDATA)。表示元素的内容一定是普通字符串(不能含有子标签)。    任何内容: ANY。表示元素的内容可以是任意内容(包括子标签) (元素内容):    顺序问题:        <!ELEMENT 元素名称 (子元素名称 1,子元素名称 2,.....)>: 按顺序出现子标签    次数问题:            标签   :  必须且只出现1次。            标签+  : 至少出现1次            标签*   : 0或n次。            标签?  : 0 或1次。约束属性    <!ATTLIST 元素名称 属性名称 属性类型 默认值>    默认值:            #REQUIRED 属性值是必需的             #IMPLIED   属性不是必需的             #FIXED value 属性不是必须的,但属性值是固定的    属性类型:控制属性值的            CDATA :表示普通字符串             (en1|en2|..): 表示一定是任选其中的一个值            ID:表示在一个xml文档中该属性值必须唯一。值不能以数字开头

案例

<?xml version="1.0"?><!DOCTYPE note SYSTEM "note.dtd"><note>  <to id="a1"></to>  <to id="a2"></to>  <to id="a3"></to>  <heading>Reminder</heading>  <heading>Reminder</heading>  <heading>Reminder</heading>  <body>Don't forget me this weekend</body>  <body>Don't forget me this weekend</body>  <body>Don't forget me this weekend</body></note>

dtd:

  <!ELEMENT note (from?,to+,heading*,body+)>  <!ELEMENT to      EMPTY>  <!ELEMENT from    (#PCDATA)>  <!ELEMENT heading (#PCDATA)>  <!ELEMENT body    (#PCDATA)>  <!ATTLIST to id ID #REQUIRED>

Schema约束

名称空间:告诉xml文档的哪个元素被哪个schema文档约束。 在一个xml文档中,不同的标签可以受到不同的schema文档的约束。

 1)一个名称空间受到schema文档约束的情况 2)多个名称空间受到多个schema文档约束的情况 3)默认名称空间的情况 4)没有名称空间的情况

案例

<?xml version="1.0" encoding="UTF-8"?><itcast:书架 xmlns:itcast="http://www.itcast.cn"                xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"                xsi:schemaLocation="http://www.itcast.cn book.xsd">    <itcast:书>        <itcast:书名>JavaScript网页开发</itcast:书名>        <itcast:作者>张孝祥</itcast:作者>        <itcast:售价>28</itcast:售价>    </itcast:书></itcast:书架>

.xsd

<?xml version="1.0" encoding="UTF-8" ?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"                      targetNamespace="http://www.itcast.cn"                      elementFormDefault="qualified">    <xs:element name='书架' >        <xs:complexType>            <xs:sequence maxOccurs='unbounded' >                <xs:element name='书' >                    <xs:complexType>                        <xs:sequence>                            <xs:element name='书名' type='xs:string' />                            <xs:element name='作者' type='xs:string' />                            <xs:element name='售价' type='xs:integer' />                        </xs:sequence>                    </xs:complexType>                </xs:element>            </xs:sequence>        </xs:complexType>    </xs:element></xs:schema>
0 0
原创粉丝点击