空要素の配列と等価の機能の生成
genEmptyElem関数では、空要素の配列と等価の機能がXML構造に生成されます。この関数は、次の引数をとります。
genEmptyElem('ElemQName',int?, 'TypeQName'?, boolean?)
次の点に注意してください。
-
最初の引数では、空要素の
QNameを指定します。 -
2番目の引数はオプションで整数型であり、空要素の数を指定します。指定されていない場合、デフォルトのサイズは
1です。 -
3番目の引数はオプションで、生成される空の名前の
xsi:typeとなるQNameを指定します。このxsi:typeパターンは、SOAPENC:Arrayに相当します。指定されていないか、空の文字列である場合、xsi:type属性は生成されません。 -
4番目のオプションのブール型引数は、要素がXSD-nillableの場合に、生成される空の要素が
XSI - nilかどうかを指定します。デフォルト値はfalseです。指定されていないか、falseである場合、xsi:nilは生成されません。
次の例に、poの下で10個の空の<lineItem>要素を使用して発注書(PO)を初期化するappend文を示します。
<bpelx:assign>
<bpelx:append>
<bpelx:from expression="ora:genEmptyElem('p:lineItem',10)" />
<bpelx:to variable="poVar" query="/p:po" />
</bpelx:append>
</bpelx:assign>
前述の例のgenEmptyElem関数は、次の例のように埋込みXQuery式で置き換えることができます。
ora:genEmptyElem('p:lineItem',10)
== for $i in (1 to 10) return <p:lineItem />
この関数により生成される空要素は、通常は無効なXMLデータです。空要素の作成後に、さらにデータの初期化を実行します。前述と同じ例を使用して、次の操作を実行できます。
-
空の
lineItem要素に属性要素と子要素を追加します。 -
copy操作を実行して空要素を置き換えます。たとえば、flowNアクティビティの下で、この等価配列内の個別エントリにWebサービスの結果からコピーします。