空要素の配列と等価の機能の生成

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サービスの結果からコピーします。