基本的には、要素の数に制限がない複合型のBPELODEエンジンから応答を生成できるようにしたいと考えています。考え方は非常に基本的です。入力としてオブジェクトのリストを取得し、特定のカテゴリに基づいてフィルタリングを実行します。次に、フィルタリングに基づいて応答を生成する必要があります。これは、複数の要素である可能性があります。ただし、BPELコピーの割り当てでは、1対1の割り当てしか許可されません。私はすでに配列を使用しようとしていますが、複数の要素にも割り当てることができないようです。以下のスニペットは、入力と出力の両方を対象としています。
<complexType name="hospitalType">
<sequence minOccurs="1" maxOccurs="unbounded">
<element name="patients">
<complexType>
<sequence>
<element name="patient" minOccurs="1" maxOccurs="unbounded">
<complexType>
<sequence>
<element type="string" name="name"/>
<element type="date" name="dob"/>
<element type="byte" name="age"/>
<element type="string" name="status"/>
</sequence>
<attribute name="pid" type="ID"/>
</complexType>
</element>
</sequence>
</complexType>
</element>
これまでに試したことは次のとおりです
<bpel:copy>
<bpel:from part="payload" variable="input">
<bpel:query queryLanguage="urn:oasis:names:tc:wsbpel:2.0:sublang:xpath1.0">
<![CDATA[tns:patients/tns:patient[1]]]>
</bpel:query>
</bpel:from>
<bpel:to part="inload" variable="output">
<bpel:query queryLanguage="urn:oasis:names:tc:wsbpel:2.0:sublang:xpath1.0">
<![CDATA[tns:patients/tns:patient]]>
</bpel:query>
</bpel:to>
</bpel:copy>
入力に複数の要素がある場合、単純な割り当てを行うことさえできません。