Примеры языка преобразования
В этом разделе приводятся примеры команды «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 можно включить сопоставление поля суммы в примере данных с его выводом перед полем номера заказа:
<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>