文档模式定义语言(Document Schema Definition Languages, DSDL)

使用具有不同模式语言的框架

文档模式定义语言(Document Schema Definition Languages, DSDL)是一种进行 XML 验证和核心处理的框架,由独立专家或专家小组制定的各种规范组成,每一种规范针对一个良好定义并具有良好边界的问题域。通过本文研究 DSDL 组成,包括 RELAX NG 和 Schematron,这两者已经找到了各自的发展动力,而其他部分仍处于开发中。

投稿者: ISO

2007 年 8 月 28 日

文档模式定义语言(Document Schema Definition Languages, DSDL)是一种进行 XML 验证和核心处理的框架,由独立专家或专家小组制定的各种规范组成,每一种规范针对一个良好定义并具有良好边界的问题域。通过本文研究 DSDL 组成,包括 RELAX NG 和 Schematron,这两者已经找到了各自的发展动力,而其他部分仍处于开发中。

Document Schema Definition Languages (DSDL) [ISO 草案标准和 ISO/IEC 标准 JTC 1 SC 34 WG 1] 是一组有关 XML 验证和基本文档组成的规范。DSDL 所体现的理念是使用多种方法进行 XML 验证和核心处理,并且多种方法之间能够互相补充。这并不是指创建一个具有所有这种功能的庞大系统,相反,DSDL 创建了一种集合了各种标准的框架,您可以单独使用这些标准,也可以结合使用于进行 XML 验证。这种方法避免了每个规范自身的复杂性,同时又提供了处理复杂问题的能力。下面列出了组成 DSDL 的 10 部分内容:

  • 第 1 部分:互操作性框架(Interoperability framework):该部分是 DSDL 的规范结构图,并对 DSDL 进行了整体概述。
  • 第 2 部分:基于语法的验证(Grammar-based validation):该部分是 ISO RELAX NG
  • 第 3 部分:基于规则的验证(Rule-based validation):该部分是 ISO Schematron
  • 第 4 部分:验证方法选择(Selection of validation candidates):该部分是基于名称空间的处理语言(Namespace-based Validation Dispatching Language, NVDL),一种分解由多个词汇表组成文档的方式,以实现更轻松的验证。该部分一直具有很多投入,但是 James Clark 的 名称空间路由语言(Namespace Routing Language, NRL)是其中最主要的投入。
  • 第 5 部分:数据类型(Datatypes):该部分是创建新原语数据类型的框架。Jeni Tennison 的 数据类型库语言(Datatype Library Language)是其中一项投入。它定义了一种 XML 语言,可用于定义新类型的词汇表示的正则表达式。从某种程度上说,这是专门为 W3C XML Schema (WXS) 中的分面机制(facet mechanism)提供,但是 DSDL 第 5 部分中最重要的区别是添加了将新数据类型映射到值空间的机制,而 WXS 没有此项内容。事实上,这允许您指定新数据类型的语法和语义,这非常关键。
  • 第 6 部分:基于路径的完整性约束(Path-based integrity constraints):该部分的目的是定义与 WXS 的 xs:uniquexs:keyxs:keyref 类似的特性。
  • 第 7 部分:字符表验证(Character repertoire validation):该部分的目标是创建一种能够允许模式设计者约束字符集(可以在不同 XML 词汇结构中使用)的语言。目前有很多方法可以表示 RELAX NG 中出现的此类约束,但是尝试对诸如混合内容这类情况应用约束时就会失败。第 7 部分则可以做到这一点,例如,它允许表示这样的约束:“元素和属性名以及 PI 目标应该为基本的 Latin-1” 或 “数字不能出现在元素和属性名中”。
  • 第 8 部分:声明性文档操作(Declarative document manipulation):这是定义可由多种 XML 语法表示的模式的方法,其基础是一种强大的模式技术,名为 Architectural Forms。
  • 第 9 部分:可识别数据类型和名称空间的 DTD(Datatype- and namespace-aware DTDs):该部分使 DTD 在当前 XML 开发中更为有用,它在最新的模式语言中添加了更加通用的特性。
  • 第 10 部分:验证管理(Validation management):该部分允许您将来自 DSDL 的不同部分组合起来。为预处理和验证文档提供了管道框架(pipeline framework)。

参考资料

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=10
Zone=XML
ArticleID=254289
SummaryTitle=文档模式定义语言(Document Schema Definition Languages, DSDL)
publish-date=08282007