目录

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 Schema 是 DTD 的基于 XML 的(且功能更强大)的替代方案。



XML 模式支持数据类型

XML 模式的最大优势之一是对数据类型的支持。

  • 更容易描述允许的文档内容
  • 更容易验证数据的正确性
  • 更容易定义数据方面(对数据的限制)
  • 更容易定义数据模式(数据格式)
  • 不同数据类型之间的数据转换更加容易

XML 模式使用 XML 语法

XML 模式的另一个强大优点是它们是用 XML 编写的。

  • 你不必学习一门新语言
  • 您可以使用 XML 编辑器来编辑架构文件
  • 您可以使用 XML 解析器来解析 Schema 文件
  • 您可以使用 XML DOM 操作您的架构
  • 您可以使用 XSLT 转换您的架构

XML 模式是可扩展的,因为它们是用 XML 编写的。

通过可扩展的架构定义,您可以:

  • 在其他模式中重用您的模式
  • 创建从标准类型派生的您自己的数据类型
  • 在同一文档中引用多个架构

XML 模式安全数据通信

当从发送方向接收方发送数据时,两个部分的内容必须具有相同的"expectations"。

使用 XML 模式,发送者可以用接收者能够理解的方式描述数据。

像"03-11-2004" 这样的日期在某些国家/地区将被解释为 11 月 3 日,而在其他国家/地区将被解释为 3 月 11 日。

然而,具有如下数据类型的 XML 元素:

<日期类型="date">2004-03-11</日期>

确保内容的相互理解,因为 XML 数据类型 "date" 需要格式 "YYYY-MM-DD"。


结构良好还不够

格式良好的 XML 文档是符合 XML 语法规则的文档,例如:

  • 它必须以 XML 声明开头
  • 它必须有一个唯一的根元素
  • 开始标签必须有匹配的结束标签
  • 元素区分大小写
  • 所有元素都必须关闭
  • 所有元素必须正确嵌套
  • 所有属性值都必须加引号
  • 实体必须用于特殊字符

即使文档格式良好,它们仍然可能包含错误,而这些错误可能会产生严重的后果。

考虑以下情况:您订购了 5 台激光打印机,而不是 5 台激光打印机。使用 XML 模式,大多数错误都可以被验证软件捕获。