XML管道处理新XProc规范:概览

日期: 2010-05-04 作者:William Brogden翻译:杨晓明 来源:TechTarget中国 英文

在最近关于BPEL的文章中,我建议更简单的XML数据的业务转化类型用管道风格处理可能更好。当我观察XML管道处理的时候,W3C已经刚开始成立一个工作组来调查标准的制定。这个工作组的参与者已经开始着手这些概念的实现,既有开源也有商业应用。当然,W3C的其他XML相关标准,像XSLT、XPath、XQuery和XInclude都在进展中,所以还需要一段时间,但是我们现在(2001年三月9日)提出了一个W3C的建议。

这篇文章旨在快速介绍这些已经被定义的功能。   概览   XProc是XML文档中用XML描述操作顺序声明型的语言。管道中基本的计算单元叫做“步骤”。一个步骤可能像通过运行一个XSLT处……

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

在最近关于BPEL的文章中,我建议更简单的XML数据的业务转化类型用管道风格处理可能更好。当我观察XML管道处理的时候,W3C已经刚开始成立一个工作组来调查标准的制定。这个工作组的参与者已经开始着手这些概念的实现,既有开源也有商业应用。当然,W3C的其他XML相关标准,像XSLT、XPath、XQuery和XInclude都在进展中,所以还需要一段时间,但是我们现在(2001年三月9日)提出了一个W3C的建议。这篇文章旨在快速介绍这些已经被定义的功能。

  概览

  XProc是XML文档中用XML描述操作顺序声明型的语言。管道中基本的计算单元叫做“步骤”。一个步骤可能像通过运行一个XSLT处理来创建一个新文档或创建一个较复杂的,甚至需要定制编程的操作一样简单。

  一个管道的步骤需要零或多个输入并产生零或多个输出。输出和输入之间流动的数据要求是有效的XML文档或XML文档序列的形式,但是步骤可以从任何非管道源中获取数据,并可以以某种形式写到任何非管道输出。XPro对导入非XML数据,以及通过转化或封装来创建有效的XML方面有一些规定。

  XProc的实现大量地使用XSLT和XPath概念来定义从XML文档中选择或收集条目的选择。因为XML世界仍然在标准之间过渡,XProc的实现既允许使用XPath 1.0(1999)或者XPath 2.0(2007)表达式的使用。XPath 2.0是首选,因为在XSLT 2.0和XPath 2.0数据模型之间有更好的兼容性。XProc在某些选择XML文档条目的方法中,使用 “XSLTMatch模式”。这个在XProc之外的一般用法中看起来并不常见,它在这里用来表示定位节点的XSLT 1.0或XSLT 2.0中“Match”模式表达式。根据我的理解,每个XSLTPatten都是XPath表达式,但相反的结论并不成立,所以XProc使用两种表达式来定义步骤。

  输入和输出

  输入可以用“内联”内容作为xpl文档的一部分来定义,正如下面这段XML文档。这个名叫source的端口是p:inline元素的所有内容,注意它有开始和结束元素(姑且叫做“doc”)组成这个有效的XML文档的根元素。

以下是引用片段:
<p:input port="source">
  <p:inline><doc>Congratulations! You've run your first pipeline!
</doc></p:inline>
</p:input>

  更常见的是,步骤的输入是使用了URIs或先前命名的步骤中产生“ports”引用的文档引用或文档顺序。XProc包括一些通过应用编码规则并在根元素中包装结果而从临时数据创建输入XML条目的规定。一个HTTP请求可以用来从一个Web服务中获得数据。

  用户定义变量

  扩展规定是用来为后续步骤的使用而创建变量。一个变量可以像文本字符串一样简单,或像XPath选择的条目集合一样复杂。

相关推荐

  • 保险公司如何能从BPEL中获益

    对于保险业整合不同系统是一件寻常的工作。但保险公司经常会面临监管条例改变和应对不同的顾客需求。为了解决这些系统问题,软件专家正在使用一种强大的工具——BPEL。

  • 2013年业务流程执行语言(BPEL)现状

    在SOA领域中,BPEL拥有属于自己的集成系统和自动化工作流,为协调完全异构系统而提供一致的流程。

  • 如何开发BPEL复合应用

    大多数软件架构师对应用的组件化、SOA和工作流或者服务总线流程非常熟悉,也对组合应用如何将这些基本元素结合在一起非常熟知。

  • 如何在SOA中执行BPEL测试?

    几乎所有面向服务架构(SOA)用户都在使用业务流程执行语言(BPEL)。作为编排粗粒度的业务流程流工具,BPEL实际上是行业的标准,但是还是会引起测试问题。