Schema和DTD的区别

阅读更多

       Schema是对XML文档结构的定义和描述,其主要作用是对编写XML文件的约束,校验XML文件的有效性。DTD的作用是定义XML合法的构建模块,它使用一系列的合法的元素(符合W3C标准)来定义XML文档的结构。


       Schema和DTD的主要区别如下:


       1.Schema文件本身也是一个XML文档,而DTD文件与不是完全的XML格式。只要会编写XML文件,即可以编写Schema文件,XML文件与XML Schema文件可以用相同的解析器进行解析,无须两套解析器;而DTD的编写需要符合特定的语法,具体参见W3C网站(http://www.w3chtml.com/dtd/);

       2.DTD文档中定义元素是“平铺型”的,如果定义复杂的XML层次结构,很难把握嵌套关系;Schema的文档结构性强,各元素之前的嵌套关系非常直观;

      3.DTD在定义时只能定义元素是否包含文本,不能定义具体的类型;而Schema在这方面有强大的支持;

      4.对命名空间的支持。DTD无法利用XML命名空间,而Schema可以很好的利用命名空间。并且Schema还提供了include和import两种引用命名空间的方法。XML Schema利用命名空间将文档中的特殊的节点与Schema说明相联系,一个XML文件可以有多个Schema,而对于DTD一个XML只能有一个相对应的DTD;

      5.对元素顺序的支持。Schema支持元素节点顺序的描述,可以使用xs:all来表示无需的情况,而DTD支持无需的时候只能使用穷举的方式。

 

你可能感兴趣的:(xml,schema,dtd,dom)