L'éditeur de mappage XML est un outil de mappage de données visuel
conçu pour transformer toute combinaison de documents DTD, XML ou de schéma XML
et produire un document de transformation déployable. Vous pouvez mapper des documents XML graphiquement en connectant les éléments d'un document source
à ceux d'un document cible. Vous pouvez étendre les fonctions de transformation intégrées en utilisant des
expressions XPath et des modèles XSLT personnalisés.
L'outil de mappage automatise la génération de code XSL et produit un document de transformation
basé sur les informations de mappage que vous fournissez.
| Exemples de transformation de mappage |
Description |
| Mappe bon de commande - bon de livraison |
Cet exemple montre un scénario
dans lequel deux unités commerciales doivent échanger des informations de manière transparente.
Un document bon de commande du service des ventes est mappé à un document bon de livraison du service logistique.
Le mappage est constitué des transformations clés suivantes :- Déplacement
- Concaténation
- Mappe en ligne
- Sous-chaîne
- Groupe
- Personnalisé
|
| Déplacement |
Cet exemple montre comment déplacer la valeur d'un élément du document source
vers un élément du document cible. |
| Concaténation |
Cet exemple montre comment concaténer les valeurs d'un ensemble d'éléments du document source
en une seule valeur d'un élément du document cible. |
| Mappe locale |
Cet exemple montre comment créer une mappe au sein d'une mappe pour
permettre la transformation d'éléments complexes dans leur propre contexte. |
| Sous-chaîne |
Cet exemple montre comment diviser la valeur d'un élément du document source
et copier le résultat dans un élément du document cible. |
| Groupe |
Cet exemple montre comment grouper des éléments du document source
et stocker le résultat dans le document cible. |
| Personnalisé |
Cet exemple montre comment étendre les fonctions de transformation intégrées de l'outil de mappage
en utilisant des expressions XPath. |
Mappe bon de commande - bon de livraison
Dans cet
exemple, un document bon de commande du service des ventes doit être traité par le service
logistique pour produire un document bon de livraison.
- Pour lancer l'assistant de mappage XML, sélectionnez . Cliquez sur Suivant.
- Dans la fenêtre Nouveau fichier de mappage de données, cliquez sur le dossier XMLMappingExamples.
Dans la zone Nom de fichier, tapez MyOrderMapping.map
puis cliquez sur Suivant.
- En regard de la sous-fenêtre Racines d'entrée, cliquez sur Ajouter.
- Dans la liste Type de fichier, sélectionnez Schéma XML puis cliquez
sur Parcourir. Développez ,
sélectionnez PurchaseOrder.xsd puis cliquez sur OK.
- Dans la sous-fenêtre Eléments et types globaux, cliquez sur PurchaseOrder
en tant qu'élément racine source, puis cliquez sur OK.
- En regard de la sous-fenêtre Racines de sortie, cliquez sur Ajouter.
- Dans la liste Type de fichier, sélectionnez Schéma XML puis cliquez
sur Parcourir. Développez ,
sélectionnez ShippingOrder.xsd puis cliquez sur OK.
- Dans la sous-fenêtre Eléments et types globaux, cliquez sur ShippingOrder
en tant qu'élément racine cible, puis cliquez sur OK.
- Cliquez sur Suivant.
- En regard de la sous-fenêtre Exemple de données de sortie pour le test, cliquez sur
Ajouter.
Cliquez ensuite sur PurchaseOrder.xml
puis sur OK.
Remarque : Utilisez un exemple de fichier d'entrée XML pour
tester vos transformations de mappage.
- Cliquez sur Terminer.
Déplacement
Dans cet exemple, la valeur de l'élément
OrderID du document PurchaseOrder est déplacée vers la valeur de l'attribut PurchaseOrderReference
du document ShippingOrder.
- S'il n'est pas déjà ouvert, cliquez sur le fichier MyOrderMapping.map avec le bouton droit
de la souris, puis cliquez sur Ouvrir.
L'éditeur de mappage s'ouvre.
- Dans l'éditeur de mappage, cliquez sur l'élément OrderID de
PurchaseOrder puis faites glisser cet élément vers l'attribut PurchaseOrderReference
de ShippingOrder.

