變換語言 (TML) 中的示例數據
該範例演示了 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</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 的輸出是:
<FresMart>
<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>