XML Schema 教程
1. XML Schema 教程 2. XML Schemas 简介 3. 为什么使用 XML Schema? 4. 如何使用 XML Schema 5. XML schema 元素 6. XSD 简易元素 7. XML Schema 属性 8. XML Schema 限定 / Facets 9. XML Schema 复合元素 10. XML Schema 复合空元素 11. XML Schema 复合类型 – 仅含元素 12. XML Schema 复合元素 – 仅含文本 13. XML Schema 复合类型 – 混合内容 14. XML Schema 指示器 15. XML Schema any 元素 16. XML Schema anyAttribute 元素 17. XML Schema 元素替换 18. XML Schema 实例 19. XML Schema 字符串数据类型 20. XML Schema 日期/时间 数据类型 21. XML Schema 数值数据类型 22. XML Schema 杂项数据类型 23. XML Schema 总结 24. XML Schema 参考手册

XML schema 元素

XSD - <schema> 元素


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


<schema> 元素

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

<?xml version="1.0"?>

<xs:schema>
...
...
</xs:schema>

<schema> 元素可包含属性。一个 schema 声明往往看上去类似这样:

<?xml version="1.0"?>

<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://www.55mianshi.com"
xmlns="http://www.55mianshi.com"
elementFormDefault="qualified">
...
...
</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.55mianshi.com"

显示被此 schema 定义的元素 (note, to, from, heading, body) 来自命名空间: "http://www.55mianshi.com"。

这个片断:

xmlns="http://www.55mianshi.com"

指出默认的命名空间是 "http://www.55mianshi.com"。

这个片断:

elementFormDefault="qualified"

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


在 XML 文档中引用 Schema

此 XML 文档含有对 XML Schema 的引用:

<?xml version="1.0"?>

<note xmlns="http://www.55mianshi.com"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.55mianshi.com note.xsd">

<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
</note>

下面的代码片断:

xmlns="http://www.55mianshi.com"

规定了默认命名空间的声明。此声明会告知 schema 验证器,在此 XML 文档中使用的所有元素都被声明于 "http://www.55mianshi.com" 这个命名空间。

一旦您拥有了可用的 XML Schema 实例命名空间:

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

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

xsi:schemaLocation="http://www.55mianshi.com note.xsd"