一.什么是Schema约束
同DTD一样,Schema也是一种用于定义和描述XML文档结构与内容的模式语言。
二.Schema和DTD的对比
(1)DTD采用的是非XML格式,缺乏对文档、元素、数据类型等全面的描述。而XML Schema采用的是XML语法格式,而且它本身也是一种XML文档,因此。XML Schema语法格式比DTD更好理解。
(2)XML有非常高的合法性要求,虽然DTD和XML Schema都用于对XML文档进行描述,都被用作验证XML合法性的基础。但是,DTD本身合法性的验证必须采用另外一套机制,而XML Schema/则采用与XML文档相同的合法性验证机制。
(3)XML Schema对名称空间支持得非常好,而DTD几乎不支持名称看空间。
(4)DTD支持的数据类型非常有限。例如,DTD可以指定元素中必须包含字符文本(PCDATA),但无法指定元素中必须包含非负整数,而XML Schema比XML DTD支持更多的数据类型,包括用户自定义的数据类型。
(5)DTD定义的约束能力非常有限,无法对XML实例文档做出更细致的语义限定,而XML Schema定义约束的能力非常强大,可以对XML文档示例文档做出细致的语义限制。
综上所述,Schema的功能比DTD强大太多,后续我会具体介绍一下Schema。