DTD与XSD的区别

DTD与XSD的区别

Spring源码学习回顾

DTD(Document Type Definition),即文档类型定义,为XML文件的验证机制,属于XML文件中组成的一部分。DTD是一种保证XML文档格式正确的有效验证方式,它定义了相关XML文档的元素、属性、排序方式、元素的内容类型以及元素的层次结构。其中DTD就相当于XML中的词汇和语法,我们可以通过比较XML文件和DTD文件来看文档是否符合规范,元素和标签使用是否正确。

DTD在一定的阶段推动了XML的发展,但是他本身存在一定的缺陷:

  1. 它没有使用XML格式,而是自定义了一套格式,相对解析器的重用性较差;而且DTD的构件和访问没有标准的编程接口,导致解析器很难简单地解析DTD文档。
  2. DTD对圆度的类型限制较少;同时其他的约束了也比较弱。
  3. DTD扩展能力较差。
  4. 基于正则表达式的DTD文档的描述能力有限。

XSD(XML Schemas Definition),即XML Schema语言,针对DTD的缺陷有W3C在2001年推出。XML Schema本身就是一个XML文档,使用的是XML语法,因此可以很方便地解析XSD文档。相对于DTD, XSD具有如下优势:

  1. XML Schema基于XML,没有专门的语法
  2. XML Schema可以像其他XML文件一样解析和处理
  3. XML Schema相比于DTD提供了更丰富的数据类型
  4. XML Schema提供可扩展的数据模型
  5. XML Schema支持综合命名空间
  6. XML Schema支持属性组

所以,在Spring源码中,基于XML文件配置Bean的XML验证模式,一般情况下是XSD模式。

向大神看齐
原文地址:https://www.cnblogs.com/Liu-xing-wu/p/15362729.html