變換語言 (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>