Schema简介
- XML Schema 是基于 XML 的 DTD 替代者。
- XML Schema 描述 XML 文档的结构。
- XML Schema 语言也称作 XML Schema 定义(XML Schema Definition,XSD)。即它也遵循XML语法
- XML Schema 的作用是定义 XML 文档的合法构建模块,类似 DTD。
到底什么是Schema?
- 定义可出现在文档中的元素
- 定义可出现在文档中的属性
- 定义哪个元素是子元素
- 定义子元素的次序
- 定义子元素的数目
- 定义元素是否为空,或者是否可包含文本
定义元素和属性的数据类型
总之就是类似于DTD的一种XML约束
为什么说Schema将会替代DTD?
XML Schema 可针对未来的需求进行扩展
XML Schema 更完善,功能更强大
XML Schema 基于 XML 编写
XML Schema 支持数据类型(如int,string,float等)
XML Schema 支持命名空间,类似于java中的包名
Schema的快速入门
步骤:
一个Schema约束大概是这个样子:
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://www.example.org/note"
xmlns:tns="http://www.example.org/note"
elementFormDefault="qualified">
<xs:element name="note">
<xs:complexType>
<xs:sequence>
<xs:element name="to" type="xs:string"/>
<xs:element name="from" type="xs:string"/>
<xs:element name="heading" type="xs:string"/>
<xs:element name="body" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
xmlns:xs=”http://www.w3.org/2001/XMLSchema”
显示 schema 中用到的元素和数据类型来自命名空间 “http://www.w3.org/2001/XMLSchema“。同时它还规定了来自命名空间 “http://www.w3.org/2001/XMLSchema” 的元素和数据类型应该使用前缀 xs
targetNamespace=”http://www.w3school.com.cn”
显示被此 schema 定义的元素 (note, to, from, heading, body) 来自命名空间: “http://www.w3school.com.cn“。
xmlns=”http://www.w3school.com.cn”
指出默认的命名空间是 “http://www.w3school.com.cn”
elementFormDefault=”qualified”
指出任何 XML 实例文档所使用的且在此 schema 中声明过的元素必须被命名空间限定。
(4)引用Schema
<?xml version="1.0"?>
<note
xmlns="http://www.w3school.com.cn"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.w3school.com.cn note.xsd">
<to>George</to>
<from>John</from>
<heading>Reminder</heading>
<body>Don't forget the meeting!</body>
</note>
xmlns=”http://www.w3school.com.cn”
规定了默认命名空间的声明。此声明会告知 schema 验证器,在此 XML 文档中使用的所有元素都被声明于 “http://www.w3school.com.cn” 这个命名空间。
xmlns:xsi=”http://www.w3.org/2001/XMLSchema-instance”
表明这是个被约束文件
xsi:schemaLocation=”http://www.w3school.com.cn note.xsd”
targetNameSpace 空格 约束文档的路径地址