Примеры языка преобразования

В этом разделе приводятся примеры команды «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>