`
kim_miao
  • 浏览: 188621 次
  • 性别: 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 标准格式

    xml dtd xsd 的编写 标准格式可以供学习参考用

    XML转XSD\DTD工具

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

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

    在Eclipse中导入dtd和xsd文件,使XML自动提示 DTD 类型约束文件 1. Window-&gt;Preferences-&gt;XML-&gt;XML Catalog-&gt;User Specified Entries窗口中,选择Add 按纽 2.在Add XML Catalog Entry 对话框中选择或输入以下...

    XML大作业 图书馆xml dtd xsl xsd有效性检测 算平均值

    XML大作业 图书馆xml dtd xsl xsd 有效性检测 算平均值 DOM解析 等 内含源代码 截图显示

    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 XSD,解压后有14M

    上课的实例,我觉得很不错。是在eclipse里面写的

    XSD(XML Schemas Definition)

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

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

    初级WEB编程技术内容, 包括css.dtd.xsd.xml及实验报告封面的xml编写程序

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

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

    XML Schema简明教程-W3C.rar

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

    xm-DTD&XSD;测试文件

    一个dtd和xsd文档和对应的xml文件,仅供学习参考 一个dtd和xsd文档和对应的xml文件,仅供学习参考

    深入理解C#中的XML,完整扫描版

    《深入理解C#中的XML》主要讲述C#软件开发中的XML的功能,全书共10章,分别介绍了XML基础语法、应用文档对象模型、用XSLT转换XML文档、利用DTD和XSDSchema验证XML文档、XML文档的读取、ADO.NET的相关知识、....

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

    xml做的,超级简单的,通讯录! 下了看看吧~

    Schema教程 xml

    XML Schema 是基于 XML 的 DTD 替代者。 XML Schema 可描述 XML 文档的结构。 XML Schema 语言也可作为 XSD(XML Schema Definition)来引用。

    《XML》实验任务书 XML Schema 答案 解答

    3、在上次的DTD实验中,我们编写了SpyBase1.xml、SpyBase2.xml、以及SpyBase1.dtd和SpyBase2.dtd,这次需要完成SpyBase1.xsd和SpyBase2.xsd,建立模式与数据之间的关联,并进行文档有效性验证。在编写的XSD文档...

    XML - 实验(2) -- Schema

    2、掌握XML Schema与DTD之间的区别,能够完成两者之间的转换;掌握在XML Schema中如何定义元素和属性,如何使用限制、列表和合并派生自己的简单数据类型,如何定义复杂数据类型,全局/局部元素和数据类型之间的区别...

    XML Schema教程

    XML Schema 教程 XML Schema 是基于 XML 的 DTD 替代者。...在此教程中,你将学习如何在应用程序中读取和创建 XML Schema 语言,XML Schema 为何比 DTD 更加强 大,以及如何在您的应用程序中使用 XML Schema。

    通俗易懂的《XML轻松学习手册》

    很好的东西,很快学习XML,以及XSD,DTD基本内容和进阶。

    xml快速入门

    xml基本概念的介绍 dtd、xsd 以及java中用来解析xml的技术 dom, sax, jxtl等等

    XML_Validator_Buddy.rar

    XML ValidatorBuddy通过易于使用的XML验证器支持XSD、DTD和Schematron规则。 在编辑器中直接将XML或JSON转换为HTML,或者对磁盘上的多个文件一次性应用XSL转换。 具有XML相关增强功能的独特Explorer窗口使每个人都...

Global site tag (gtag.js) - Google Analytics