`
- 浏览:
786647 次
- 性别:
- 来自:
上海
-
在XML使用过程中,往往需要对XML的有效性进行验证。
只要不违反XML格式良好的规则,就可以自由选取标记的名字,用自己习惯的方式描述事物。这就意味着用XML描述相同的事物时,不同的编写者可能写出含有不同标记名、采用不同结构的XML文档,这对于数据的统一处理极为不利。所以需要一种机制指定应该如何构造描述同一事物的文档。DTD和XML Schema就是使用最为广泛的用来进行XML文档有效性验证的两种机制[16]17]。
DTD(Document Type Definition,文档类型定义)是一套关于标记符的语法规则,详细描述一组XML文档的结构,最初是为SGML开发的,它可以是XML文档的一部分,但是它通常是一份单独的文档或者一系列文档。DTD说明在文档中可以使用哪些标记,哪些标记可以出现在其它标记中,哪些标记具有属性,使用的标记应按什么顺序出现等。XML本身并没有一个通用的DTD,想使用XML进行数据交换的行业或组织可以自行定义它们自己的DTD,DTD规定了一个语法分析器用于解释一个“有效的”XML文档所需要知识的所有规则的细节。一个DTD可以是内部的,包含在一个“格式良好”的XML文档中,也可以是外部的,作为一个外部文档被引用。DTD标记声明可以是元素类型声明,属性声明,实体声明,或符号声明。作为XML1.0规范的重要组成部分,DTD对于XML文档的结构起到很好的描述作用,是近几年来XML技术领域所使用的最广泛的一种用于XML文档有效性验证的机制。
随着XML技术的广泛使用,DTD也逐渐显出其自身的一些不足与缺点,比如采用了非XML的语法规则,不支持多种多样的数据类型,扩展性较差,不支持名称空间等等。于是,W3C于2001年5月正式推荐XML Schema作为XML的标准模式。XML Schema本身就是一个符合XML语法结构的XML文档,可以用通用的XML解析器进行解析。它如同DTD一样,负责定义和描述XML文档的结构和内容模式。XML Schema可以定义XML文档中存在哪些元素和元素之间的关系,并且可以定义元素和属性的数据类型。
与DTD相比,XML Schema具有以下一些优点:
①一致性。Schema本身就是XML文档,使得对XML的定义不必再利用一种特定的形式化语言,而是直接借助XML自身的特性,使得XML达到从内到外的完美统一。
②扩展性。Schema对DTD进行了扩充,从而使其具有较强的可扩展性,比如引入了数据类型、命名空间等。
③互换性。用户可以根据需要设计适合自己应用的Schema,并且可以同其他人交换彼此的Schema。通过映射机制,可以将不同的Schema进行转换,实现更高层次的数据交换。
④规范性。同DTD一样,Schema也提供了一套完整的机制以约束XML文档中标记的使用,相比之下,Schema更具规范化,它定义了XML文档的整体结构,元素间的关系等。
总的来说,不能简单的评价DTD与XML Schema哪一个绝对好。它们各有各自的应用场合。相对于DTD,XML Schema可应用的范围更广一些。
分享到:
Global site tag (gtag.js) - Google Analytics
相关推荐
DTD(Document Type Definition)和XML Schema是两种定义XML文档结构的方法。DTD相对简单,主要用于定义元素的类型、顺序和属性;而XML Schema更为复杂,提供了更强大的类型系统,可以定义复杂的元素和属性类型,...
这两种解析方式各有特点,适用于不同的场景。 1. SAX解析: SAX解析是一种事件驱动的解析方法,它逐行读取XML文档,当遇到特定的元素、属性或其他结构时,会触发相应的事件回调。这种解析方式不将整个XML文档加载到...
在 EXPLICIT mode 中,SQL Server会将数据转换为XML格式,并返回一个EXPLICIT XML输出,该模式下可以自定义XML输出的格式,并且可以指定XML输出的根元素。 通过使用SQL Server的XML特性,我们可以实现数据的处理和...
在这个场景中,我们将探讨如何使用Android与Web Service进行通信,同时处理XML和JSON这两种常见的数据交换格式。 首先,让我们理解Android与Web Service的基本交互过程: 1. **创建HTTP请求**:Android应用通过...
两种方法各有优劣,前者对模式不稳定的XML数据有很好的针对性,后者则可利用传统数据库的成熟技术。 3. XML数据查询特征的描述方法: 本文提出了一种新的XML数据查询特征的描述方法。这种方法着重于XML数据查询的...
总结来说,C语言中的XML解析涉及到DOM和SAX两种模式,DOM适合小到中型XML文件,提供方便的数据访问和修改;SAX则适合大型XML文件,以节省内存。Xerces-C++库为这两种解析方式提供了强大的支持,通过注册事件处理器或...
XML验证通常有两种方式:DTD(Document Type Definition)验证和XSD(XML Schema Definition)验证。本话题主要关注的是XSD验证。 XSD,即XML Schema,是W3C推荐的一种用于定义XML文档结构和数据类型的规范。相比于...
在Android中,我们通常使用两种方式解析XML:DOM(Document Object Model)和SAX(Simple API for XML)。DOM一次性加载整个XML文档到内存,适合小型文件;SAX则采用事件驱动模型,逐行读取,适用于处理大型文件。这...
XML 文档定义有两种形式:DTD 和 Schema。DTD 是一种传统的文档类型定义语言,而 Schema 是一种基于 XML 的文档类型定义语言。Schema 的本质区别在于它是 XML 可以被 XML 解析器解析的。 4. XML 的定义和应用 XML ...
PLCOpen XML 格式是一种基于IEC 61131-3标准的可编程逻辑控制器(PLC)编程语言的XML表示方式。IEC 61131-3是针对工业自动化控制编程标准的国际标准,它定义了编程语言、软件结构和通信协议。PLCOpen XML格式的开发...
XML文档的解析分为DOM(Document Object Model)和SAX(Simple API for XML)两种方式。DOM将整个XML文件加载到内存中形成一棵树形结构,便于遍历和操作;而SAX是事件驱动的,逐行读取,适合处理大型XML文件,以节省...
1. **解析功能**:Pugixml提供两种解析模式,一种是“解析并加载到内存”,另一种是“只解析不加载”。前者会将整个XML文档加载到内存中的数据结构,便于快速访问;后者则只解析XML文档,但不保留数据,适合对内存有...
总结而言,XML是一种灵活且强大的数据交换格式,通过DOM和SAX这两种不同的处理方式,开发者可以根据实际需求选择最合适的方法来解析和操作XML文档。无论是在数据传输、配置文件管理还是Web服务中,XML都发挥着重要...
它可以以两种形式存在:存储为纯文本(CLOB)或解析为内部结构(XMLIndex)。XMLType支持XML Schema验证,并提供了XML到SQL的双向转换。 4. **XML索引**:Oracle提供多种类型的XML索引,包括快速路径索引、结构索引...
- 上述示例中,`purchase_order`表包含两个列:`po_number`用于存储订单编号,`po_file`列用于存储订单相关的XML文档。 #### 4. Oracle XML DB库 - **Oracle XML DB库** 是Oracle Database 10g的一个组成部分,用于...