背景:最近发现自己的时间有点不够用,学习到的东西很多,可是总结的时间少得可怜,常常是学习完过好长一段段时间才有机会去总结。这不,这个XML视频两个星期前就看完了,现在才做总结,唉,时间呀……。这个Schema又是一个新的名词,但和XML有联系,也算是旧知识了吧。
一、定义
描述XML文档的结构;
是基于XML的DTD替代者;
Schema也可称为 XSD(XML Schema Definition);
比DTD更强大。
二、作用
它的作用是定义一份XML文档的合法组件群,就像文档类型定义(外语缩写:DTD)的作用一样,一份XML Schema定义了:
◆ 可以出现在文档里的元素;
◆ 可以出现在文档里的属性;
◆ 哪些元素是子元素;
◆ 子元素的顺序;
◆ 子元素的数量;
◆ 一个元素应是否能包含文本,或应该是空的;
◆ 元素和属性的数据类型;
◆ 元素和属性的默认值和固定值。
三、优缺点
优点:
1、支持数据类型
XML Schema 最重要的能力之一就是对数据类型的支持。通过对数据类型的支持:
◆可更容易地描述允许的文档内容
◆可更容易地验证数据的正确性
◆可更容易地与来自数据库的数据一并工作
◆可更容易地定义数据约束(data facets)
◆可更容易地定义数据模型(或称数据格式)
◆可更容易地在不同的数据类型间转换数据
2、它使用 XML 语法
另一个关于XML Schema 的重要特性是,它们由XML编写。由XML编写XML Schema有很多好处:
◆不必学习新的语言
◆可使用 XML 编辑器来编辑 Schema 文件
◆可使用 XML 解析器来解析 Schema 文件
◆可通过 XML DOM 来处理 Schema
◆可通过 XSLT 来转换 Schema
3、可保护数据通信
◆当数据从发送方被发送到接受方时,其要点是双方应有关于内容的相同的"期望值"。
◆通过 XML Schema,发送方可以用一种接受方能够明白的方式来描述数据。
一种数据,比如 "03-11-2004",在某些国家被解释为11月3日,而在另一些国家为当作3月11日。
但是一个带有数据类型的 XML 元素,比如:<date type="date">2004-03-11</date>,可确保对内容一致的理解,这是因为 XML 的数据类型 "date" 要求的格式是 "YYYY-MM-DD"。
4、可扩展性
XML Schema 是可扩展的,因为它们由 XML 编写。通过可扩展的 Schema 定义,您可以:
◆在其他 Schema 中重复使用您的 Schema
◆创建由标准类型衍生而来的您自己的数据类型
◆在相同的文档中引用多重的 Schema
5、可捕获到错误
◆即使文档的形式良好,仍然不能保证它们不会包含错误,并且这些错误可能会产生严重的后果。
请考虑下面的情况:您订购的了 5 打激光打印机,而不是 5 台。通过 XML Schema,大部分这样的错误会被您的验证软件捕获到。
缺点:
◆虽然被写入XML是一个优势,在某些方面也是一个缺点。W3C XML Schema语言特别是可能非常冗长,而DTD可以简洁且相对容易编辑。
◆W3C XML Schema没有实现大部分提供的数据元素到文档的DTD能力。
◆IE不能验证XML是否符合Schema,需要通过专有的工具软件或者编程进行验证。
四、与DTD联系
◆是DTD的继承者,将来会取代DTD
◆可针对未来的需求进行扩展
◆更完整,功能更强大
◆基于XML编写
◆支持数据类型
五、心得体会
说了这么多,其实就是一句话:Schema是基于XML的比DTD更强大的DTD的替代者。嘿嘿,简单吧,大道至简不过如此......