變換語言範例
下列範例演示了 map(映射)命令,其中輸入內的單個字段將映射至輸出內的單個字段。
<transformation>
<map>
<target>FredsMart/PurchaseOrder/OrderRef</target>
<source>SSC/Payload/SalesOrder/OrderNum</source>
</map>
</transformation>
包含在源中的任何數據,如果沒有映射至目標上,則不會輸出這些數據。每個字段必須進行特定的映射。
如果輸入數據如下:
<SSC> <Payload> <SalesOrder> <OrderNum>123456</OrderNum> <Amount>12.34</Amount> </SalesOrder> </Payload> </SSC>
上述 TML 會生成下列輸出:
<FredsMart> <PurchaseOrder >> 123456</OrderRef> </PurchaseOrder> </FredsMart>
在 TML 處理各條命令時,目標會“接合”在一起以創建一個完整的文檔結構。
所給參數信息的次序並不重要,換言之,目標可在源之前進行設置,反之亦然。另外,各字段會按照所設置的次序寫入輸出。
因此,我們可以對上述 TML 進行修改,使範例數據包含金額 (amount) 字段的映射,並在訂單號 (OrderNum) 字段前輸出:
<transformation> <map> <source>SSC/Payload/SalesOrder/Amount/</source> <target>FredsMart/PurchaseOrder/TotalAmount</target> </map> <map> <target>FredsMart/PurchaseOrder/OrderRef</target> <source>SSC/Payload/SalesOrder/OrderNum</source> </map> </transformation>
該 TML 的輸出將會是:
<FredsMart> <PurchaseOrder> <TotalAmount>12.34</TotalAmount> <OrderRef>123456</OrderRef> </PurchaseOrder> </FredsMart>
同時,TML 還支持單個目標字段具有多個源字段。在這種情況下,各個源將按照 TML 中所提供的次序寫入目標內。值可以附加上去。下面的範例向您展示了這個功能。
<transformation> <map> <target>FredsMart/PurchaseOrder/OrderRef</target> <source>SSC/Payload/SalesOrder/OrderNum/</source> <source>SSC/Payload/SalesOrder/Amount</source> </map> <transformation>
該 TML 的輸出將會是:
<FredsMart> <PurchaseOrder> <OrderRef>123456</OrderRef> </PurchaseOrder> </FredsMart>