[阅读报告]揭示XProc——使用管道技术支持XML应用环境

资料名称  揭示XProc——使用管道技术支持XML应用环境
作    者      James R. Fuller
作者单位  FlameDigital Limited
出    处      developerWorks中国
阅读时间  2009.6.21~2009.6.26

1、主要讲述内容
       该文主要介绍了XML处理模型(XProc)。首先简要介绍了XProc的来源和历史,并对XProc的设计思想提出了自己的观点。接着作者介绍了XProc词汇表,可分为三个类别:核心元素、辅助元素和一个标准的步骤库。作者还介绍了XProc的一些示例管道,包括简单的隐式管道和复杂管道。最后作者就XProc目前的开发状态进行了说明。

2、涉及到的问题
      (1) 什么是XProc?
      (2) 为什么需要XProc?
      (3) XProc包括哪些内容?
      (4) 怎样使用XProc?
      (5) XProc的发展状况?

3、作者的观点
       XProc 是一种描述处理管道的标记语言,由一些在XML文档上进行操作的离散步骤组成。Xproc的说明性格式以及管道思想的简单性,将意味着非技术人员能够参与处理工作流的编写和维护。在许多配置中,XProc都能够进行流线化,而其他控制XML处理的方法却无法实现这一点(例如XSLT)。XProc步骤专注于执行具体操作,随着时间的推移,这种方法将比一次性代码具有更好的优化性能。XProc的标准步骤和扩展机制使XProc成为了一种全能的解决方案。XProc的设计灵感来自UNIX管理,从现有管道创建新的步骤非常容易,可以使用扩展步骤创建第三方库来扩充XProc处理器本身的功能。
为什么需要XProc? 作者的回答是XProc与平台无关,只有能够运行兼容XProc的处理器的地方就可以运行XProc。随着XML渗透到各个计算领域,如果能够找到像XProc这样的独立且容易理解的方法来处理日益膨胀的XML应用领域,那么这种方法必定是一种革命性的技术。XProc标准库,连同可以编写自己的第三方步骤库的扩展功能,为现有和未来的XML处理器带来了强大的动力。
XProc标准对XML文档处理操作进行了归纳,可以分为以下几类:
       1>  XSLT、XQuery、XInclude处理
       2>  模式验证
       3>  XML更新操作 XProc相关资料
       4>  XML存储和检索
       5>  对XML进行包装、解包、转义(escape)和转回(unescape)
       6>  HTTP请求
       7>  执行本机命令
   作者给了如下形式的XProc文档实例:
   <p:pipeline xmlns:p="http://www.w3.org/ns/xproc" name="xslt-example">
      <p:xslt>
        <p:input port="stylesheet">
            <p:document href="mystylesheet.xslt"/>
        </p:input>
      </p:xslt>
</p:pipeline>
XProc标准目前还在草案阶段,随着标准的演化,XProc在语法和语义都有了很大的变化。当前的工作草案也进行了重大改进,它重新编写了规范,诠释了<p:option>元素的一些概念,同时支持了XPath和XSLT的第1版和第2版。

4、自我评价
        通过阅读这篇文章,了解了XProc的发展过程与用途,理清XML文档的常用操作,并在软件的设计思路方面有一些启发。


5、提出的待改进和提高之处
       作者提出了XProc在发展过程有待解决的几个问题:
       1> 命名空间:XProc处理XML文档,这意味着需要执行大量操作的,处理器必须跟踪文档中的命名空间,那么必须让XProc应用一个修复操作,以确保将移除的命名空间声明复制到最终XML 文档的子元素中,注意不要覆盖其他有效的命名空间声明。
       2> XSLT和XPath版本:XProc工作的时间选择说明它在XPath和XSLT版本之间的应用周期中找到了自己的定位,XProc需要解决支持多种XPath和XSLT版本的棘手问题。
       3> 选项、变量和参数:处理过程涉及的选项,变量和参数太多,作者认为单个实体就足够完成任务。
       4> 流:XProc控制的XML技术优势不会完全成为标准流,这可能算是早期优化,尤其是在MapReduce和并行化技术占主导地位的环境中。(这一点我没看懂 ??)


6、阅读者的观点
        项目目前已经应用了XML、ML Schema,XSLT、Path/XQuery、Query Update等标准,在这些应用中,也归纳了出XML文档的一系列操作,包括载入文档、删除文档、更新文档、查询文档、转换文档格式、验证文档格式等操作,这些操作以C语言接口的形式的表现出来。而XProc标准更准确的将XML文档的操作归纳出来,并用XML管道描述语言描述这些操作。这样的做法是很有意义的,XML文档操作被标准化后,更加有利于XML文档的开发与应用,也能简化系统之间的交互与集成过程,因为有了XProc之后,不同的系统能使用相同语言来描述XML文档处理过程。如果说XML文档的应用能促进程序的数据与代码的分离,那么XProc的出现,使应用程序框架与业务逻辑的分离有了可能。未来可能出现这样一种开发模式,开发人员用C/C++、Java等程序设计语言实现一个能执行XProc描述文档的框架,再将业务逻辑用XML管道语言描述出来,这样面对新的业务需求,只需添加XProc描述文档,而无需修改框架,甚至无需重新编译链接程序。从这个层面来说,XProc能简化开发过程,将开发人员从硬码中解放出来,使业务的定义和描述成为系统开发的主要内容。

 

 7、XProc相关资料:
        XProc: An XML Pipeline Language http://www.w3.org/TR/2009/CR-xproc-20090528/  
        揭示 XProc   http://www.ibm.com/developerworks/cn/xml/x-xproc/
        XML 处理模型 http://www.ibm.com/developerworks/cn/xml/standards/x-xprocspec.html
        XProc实现及测试用例  http://xproc.org/implementations/
      Norman.Walsh的个人网站 http://norman.walsh.name/

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值