原文地址:http://www.jb51.cc/article/p-nuqkpmzx-ku.html@H_403_3@@H_403_3@
XML我们并不陌生,在企业级应用中有很广的用途。具体就不再说,下面介绍一下DTD,XSD的区别并以XSD为例看spring中定义与使用。
@H_403_3@ 1.DTD(DocumnetTypeDefinition)@H_403_3@
DTD即文档类型定义,是一种XML约束模式语言,是XML文件的验证机制,属于XML文件组成的一部分。
DTD是一种保证XML文档格式正确的有效方法,可以通过比较XML文档和DTD文件来看文档是否符合规范,元素和标签使用是否正确。一个DTD文档包含:元素的定义规则,元素间关系的定义规则,元素可使用的属性,可使用的实体或符号规则。
DTD和XSD相比:DTD是使用非XML语法编写的。
DTD不可扩展,不支持命名空间,只提供非常有限的数据类型.
@H_403_3@ 2.XSD(XMLSchemasDefinition)@H_403_3@
XMLSchema语言也就是XSD。XMLSchema描述了XML文档的结构。
可以用一个指定的XMLSchema来验证某个XML文档,以检查该XML文档是否符合其要求。文档设计者可以通过XMLSchema指定一个XML文档所允许的结构和内容,并可据此检查一个XML文档是否是有效的。XMLSchema本身是一个XML文档,它符合XML语法结构。可以用通用的XML解析器解析它。
一个XMLSchema会定义:文档中出现的元素、文档中出现的属性、子元素、子元素的数量、子元素的顺序、元素是否为空、元素和属性的数据类型、元素或属性的默认和固定值。
XSD是DTD替代者的原因,一是据将来的条件可扩展,二是比DTD丰富和有用,三是用XML书写,四是支持数据类型,五是支持命名空间。
XMLSchema的优点:
1)XMLSchema基于XML,没有专门的语法
2)XMLSchema可以象其他XML文件一样解析和处理
3)XMLSchema比DTD提供了更丰富的数据类型.
4)XMLSchema提供可扩充的数据模型。
5)XMLSchema支持综合命名空间
6)XMLSchema支持属性组。
@H_403_3@ 3.spring中spring-beans-2.5.xsd@H_403_3@
(1)schema元素为所有XMLSchema模式文档的根元素,它用于声明该XML文档是一个XMLSchema文档。该模式文档本身也一个XML文档,自己的名称空间为xmlns:xsd="http://www.w3.org/2001/XMLSchema",其中xsd为其前缀。
(2)Schema中targetNamespace定义了Schema定义出的新元素与属性的名称空间。也就是它是对所定义的XML模型进行限制:限制定义出的元素,或者属性的名称空间.
@H_403_3@ 4.Spring中配置文件对XSD文件的使用@H_403_3@
@H_403_3@ 1.DTD(DocumnetTypeDefinition)@H_403_3@
DTD即文档类型定义,是一种XML约束模式语言,是XML文件的验证机制,属于XML文件组成的一部分。
DTD是一种保证XML文档格式正确的有效方法,可以通过比较XML文档和DTD文件来看文档是否符合规范,元素和标签使用是否正确。一个DTD文档包含:元素的定义规则,元素间关系的定义规则,元素可使用的属性,可使用的实体或符号规则。
DTD和XSD相比:DTD是使用非XML语法编写的。
DTD不可扩展,不支持命名空间,只提供非常有限的数据类型.
@H_403_3@ 2.XSD(XMLSchemasDefinition)@H_403_3@
XMLSchema语言也就是XSD。XMLSchema描述了XML文档的结构。
可以用一个指定的XMLSchema来验证某个XML文档,以检查该XML文档是否符合其要求。文档设计者可以通过XMLSchema指定一个XML文档所允许的结构和内容,并可据此检查一个XML文档是否是有效的。XMLSchema本身是一个XML文档,它符合XML语法结构。可以用通用的XML解析器解析它。
一个XMLSchema会定义:文档中出现的元素、文档中出现的属性、子元素、子元素的数量、子元素的顺序、元素是否为空、元素和属性的数据类型、元素或属性的默认和固定值。
XSD是DTD替代者的原因,一是据将来的条件可扩展,二是比DTD丰富和有用,三是用XML书写,四是支持数据类型,五是支持命名空间。
XMLSchema的优点:
1)XMLSchema基于XML,没有专门的语法
2)XMLSchema可以象其他XML文件一样解析和处理
3)XMLSchema比DTD提供了更丰富的数据类型.
4)XMLSchema提供可扩充的数据模型。
5)XMLSchema支持综合命名空间
6)XMLSchema支持属性组。
@H_403_3@ 3.spring中spring-beans-2.5.xsd@H_403_3@
<?xmlversion=@H_403_3@"1.0"@H_403_3@encoding=@H_403_3@"UTF-8"@H_403_3@standalone=@H_403_3@"no"@H_403_3@?>@H_403_3@
<xsd:schemaxmlns=@H_403_3@"http://www.springframework.org/schema/beans"@H_403_3@
xmlns:xsd=@H_403_3@"http://www.w3.org/2001/XMLSchema"@H_403_3@
targetNamespace=@H_403_3@"http://www.springframework.org/schema/beans"@H_403_3@>@H_403_3@
<!--basetypes-->@H_403_3@
<xsd:complexTypename=@H_403_3@"identifiedType"@H_403_3@abstract@H_403_3@=@H_403_3@"true"@H_403_3@<xsd:attributename=@H_403_3@"id"@H_403_3@type=@H_403_3@"xsd:ID"@H_403_3@</xsd:attribute>@H_403_3@
</xsd:complexType>@H_403_3@
</xsd:schema>@H_403_3@
(1)schema元素为所有XMLSchema模式文档的根元素,它用于声明该XML文档是一个XMLSchema文档。该模式文档本身也一个XML文档,自己的名称空间为xmlns:xsd="http://www.w3.org/2001/XMLSchema",其中xsd为其前缀。
(2)Schema中targetNamespace定义了Schema定义出的新元素与属性的名称空间。也就是它是对所定义的XML模型进行限制:限制定义出的元素,或者属性的名称空间.
@H_403_3@ 4.Spring中配置文件对XSD文件的使用@H_403_3@