Number of rows in *MT_A* is equal to number of items to *MT_B*. And we need to combine them into one target message of *MT_C* type:
| | MT_C/row[+i+]=MT_B/item[+i+] MT_C/row[+i+]/CALYEAR=MT_A/row[+i+]/CALYEAR MT_C/row[+i+]/Data1=MT_B/item[+i+]/Data1 MT_C/row[+i+]/Data2=MT_B/item[+i+]/Data2 *1.Message mapping solution* First, let's create Message Mapping to see additional elements *Messages* and *Message1* in the target message. These elements are nessesary in multi-mapping. XSLT mapping must create them too.
| /ns0:Messages/ns0:Message1/ns1:MT_C/row=/ns0:Messages/ns0:Message2/ns1:MT_B/item /ns0:Messages/ns0:Message1/ns1:MT_C/row/CALYEAR=/ns0:Messages/ns0:Message1/ns1:MT_A/row/CALYEAR /ns0:Messages/ns0:Message1/ns1:MT_C/row/Data1=/ns0:Messages/ns0:Message2/ns1:MT_B/item/Data1 /ns0:Messages/ns0:Message1/ns1:MT_C/row/Data2=/ns0:Messages/ns0:Message2/ns1:MT_B/item/Data2 | Operation mapping :
Successiful message mapping test:
Now we have got the xml structure of result with *Messages* and *Message1* elements:
*2.XSLT solution *This XSLT code generates results equal to Message Mapping above:
|
|