gpt4 book ai didi

xpath - 在 BPEL 中返回复杂类型响应

转载 作者:行者123 更新时间:2023-12-01 23:49:51 25 4
gpt4 key购买 nike

基本上,我希望能够从具有无限数量元素的复杂类型的 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>

如果输入有多个元素,我什至无法进行简单的赋值..

最佳答案

这是 WS-BPEL 的限制。实现此目的的符合标准的方法是运行 XSL 转换。请参阅 WS-BPEL specification 的第 65 页。为了使这更容易一些,ODE 提供了几个 XPath 扩展,允许将元素附加或插入到列表中。请参阅here获取列表。此类分配的示例如下所示:

<assign>
<copy>
<from>ode:insert-after($parent, $parent/child::node(), $siblings)</from>
<to variable="parent"/>
</copy>
</assign>

关于xpath - 在 BPEL 中返回复杂类型响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14129798/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com