O editor de mapeamento XML é uma ferramenta de mapeamento de
dados visual projetada para transformar qualquer combinação de documentos
de esquema XML, DTD ou XML e produzir um documento de transformação
implementável. É possível mapear documentos baseados em XML graficamente
conectando elementos de um documento de origem a elementos de um documento
de destino. É possível estender as funções de transformação incorporadas, utilizando as expressões XPath customizadas e os modelos XSLT.
A ferramenta de mapeamento automatiza a geração de códigos XSL e produz um documento de transformação
com base nas informações de mapeamento fornecidas.
| Exemplos de transformação de mapeamento |
Descrição |
| Mapa da Ordem de Compra para Ordem de Remessa |
Este exemplo ilustra um cenário de negócios
no qual duas unidades de negócios precisam trocar informações
diretamente.
Neste cenário, um documento de ordem de compra do departamento de
vendas é mapeado para um documento de ordem de remessa do departamento
de logística.
O mapeamento consiste nas seguintes transformações chave:- Mover
- Concatenação
- Mapa sequencial
- Subcadeia
- Grupo
- Customizada
|
| Mover |
Este exemplo demonstra como o valor de um
elemento no documento de origem é movido para um elemento no
documento de destino. |
| Concatenação |
Este exemplo demonstra como os valores de um
conjunto de itens no documento de origem são concatenados a um valor
único de um item no documento de destino. |
| Mapa Local |
Este exemplo demonstra como criar um mapa dentro de um
mapa para permitir a transformação de elementos complexos dentro de seu próprio
contexto. |
| Subcadeia |
Este exemplo demonstra como dividir o valor de um
elemento no documento de origem e copiar o resultado em um elemento no
documento de destino. |
| Grupo |
Este exemplo demonstra como agrupar elementos
no documento de origem e armazenar o resultado no documento de destino. |
| Customizada |
Este exemplo demonstra como estender as funções
de transformação integrada da ferramenta de mapeamento utilizando
expressões XPath. |
Mapa da Ordem de Compra para
Ordem de Remessa
Neste exemplo, um documento de ordem de compra
do departamento de vendas deve ser processado pelo departamento de logística
para gerar um documento de ordem de remessa.
- Para ativar o assistente de Mapeamento XML, selecione:
. Clique em Avançar.
- Na Janela do Arquivo de Mapeamento de Dados Novos, clique na pasta
XMLMappingExamples.
No campo Nome do Arquivo, digite
MyOrderMapping.map e clique em Avançar.
- Ao lado da área da janela de entradas Raiz, clique em
Incluir.
- Na lista de tipos de Arquivos, selecione Esquema XML e
clique em Navegar. Expanda
, selecione
PurchaseOrder.xsd e clique em OK.
- Na área de janela Elementos e Tipos Globais, clique em
PurchaseOrder como elemento-raiz de origem e clique em
OK.
- Ao lado da área da janela de saídas Raiz, clique em
Incluir.
- Na lista de tipos de Arquivos, selecione Esquema XML e
clique em Navegar. Expanda
, selecione
ShippingOrder.xsd e clique em OK.
- Na área de janela Elementos Globais e Tipos, clique em
ShippingOrder como elemento-raiz de destino e clique em
OK.
- Clique em Avançar.
- Ao lado das entradas de amostras de Dados para a área de janela de teste, clique
em Incluir.
Clique em PurchaseOrder.xml e clique em
OK.
Nota: Utilize
um arquivo de entrada XML de amostra para testar as transformações de mapeamento.
- Clique em Concluir.
Mover
Neste exemplo, o valor do elemento
OrderID no documento PurchaseOrder é movido para o valor do atributo
PurchaseOrderReference no documento ShippingOrder.
- Se não estiver aberto, clique com o botão direito do mouse em MyOrderMapping.map
e clique em Abrir.
O editor de mapeamento é aberto.
- No editor de mapeamento, clique no elemento OrderID do
PurchaseOrder e arraste até o atributo PurchaseOrderReference
em ShippingOrder.

