Exemple : Remplacer des intitulés de poste
Cet exemple vous montre comment remplacer les valeurs d'éléments spécifiques dans un fichier XML à l'aide de composants de table de correspondance (c'est-à-dire en utilisant une table de correspondance prédéfinie).
Le fichier XML nécessaire à cet exemple est disponible à l'emplacement suivant : <Documents>\Altova\MapForce2027\MapForceExamples\DocExamples\MFCompany.xml. Il contient, entre autres données, des informations sur les employés de l'entreprise et leurs intitulés de poste, par exemple :
<Person> <Person> |
Supposons que vous deviez remplacer certains intitulés de poste dans le fichier XML ci-dessus. Plus précisément, l'intitulé « Software Engineer » doit être remplacé par « Code Magician ». De même, l'intitulé « Support Engineer » doit être remplacé par « Support Magician ». Tous les autres intitulés de poste doivent rester inchangés.
Pour y parvenir, ajoutez le fichier XML à la zone de mappage, en cliquant sur le bouton Insérer fichier/schéma XML
de la barre d’outils ou en exécutant la commande de menu Insérer | Fichier/schéma XML. Ensuite, copiez-collez le composant XML sur le mappage et créez les connexions comme indiqué ci-dessous. Notez que vous devrez peut-être d’abord désactiver l’option
Basculer auto-connexion des enfants de la barre d’outils afin d’éviter que des connexions inutiles ne soient créées automatiquement.

Le mappage créé jusqu’à présent se contente de copier les éléments Person dans le fichier XML cible, sans apporter aucune modification aux éléments First, Last et Title.
Pour remplacer les intitulés de poste requis, ajoutons un composant de correspondance de valeurs. Cliquez avec le bouton droit sur la connexion entre les deux éléments Title, puis sélectionnez Insérer Value-Map dans le menu contextuel. Configurez les propriétés du mappage de valeurs comme indiqué ci-dessous :

Selon la configuration ci-dessus, chaque occurrence de « Software Engineer » sera remplacée par « Code Magician », et chaque occurrence de « Support Engineer » sera remplacée par « Support Magician ». Notez que la condition Otherwise n’a pas encore été spécifiée. C’est pourquoi le mappage de valeurs renvoie un nœud vide chaque fois que l’intitulé de poste est différent de « Software Engineer » et « Support Engineer ». Par conséquent, si vous cliquez sur le volet Sortie et que vous prévisualisez le mappage, certains éléments Person n’auront pas de Title, par exemple :
<Person> <Person> <Title>Code Magician</Title> |
Comme indiqué précédemment, les nœuds vides entraînent des entrées manquantes dans le résultat généré ; par conséquent, dans le fragment XML ci-dessus, seul le titre de Michelle Butler a été remplacé, car son titre figurait dans la table de correspondance. La configuration créée jusqu’à présent ne répond toujours pas à l’exigence initiale. La configuration correcte est la suivante :

Avec la configuration ci-dessus, voici ce qui se passe lors de l’exécution du mappage :
•Chaque occurrence de « Software Engineer » sera remplacée par « Code Magician »
•Chaque occurrence de « Support Engineer » sera remplacée par « Support Magician »
•Si le titre d’origine n’est pas trouvé dans la table de correspondance, le mappage de valeurs le renverra tel quel.
À titre d’illustration uniquement, nous pouvons également remplacer tous les intitulés de poste autres que « Ingénieur logiciel » et « Ingénieur support » par une valeur personnalisée, par exemple « N/A ». Pour ce faire, définissez les propriétés de la table de correspondance comme indiqué ci-dessous :

Lorsque vous prévisualisez le mappage cette fois-ci, chaque intitulé de poste apparaît dans le résultat, mais ceux qui n’ont pas été mis en correspondance affichent la valeur « N/A », par exemple :
<Person> |
Ceci conclut l’exemple de table de correspondance. En appliquant la logique ci-dessus, vous pouvez désormais obtenir le résultat souhaité dans d’autres mappages.