BPEL 1.1のbpelx:remove
次に、BPELバージョン1.1をサポートするBPELプロジェクトのbpelx:remove
の例を示します。
<bpel:assign> <bpelx:remove> <bpelx:target variable="ncname" part="ncname"? query="xpath_str" /> </bpelx:remove> </bpel:assign>
XPath式で指定したノード削除がサポートされます。XPath式では複数のノードを指定できますが、いずれもL-Valueである必要があります。この親からは、テキスト・ノード、属性ノードおよび要素ノードを削除できます。
XPath式では、1つ以上のノードを返すことができます。XPath式で0(ゼロ)個のノードが返される場合は、bpel:selectionFailure
フォルトが生成されます。
bpelx:target
の構文は、copy
操作のto-spec
に類似しており、そのサブセットです。
次の例にaddrVar
を示します。値は次のとおりです。
<a:usAddress> <a:addressLine>500 Oracle Parkway</a:addressLine> <a:addressLine>Mailstop 1op6</a:addressLine> <a:state>CA</a:state> <a:zipcode>94065</a:zipcode> </a:usAddress>
BPELプロセス・サービス・コンポーネント・ファイルで次に示す構文を実行すると、2番目のアドレス行であるMailstop
が削除されます。
<bpel:assign>
<bpelx:remove>
<target variable="addrVar"
query="/a:usAddress/a:addressLine[2]" />
</bpelx:remove>
</bpel:assign>
BPELプロセス・サービス・コンポーネント・ファイルで次に示す構文を実行すると、両方のアドレス行が削除されます。
<bpel:assign>
<bpelx:remove>
<target variable="addrVar"
query="/a:usAddress/a:addressLine" />
</bpelx:remove>
</bpel:assign>