Concatenação
Neste exemplo, os primeiros,
os do meio e os últimos elementos de nome do documento PurchaseOrder são
concatenados em um único valor para o elemento CustomerName no documento
ShippingOrder.
- Em PurchaseOrder, expanda o elemento Cliente.
- Em PurchaseOrder, clique no elemento FirstName e arraste
até o elemento CustomerName em ShippingOrder.
- Inclua o elemento LastName:
- Em PurchaseOrder, clique no elemento LastName e arraste
até a caixa de tipo de transformação Mover entre
PurchaseOrder e ShippingOrder. A janela Auxiliar de Seleção da Conexão é aberta.
- Na janela Auxiliar de Seleção de Conexão, clique em Conexão
Primária.
- Inclua o elemento MiddleInitial:
- Em PurchaseOrder, clique no elemento MiddleInitial e
arraste até a caixa de tipo de transformação Concat entre
PurchaseOrder e ShippingOrder. A janela Auxiliar de Seleção da Conexão é aberta.
- Na janela Auxiliar de Seleção de Conexão, clique em Conexão
Primária. A janela é fechada e o tipo de transformação é alterado para
Concat.

- Clique com o botão direito do mouse na caixa Concat e
clique em .
- Na visualização Propriedades, clique na guia Ordenar.
Na área de janela Entradas, clique na visualização Propriedades. Clique em
sequência MiddleInitial: e clique na seta para cima no ícone
Reordenar para alterar a ordem das sequências concatenadas.
Dica: É possível customizar
opções de concatenação para ordenação, delimitadores, prefixo e
sufixo.

Mapa Local
Neste exemplo, os documentos de
origem e de destino contêm o elemento complexo ShippingAddress.
- Em PurchaseOrder, expanda o elemento ShippingInfo.
- Em PurchaseOrder, clique no elemento ShippingAddress e
arraste até o elemento ShippingAddress em
ShippingOrder.

- Edite o mapa Local clicando no link na janela de informações que é aberta ou
clicando no ícone de edição que está no canto superior direito da caixa de tipo de
transformação Mapa Local.
O editor é aberto para o mapa local.
- Você deve mapear transformações para cada subelemento ShippingAddress:
- Mapeie os elementos StreetNumber, StreetAddress e Apartment em PurchaseOrder
para o elemento StreetAddress em ShippingOrder:
- Clique no elemento StreetNumber e arraste-o
para o elemento StreetAddress.
- Clique no elemento StreetName e arraste até a caixa de
tipo de transformação Mover. A janela Auxiliar de Seleção da
Conexão é aberta.
- Na janela Auxiliar de Seleção de Conexão, clique em Conexão
Primária. A janela é fechada e o tipo de transformação é alterado para
Concat.
- Clique no elemento Apartment e arraste até a caixa de
tipo de transformação Concat. A janela Auxiliar de Seleção da
Conexão é aberta.
- Na janela Auxiliar de Seleção de Conexão, clique em Conexão
Primária.
- Clique no elemento PostalCode em PurchaseOrder e arraste
até o elemento PostalCode em ShippingOrder
- Clique no elemento Município em PurchaseOrder e arraste
até o elemento Município em
ShippingOrder.

