---
title: "MapForce offre un accès dynamique aux noms des nœuds"
date: "2016-10-13"
categories: 
  - "data-integration"
  - "tools"
tags: 
  - "data-integration"
  - "data-mapping"
  - "dynamic-access-to-node-names"
  - "mapforce"
description: L'accès dynamique aux noms de nœuds offert par MapForce simplifie la correspondance des données en permettant la création flexible et instantanée d'éléments et d'attributs XML, ce qui améliore l'adaptabilité aux données faiblement structurées.
---
Status: #blog

Tags:  #data-integration #data-mapping #dynamic-access-to-node-names #mapforce

Categories: [data-integration](/blog/fr/category/data-integration.md) | [xml](/blog/fr/category/xml.md)
# MapForce offre un accès dynamique aux noms des nœuds

Dans certaines situations, notamment lorsqu'il s'agit de données peu structurées, il peut être nécessaire de faire correspondre et de transformer les éléments structurels d'un flux de données, ainsi que son contenu. MapForce peut accéder dynamiquement aux noms des nœuds des éléments XML, aux attributs ou aux colonnes de fichiers texte, tels que le contenu des fichiers CSV, afin de cibler les composants correspondants.

L'accès dynamique aux noms des nœuds permet de créer instantanément des éléments et des attributs cibles dont les noms n'ont pas besoin d'être connus à l'avance ou spécifiés dans le [mappage des données](https://www.altova.com/fr/mapforce.html). Cette fonctionnalité vous permet de créer des mappages beaucoup plus génériques, flexibles et réutilisables, qui nécessitent moins d'interventions manuelles lorsque les modèles de données évoluent.

![Nouvelles concernant l'accès dynamique aux noms de nœuds dans MapForce 2017](/blog/images/shutterstock_59314036.jpg)

<!--more-->

Voici un exemple d'un style de fichier CSV très courant, dans lequel les champs de données ne sont pas identifiés par des noms de colonnes, mais par des étiquettes situées dans une cellule adjacente, au sein de la même ligne :

![Données d'entrée typiques au format CSV](/blog/images/csv-input-data.png)

Dans cet exemple, les données ne sont même pas structurées de manière cohérente, car une entrée comprend une terminaison après le nom de famille, tandis qu'une autre inclut une initiale pour le deuxième prénom.

Une exigence courante en matière de mappage de données pour des fichiers de ce type est de faire correspondre les cellules de la colonne A aux noms des éléments XML, et les cellules de la colonne B aux valeurs de chaque élément correspondant. Ceci est désormais facilement réalisable grâce au mappage dynamique des noms de nœuds. Examinons comment cela fonctionne.

### Accès dynamique aux noms des nœuds des éléments XML

Nous allons commencer par créer un schéma XML très simple pour la cible de la transformation, qui utilise l'élément <xs:any> pour définir un élément <Employee> complexe, qui peut contenir n'importe quel élément enfant. Voici sa représentation dans la vue schéma de XMLSpy :

![Vue XMLSpy du schéma de la cible de mappage des données](/blog/images/target-schema-view.png)

Nous commençons la création de la structure en important le fichier CSV et en utilisant une fonction de regroupement qui créera un nouvel élément <Employee> chaque fois que le champ "FirstName" apparaît dans la colonne A du fichier d'entrée.

![La cartographie des données MaForce illustrant une fonction de groupe](/blog/images/data-mapping-group-function.png)

Ensuite, nous insérons le schéma XML cible, puis nous cliquons avec le bouton droit sur l'élément <Employee> :

![Menu contextuel de MapForce pour sélectionner l'accès dynamique ](/blog/images/mapforce-context-menu.png)

Nous allons choisir l'option "Afficher les éléments enfants avec un nom dynamique", ce qui ouvre une boîte de dialogue dans laquelle nous sélectionnerons le type de données "texte" pour les éléments enfants. Cela permet d'afficher le nom et le contenu des éléments enfants de <Employee>, comme illustré ci-dessous :

![Cible de mappage de données MapForce avec accès dynamique aux noms des nœuds](/blog/images/dynamic-node-access.png)

Maintenant, il est simple de faire correspondre les données de la colonne A (Field1) aux noms des éléments enfants et les données de la colonne B (Field2) au contenu de ces éléments. Voici la correspondance finale des données :

![Cartographie des données avec MapForce, permettant un accès dynamique aux noms des nœuds](/blog/images/dynamic-access-data-mapping.png)

La fonction "group-starting-with" située en haut crée un nouvel élément <Employee> à chaque fois que le terme "FirstName" est rencontré dans le fichier d'entrée. Ensuite, pour chaque ligne, les entrées de la colonne A génèrent les noms des éléments enfants, et les entrées de la colonne B deviennent les valeurs de chaque élément enfant.

Le résultat de la correspondance ci-dessus est le suivant :

![Sortie de mappage dynamique des données générée par MapForce](/blog/images/dynamic-access-mapping-output-1.png)

L'avantage d'une méthode de mappage de données qui utilise un accès dynamique aux noms des nœuds est que vous n'avez pas besoin de réaliser une analyse exhaustive des données d'entrée pour identifier et associer chaque nom d'élément possible.

Considérons un scénario de production courant où vous recevez plusieurs fichiers d'entrée provenant d'une ou plusieurs sources externes, et où vous automatisez l'exécution des transformations avec MapForce Server et FlowForce Server. Si un fichier d'entrée contient soudainement un élément enfant inattendu, comme par exemple "OfficeLocation" ou "MailStop", les données ne seront pas perdues.

### Accès dynamique aux noms des nœuds des attributs XML

Vous pouvez également associer dynamiquement les noms des attributs XML, avec la même possibilité de créer des éléments et des attributs de destination à la volée, sans nécessairement les identifier tous à l'avance.