Concaténation
Dans cet exemple, les éléments FirstName,
MiddleInitial et LastName du document PurchaseOrder sont concaténés en une seule valeur pour
l'élément CustomerName du document ShippingOrder.
- Dans PurchaseOrder, développez l'élément Customer.
- Dans PurchaseOrder, cliquez sur l'élément FirstName puis faites-le
glisser vers l'élément CustomerName de ShippingOrder.
- Ajoutez l'élément LastName :
- Dans PurchaseOrder, cliquez sur l'élément LastName puis faites-le
glisser vers la case de type de transformation Déplacement entre
PurchaseOrder et ShippingOrder. La fenêtre Assistant de sélection d'une connexion s'ouvre.
- Dans la fenêtre Assistant de sélection d'une connexion, cliquez sur Connexion
principale.
- Ajoutez l'élément MiddleInitial :
- Dans PurchaseOrder, cliquez sur l'élément MiddleInitial puis faites-le
glisser vers la case de type de transformation Concat entre PurchaseOrder
et ShippingOrder. La fenêtre Assistant de sélection d'une connexion s'ouvre.
- Dans la fenêtre Assistant de sélection d'une connexion, cliquez sur Connexion
principale. La fenêtre se ferme et le type de transformation devient Concat.

- Cliquez sur la case Concat avec le bouton droit de la souris, puis
cliquez sur .
- Dans la vue Propriétés, cliquez sur l'onglet Ordre.
Cliquez dans la
vue Propriétés de l'onglet Entrées. Cliquez sur MiddleInitial : chaîne
puis sur l'icône flèche vers le haut Réorganiser pour changer l'ordre des chaînes concaténées.
Conseil : Vous pouvez personnaliser les options de concaténation pour l'ordre, les délimiteurs, le préfixe et le suffixe.

Mappe locale
Dans cet exemple, les documents source et
cible contiennent tous deux l'élément complexe ShippingAddress.
- Dans PurchaseOrder, développez l'élément ShippingInfo.
- Dans PurchaseOrder, cliquez sur l'élément ShippingAddress puis faites-le
glisser vers l'élément ShippingAddress de ShippingOrder.

- Editez la mappe locale en cliquant soit sur le lien dans la fenêtre d'informations qui s'ouvre,
soit sur l'icône d'édition dans l'angle supérieur droit de la case de type de transformation
Mappe locale.
L'éditeur ouvre la mappe locale.
- Vous devez mapper les transformatins pour chaque sous-élément ShippingAddress :
- Mappez les éléments StreetNumber, StreetAddress et Apartment de PurchaseOrder vers l'élément
StreetAddress de ShippingOrder :
- Cliquez sur l'élément StreetNumber puis faites-le glisser vers
l'élément StreetAddress.
- Cliquez sur l'élément StreetName puis faites-le glisser vers
la case de type de transformation Déplacement. La fenêtre Assistant
de sélection d'une connexion s'ouvre.
- Dans la fenêtre Assistant de sélection d'une connexion, cliquez sur Connexion
principale. La fenêtre se ferme et le type de transformation devient Concat.
- Cliquez sur l'élément Apartment puis faites-le glisser vers
la case de type de transformation Concat. La fenêtre Assistant de
sélection d'une connexion s'ouvre.
- Dans la fenêtre Assistant de sélection d'une connexion, cliquez sur Connexion
principale.
- Cliquez sur l'élément PostalCode de PurchaseOrder puis faites-le
glisser vers l'élément PostalCode de ShippingOrder.
- Cliquez sur l'élément Province de PurchaseOrder puis faites-le
glisser vers l'élément Province de ShippingOrder.

