揭示 XProc

Xproc 是一种描述处理管道的标记语言,由一些在 XML 文档上进行操作的离散步骤组成。如果规范的重要性与从事此项工作的个人素质有关,那么 Xproc 的确意义重大。W3C XML 处理模型 WG 聚集了大量务实的 XML 工作者和著名人物,还有过去对 XML 相关成果做出贡献的头发花白的老手:Erik Bruchez、Andrew Fang、Paul Grosso、Rui Lopes、Murray Maloney、Alex Milowski、Michael Sperberg-McQueen、Jeni Tennison、Henry Thompson、Richard Tobin、Alessandro Vernet、Norman Walsh(主席)和 Mohamed Zergaoui 等等。

常用缩写词
  • DTD:文档类型定义 (Document Type Definition)
  • HTTP:超文本传输协议 (Hypertext Transfer Protocol)
  • W3C:万维网联盟 (World Wide Web Consortium)
  • XML:可扩展标记语言 (Extensible Markup Language)
  • XSL:可扩展样式表语言 (Extensible Stylesheet Language)
  • XSLT:可扩展样式表语言转换 (Extensible Stylesheet Language Transformations)

Xproc 并不是 W3C 对建立一个 XML 处理管道标准所做的第一次尝试。在 2002 年,作为 XML Processing Model Workshop 的一部分,Sun Microsystems、Alis Technologies、Arbortext、Cisco Systems、Fujitsu、Markup Technology 和 Oracle 就曾提交了一个 “XML Pipeline Definition Language Submission”,并于 2002 年 2 月 28 日作为 “XML Pipeline Definition Language Version 1.0” 出版。

2004 年,W3C Note 曾尝试建立 XML 处理模型的需求:“XML Processing Model Requirements”,该需求由 W3C Working Group Note 于 2004 年 4 月 5 日完成。2005 年 3 月 11 日,Orbeon, Inc. 提交了另一个 W3C 成员报告 “XML Pipeline Language (XPL) Version 1.0”(草案),该报告于 4 月 11 日出版。

我还没见过针对 Xproc 需求的专门研究,因此,在这里我大胆提出自己的一些片面观点:

  • Xproc 的说明性格式以及管道思想的简单性,将意味着非技术人员能够参与处理工作流的编写和维护。
  • 在许多配置中,Xproc 都能够进行流线化,而其他控制 XML 处理的方法却无法实现这一点(例如 XSLT)。
  • Xproc 步骤专注于执行具体操作,随着时间的推移,这种方法将比您或我编写的一次性代码具有更好的优化性能。
  • Xproc 的标准步骤库和扩展机制使 Xproc 成为了一种全能的解决方案。
  • 结构化数据(例如 Xproc 标记)通常比结构化代码更易重用。
  • Xproc 的灵感之一来自 UNIX® 管道,几乎所有人都认为这是一个不错的功能!
用例

Xproc 的目标是提供一种可互操作的标准方法来处理 XML 文档。这些需求被正式列在一组用例中(参见 参考资料),下面列出了其中的部分内容:

  • 对 XML 文档执行一系列操作。
  • 解析 XML,针对一种模式对其进行验证,然后执行 XSLT 转换。
  • 合并多个 XML 文档(文档聚合)。
  • 与 Web 服务交互。
  • 使用元数据检索。

毫无疑问,Xproc 将会受到使用和生成 XML 文档的人群的喜爱。也可以想象经常处理业务工作流和 XML 文档的人群也会从中受益,他们可以使用 Xproc 管道对工作流进行建模,然后在 XML 文档中运行。

XProc 词汇表

Xproc 由一个小词汇表组成,该词汇表可以分为三个类别:核心元素,辅助元素和一个标准的步骤库。核心元素提供现代计算机语言构造,例如条件和循环处理以及尝试/捕获错误机制:

  • <p:for-each>循环处理语句
  • <p:choose>选择逻辑语句(类似于 XSLT <xsl:choose>
  • <p:group>将一系列步骤分组到指定的子管道中
  • <p:try>提供一种尝试/捕获机制来处理动态错误
  • <p:viewport>对包含在单个 XML 文档中的子树应用子管道进程


本文转自IBM Developerworks中国

      请点击此处查看全文


 

你可能感兴趣的:(xml,文档,processing,语言,XSLT,stylesheet)