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也许只是一个时间的问题。这同时也给了我们一个启示,我们要不断的变化,不断的进步,顺应时代发展的步伐,切不可止步不前。上至政府机关企业,下至我们个人。记住一句话,“流水不腐,户枢不蠹”。
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也许只是一个时间的问题。这同时也给了我们一个启示,我们要不断的变化,不断的进步,顺应时代发展的步伐,切不可止步不前。上至政府机关企业,下至我们个人。记住一句话,“流水不腐,户枢不蠹”。
相关文章推荐
- 在myeclipse等IDE中添加本地的dtd与schema约束文件
- Xml xsl dtd Schema html的理解
- 小白自学Android路之 xml文件的DTD、Schema约束
- xml约束之dtd约束和schema约束---3
- No grammar constraints (DTD or XML Schema) referenced in the document.
- XML的约两种约束——DTD、Schema
- xml基础、DTD验证、Schema验证(备忘)
- xml编写中的DTD约束与schema约束中的语法
- Eclipse里的No grammar constraints (DTD or XML schema) detected for the document警告
- 云计算国家规划将发布 云CRM成必然发展趋势
- XML-Schema的DTD描述
- Web.xml文件提示No grammar constraints (DTD or XML Schema) referenced in the document. 警告的解决方法
- 二、XML的DTD和Schema
- 银行测评推进 中融民信认为监管趋严是必然趋势
- DTD和Schema
- DTD与Schema约束
- 贫富分化是生产力发展的必然趋势 zz
- WebService学习笔记(二) - XML的dtd和schema
- 为什么说信用卡网络化是个必然趋势?
- JavaEE开发——XML、DTD、Schema、Dom、Sax