Sie müssen Daten oft von einem Format in ein anderes Format umsetzen. Beispielsweise können in einer Nachricht die Namen der Elementtypen und in einer anderen Nachricht die Nummern der Elemente bekannt sein. Beispiel:
Typname Typcode Confectionary 2000 Newspapers 3000 Hardware 4000
Sehen Sie sich folgende Eingabenachricht an:
<Data> <Items> <Item> <Cat>1000</Cat> <Description>Milk Chocolate Bar</Description> <Type>Confectionary</Type> </Item> <Item> <Cat>1001</Cat> <Description>Daily Newspaper</Description> <Type>NewsPapers</Type> </Item> <Item> <Cat>1002</Cat> <Description>Kitchen Sink</Description> <Type>Hardware</Type> </Item> </Items> <TranslateTable> <Translate> <Name>Confectionary</Name> <Number>2000</Number> </Translate> <Translate> <Name>NewsPapers</Name> <Number>3000</Number> </Translate> <Translate> <Name>Hardware</Name> <Number>4000</Number> </Translate> </TranslateTable> </Data>
Diese Nachricht enthält zwei Abschnitte: der erste Abschnitt besteht aus einer Liste mit Elementen, wobei jedes Element über eine Katalognummer und einen Typ verfügt; der zweite Abschnitt ist eine Umsetztabelle für beschreibende Typnamen und numerische Typcodes. Wenn Sie einen Rechenknoten in die folgende Umsetzung einfügen:
SET OutputRoot.XML.Result.Items.Item[] = (SELECT M.Cat, M.Description, T.Number As Type FROM InputRoot.XML.Data.Items.Item[] As M, InputRoot.XML.Data.TranslateTable.Translate[] As T WHERE M.Type = T.Name );
wird folgende Ausgabenachricht generiert:
<Result> <Items> <Item> <Cat>1000</Cat> <Description>Milk Chocolate Bar</Description> <Type>2000</Type> </Item> <Item> <Cat>1001</Cat> <Description>Daily Newspaper</Description> <Type>3000</Type> </Item> <Item> <Cat>1002</Cat> <Description>Kitchen Sink</Description> <Type>4000</Type> </Item> </Items> </Result>
Im Ergebnis wurde jeder Typname in den entsprechenden Code konvertiert. In diesem Beispiel befanden sich die Daten und die Umsetztabelle in derselben Nachrichtenbaumstruktur, dies ist jedoch keine Voraussetzung. Die Umsetztabelle könnte beispielsweise auch in einer Datenbank codiert sein, oder sie könnte von einem vorherigen Rechenknoten in der lokalen Umgebung konfiguriert worden sein.