变换语言 (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>