XML——DTD与XSD的区别
2018-02-23 10:47
357 查看
XML我们并不陌生,在企业级应用中有很广的用途。具体就不再说,下面介绍一下DTD,XSD的区别并以XSD为例看spring中定义与使用。
一.DTD(Documnet Type Definition)
1、DTD 即文档类型定义,是一种XML约束模式语言,是XML文件的验证机制,属于XML文件组成的一部分。
2、DTD 是一种保证XML文档格式正确的有效方法,可以通过比较XML文档和DTD文件来看文档是否符合规范,元素和标签使用是否正确。 一个 DTD文档包含:元素的定义规则,元素间关系的定义规则,元素可使用的属性,可使用的实体或符号规则。
3、DTD和XSD相比:DTD 是使用非 XML 语法编写的。
4、DTD 不可扩展,不支持命名空间,只提供非常有限的数据类型 .
二.XSD(XML Schemas Definition)
1、XML Schema语言也就是XSD。XML Schema描述了XML文档的结构。
2、可以用XML Schema来验证xml文档是否符合其要求,由于XML Schema本身就是一个XMl格式的,它可以用通用的XML解析器来进行解析(如DOM4j)。xsd之所以能成为dtd的替代品,是因为xsd的的可扩展性比较强,它支持命名空间、数据类型。
3、XML Schema的优点:
①、XML Schema基于XMl语言,没有专门的语言
②、XML Schema可以像其他XML文件被XML解析器解析
③、XML Schema提供了更多的数据类型
④、XML Schema支持命名空间
⑤、XML Schema支持属性组
三.spring中spring-beans-2.5.xsdJava代码 收藏代码
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<xsd:schema xmlns="http://www.springframework.org/schema/beans"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://www.springframework.org/schema/beans">
<!-- base types -->
<xsd:complexType name="identifiedType" abstract="true">
<xsd:attribute name="id" type="xsd:ID">
</xsd:attribute>
</xsd:complexType>
</xsd:schema> ①、schema元素为所有XML Schema模式文档的根元素,它用于声明该XML文档是一个XML Schema文档。该模式文档本身也一个XML文档,自己的名称空间为xmlns:xsd="http://www.w3.org/2001/XMLSchema",其中xsd为其前缀。
②、Schema中targetNamespace定义了Schema定义出的新元素与属性的名称空间。也就是它是对所定义的XML模型进行限制:限制定义出的元素,或者属性的名称空间.
四.Spring中配置文件对XSD文件的使用Java代码 收藏代码
<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 >说明:在使用XML Schema 文档对XML实例文档进行检验,除了要声明名称空间外(xmlns="http://www.springframework.org/schema/beans"),还必须指定该名称空间所对应的XML Schema文档的存储位置.
通过schemaLocation属性来指定名称空间所对应的XML Schema文档的存储位置,它包含两个部分,一部分是名称空间的URI,第二部分就是该名称空间所标识的XML Schema文件位置或URL地址
(xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd)
一.DTD(Documnet Type Definition)
1、DTD 即文档类型定义,是一种XML约束模式语言,是XML文件的验证机制,属于XML文件组成的一部分。
2、DTD 是一种保证XML文档格式正确的有效方法,可以通过比较XML文档和DTD文件来看文档是否符合规范,元素和标签使用是否正确。 一个 DTD文档包含:元素的定义规则,元素间关系的定义规则,元素可使用的属性,可使用的实体或符号规则。
3、DTD和XSD相比:DTD 是使用非 XML 语法编写的。
4、DTD 不可扩展,不支持命名空间,只提供非常有限的数据类型 .
二.XSD(XML Schemas Definition)
1、XML Schema语言也就是XSD。XML Schema描述了XML文档的结构。
2、可以用XML Schema来验证xml文档是否符合其要求,由于XML Schema本身就是一个XMl格式的,它可以用通用的XML解析器来进行解析(如DOM4j)。xsd之所以能成为dtd的替代品,是因为xsd的的可扩展性比较强,它支持命名空间、数据类型。
3、XML Schema的优点:
①、XML Schema基于XMl语言,没有专门的语言
②、XML Schema可以像其他XML文件被XML解析器解析
③、XML Schema提供了更多的数据类型
④、XML Schema支持命名空间
⑤、XML Schema支持属性组
三.spring中spring-beans-2.5.xsdJava代码 收藏代码
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<xsd:schema xmlns="http://www.springframework.org/schema/beans"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://www.springframework.org/schema/beans">
<!-- base types -->
<xsd:complexType name="identifiedType" abstract="true">
<xsd:attribute name="id" type="xsd:ID">
</xsd:attribute>
</xsd:complexType>
</xsd:schema> ①、schema元素为所有XML Schema模式文档的根元素,它用于声明该XML文档是一个XML Schema文档。该模式文档本身也一个XML文档,自己的名称空间为xmlns:xsd="http://www.w3.org/2001/XMLSchema",其中xsd为其前缀。
②、Schema中targetNamespace定义了Schema定义出的新元素与属性的名称空间。也就是它是对所定义的XML模型进行限制:限制定义出的元素,或者属性的名称空间.
四.Spring中配置文件对XSD文件的使用Java代码 收藏代码
<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 >说明:在使用XML Schema 文档对XML实例文档进行检验,除了要声明名称空间外(xmlns="http://www.springframework.org/schema/beans"),还必须指定该名称空间所对应的XML Schema文档的存储位置.
通过schemaLocation属性来指定名称空间所对应的XML Schema文档的存储位置,它包含两个部分,一部分是名称空间的URI,第二部分就是该名称空间所标识的XML Schema文件位置或URL地址
(xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd)
相关文章推荐
- XML中DTD,XSD的区别与应用
- 转!!XML,DTD,XSD,XSL的区别
- 网络随笔(七)------XML中DTD,XSD的区别与应用
- XML,DTD,XSD,XSL的区别
- XML中DTD,XSD的区别与应用
- XML中DTD,XSD的区别与应用
- XML,DTD,XSD,XSL的区别
- XML中DTD,XSD的区别与应用
- XML,DTD,XSD,XSL的区别
- XML DTD XSD XSL XDR都有什么区别?
- XML中DTD,XSD的区别与应用
- (转) XML DTD XSD XSL XDR的区别
- XML,DTD,XSD,XSL的区别
- XML中DTD,XSD的区别与应用
- XML中DTD,XSD的区别与应用
- XML中DTD,XSD的区别与应用 .
- XML中DTD,XSD的区别与应用
- XML中DTD,XSD的区别与应用
- XML中DTD,XSD的区别与应用
- 对XML文件的重新认识,说说XML文件的二三事(二):两种验证模式-DTD和XSD