Exemplos de Editor de Mapeamento XML

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.
  1. Para ativar o assistente de Mapeamento XML, selecione: Arquivo > Novo > Outro > XML > Mapa de Dados. Clique em Avançar.
  2. 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.
  3. Ao lado da área da janela de entradas Raiz, clique em Incluir.
  4. Na lista de tipos de Arquivos, selecione Esquema XML e clique em Navegar. Expanda XMLMappingExamples, selecione PurchaseOrder.xsd e clique em OK.
  5. Na área de janela Elementos e Tipos Globais, clique em PurchaseOrder como elemento-raiz de origem e clique em OK.
  6. Ao lado da área da janela de saídas Raiz, clique em Incluir.
  7. Na lista de tipos de Arquivos, selecione Esquema XML e clique em Navegar. Expanda XMLMappingExamples, selecione ShippingOrder.xsd e clique em OK.
  8. Na área de janela Elementos Globais e Tipos, clique em ShippingOrder como elemento-raiz de destino e clique em OK.
  9. Clique em Avançar.
  10. 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.
  11. 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.
Transformação de Mover

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.
  1. Em PurchaseOrder, expanda o elemento Cliente.
  2. Em PurchaseOrder, clique no elemento FirstName e arraste até o elemento CustomerName em ShippingOrder.
  3. Inclua o elemento LastName:
    1. 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.
    2. Na janela Auxiliar de Seleção de Conexão, clique em Conexão Primária.
  4. Inclua o elemento MiddleInitial:
    1. 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.
    2. 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.
    Transformação de Concatenação
  5. Clique com o botão direito do mouse na caixa Concat e clique em Mostrar Em > Visualização Propriedades.
  6. 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.
    A transformação de Concatenação com a ordem foi alterada

Mapa Local

Neste exemplo, os documentos de origem e de destino contêm o elemento complexo ShippingAddress.

  1. Em PurchaseOrder, expanda o elemento ShippingInfo.
  2. Em PurchaseOrder, clique no elemento ShippingAddress e arraste até o elemento ShippingAddress em ShippingOrder.Transformação de Mapa Local
  3. 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.
  4. Você deve mapear transformações para cada subelemento ShippingAddress:
    1. Mapeie os elementos StreetNumber, StreetAddress e Apartment em PurchaseOrder para o elemento StreetAddress em ShippingOrder:
      1. Clique no elemento StreetNumber e arraste-o para o elemento StreetAddress.
      2. 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.
      3. 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.
      4. 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.
      5. Na janela Auxiliar de Seleção de Conexão, clique em Conexão Primária.
    2. Clique no elemento PostalCode em PurchaseOrder e arraste até o elemento PostalCode em ShippingOrder
    3. Clique no elemento Município em PurchaseOrder e arraste até o elemento Município em ShippingOrder.Detalhes do Mapa Local
  5. 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.

  1. Em ShippingOrder, expanda o elemento OrderDate.
  2. Em PurchaseOrder, clique no elemento OrderDate e arraste até o elemento Ano em ShippingOrder.
    1. Clique na seta suspensa na caixa de tipo de transformação. Expanda Funções de Sequências e clique em Subsequência.
    2. Clique com o botão direito do mouse na caixa de tipo de transformação Subsequência e clique em Mostrar Em > Visualização Propriedades.
    3. Na visualização Propriedades, clique na guia Geral.
    4. No campo Delimitador, digite -.
    5. No campo Índice de Subcadeia, digite 0.
  3. No editor de mapeamento, clique no elemento OrderDate e arraste até o elemento Mês.
    1. Clique na seta suspensa na caixa de tipo de transformação. Expanda Funções de Sequências e clique em Subsequência.
    2. Na visualização Propriedades, clique na guia Geral.
    3. No campo Delimitador, digite -.
    4. No campo Índice de Subcadeia, digite 1.
  4. No editor de mapeamento, clique no elemento OrderDate e arraste até o elemento Dia.
    1. Clique na seta suspensa na caixa de tipo de transformação. Expanda Funções de Sequências e clique em Subsequência.
    2. Na visualização Propriedades, clique na guia Geral.
    3. No campo Delimitador, digite -.
    4. No campo Índice de Subcadeia, digite 2.
Transformação de Subcadeia
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.
  1. Em ShippingOrder, expanda o elemento OrderSections.
  2. Em PurchaseOrder, clique no elemento Produto e arraste até o elemento OrderSection em ShippingOrder
  3. Clique na seta suspensa na caixa de tipo de transformação e clique em Grupo na seção Transformações Principais. Transformação de Grupo
    1. Clique com o botão direito do mouse na caixa de tipo de transformação Grupo, e clique em Mostrar Em > Visualização Propriedades.
    2. Na visualização Propriedades, clique em ShippingPriority : Sequência na área de janela Produto.
    3. Clique em Incluir.
  4. 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.
  5. Na visualização de detalhes OrderSection, expanda o elemento OrderItem.
  6. Na visualização de detalhes de Grupo, execute as seguintes operações de movimentação:
    1. Clique no elemento ID no Produto e arraste até o elemento Identificador na OrderSection.
    2. Clique no elemento Preço no Produto e arraste até o elemento Preço na OrderSection.
    3. Clique no elemento Descrição no Produto e arraste até o elemento Nome na OrderSection.
    4. Clique no elemento Quantidade no Produto e arraste até o elemento Quantidade na OrderSection.
    5. Clique no elemento ShippingPriority no Produto e arraste até o elemento Prioridade na OrderSection.
    Mapeamentos de Detalhes de Grupos
  7. 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.
  1. Clique no elemento PurchaseOrder e arraste-o para o elemento NumberOfProducts em ShippingOrder. O tipo de transformação está configurado para o XPath Customizado. Transformação de XPath Customizado
  2. Clique com o botão direito do mouse na caixa de tipo de transformação XPath Customizado e clique em Mostrar Em > Visualização Propriedades.
  3. Na visualização Propriedades, clique na guia Geral e clique em Editar.
  4. Na janela do XPath Expression Builder, digite soma(Produto/Quantidade) e clique em OK. Propriedade Transformação de XPath Customizado

Feedback