定义:它的作用是定义一份XML文档的合法组件群,就像文档类型定义(外语缩写:DTD)的作用一样,一份XML Schema定义了:
-
可以出现在文档里的元素;
-
可以出现在文档里的属性;
-
哪些元素是子元素;
-
子元素的顺序;
-
子元素的数量;
-
一个元素应是否能包含文本,或应该是空的;
-
元素和属性的数据类型;
-
元素和属性的默认值和固定值。
schema规范中:
1.所有标签和属性都需要有schema文件来定义
2.所有的schema文件都需要有一个id,但他在这里叫namespace
3.namespace里面的值由什么来指定?
由targetNamespace属性来指定,他的值是一个URL(很有可能不存在)
4.如何引入一个schema约束?
属性?:使用xmlns属性
属性值:对应的schema文件的id(namespace值)
5.如果引入的约束不是w3c组织定义的,必须指定schema文件的位置
6.schema文件的位置由什么属性来指定?
属性?:schemaLocation
属性值: namespace path
7.如果引入了N个约束,需要给n-1个取别名
schema约束中重点:
namespace:
相当于schema文件中的id
targetNamespace属性:
用来指定schema文件的namespace的值
xmlns属性:
引入一个约束,它的值是一个schema文件的namespace值
schemaLocation属性:
用来指定引入的schema文件的位置
demo:
book.xsd:
<?xml version="1.0" encoding="UTF-8" ?>
<schema xmlns="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://www.atguigu.cn"
elementFormDefault="qualified">
<element name="书架">
<complexType>
<sequence maxOccurs="unbounded">
<element name="书">
<complexType>
<sequence>
<element name="书名" type="string"></element>
<element name="作者" type="string"></element>
<element name="售价" type="string"></element>
</sequence>
</complexType>
</element>
</sequence>
</complexType>
</element>
</schema>
book.xml:
<?xml version="1.0" encoding="UTF-8"?>
<tt:书架 xmlns:tt="http://www.atguigu.cn"
xmlns:dd="http://www.w3.org/2001/XMLSchema"
dd:schemaLocation="http://www.atguigu.cn book.xsd">
<tt:书>
<tt:书名>西游记</tt:书名>
<tt:作者>吴承恩</tt:作者>
<tt:售价>99.00元</tt:售价>
</tt:书>
</tt:书架>