5.2 DTD 与 XML Schema
###5.2 DTD与XML Schema
DTD是面向SGML语言的规范,在描述XML数据模式时不可避免地存在很多限制,比如缺少数据类型和命名空间的支持、语法规则过于简单以至描述能力有限、使用了非XML的格式等。
与DTD相比,XML Schema具有下列特征
一致性:XML Schema利用XML的基本语法规则来定义其文档结构,从而使XML的模式和实例定义达到统一,并继承了XML的自描述性和可扩展性,使其更具有可读性和灵活性。
完备性:XML Schema对DTD进行了扩充,引入了数据类型、命名空间,并且支持对其他XML Schema的引用,从而使其具备较强的模块性 。
规范性和准确性:XML Schema提供了更加规范和完备的机制来约束XML文档,语义更加准确,可以完成一些DTD不能完成的定义,如对元素出现次数的约束等。
面向对象特征:XML Schema引入了许多成熟的面向对象机制(比如继承性和多态性),使得数据模式在应用中更加灵活 。
扩展性:DTD所描述的文档结构是非常严格的,没有显式声明的内容绝不允许在XML实例数据中出现;而XML Schema则提供了一些扩展机制,允许在事先无法准确描述数据模式的情况下,在XML实例数据中根据需要添加相关的数据 。
XML Schema的优点
使用基本的XML创建,而DTD基于独立的语法qq完全支持命名空间推荐标准
可以验证基于内置(built-in)数据类型和用户自定义(user-defined)数据类型的文本元素
可以更容易地建立复杂的可重用的内容模型
可用于模拟程序设计的基本概念,例如对象的继承和类型替换
DTD的必要性
XML Schema不支持ENTITY功能,ENTITY在许多XML文档和应用程序中作用重大
DTD是XML推荐标准中唯一的定义和验证方法,可直接嵌入XML文档中,由验证型解析器使用
DTD从SGML继承了大部分特性,在传统的应用程序中应用广泛
Last updated