- Pour revenir à la vue principale, cliquez sur l'icône flèche dans l'angle supérieur droit
de la vue de la mappe locale.
Sous-chaîne
Dans cet exemple, l'élément OrderDate
est stocké en tant que donnée du seul type date dans le document bon de commande, mais il est
décomposé en sous-éléments de type entier année, mois et jour dans le document bon de livraison. En définissant les paramètres de transformation de sous-chaîne appropriés, vous pouvez extraire
l'année, le mois et le jour de l'élément OrderDate du bon de commande et stocker ces valeurs
dans les éléments correspondants du bon de livraison.
- Dans ShippingOrder, développez l'élément OrderDate.
- Dans PurchaseOrder, cliquez sur l'élément OrderDate puis faites-le
glisser vers l'élément Year de ShippingOrder.
- Cliquez sur la flèche déroulante dans la case de type de transformation. Développez
Fonctions de chaîne puis cliquez sur Sous-chaîne.
- Cliquez sur la case de type de transformation Sous-chaîne avec le
bouton droit de la souris, puis cliquez sur .
- Dans la vue Propriétés, cliquez sur l'onglet Général.
- Dans la zone Délimiteur, tapez -.
- Sans la zone Index de sous-chaîne, tapez 0.
- Dans l'éditeur de mappage, cliquez sur l'élément OrderDate puis
faites-le glisser vers l'élément Month.
- Cliquez sur la flèche déroulante dans la case de type de transformation. Développez
Fonctions de sous-chaîne puis cliquez sur Sous-chaîne.
- Dans la vue Propriétés, cliquez sur l'onglet Général.
- Dans la zone Délimiteur, tapez -.
- Dans la zone Index de sous-chaîne, tapez 1.
- Dans l'éditeur de mappage, cliquez sur l'élément OrderDate puis
faites-le glisser vers l'élément Day.
- Cliquez sur la flèche déroulante dans la case de type de transformation. Développez
Fonctions de sous-chaîne puis cliquez sur Sous-chaîne.
- Dans la vue Propriétés, cliquez sur l'onglet Général.
- Dans la zone Délimiteur, tapez -.
- Dans la zone Index de sous-chaîne, tapez 2.

Conseil : Vous pouvez appliquer les transformations de sous-chaîne ou de concaténation
à des éléments ou attributs de n'importe quel type, elles ne sont pas limitées aux types chaîne.
Groupe
Dans cet exemple, une priorité
de livraison est associée à chaque produit du bon de commande, cependant que dans le bon de
livraison, les produits sont regroupés par éléments de section de priorité de livraison. Avec la transformation de groupe, vous pouvez regrouper les produits du bon de commande selon
leur priorité de livraison et mapper le groupe résultant à un élément du bon de livraison. Dans les propriétés de groupe, vous pouvez définir les paramètres de groupement ainsi que
l'ordre et les critères de tri.
- Dans ShippingOrder, développez l'élément OrderSections.
- Dans PurchaseOrder, cliquez sur l'élément Product puis faites-le
glisser vers l'élément OrderSection de ShippingOrder.
- Cliquez sur la flèche déroulante dans la case de type de transformation puis sur
Groupe dans la section Transformations de base.

- Cliquez sur la case de type de transformation Groupe avec le
bouton droit de la souris, puis cliquez sur .
- Dans la sous-fenêtre Produit de la vue Propriétés, cliquez sur ShippingPriority : chaîne.
- Cliquez sur Ajouter.
- Dans l'éditeur de mappage, éditez les détails de groupe en cliquant sur l'icône d'édition qui
apparaît dans l'angle supérieur droit de la case de type de transformation Groupe. L'éditeur s'ouvre pour l'élément OrderSection.
- Dans la vue des détails OrderSection, développez l'élément OrderItem.
- Dans la vue des détails de groupe, effectuez les opérations de déplacement suivantes :
- Cliquez sur l'élément ID du produit et faites-le glisser vers
l'élément Identifier dans OrderSection.
- Cliquez sur l'élément Price du produit et faites-le glisser vers
l'élément Price dans OrderSection.
- Cliquez sur l'élément Description du produit et faites-le glisser
vers l'élément Name dans OrderSection.
- Cliquez sur l'élément Quantity du produit et faites-le glisser vers
l'élément Quantity dans OrderSection.
- Cliquez sur l'élément ShippingPriority dans Product et faites-le
glisser vers l'élément Priority dans OrderSection.

- Pour revenir à la vue de mappe principale, cliquez sur la flèche dans l'angle supérieur
droit du mappage du groupe.
Personnalisé
Dans cet exemple, le document bon de livraison contient un attribut NumberOfProducts
qui indique le nombre total de produits de la commande. Pour générer la valeur de cet attribut, vous devez additionner les produits du bon de commande en utilisant l'élément Quantity. Vous pouvez effectuer cette addition à l'aide d'une expression XPath en utilisant une transformation personnalisée. Le résultat est stocké dans l'attribut cible NumberOfProducts.
- Cliquez sur l'élément PurchaseOrder puis faites-le glisser vers
l'élément NumberOfProducts de ShippingOrder.
Le type de transformation devient XPath peronnalisé.

- Cliquez sur la case de type de transformation XPath personnalisé
avec le bouton droit de la souris, puis cliquez sur .
- Dans la vue Propriétés, cliquez sur l'onglet Général puis sur
Editer.
- Dans la fenêtre Générateur d'expression XPath, tapez sum(Product/Quantity)
puis cliquez sur OK.
