XML中DTD,XSD的区别与应用

简介: XML我们并不陌生,在企业级应用中有很广的用途。具体就不再说,下面介绍一下DTD,XSD的区别并以XSD为例看spring中定义与使用。1.DTD(Documnet Type Definition)DTD即文档类型定义,是一种XML约束模式语言,是XML文件的验证机制,属于XML文件组成的一部分。

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

Java代码   收藏代码
  1. <?xml version="1.0" encoding="UTF-8" standalone="no"?>  
  2.     <xsd:schema xmlns="http://www.springframework.org/schema/beans"  
  3.             xmlns:xsd="http://www.w3.org/2001/XMLSchema"  
  4.             targetNamespace="http://www.springframework.org/schema/beans">  
  5.                   
  6.         <!-- base types -->  
  7.         <xsd:complexType name="identifiedType" abstract="true">         
  8.             <xsd:attribute name="id" type="xsd:ID">  
  9.             </xsd:attribute>  
  10.         </xsd:complexType>  
  11.       
  12.     </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文件的使用

Java代码   收藏代码
  1. <beans xmlns="http://www.springframework.org/schema/beans"  
  2.         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"   
  3.         xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd> 
  4. </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)

目录
相关文章
|
3月前
|
XML JSON 数据格式
xml与JSON的区别
xml与JSON的区别
28 1
|
5月前
|
XML 开发框架 JSON
J2EE基础XML(dtd)
J2EE基础XML(dtd)
42 0
|
11天前
|
XML JSON JavaScript
Java中XML和JSON的比较与应用指南
本文对比了Java中XML和JSON的使用,XML以自我描述性和可扩展性著称,适合结构复杂、需验证的场景,但语法冗长。JSON结构简洁,适用于轻量级数据交换,但不支持命名空间。在Java中,处理XML可使用DOM、SAX解析器或XPath,而JSON可借助GSON、Jackson库。根据需求选择合适格式,注意安全、性能和可读性。
23 0
|
16天前
|
XML JSON JavaScript
使用JSON和XML:数据交换格式在Java Web开发中的应用
【4月更文挑战第3天】本文比较了JSON和XML在Java Web开发中的应用。JSON是一种轻量级、易读的数据交换格式,适合快速解析和节省空间,常用于API和Web服务。XML则提供更强的灵活性和数据描述能力,适合复杂数据结构。Java有Jackson和Gson等库处理JSON,JAXB和DOM/SAX处理XML。选择格式需根据应用场景和需求。
|
1月前
|
数据库 开发者 容器
SAP OData metadata.xml 里 EntityType,EntitySet 和 EntityContainer 三个概念之间的区别和联系
SAP OData metadata.xml 里 EntityType,EntitySet 和 EntityContainer 三个概念之间的区别和联系
24 0
|
4月前
|
XML 存储 数据格式
SGML .HTML 、XML和XHTML的区别?
SGML .HTML 、XML和XHTML的区别?
33 0
|
4月前
|
XML 设计模式 数据格式
XML中的DTD
XML中的DTD
22 0
|
4月前
|
XML 存储 设计模式
XML以及DTD详解
XML以及DTD详解
59 0
|
5月前
|
XML 存储 数据格式
XML之DTD
XML之DTD
50 0
|
5月前
|
XML 存储 NoSQL
XML中DTD的基本使用
XML中DTD的基本使用
62 0