DTD与XSD的区别
DTD与XSD的区别
Spring源码学习回顾
DTD(Document Type Definition),即文档类型定义,为XML文件的验证机制,属于XML文件中组成的一部分。DTD是一种保证XML文档格式正确的有效验证方式,它定义了相关XML文档的元素、属性、排序方式、元素的内容类型以及元素的层次结构。其中DTD就相当于XML中的词汇和语法,我们可以通过比较XML文件和DTD文件来看文档是否符合规范,元素和标签使用是否正确。
DTD在一定的阶段推动了XML的发展,但是他本身存在一定的缺陷:
- 它没有使用XML格式,而是自定义了一套格式,相对解析器的重用性较差;而且DTD的构件和访问没有标准的编程接口,导致解析器很难简单地解析DTD文档。
- DTD对圆度的类型限制较少;同时其他的约束了也比较弱。
- DTD扩展能力较差。
- 基于正则表达式的DTD文档的描述能力有限。
XSD(XML Schemas Definition),即XML Schema语言,针对DTD的缺陷有W3C在2001年推出。XML Schema本身就是一个XML文档,使用的是XML语法,因此可以很方便地解析XSD文档。相对于DTD, XSD具有如下优势:
- XML Schema基于XML,没有专门的语法
- XML Schema可以像其他XML文件一样解析和处理
- XML Schema相比于DTD提供了更丰富的数据类型
- XML Schema提供可扩展的数据模型
- XML Schema支持综合命名空间
- XML Schema支持属性组
所以,在Spring源码中,基于XML文件配置Bean的XML验证模式,一般情况下是XSD模式。
向大神看齐