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支持无需的时候只能使用穷举的方式。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值