一XML Schema 简介
(一)XSD定义
XML Schema 是基于 XML 的 DTD 替代者,可描述 XML 文档的结构,可作为 XSD(XML SchemaDefinition)来引用。
(二)XSD作用
定义 XML 文档的合法构建模块,类似 DTD。定义可出现在文档中的元素+属性(及数据类型、默认值、固定值、文本)、子元素(次序、数目)
(三)XSD与 DTD 关系
XSD可针对需求扩展、更完善,功能更强大、基于 XML 编写、支持数据类型 、支持命名空间
1 XSD是DTD的继承者,比 DTD 更强大
2 XML Schema 支持数据类型
可更容易地描述允许的文档内容 、验证数据的正确性与来自数据库的数据一并工作、定义数据约束(data facets)、定义数据模型(或称数据格式)、可更容易地在不同的数据类型间转换数据
3 XML Schema 使用 XML 语法
不必学习新的语言 、可使用 XML 编辑器来编辑 Schema 文件 、可使用 XML 解析器来解析 Schema 文件 、可通过 XML DOM 来处理 Schema 、可通过 XSLT 来转换 Schema
4 XML Schema 可保护数据通信
发送方可以用一种接受方能够明白的方式来描述数据。
5 XML Schema 可扩展
因为它们由 XML 编写。优点:在其他 Schema 中重复使用您的 Schema 、创建由标准类型衍生而来的您自己的数据类型、在相同的文档中引用多重的 Schema
二 如何使用 XSD?
XML 文档可对 DTD 或XML Schema 进行引用。
(一)XML 文档
请看这个名为 "note.xml" 的 XML 文档:
(二)XSD定义
下面这个例子是一个名为 "note.xsd"的 XML Schema 文件,它定义了上面那个 XML 文档的元素:
代码解释:
下面的片断:
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 中声明过的元素必须被命名空间限定。
(三)XML对XSD 的引用
此文件包含对 XML Schema 的引用:
代码解释:
原文链接:https://www.f2er.com/xml/299465.htmlxmlns="http://www.w3school.com.cn"规定了默认命名空间的声明。此声明会告知 schema 验证器,在此 XML 文档中使用的所有元素都被声明于 "http://www.w3school.com.cn" 这个命名空间。
一旦您拥有了可用的 XMLSchema 实例命名空间:
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"您就可以使用 schemaLocation 属性了。此属性有两个值。第一个值是需要使用的命名空间。第二个值是供命名空间使用的 XML schema 的位置:
xsi:schemaLocation="http://www.w3school.com.cn note.xsd"