基本上,我希望能够从具有无限数量元素的复杂类型的 BPEL ODE 引擎生成响应。这个想法非常基本,我得到一个对象列表作为输入,然后我根据某个类别进行一些过滤。然后我需要根据过滤生成响应,可能不止一个元素。但是 BPEL 复制分配只允许一对一的分配。我已经尝试使用数组,但似乎也不能分配给多个元素。下面的片段用于输入和输出。
<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>
如果输入有多个元素,我什至不能做一个简单的分配..