Exemples de langage de transformation

L'exemple ci-dessous illustre la commande map, dans lequel un champ dans les données d'entrée est mappé à un champ dans les données de sortie.

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

Toute partie de données contenue dans la source qui n'est pas mappée à une cible n'est pas sortie. Chaque champ doit être mappé de façon spécifique.

Sur la base des données d'entrée suivantes :

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

Le TML ci-dessus générerait les données de sortie suivantes :

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

Au moment où TML traite chaque commande, les cibles sont regroupées pour créer une structure de document générale.

L'ordre dans lequel les informations de paramètres sont données n'a pas d'importance, à savoir que la cible peut être définie avant la source ou vice versa. De plus, chaque champ sera inscrit dans les données de sortie selon l'ordre dans lequel il est défini.

Nous pouvons donc modifier le TML ci-dessus pour inclure un mappage pour le champ de montant de l'exemple de données, en le faisant sortir avant le champ du numéro de commande :

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

Les données de sortie de ce TML seraient les suivantes :

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

TML permet également d'avoir des champs source multiples pour un champ cible. Dans ce cas, chaque source est inscrite dans la cible selon l'ordre défini dans le TML. Les valeurs sont ajoutées. L'exemple ci-dessous illustre ce cas de figure.

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

Les données de sortie de ce TML seraient les suivantes :

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