XML语法: 规范的xml文件的基本编写规则。(由w3c组织制定的)
XML约束: 规范XML文件数据内容格式的编写规则。(由开发者自行定义)
举例:
<contactList>
<contact id="001" name="eric">
<name>张三name>
<age>20age>
<phone>134222223333phone>
<email>[email protected]email>
<qq>432221111qq>
contact>
contactList>
以上是一个xml文档,如
这个标签必须成对出现这是语法约束,而contact标签出现多少次这个是内容约束
DTD约束:语法相对简单,功能也相对简单。学习成本也低。
Schema约束:语法相对复杂,功能也相对强大。学习成本相对高!!!(基于名称空间)
book.xml
]>
<书架>
<书 id="id1">
<书名>Java就业培训教程书名>
<作者>张孝祥作者>
<售价>39.00元售价>
书>
<书 id="id2">
<书名>mySql书名>
<作者>王明作者>
<售价>28.00元售价>
书>
书架>
book.xml
<书架>
<书 id="id1">
<书名>Java就业培训教程书名>
<作者>张孝祥作者>
<售价>39.00元售价>
书>
<书 id="id2">
<书名>mySql书名>
<作者>王明作者>
<售价>28.00元售价>
书>
书架>
book.dtd
<!ELEMENT 书架 (书+)>
<!ELEMENT 书 (书名,作者,售价)>
<!ELEMENT 书名 (#PCDATA)>
<!ELEMENT 作者 (#PCDATA)>
<!ELEMENT 售价 (#PCDATA)>
<!ATTLIST 书 id ID #REQUIRED>
<!ELEMENT 元素名称 类别> 或 <!ELEMENT 元素名称 (元素内容)>
1、类别:
空标签: EMPTY。 表示元素一定是空标签。
普通字符串: (#PCDATA)。表示标签的内容一定是普通字符串(不能含有子标签)。
任何内容: ANY。表示元素的内容可以是任意内容(包括子标签)
2、顺序问题
: 按顺序出现子标签
3、次数问题:
标签 : 必须且只出现1次。
标签+ : 至少出现1次
标签* : 0或n次。
标签? : 0 或1次。
<!ATTLIST 元素名称 属性名称 属性类型 默认值>
1、属性类型:控制属性值的
CDATA :表示普通字符串
(en1|en2|..): 表示一定是任选其中的一个值
ID:表示在一个xml文档中该属性值必须唯一。值不能以数字开头
2、默认值:
#REQUIRED 属性值是必需的
#IMPLIED 属性不是必需的
#FIXED value 属性不是必须的,但属性值是固定的
XML Schema 也是一种用于定义和描述 XML 文档结构与内容的模式语言,其出现是为了克服 DTD 的局限性,现在已是w3c组织的标准,它正逐步取代DTD。
book.xsd(一个XML Schema文档通常称之为模式文档(约束文档))
<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:string' />
xs:sequence>
xs:complexType>
xs:element>
xs:sequence>
xs:complexType>
xs:element>
xs:schema>
book.xml(遵循这个文档书写的xml文件称之为实例文档)
<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.00元itcast:售价>
itcast:书>
itcast:书架>
1、对book.xsd的分析:
2、对book.xml的分析
xmlns:itcast=”http://www.itcast.cn”
表明itcast声明的标签来自http://www.itcast.cn命名空间
xmlns:xsi=”http://www.w3.org/2001/XMLSchema-instance”
固定写法,用来对xml文件头部写法的规范
xsi:schemaLocation=”http://www.itcast.cn book.xsd”
表明http://www.itcast.cn命名映射到book.xsd文档(中间是空格)
图解分析如下:
<书架 xmlns="http://www.it315.org/xmlbook/schema" -- 默认命名空间 -->
xmlns:demo="http://www.it315.org/demo/schema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.it315.org/xmlbook/schema http://www.it315.org/xmlbook.xsd
http://www.it315.org/demo/schema http://www.it315.org/demo.xsd">
<书>
<书名>JavaScript网页开发书名>
<作者>张孝祥作者>
<售价 demo:币种=”人民币”>28.00元售价>
书>
书架>