XML我们并不陌生,在企业级应用中有很广的用途。具体就不再说,下面介绍一下DTD,XSD的区别并以XSD为例看spring中定义与使用。
1.DTD(Documnet Type Definition)
DTD即文档类型定义,是一种XML约束模式语言,是XML文件的验证机制,属于XML文件组成的一部分。
DTD 是一种保证XML文档格式正确的有效方法,可以通过比较XML文档和DTD文件来看文档是否符合规范,元素和标签使用是否正确。 一个 DTD文档包含:元素的定义规则,元素间关系的定义规则,元素可使用的属性,可使用的实体或符号规则。
DTD和XSD相比:DTD 是使用非 XML 语法编写的。
DTD 不可扩展,不支持命名空间,只提供非常有限的数据类型 .
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的优点:
1) XML Schema基于XML,没有专门的语法
2) XML Schema可以象其他XML文件一样解析和处理
3) XML Schema比DTD提供了更丰富的数据类型.
4) XML Schema提供可扩充的数据模型。
5) XML Schema支持综合命名空间
6) XML Schema支持属性组。
3.spring中spring-beans-2.5.xsd
如下代码是从spring-beans-2.5.xsd 中摘取的一部分,作为示例。
<?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>
(1)schema元素为所有XML Schema模式文档的根元素,它用于声明该XML文档是一个XML Schema文档。该模式文档本身也一个XML文档,自己的名称空间为xmlns:xsd="http://www.w3.org/2001/XMLSchema",其中xsd为其前缀。
(2)Schema中targetNamespace定义了Schema定义出的新元素与属性的名称空间。也就是它是对所定义的XML模型进行限制:限制定义出的元素,或者属性的名称空间.
4.Spring中配置文件对XSD文件的使用
如下代码是从bean配置文件中摘取的一部分,作为示例。
<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>
</beans>
在使用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)
分享到:
相关推荐
DOCTYPE>`声明来引用外部的DTD,或者在XML文档中包含XSD链接。这样,XML解析器在解析文档时会自动进行验证。对于学习和参考,可以直接打开这些文件查看其内容,理解它们是如何定义XML结构的。 总结起来,XML DTD和...
XML转XSD\DTD工具 W3C XML Schema XSD 工具
在实际应用中,XML、DTD和XSD被广泛用于配置文件、数据交换、Web服务等场景。掌握这些技术,对于理解和开发与XML相关的项目至关重要,也有助于提升你在IT行业的专业能力。通过深入研究和实践,你可以更好地掌握XML的...
`web-app_2_3.dtd`和`web-app_2_4.xsd`分别对应Servlet容器中Web应用程序部署描述符的版本2.3和2.4的XSD文件,用于规定`web.xml`文件的结构。 接下来,我们将详细探讨这两个文件类型在Java Web开发中的作用: 1. `...
DTD是早期的XML文档验证方法,与XSD类似,用于定义XML文档的结构。但相比XSD,DTD功能较为有限,不支持复杂的数据类型和命名空间。 8. **DTD 示例** 以下是一个简单的DTD定义,描述了上面的订单结构: ```xml ...
### 在Eclipse中导入DTD和XSD文件,实现XML自动提示 #### 一、概述 在Eclipse等IDE中开发基于XML技术的应用时,为了提高编码效率和代码质量,我们通常会利用IDE提供的智能提示功能。这需要我们将相关的DTD...
XML验证通常有两种方式:DTD(Document Type Definition)验证和XSD(XML Schema Definition)验证。本话题主要关注的是XSD验证。 XSD,即XML Schema,是W3C推荐的一种用于定义XML文档结构和数据类型的规范。相比于...
在WEB编程技术中,CSS(层叠样式表)、DTD(文档类型定义)、XSD(XML架构定义)和XML(可扩展标记语言)是至关重要的组成部分。这些技术共同为创建高效、结构化的网页提供了坚实的基础。 首先,CSS是用于描述HTML...
java -jar trang.jar -I rng|rnc|dtd|xml -O rng|rnc|dtd|xsd [其它参数] 输入文件名 输出文件名 -I : 输入文件的格式 -O : 输出文件的格式 必须是大写,小写不识别 命令如:java -jar trang.jar -I xml -O xsd D:\...
### XML中的DTD详解 在XML(可扩展标记语言)中,DTD(Document Type Definition,文档类型定义)是一种用于定义XML文档结构的语言。它定义了XML文档中允许的元素、属性和实体等规则,确保XML文档格式正确且符合...
标题中的“Eclipse XML自动提示DTD文件下载”指的是在使用Eclipse IDE进行XML开发时,如何获取并配置DTD(Document Type Definition)文件以实现代码自动提示功能。这通常涉及到Eclipse的XML编辑器和XML Schema/DTD...
标题中的“通讯录源码XML+CSS+DTD+XSD”揭示了这是一个使用XML(可扩展标记语言)、CSS(层叠样式表)以及DTD(文档类型定义)和XSD(XML Schema定义)来构建的通讯录应用的源代码。下面我们将深入探讨这些技术及其...
XML Schema 的优势在于它的可扩展性和强大的数据类型支持,使得它比 DTD 更加适合大型、复杂的 XML 应用场景。由于 XML Schema 本身是基于 XML 的,因此可以利用 XML 工具进行编辑、解析和处理,增加了灵活性和便利...
XML Schema 是DTD的替代品。XML Schema语言也就是XML Schema Definition (XSD)。 XML Schema描述了XML文档的结构。可以用一个指定的XML Schema来验证某个XML文档,以检查该XML文档是否符合其要求。文档设计者可以...
在`mapping.xml`文件中,添加`<validation>`元素,设置`schema`属性为`true`,并指定XSD文件的位置。 3. **校验XML**:当使用Castor的`unmarshal()`方法解析XML时,如果启用了XSD校验,Castor会自动检查XML是否符合...
- **XML文档与Schema关联**:XML文档可以通过`xsd:noNamespaceSchemaLocation`或`xsd:schemaLocation`属性引用一个XML Schema文件,以确保该文档遵循Schema定义的规则。 - 示例代码展示如何在一个名为`note.xml`的...
在此教程中,你将学习如何在应用程序中读取和创建 XML Schema 语言,XML Schema 为何比 DTD 更加强大,以及如何在您的应用程序中使用 XML Schema。 什么是 XML Schema? XML Schema 的作用是定义 XML 文档的合法构建...
随着技术的发展,XML Schema(XML Schema Definition,XSD)作为一种更强大的XML结构定义工具,逐渐成为替代DTD的趋势。XML Schema提供了更复杂的数据类型和约束,以及命名空间的支持,但它也更复杂,学习曲线较陡峭...