面向mule的问题中的datamapper将多个映射到单个,因为输入的子元素被禁用

时间:2014-02-27 11:02:41

标签: xml mule datamapper transformer

骡的DataMapper: 我使用这个输入xml文件作为input.xml我正在创建一个模式,并且作为输出我在mule中给出输出xml,这也是我创建xsd。

输入xml:

<abcd xmlns:ns0="http://a.b.com/d">
<temporaryaddress>

<address id="1">
<name>x</name>
<country>india</country>
<zipcode>890765</xipcode>
</address>


<address id="2">
<name>y</name>
<country>india</country>
<zipcode>890766</xipcode>
</address>
</temporaryaddress>
</abcd>

和当前输出xml类似

<abcd xmlns:ns1="http://e.f.com/g">
<temporaryaddress>
<address>
<name>y</name>
<country>india</country>
<zipcode>890766</xipcode>
</address>
</temporaryaddress>
</abcd>

当我尝试在mule中进行映射时,它显示临时地址下的元素在输入中被禁用我无法映射那些。

所需的输出xml:

<abcd>
<temporaryaddress>
<address>
<name>x</name>
<country>india</country>
<zipcode>890765</xipcode>
</address>
</temporaryaddress>

<temporaryaddress>
<address>
<name>y</name>
<country>india</country>
<zipcode>890766</xipcode>
</address>
</temporaryaddress>
</abcd>

我需要将多个映射到单个,并以root元素的形式获得不同的输出。

清脆:我在临时地址中有两个地址元素。在输出中我需要两个临时地址元素,其中第一个地址被复制到第一个临时地址元素,第二个地址被输入到输出的第二个临时地址。 任何链接/建议都表示赞赏。

1 个答案:

答案 0 :(得分:0)

从所需的输出xml创建DataMapper输出模式,否则它只需要一个temporaryaddress元素,并且无法映射多对一。另一种选择是手动编辑输出xsd以允许多个临时地址元素。