XML Schema 简要 01

前言

XML Schema 语言即 XML Schema Definition(XSD),是基于 XML 格式,用于描述 XML 结构的文档,也是 DTD 的替代者。

XML Schema 的作用

  • 定义可出现在文档中的元素
  • 定义可出现在文档中的属性
  • 定义哪个元素是子元素
  • 定义子元素的次序
  • 定义子元素的数目
  • 定义元素是否为空,或者是否可包含文本
  • 定义元素和属性的数据类型
  • 定义元素和属性的默认值以及固定值

XML Schema 引用

schema 元素

<schema> 元素是每一个 XML Schema 的根元素。

1
2
3
4
5
6
<?xml version="1.0"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://www.w3school.com.cn"
xmlns="http://www.w3school.com.cn"
elementFormDefault="qualified">
</xs:schema>

1
xmlns:xs="http://www.w3.org/2001/XMLSchema"

显示 schema 中用到的元素和 数据类型来自命名空间http://www.w3.org/2001/XMLSchema。同时它还规定了来自该命名空间的元素和数据类型应该使用前缀xs

1
targetNamespace="http://www.w3school.com.cn"

显示被此 schema 定义的元素来自命名空间http://www.w3school.com.cn

1
xmlns="http://www.w3school.com.cn"

指出默认的命名空间是http://www.w3school.com.cn

1
elementFormDefault="qualified"

指出任何 XML 实例文档所使用的且在此 schema 中声明过的元素必须被命名空间限定。

引用 XSD

1
2
3
4
5
6
7
8
9
10
<?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>
1
xmlns="http://www.w3school.com.cn"

规定了默认命名空间的声明。此声明会告知 schema 验证器,在此 XML 文档中使用的所有元素都被声明于 http://www.w3school.com.cn 这个命名空间。 一旦您拥有了可用的 XML Schema 实例命名空间:

1
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

您就可以使用 schemaLocation 属性了。此属性有两个值。第一个值是需要使用的命名空间。第二个值是供命名空间使用的 XML schema 的位置: