É possível converter os dados de uma forma para outra.
Um exemplo típico de requisito para converter os dados é se os itens forem conhecidos em uma mensagem pelo nomes e em outra mensagem pelos números. Por exemplo:
Nome do Tipo Código do Tipo Confectionary 2000 Newspapers 3000 Hardware 4000
Considere a seguinte mensagem de entrada:
<Dados> <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>
Essa mensagem possui duas seções: a primeira seção é uma lista de itens na qual cada item possui um número de catálogo e um tipo; a segunda é uma tabela de conversão entre nomes de tipos descritivos e códigos de tipos numéricos. Inclua um nó Compute na seguinte transformação:
SET OutputRoot.XMLNS.Result.Items.Item[] = (SELECT M.Cat, M.Description, T.Number As Type FROM InputRoot.XMLNS.Data.Items.Item[] As M, InputRoot.XMLNS.Data.TranslateTable.Translate[] As T WHERE M.Type = T.Name );
A seguinte mensagem de saída é gerada:
<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>
No resultado, cada nome de tipo foi convertido em seu código correspondente. Nesse exemplo, os dados e a tabela de conversão estavam na mesma árvore de mensagens, embora isso não seja um requisito. Por exemplo, a tabela de conversão poderia ser codificada em um banco de dados ou pode ter sido configurada no LocalEnvironment por um nó Compute anterior.