Exemplo de dados em Linguagem de transformação (TML)

O exemplo abaixo mostra o comando "map", em que um campo único na entrada está sendo mapeado para um campo único na saída:

<transformation>
  <map>
    <target>FredsMart/PurchaseOrder/OrderRef</target>
    <source>SSC/Payload/SalesOrder/OrderNum</source>
  </map>
</transformation>

Qualquer parte dos dados contidos nesta origem que não estejam mapeados para um destino não estarão na saída. Cada campo deve ser mapeado especificamente. Uma vez fornecidos os seguintes dados de entrada:

<SSC>
  <Payload>
    <SalesOrder>
      <OrderNum>123456</OrderNum>
      <Amount>12.34</Amount>
    </SalesOrder>
  </Payload>
</SSC>

o TML gera esta saída:

<FredsMart>
  <PurchaseOrder>123456</PurchaseOrder>
</FredsMart>

Quando o TML processa cada comando, os destinos são "encaixados" para criar uma estrutura de documento geral. O ordem na qual as informações dos parâmetros é fornecida não é importante, ou seja, o destino pode ser definido antes da origem ou vice-versa. Além disso, cada campo será gravado na saída na ordem em que for definido. Desse modo, é possível modificar o TML para incluir um mapeamento para o campo de valor nos dados de exemplo, produzindo-o antes do campo de número de pedido.

<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>

A saída desse TML é:

<FresMart>
  <PurchaseOrder>
    <TotalAmount>12.34</TotalAmount>
    <OrderRef>123456</OrderRef>
  </PurchaseOrder>
</FredsMart>

O TML também aceita vários campos de origem para um único campo de destino. Nesse caso, cada origem será gravada no destino na ordem em que for fornecida no TML. Os valores são acrescentados conforme ilustrado neste exemplo:

<transformation>
  <map>
    <target>FredsMart/PurchaseOrder/OrderRef</target>
    <source>SSC/Payload/SalesOrder/OrderNum</source>
    <source>SSC/Payload/SalesOrder/Amount</source>
  </map>
<transformation>

A saída do TML é:

<FredsMart>
  <PurchaseOrder>
    <OrderRef>123456</OrderRef>
  </PurchaseOrder>
</FredsMart>