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. 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.

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 :

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

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

Ensuite, nous insérons le schéma XML cible, puis nous cliquons avec le bouton droit sur l'élément

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

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 :

La fonction "group-starting-with" située en haut crée un nouvel élément
Le résultat de la correspondance ci-dessus est le suivant :

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.