---
title: "O MapForce oferece acesso dinâmico aos nomes dos nós"
date: "2016-10-13"
categories: 
  - "data-integration"
  - "tools"
tags: 
  - "data-integration"
  - "data-mapping"
  - "dynamic-access-to-node-names"
  - "mapforce"
description: O acesso dinâmico aos nomes dos nós no MapForce simplifica o mapeamento de dados, permitindo a criação flexível e imediata de elementos e atributos XML, o que aumenta a capacidade de adaptação a dados com estruturas variáveis.
---
Status: #blog

Tags:  #data-integration #data-mapping #dynamic-access-to-node-names #mapforce

Categories: [data-integration](/blog/pt/category/data-integration.md) | [xml](/blog/pt/category/xml.md)
# O MapForce oferece acesso dinâmico aos nomes dos nós

Existem situações, especialmente quando se trabalha com dados pouco estruturados, em que pode ser necessário mapear e transformar componentes estruturais de um fluxo de dados, juntamente com o conteúdo. O MapForce pode aceder dinamicamente aos nomes dos nós de elementos XML, atributos ou colunas de ficheiros de texto, como o conteúdo de ficheiros CSV, para direcionar esses componentes.

O acesso dinâmico aos nomes dos nós permite a criação imediata de elementos e atributos cujo nome não precisa ser conhecido previamente ou identificado especificamente no.. [mapeamento de dados](https://www.altova.com/pt/mapforce.html). Esta funcionalidade permite criar mapeamentos muito mais genéricos, flexíveis e reutilizáveis, que exigem menos intervenção manual caso os modelos de dados evoluam.

![Notícias sobre o acesso dinâmico a nomes de nós no MapForce 2017](/blog/images/shutterstock_59314036.jpg)

<!--more-->

Aqui está um exemplo de um estilo muito comum de ficheiro CSV, onde os campos de dados não são identificados por nomes de coluna, mas sim por etiquetas numa célula adjacente, dentro da mesma linha:

![Dados de entrada típicos, no formato CSV](/blog/images/csv-input-data.png)

Os registos neste exemplo não são sequer estruturados de forma consistente, uma vez que um registo inclui um sufixo após o apelido e outro registo inclui a inicial do nome do meio.

Uma necessidade comum na conversão de ficheiros como este é mapear as células da coluna A como nomes de elementos XML e as células da coluna B como os valores correspondentes a cada elemento. Atualmente, isso pode ser feito facilmente com o mapeamento dinâmico de nomes de nós. Vamos analisar como isso é feito.

### Acesso dinâmico aos nomes dos elementos XML

Começaremos por criar um esquema XML muito simples para o alvo de mapeamento, que utiliza o elemento <xs:any> para definir um elemento <Employee> complexo, que pode conter qualquer elemento filho. Aqui está a representação em XMLSpy:

![Visão do esquema XMLSpy do alvo de mapeamento de dados](/blog/images/target-schema-view.png)

Começamos o mapeamento importando o ficheiro CSV e utilizando uma função de agrupamento que irá criar um novo elemento <Employee> cada vez que o campo "FirstName" aparecer na coluna A do ficheiro de entrada.

![Mapeamento de dados MaForce que demonstra uma função de grupo](/blog/images/data-mapping-group-function.png)

Em seguida, inserimos o esquema XML correspondente e clicamos com o botão direito no elemento <Employee>

![Menu de contexto do MapForce para selecionar o acesso dinâmico ](/blog/images/mapforce-context-menu.png)

Selecionaremos a opção "Mostrar elementos filhos com nome dinâmico", que abrirá uma janela de diálogo onde poderemos escolher o tipo de dados para os elementos filhos. Isto irá exibir o nome do nó e o conteúdo dos elementos filhos de <Employee>, como mostrado aqui:

![Mapeamento de dados com o MapForce, com acesso dinâmico aos nomes dos nós](/blog/images/dynamic-node-access.png)

Agora, é um processo simples mapear os dados do Campo 1 (coluna A do ficheiro CSV) para os nomes dos elementos filhos e do Campo 2 (coluna B) para o conteúdo dos elementos. Aqui está o mapeamento final dos dados:

![Mapeamento de dados com o MapForce, com acesso dinâmico aos nomes dos nós](/blog/images/dynamic-access-data-mapping.png)

A função "group-starting-with", localizada no topo, cria um novo elemento <Employee> sempre que a palavra "FirstName" é encontrada no ficheiro de entrada. Em seguida, para cada linha, os valores da coluna A geram os nomes dos elementos filhos, e os valores da coluna B tornam-se os valores correspondentes a cada um desses elementos filhos.

O resultado da correspondência acima é o seguinte:

![Saída de mapeamento dinâmico de dados do MapForce](/blog/images/dynamic-access-mapping-output-1.png)

A vantagem de um mapeamento de dados que utiliza acesso dinâmico aos nomes dos nós é que não é necessário realizar uma análise completa dos dados de entrada para identificar e mapear todos os possíveis nomes de elementos.

Considere um cenário de produção comum em que recebe vários ficheiros de entrada de uma ou mais fontes externas e automatiza a execução de mapeamentos com o MapForce Server e o FlowForce Server. Se um ficheiro de entrada contiver, de repente, um elemento filho inesperado – por exemplo, "OfficeLocation" ou "MailStop" – os dados não serão perdidos.

### Acesso dinâmico aos nomes dos nós dos atributos XML

Também é possível mapear dinamicamente os nomes dos atributos XML, com a mesma capacidade de criar elementos e atributos de destino "em tempo real", sem necessariamente identificá-los todos antecipadamente.
