非常感谢孙浩老师的视频和资料。
什么是 XML Schema?
XML Schema 的作用是定义 XML 文档的合法构建模块,类似 DTD。
XML Schema:
- 定义可出现在文档中的元素
- 定义可出现在文档中的属性
- 定义哪个元素是子元素
- 定义子元素的次序
- 定义子元素的数目
- 定义元素是否为空,或者是否可包含文本
- 定义元素和属性的数据类型
- 定义元素和属性的默认值以及固定值
XML Schema 是 DTD 的继任者
我们认为 XML Schema 很快会在大部分网络应用程序中取代 DTD。
理由如下:
- XML Schema 可针对未来的需求进行扩展
- XML Schema 更完善,功能更强大
- XML Schema 基于 XML 编写
- XML Schema 支持数据类型 (可以很好的完成对java或者所有对象的修饰并且提供了大量的数据类型)
- XML Schema 支持命名空间 (来支持重复名称相同的元素)
schema.xsd:
<?xml version="1.0" encoding="UTF-8"?>
<schema xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace="http://www.example.org/1"
xmlns:tns="http://www.example.org/1" elementFormDefault="qualified">
<element name="person">
<complexType>
<sequence>
<element name="id" type="int"></element>
<element name="name" type="string"></element>
<element name="birthday" type="date"></element>
</sequence>
</complexType>
</element>
</schema>
xml实例一:
<?xml version="1.0" encoding="UTF-8"?>
<person xmlns="http://www.example.org/1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.example.org/1">
<id>1</id>
<name>lichen</name>
<birthday>1999-11-23</birthday>
</person>
xml实例二:
<?xml version="1.0" encoding="UTF-8"?>
<person xmlns="http://www.example.org/1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="1.xsd">
<id>2</id>
<name>chengwei</name>
<birthday>1969-7-8</birthday>
</person>
实例一,二都可用schema验证。