您的位置:首页 > 编程语言

Schema取代DTD是必然趋势吗?

2014-01-01 16:42 232 查看
       在学习XML的时候,学到了Schema和DTD。其实上网查一下,关于Schema和DTD的文章,一抓一大把。对此,我也进行了思考,并提出了疑问,Schema取代DTD是必然趋势吗?

 

         DTD ——Document Type Definition,即文档类型定义,它的作用是定义XML文档的合法构建模块,它使用一系列的合法元素来定义文档结构。它可以被成行地声明于XML文档中,也可作为一个外部引用。

       为什么要使用DTD?通过DTD,使每一个XML文件均可携带一个有关其自身格式的描述;通过DTD,独立的团体可一致的使用某个标准的DTD来交换数据;而且应用程序也可使用某个标准的DTD来验证从外部接收到的数据;还可以使用DTD验证自身的数据。DTD的优势在于,由于DTD有外部和内部之分,因此可以创建一个公用的外部DTD来为多个XML文档共享使用,使数据交换更为有效。甚至可以在某些文档中还可以是内部DTD和外部DTD相结合,也可以在应用程序中使用某个DTD来检测接收到的数据是否符合某个标准。

       对于XML文档而言,DTD不是必须的,但它为文档的编制带来了方便,加强了文档标记内参数的一致性,使XML语法分析器能够确认文档。如果不使用DTD来对XML文档进行定义,那么XML语法分析器将无法对该文档进行确认。与此同时,DTD也有不少的缺陷,例如DTD有自己特殊的语法,其本身不是XML文档;DTD只提供了有限的数据类型,用户无法自定义类型;DTD不支持域名机制。

 

         Schema其实与DTD一样,都是对某一类XML文档进行约束并确定其结构,包括对元素、属性、数据类型等的完整定义,及某个XML文档中所使用的元素、实体、元素的属性、元素与实体之间的关系的特殊约束。

       看起来二者在功能上似乎是相同的,那为什么Schema有取代DTD的趋势呢?

       虽然Schema在设计目的方面与DTD类似,但是在功能方面,Schema有着DTD无法抗衡的强大优势,它比DTD更完善,更容易扩展。首先,与DTD不同的是,Schema本身就是一个XML文档,不像DTD有自己特殊的语法。相比较而言,主需要知道了XML的语法规则就可以编写Schema了。不需要再学习其他语法了,可以使用相同的处理器来解读。其次,Schema定义了多种数据类型,一改DTD有限的数据类型。在XML
Schema文件中可以像其他编程语言那样来定义数据类型。

        一个新生的事物,它的功能更强大,扩展性更好,使用起来更方便,那么这个新生事物没有理由不取代旧的事物。想起高中的时候政治书里总会出现这样的话“新事物不断进步,旧事物不断消亡”。就好比我们现在的手机,如果手机厂商不懂得与时俱进,不断的更新、创造新的手机功能,顺应时代的进步,那么很容易被时代淘汰。Schema和DTD也是一样。可能在没有Schema的时候DTD好用的不得了,就好比我们没有手机的时候,BP机也是很不错的通讯工具。但是随着时代的进步,手机出现了,BP机也就相应的慢慢淘汰了。Schema不也是一样吗?它较DTD而言,功能更强大,适应性扩展性易用性更好更完善。因此,Schema替代DTD也许只是一个时间的问题。这同时也给了我们一个启示,我们要不断的变化,不断的进步,顺应时代发展的步伐,切不可止步不前。上至政府机关企业,下至我们个人。记住一句话,“流水不腐,户枢不蠹”。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  schema 趋势 编程语言