文章目录
XSD和DTD文件的区别
XML我们并不陌生,在企业级应用中有很广的用途。具体就不再说,下面介绍一下DTD,XSD的区别并以XSD为例看spring中定义与使用。
1.DTD(Documnet Type Definition)
DTD即文档类型定义,是一种XML约束模式语言
,是XML文件的验证机制,属于XML文件组成的一部分。
DTD 是一种保证XML文档格式正确的有效方法,可以通过比较XML文档和DTD文件来看文档是否符合规范,元素和标签使用是否正确。 一个 DTD文档包含:元素的定义规则,元素间关系的定义规则,元素可使用的属性,可使用的实体或符号规则。
DTD和XSD相比:DTD 是使用非 XML 语法编写的。
DTD 不可扩展,不支持命名空间,只提供非常有限的数据类型
.
DTD的缺陷 :
利用DTD验证有效性的解析器,就能够立即对文档的完整性进行可靠的检查。DTD虽然比较实用,但DTD也有不少的缺陷。
1): DTD有自己的特殊语法,其本身不是XML文档;
2): DTD只提供了有限的数据类型,用户无法自定义类型;
3): DTD不支持域名机制。
DTD 是XML1.0版规格的一部分,是XML文件的验证机制,属于XML文件组成的一部分
。DTD 是一种保证XML文档格式正确的有效方法,可通过比较XML文档和DTD文件来看文档是否符合规范
,元素和标签使用是否正确。XML文件提供应用程序一个 数据交换的格式,DTD正是让XML文件能成为数据交换标准,因为不同的公司只需定义好标准DTD,各公司都能依DTD建立XML文件,并且进行验证,如 此就可以轻易的建立标准和交换数据,这样满足了网络共享和数据交互
。
DTD文件是一个ASCII文本文件,后缀名为.dtd。
1.为什么需要dtd,xsd 这种xml文档定义描述?
对于一个格式良好的XML文档,我们只能保证这个文档的格式符合XML规范,但是元素与元素之间的关系、元素与属性的关系,属性的取值是否正确,我们就无法得知了。对于一个格式良好的文档,如果仅仅是在有限的应用中使用,或者作为数据的存储传输,那么也能很好的满足我们的应用。但是如果要让其他用户理解你的XML文档,或者和其他的应用进行数据交换,那么就有必要提供一种机制,来保证我们所写的XML文档和别人所写的XML文档其结构是相同的,元素与元素之间的关系是正确的,属性的取值也是符合要求的。
2.在XML当中引入DTD有哪些方式?
我们可以直接在XML文档中定义DTD,也可以通过URI引用外部的DTD文件,或者同时采用这两种方式。
作者:wuxinliulei
链接:https://www.zhihu.com/question/38843167/answer/78782017
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
2.XSD(XML Schemas Definition)
XML Schema语言也就是XSD。XML Schema描述了XML文档的结构。
可以用一个指定的XML Schema来验证某个XML文档,以检查该XML文档是否符合其要求。文档设计者可以通过XML Schema指定一个XML文档所允许的结构和内容,并可据此检查一个XML文档是否是有效的。XML Schema本身是一个XML文档,它符合XML语法结构。可以用通用的XML解析器解析它。
一个XML Schema会定义:文档中出现的元素、文档中出现的属性、子元素、子元素的数量、子元素的顺序、元素是否为空、元素和属性的数据类型、元素或属性的默认 和固定值。
XSD是DTD替代者的原因,一是据将来的条件可扩展,二是比DTD丰富和有用,三是用XML书写,四是支持数据类型,五是支持命名空间
。
XML Schema的优点:
- XML Schema基于XML,没有专门的语法
- XML Schema可以象其他XML文件一样解析和处理
- XML
Schema比DTD提供了更丰富的数据类型.- XML Schema提供可扩充的数据模型。
- XML Schema支持综合命名空间
- XML Schema支持属性组。
servlet标准在2.5开始就放弃使用dtd,改用了xsd
其他
hibernate映射文件的dtd
https://blog.csdn.net/Pengxiaozhen1111/article/details/80436242
https://blog.csdn.net/huweijian5/article/details/21863161
spting 映射文件xsd
http://www.springframework.org/schema
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd>