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 等等。
![]() |
|
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 文档的人群也会从中受益,他们可以使用 Xproc 管道对工作流进行建模,然后在 XML 文档中运行。
Xproc 由一个小词汇表组成,该词汇表可以分为三个类别:核心元素,辅助元素和一个标准的步骤库。核心元素提供现代计算机语言构造,例如条件和循环处理以及尝试/捕获错误机制:
<p:for-each>
:循环处理语句<p:choose>
:选择逻辑语句(类似于 XSLT<xsl:choose>
)<p:group>
:将一系列步骤分组到指定的子管道中<p:try>
:提供一种尝试/捕获机制来处理动态错误<p:viewport>
:对包含在单个 XML 文档中的子树应用子管道进程
本文转自IBM Developerworks中国