- Schema约束特点:
- Schema符合XML的语法规范,XML语句。
- 一个XML中可以有多个Schema,多个Schema使用名称空间区分(类似于Java包名)。
- Schema中支持比dtd中更多的数据类型,定义约束能力更强,语法更加复杂。
- Schema快速入门:
- 创建一个Schema文件(后缀名:.xsd)
根节点为<schema>
在
<schema>
文件里面是有w3c提供的属性和标签,约束XML文件。
- 在Schema文件中的属性:
- xmlns=“http://www.w3.org/2001/XML.Schema”
- targetNamespace=“http://www.itcat.cn/20151111”
- elementFormDefault=“qualified”
- 有几个元素写几个
<element>
,简单元素与复杂元素写法如下:
复杂元素:
<element name="..." type="...">
<complexType>
<sequence>
子元素
</sequence>
<attribute name="xx" type="int" use="required"></attribute> --属性约束(name:属性名称,type:属性类型,use:属性是否必须出现)
</complexType>
</element>
其中<sequence>表示元素出现的顺序,
另外 <all>表示各元素只能出现一次,
<choice>表示出现其中的一个元素
简单元素:
<element name="..." type="..." maxOccurs="unbounded"></element>
其中属性maxOccurs表示该元素出现的次数(值unbounded表示可以出现无限次)
- 在XML文件中引入Schema约束文件
xmlns:xsi="http://www.w3.org/2001/XML.Schema-instance"
--表示xml是一个被约束文件
--xsi是取的别名(名称空间)
xmlns="http://www.itcat.cn/20151111"
--约束文档里面的tergetNamespace
xsi:schemaLocation="http://www.itcat.cn/20151111 {Schema文件名称}">
--tergetNamespace 空格 约束文档的路径
例:
XML文件:
<?xml version="1.0" encoding="utf-8"?>
<person xmlns:xsi="http://www.w3.org/2001/XML.Schema-instance" xmlns="http://www.itcat.cn/20151111" xsi:schemaLocation="http://www.itcat.cn/20151111 {Schema文件路径}">
<name>zhangsan</name>
<age>20</age>
<猫>10</猫>
</person>
Schema文件:
<?xml version="1.0" encoding="utf-8"?>
<schema xmlns="http://www.w3.org/2001/XML.Schema"
targetNamespace="http://www.itcat.cn/20151111"
elementFormDefault="qualified">
<element name="person">
<complexType>
<sequence>
<element name="name" type="string"></element>
<element name="age" type="int"></element>
</sequence>
</complexType>
</element>
</schema>