Spesso è necessario convertire i dati da un formato all'altro. Ad esempio, in un messaggio i tipi di elementi sono riconosciuti dai nomi ed in un altro messaggio gli elementi sono riconosciuti dai numeri. Ad esempio:
Type Name Type Code Confectionary 2000 Newspapers 3000 Hardware 4000
Considerare il seguente messaggio di input:
<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>
Questo messaggio è composto da due sezioni: la prima è un elenco di elementi in cui ciascun elemento dispone di un tipo e di un numero di catalogo; la seconda è una tabella di conversione tra i nomi di tipo descrittivo ed i codici di tipo numerico. Se si include un nodo Compute con la seguente trasformazione:
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 );
viene generato il seguente messaggio di output:
<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>
Nel risultato, ciascun nome del tipo è stato convertito nel codice corrispondente. In questo esempio, i dati e la tabella di conversione erano contenuti nella stessa struttura ad albero del messaggio, sebbene questo non sia un requisito. Ad esempio, la tabella di conversione potrebbe essere contenuta in un database oppure potrebbe essere stata impostata in LocalEnvironment da un nodo Compute precedente.