`
kim_miao
  • 浏览: 190880 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

XML中DTD,XSD的区别与应用

    博客分类:
  • J2EE
阅读更多
     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)
分享到:
评论

相关推荐

    xml dtd xsd 标准格式

    DOCTYPE&gt;`声明来引用外部的DTD,或者在XML文档中包含XSD链接。这样,XML解析器在解析文档时会自动进行验证。对于学习和参考,可以直接打开这些文件查看其内容,理解它们是如何定义XML结构的。 总结起来,XML DTD和...

    XML转XSD\DTD工具

    XML转XSD\DTD工具 W3C XML Schema XSD 工具

    XML DTD XSD,解压后有14M

    在实际应用中,XML、DTD和XSD被广泛用于配置文件、数据交换、Web服务等场景。掌握这些技术,对于理解和开发与XML相关的项目至关重要,也有助于提升你在IT行业的专业能力。通过深入研究和实践,你可以更好地掌握XML的...

    DTD文件和XSD文件

    `web-app_2_3.dtd`和`web-app_2_4.xsd`分别对应Servlet容器中Web应用程序部署描述符的版本2.3和2.4的XSD文件,用于规定`web.xml`文件的结构。 接下来,我们将详细探讨这两个文件类型在Java Web开发中的作用: 1. `...

    XML的使用方式示列(xsl、xsd、dtd等)

    DTD是早期的XML文档验证方法,与XSD类似,用于定义XML文档的结构。但相比XSD,DTD功能较为有限,不支持复杂的数据类型和命名空间。 8. **DTD 示例** 以下是一个简单的DTD定义,描述了上面的订单结构: ```xml ...

    在Eclipse中导入dtd和xsd文件,使XML自动提示

    ### 在Eclipse中导入DTD和XSD文件,实现XML自动提示 #### 一、概述 在Eclipse等IDE中开发基于XML技术的应用时,为了提高编码效率和代码质量,我们通常会利用IDE提供的智能提示功能。这需要我们将相关的DTD...

    XML验证器(XSD验证XML)

    XML验证通常有两种方式:DTD(Document Type Definition)验证和XSD(XML Schema Definition)验证。本话题主要关注的是XSD验证。 XSD,即XML Schema,是W3C推荐的一种用于定义XML文档结构和数据类型的规范。相比于...

    WEB编程技术_css.dtd.xsd.xml及报告封面的xml编写

    在WEB编程技术中,CSS(层叠样式表)、DTD(文档类型定义)、XSD(XML架构定义)和XML(可扩展标记语言)是至关重要的组成部分。这些技术共同为创建高效、结构化的网页提供了坚实的基础。 首先,CSS是用于描述HTML...

    xml转xsd,trang.jar最新版

    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详解 在XML(可扩展标记语言)中,DTD(Document Type Definition,文档类型定义)是一种用于定义XML文档结构的语言。它定义了XML文档中允许的元素、属性和实体等规则,确保XML文档格式正确且符合...

    Eclipse XML自动提示DTD文件下载

    标题中的“Eclipse XML自动提示DTD文件下载”指的是在使用Eclipse IDE进行XML开发时,如何获取并配置DTD(Document Type Definition)文件以实现代码自动提示功能。这通常涉及到Eclipse的XML编辑器和XML Schema/DTD...

    通讯录源码XML+CSS+DTD+XSD

    标题中的“通讯录源码XML+CSS+DTD+XSD”揭示了这是一个使用XML(可扩展标记语言)、CSS(层叠样式表)以及DTD(文档类型定义)和XSD(XML Schema定义)来构建的通讯录应用的源代码。下面我们将深入探讨这些技术及其...

    XML Schema xsd XML Schema xsd

    XML Schema 的优势在于它的可扩展性和强大的数据类型支持,使得它比 DTD 更加适合大型、复杂的 XML 应用场景。由于 XML Schema 本身是基于 XML 的,因此可以利用 XML 工具进行编辑、解析和处理,增加了灵活性和便利...

    XSD(XML Schemas Definition)

    XML Schema 是DTD的替代品。XML Schema语言也就是XML Schema Definition (XSD)。 XML Schema描述了XML文档的结构。可以用一个指定的XML Schema来验证某个XML文档,以检查该XML文档是否符合其要求。文档设计者可以...

    castor解析xml与xsd校验xml

    在`mapping.xml`文件中,添加`&lt;validation&gt;`元素,设置`schema`属性为`true`,并指定XSD文件的位置。 3. **校验XML**:当使用Castor的`unmarshal()`方法解析XML时,如果启用了XSD校验,Castor会自动检查XML是否符合...

    XML Schema(XSD)简明教程高清pdf

    - **XML文档与Schema关联**:XML文档可以通过`xsd:noNamespaceSchemaLocation`或`xsd:schemaLocation`属性引用一个XML Schema文件,以确保该文档遵循Schema定义的规则。 - 示例代码展示如何在一个名为`note.xml`的...

    XML Schema简明教程-W3C.rar

    在此教程中,你将学习如何在应用程序中读取和创建 XML Schema 语言,XML Schema 为何比 DTD 更加强大,以及如何在您的应用程序中使用 XML Schema。 什么是 XML Schema? XML Schema 的作用是定义 XML 文档的合法构建...

    解码XML和DTD

    随着技术的发展,XML Schema(XML Schema Definition,XSD)作为一种更强大的XML结构定义工具,逐渐成为替代DTD的趋势。XML Schema提供了更复杂的数据类型和约束,以及命名空间的支持,但它也更复杂,学习曲线较陡峭...

Global site tag (gtag.js) - Google Analytics