使用Literal XML初始化变量

It is often useful to assign literal XML to a variable in BPEL, for example, to initialize a variable before copying dynamic data into a specific field within the XML data content for the variable. This is also useful for testing purposes when you want to hard code XML data values into the process.

6.4.1 How To Assign a Literal XML Element

Example 6-9 assigns a literalresult element to the payload part of the output variable:

Example 6-9 Literal Element Assignment

<assign>
   <!-- copy from literal xml to the variable -->
   <copy>
      <from>
         <result xmlns="http://samples.otn.com">
            <name/>
            <symbol/>
            <price>12.3</price>
            <quantity>0</quantity>
            <approved/>
            <message/>
         </result>
      </from>
      <to variable="output" part="payload"/>
   </copy>
</assign>
 
近日新增需求,要将以下各式的数据赋给BPEL的names变量:
<names>
  <name>a</name>
  <name>b</name>
  <name>c</name>
</names>
 
参考了SOA的文档,如上,实际实现方式如下
 
1、定义XSD,构造XML所需的格式,如下,Name元素是可重复出现多次的。
 

 
2、在BPEL流程中创建一个Assign Activity,往names变量拖放一个XML Fragment,Fragment里填写如下内容,此处设置有两处是需要注意的,
<result></result>是固定用法,result里面的xmlns的值要与XSD的命名空间保持一致,result里面的内容是替换XML Fragment节点以下的内容,即names以下的内容。

 
完成以上赋值之后,可在bpel中对names做循环遍历等操作,对于for each .. if test等操作比较有用。
 
 
 

你可能感兴趣的:(使用Literal XML初始化变量)