- Para retornar ao mapa principal, clique no ícone de seta no canto superior
direito da visualização do mapa local.
Subcadeia
Neste exemplo,
o elemento OrderDate é armazenado como um único tipo de data no documento
de ordem de compra, mas no documento de ordem de remessa, o mesmo elemento
OrderDate é separado nos subelementos de tipo de número inteiro ano, mês e
dia. Ao definir os parâmetros de transformação da subsequência adequada, é possível
extrair os valores ano, mês e dia do elemento de ordem de compra OrderDate e
armazenar os valores nos elementos correspondentes na ordem de compra.
- Em ShippingOrder, expanda o elemento OrderDate.
- Em PurchaseOrder, clique no elemento OrderDate e arraste
até o elemento Ano em ShippingOrder.
- Clique na seta suspensa na caixa de tipo de transformação. Expanda
Funções de Sequências e clique em
Subsequência.
- Clique com o botão direito do mouse na caixa de tipo de transformação
Subsequência e clique em .
- Na visualização Propriedades, clique na guia Geral.
- No campo Delimitador, digite -.
- No campo Índice de Subcadeia, digite 0.
- No editor de mapeamento, clique no elemento OrderDate e
arraste até o elemento Mês.
- Clique na seta suspensa na caixa de tipo de transformação. Expanda
Funções de Sequências e clique em
Subsequência.
- Na visualização Propriedades, clique na guia Geral.
- No campo Delimitador, digite -.
- No campo Índice de Subcadeia, digite 1.
- No editor de mapeamento, clique no elemento OrderDate e
arraste até o elemento Dia.
- Clique na seta suspensa na caixa de tipo de transformação. Expanda
Funções de Sequências e clique em
Subsequência.
- Na visualização Propriedades, clique na guia Geral.
- No campo Delimitador, digite -.
- No campo Índice de Subcadeia, digite 2.

Dica: É possível
aplicar as transformações de subcadeia ou as transformações de
concatenação aos elementos e atributos de qualquer tipo, e não
apenas aos tipos string.
Grupo
Neste
exemplo, cada produto na ordem de compra tem uma prioridade de
remessa associada, enquanto que na ordem de remessa, os produtos
são agrupados por elementos da seção de prioridade de remessa. Usando a
transformação de grupo, é possível agrupar produtos na ordem de compra pela
prioridade de remessa e mapear o grupo resultante a um elemento na ordem de remessa. Nas propriedades do grupo, é
possível configurar os parâmetros de agrupamento, além da ordem e
dos critérios de classificação.
- Em ShippingOrder, expanda o elemento OrderSections.
- Em PurchaseOrder, clique no elemento Produto e arraste
até o elemento OrderSection em ShippingOrder
- Clique na seta suspensa na caixa de tipo de transformação e clique em
Grupo na seção Transformações Principais.

- Clique com o botão direito do mouse na caixa de tipo de transformação
Grupo, e clique em .
- Na visualização Propriedades, clique em ShippingPriority :
Sequência na área de janela Produto.
- Clique em Incluir.
- No editor de mapeamento, edite os detalhes de Grupo clicando no ícone de edição
que está no canto superior direito da caixa de tipo de transformação
Grupo. O editor é aberto para o elemento OrderSection.
- Na visualização de detalhes OrderSection, expanda o elemento
OrderItem.
- Na visualização de detalhes de Grupo, execute as seguintes operações de
movimentação:
- Clique no elemento ID no Produto e arraste até o elemento
Identificador na OrderSection.
- Clique no elemento Preço no Produto e arraste até o
elemento Preço na OrderSection.
- Clique no elemento Descrição no Produto e arraste até o
elemento Nome na OrderSection.
- Clique no elemento Quantidade no Produto e arraste até o
elemento Quantidade na OrderSection.
- Clique no elemento ShippingPriority no Produto e arraste
até o elemento Prioridade na OrderSection.

- Para retornar à visualização de mapa principal, clique na seta na parte superior
direita do mapeamento de grupo.
Customizada
Neste exemplo,
o documento de ordem de remessa contém um atributo NumberOfProducts
para especificar o número total de produtos na ordem. Para gerar o
valor para o atributo NumberOfProducts, a soma total dos produtos da
ordem de compra deve ser calculada com o uso do elemento quantity. É
possível utilizar uma expressão XPath para executar a operação de
adição por meio do uso da transformação customizada. O resultado é
armazenado no atributo de destino, NumberOfProducts.
- Clique no elemento PurchaseOrder e arraste-o
para o elemento NumberOfProducts em ShippingOrder.
O tipo de transformação está configurado para o XPath Customizado.

- Clique com o botão direito do mouse na caixa de tipo de transformação
XPath Customizado e clique em .
- Na visualização Propriedades, clique na guia Geral e
clique em Editar.
- Na janela do XPath Expression Builder, digite
soma(Produto/Quantidade) e clique em
OK.
