XSD-1 XSD Schema 概述
1 XSD Schema 概述
XML Schema 是基于 XML 的 DTD 替代者。
XML Schema 描述 XML 文档的结构。
XML Schema 语言也称作 XML Schema 定义(XML Schema Definition,XSD)。
XML Schema:
- 定义可出现在文档中的
元素
- 定义可出现在文档中的
属性
- 定义哪个元素是
子元素
- 定义子元素的
次序
- 定义子元素的
数目
- 定义元素
是否为空
,或者是否可包含文本
- 定义元素和属性的
数据类型
- 定义元素和属性的
默认值
以及固定值
XML Schema 是 DTD 的继任者
以下是 XML Schema 相对于 DTD 的优势
- XML Schema 可针对未来的需求进行扩展
- XML Schema 更完善,功能更强大
- XML Schema 基于 XML 编写
- XML Schema 支持数据类型
- XML Schema 支持命名空间
XML Schema 支持数据类型
XML Schema 最重要的能力之一就是对数据类型的支持。
通过对数据类型的支持:
- 可更容易地描述允许的文档内容
- 可更容易地
验证数据的正确性
- 可更容易地
与来自数据库的数据一并工作
- 可更容易地定义
数据约束(data facets)
- 可更容易地
定义数据模型(或称数据格式)
- 可更容易地
在不同的数据类型间转换数据
XML Schema 使用 XML 语法
另一个关于 XML Schema 的重要特性是,它们由 XML 编写。
由 XML 编写 XML Schema 有很多好处:
- 不必学习新的语言
- 可使用 XML 编辑器来编辑 Schema 文件
- 可使用 XML 解析器来解析 Schema 文件
- 可通过 XML DOM 来处理 Schema
- 可通过 XSLT 来转换 Schema
XML Schema 可保护数据通信
当数据从发送方被发送到接受方时,其要点是双方应有关于内容的相同的“期望值”。
通过 XML Schema,发送方可以用一种接受方能够明白的方式来描述数据。
一种数据,比如 “03-11-2004”,在某些国家被解释为11月3日,而在另一些国家为当作3月11日。
但是一个带有数据类型的 XML 元素,比如:2004-03-11,可确保对内容一致的理解,这是因为 XML 的数据类型 “date” 要求的格式是 “YYYY-MM-DD”。
XML Schema 可扩展
XML Schema 是可扩展的,因为它们由 XML 编写。
通过可扩展的 Schema 定义,您可以:
- 在其他 Schema 中重复使用您的 Schema
- 创建由标准类型衍生而来的您自己的数据类型
- 在相同的文档中引用多重的 Schema
形式良好是不够的
我们把符合 XML 语法的文档称为形式良好的 XML 文档,比如:
- 它必须以 XML 声明开头
- 它必须拥有唯一的根元素
- 开始标签必须与结束标签相匹配
- 元素对大小写敏感
- 所有的元素都必须关闭
- 所有的元素都必须正确地嵌套
- 必须对特殊字符使用实体
即使文档的形式良好,仍然不能保证它们不会包含错误,并且这些错误可能会产生严重的后果。
请考虑下面的情况:您订购的了 5 打激光打印机,而不是 5 台。通过 XML Schema,大部分这样的错误会被您的验证软件捕获到。
学习 XSD Schema
目的:使用 XSD Schema 验证 XML 文档
工具:IntelliJ IDEA
参考:Schema 中文教程,https://www.w3school.com.cn/schema/index.asp
里程碑:
1、学习 XSD Schema 的简单类型
2、学习 XSD Schema 的基础数据类型
3、学习 XSD Schema 的复杂类型
备注:
从简单类型的学习出发,了解 Schema 的组织结构和 xs:element 与 xs:attribute 标签的使用;
从基础数据类型出发,了解 Schema 支持的数据类型与相关的限定;
从复杂类型出发,了解 Schema 解决复杂应用场景的方案。
上一章:无
目录:学习 JAXB
下一章:XSD-2 对 XML 进行 XSD 建模