XML 架构 教程
什么是 XML 架构?
XML 架构描述了 XML 文档的结构。
XML 架构语言也称为 XML 架构定义 (XSD)。
XSD 示例
<?xml version="1.0"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<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>
XML 架构的目的是定义 XML 文档的合法构建块
- 可以出现在文档中的元素和属性
- 子元素的数量(和顺序)
- 元素和属性的数据类型
- 元素和属性的默认值和固定值
为什么要学习 XML 架构?
在 XML 世界中,数百种标准化的 XML 格式每天都在使用。
许多这些 XML 标准都是由 XML 架构定义的。
XML 架构是 DTD 的基于 XML(并且更强大)的替代方案。
XML 架构支持数据类型
XML 架构的最大优势之一是支持数据类型。
- 更容易描述允许的文档内容
- 更容易验证数据的正确性
- 更容易定义数据方面(对数据的限制)
- 更容易定义数据模式(数据格式)
- 更容易在不同数据类型之间转换数据
XML 架构使用 XML 语法
关于 XML 架构的另一个优点是它们是用 XML 编写的。
- 您不必学习新的语言
- 您可以使用 XML 编辑器来编辑架构文件
- 您可以使用 XML 解析器来解析架构文件
- 您可以使用 XML DOM 来操作架构
- 您可以使用 XSLT 来转换架构
XML 架构是可扩展的,因为它们是用 XML 编写的。
使用可扩展的架构定义,您可以
- 在其他架构中重复使用架构
- 创建从标准类型派生的自定义数据类型
- 在同一文档中引用多个架构
XML 架构保护数据通信
在将数据从发送者发送到接收者时,重要的是双方对内容有相同的“期望”。
使用 XML 架构,发送者可以以接收者能够理解的方式描述数据。
像“03-11-2004”这样的日期,在某些国家会被解释为 11 月 3 日,而在其他国家则会被解释为 3 月 11 日。
但是,具有以下数据类型的 XML 元素
<date type="date">2004-03-11</date>
确保对内容的相互理解,因为 XML 数据类型“date”要求格式为“YYYY-MM-DD”。
格式良好还不够
格式良好的 XML 文档是指符合 XML 语法规则的文档,例如
- 它必须以 XML 声明开头
- 它必须有一个唯一的根元素
- 开始标签必须与结束标签匹配
- 元素区分大小写
- 所有元素都必须关闭
- 所有元素都必须正确嵌套
- 所有属性值都必须用引号引起来
- 必须使用实体来表示特殊字符
即使文档格式良好,它们仍然可能包含错误,这些错误会造成严重的后果。
考虑以下情况:您订购了 5 打激光打印机,而不是 5 台激光打印机。使用 XML 架构,您的验证软件可以捕获大多数这些错误。