變換語言範例

下列範例演示了 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>