BPEL 1.1のbpelx:insertAfter
次に、BPELバージョン1.1をサポートするBPELプロジェクトのbpelx:insertAfter
の例を示します。
<bpel:assign> <bpelx:insertAfter> <bpelx:from ... /> <bpelx:to ... /> </bpelx:insertAfter> </bpel:assign>
この操作は「bpelx:insertBeforeの使用方法」で説明した機能に類似していますが、次の違いがあります。
-
to-spec
問合せで複数のL-Valueノードが返される場合は、最後のノードが参照ノードとして使用されます。 -
参照ノードの前にノードが挿入されるかわりに、参照ノードの後にソース・ノードが挿入されます。
この操作は、conditional-switch
+
(append
またはinsertBefore
)のマクロとみなすこともできます。
次の例に、<insertAfter>
の実行前の構文を示します。addrVar
の値は次のとおりです。
<a:usAddress> <a:addressLine>500 Oracle Parkway</a:addressLine> <a:state>CA</a:state> <a:zipcode>94065</a:zipcode> </a:usAddress>
次の例に、実行後の構文を示します。
<bpel:assign>
<bpelx:insertAfter>
<bpelx:from>
<a:addressLine>Mailstop 1op6</a:addressLine>
</bpelx:from>
<bpelx:to "addrVar" query="/a:usAddress/a:addressLine[1]" />
</bpelx:insertAfter>
</bpel:assign>
次の例に、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>
bpelx:insertAfter
内のfrom-spec
問合せでは、0(ゼロ)個以上のノードが取得されます。ノード・リストは、to-spec
問合せで指定したターゲット・ノードに子ノードとして追加されます。