在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可应用的范围更广一些。
分享到:
相关推荐
两种方法各有优劣,前者对模式不稳定的XML数据有很好的针对性,后者则可利用传统数据库的成熟技术。 3. XML数据查询特征的描述方法: 本文提出了一种新的XML数据查询特征的描述方法。这种方法着重于XML数据查询的...
XML 文档定义有两种形式:DTD 和 Schema。DTD 是一种传统的文档类型定义语言,而 Schema 是一种基于 XML 的文档类型定义语言。Schema 的本质区别在于它是 XML 可以被 XML 解析器解析的。 4. XML 的定义和应用 XML ...
PLCOpen XML格式的开发是由PLCopen组织推动的,其目的是提供一种通用的、开放的和结构化的方式来描述和交换PLC程序。 PLCopen是一个国际性组织,旨在推动自动化技术的发展,并提高编程效率。它支持并推广IEC 61131-...
它可以以两种形式存在:存储为纯文本(CLOB)或解析为内部结构(XMLIndex)。XMLType支持XML Schema验证,并提供了XML到SQL的双向转换。 4. **XML索引**:Oracle提供多种类型的XML索引,包括快速路径索引、结构索引...
XML DTD(Document Type Definition)和XML Schema是两种主要的XML语义约束机制,用于定义XML文档的结构和数据类型。 XML DTD是最早的XML文档类型定义方式,它使用一套预定义的元素和属性来描述XML文档的结构。DTD...
总结而言,XML是一种灵活且强大的数据交换格式,通过DOM和SAX这两种不同的处理方式,开发者可以根据实际需求选择最合适的方法来解析和操作XML文档。无论是在数据传输、配置文件管理还是Web服务中,XML都发挥着重要...
然而,XML DB Repository提供了一种同时利用两种方法的能力。通过这个仓库,XML文档可以被直接存入Oracle9i Database,同时保持对XML数据的原生访问和关系型查询的支持。存储XML数据时,你可以使用FTP、HTTP或WebDAV...
- **App.config和Web.config文件**:这两种文件分别用于控制台/Windows应用程序和ASP.NET Web应用程序。它们都使用XML语法来定义设置和属性。 #### 5. 高级主题 - **XPath查询**:XPath是一种在XML文档中查找信息的...
XML Schema,全称为XML Schema Definition (XSD),是一种用于描述XML文档结构和数据类型的规范,它是W3C(World Wide Web Consortium)所制定的标准。XML Schema的出现是为了替代早期的DTD(Document Type ...
3. **XSLT和XQuery编辑**:支持编写和调试XSLT转换和XQuery查询,这两种技术用于处理和检索XML数据。 4. **图形化WSDL编辑**:通过图形界面创建和修改Web服务描述语言(WSDL),便于理解和开发Web服务。 5. **SOAP...
XML Schema 和 XML DTD 是两种用于定义XML文档结构和数据约束的语言。XML DTD(文档类型定义)是较早出现的规范,而XML Schema则在2001年成为W3C的正式推荐标准,旨在提供更强大和灵活的XML文档验证功能。 首先,...
3. 在XML文档中,可以使用CSS样式单来控制显示样式,可以通过引用式和嵌入式两种方式来应用样式单,所以A选项正确。B选项中的内部和外部是CSS样式单的分类,C和D不是XML文档中使用CSS的正确方式。 4. XSL...
本次实验主要分为两个部分:一是基于已有的同学通讯录XML文档创建Schema模式文档,并进行有效性验证;二是针对给定的订单XML文档,创建对应的Schema模式文件,并定义具体的约束条件。 #### 实验具体步骤 ##### ...
1. **XML(Extensible Markup Language)**:XML是一种自描述、结构化的数据格式,广泛用于数据交换、配置文件、文档存储等场景。它具有严格的语法规则,确保数据的可读性和机器可解析性。 2. **C#编程语言**:C#是...
1. XML:XML是一种结构化数据存储格式,它定义了数据的结构和规则,使数据具有自我描述性,易于解析和交换。 2. XSLT:XSLT是一种基于XPath的样式表语言,用于将XML文档转换为其他格式。它通过匹配XML文档中的元素和...
DTD(文档类型定义)是定义XML文档结构模式的一种方式,它规定了XML文档中可出现的元素、这些元素的属性以及元素之间的关系。DTD文件可以用来验证XML文档的有效性,即文档是否符合预定义的规则。 XSD(XML Schema...