Exemples d'utilisation de l'éditeur de mappage XML

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.
  1. Pour lancer l'assistant de mappage XML, sélectionnez Fichier > Nouveau > Autre > XML > Mappage des données. Cliquez sur Suivant.
  2. 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.
  3. En regard de la sous-fenêtre Racines d'entrée, cliquez sur Ajouter.
  4. Dans la liste Type de fichier, sélectionnez Schéma XML puis cliquez sur Parcourir. Développez XMLMappingExamples, sélectionnez PurchaseOrder.xsd puis cliquez sur OK.
  5. Dans la sous-fenêtre Eléments et types globaux, cliquez sur PurchaseOrder en tant qu'élément racine source, puis cliquez sur OK.
  6. En regard de la sous-fenêtre Racines de sortie, cliquez sur Ajouter.
  7. Dans la liste Type de fichier, sélectionnez Schéma XML puis cliquez sur Parcourir. Développez XMLMappingExamples, sélectionnez ShippingOrder.xsd puis cliquez sur OK.
  8. Dans la sous-fenêtre Eléments et types globaux, cliquez sur ShippingOrder en tant qu'élément racine cible, puis cliquez sur OK.
  9. Cliquez sur Suivant.
  10. 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.
  11. 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.
Transformation Move

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.
  1. Dans PurchaseOrder, développez l'élément Customer.
  2. Dans PurchaseOrder, cliquez sur l'élément FirstName puis faites-le glisser vers l'élément CustomerName de ShippingOrder.
  3. Ajoutez l'élément LastName :
    1. 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.
    2. Dans la fenêtre Assistant de sélection d'une connexion, cliquez sur Connexion principale.
  4. Ajoutez l'élément MiddleInitial :
    1. 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.
    2. 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.
    Transformation de concaténation
  5. Cliquez sur la case Concat avec le bouton droit de la souris, puis cliquez sur Afficher dans > Vue Propriétés.
  6. 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.
    Transformation de concaténation avec ordre changé

Mappe locale

Dans cet exemple, les documents source et cible contiennent tous deux l'élément complexe ShippingAddress.

  1. Dans PurchaseOrder, développez l'élément ShippingInfo.
  2. Dans PurchaseOrder, cliquez sur l'élément ShippingAddress puis faites-le glisser vers l'élément ShippingAddress de ShippingOrder.Transformation de mappe locale
  3. 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.
  4. Vous devez mapper les transformatins pour chaque sous-élément ShippingAddress :
    1. Mappez les éléments StreetNumber, StreetAddress et Apartment de PurchaseOrder vers l'élément StreetAddress de ShippingOrder :
      1. Cliquez sur l'élément StreetNumber puis faites-le glisser vers l'élément StreetAddress.
      2. 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.
      3. 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.
      4. 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.
      5. Dans la fenêtre Assistant de sélection d'une connexion, cliquez sur Connexion principale.
    2. Cliquez sur l'élément PostalCode de PurchaseOrder puis faites-le glisser vers l'élément PostalCode de ShippingOrder.
    3. Cliquez sur l'élément Province de PurchaseOrder puis faites-le glisser vers l'élément Province de ShippingOrder.Détails de mappe locale
  5. 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.

  1. Dans ShippingOrder, développez l'élément OrderDate.
  2. Dans PurchaseOrder, cliquez sur l'élément OrderDate puis faites-le glisser vers l'élément Year de ShippingOrder.
    1. 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.
    2. Cliquez sur la case de type de transformation Sous-chaîne avec le bouton droit de la souris, puis cliquez sur Afficher dans > Vue Propriétés.
    3. Dans la vue Propriétés, cliquez sur l'onglet Général.
    4. Dans la zone Délimiteur, tapez -.
    5. Sans la zone Index de sous-chaîne, tapez 0.
  3. Dans l'éditeur de mappage, cliquez sur l'élément OrderDate puis faites-le glisser vers l'élément Month.
    1. 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.
    2. Dans la vue Propriétés, cliquez sur l'onglet Général.
    3. Dans la zone Délimiteur, tapez -.
    4. Dans la zone Index de sous-chaîne, tapez 1.
  4. Dans l'éditeur de mappage, cliquez sur l'élément OrderDate puis faites-le glisser vers l'élément Day.
    1. 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.
    2. Dans la vue Propriétés, cliquez sur l'onglet Général.
    3. Dans la zone Délimiteur, tapez -.
    4. Dans la zone Index de sous-chaîne, tapez 2.
Transformation de sous-chaîne
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.
  1. Dans ShippingOrder, développez l'élément OrderSections.
  2. Dans PurchaseOrder, cliquez sur l'élément Product puis faites-le glisser vers l'élément OrderSection de ShippingOrder.
  3. Cliquez sur la flèche déroulante dans la case de type de transformation puis sur Groupe dans la section Transformations de base. Transformation de groupe
    1. Cliquez sur la case de type de transformation Groupe avec le bouton droit de la souris, puis cliquez sur Afficher dans > Vue Propriétés.
    2. Dans la sous-fenêtre Produit de la vue Propriétés, cliquez sur ShippingPriority : chaîne.
    3. Cliquez sur Ajouter.
  4. 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.
  5. Dans la vue des détails OrderSection, développez l'élément OrderItem.
  6. Dans la vue des détails de groupe, effectuez les opérations de déplacement suivantes :
    1. Cliquez sur l'élément ID du produit et faites-le glisser vers l'élément Identifier dans OrderSection.
    2. Cliquez sur l'élément Price du produit et faites-le glisser vers l'élément Price dans OrderSection.
    3. Cliquez sur l'élément Description du produit et faites-le glisser vers l'élément Name dans OrderSection.
    4. Cliquez sur l'élément Quantity du produit et faites-le glisser vers l'élément Quantity dans OrderSection.
    5. Cliquez sur l'élément ShippingPriority dans Product et faites-le glisser vers l'élément Priority dans OrderSection.
    Mappage de détails de groupe
  7. 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.
  1. Cliquez sur l'élément PurchaseOrder puis faites-le glisser vers l'élément NumberOfProducts de ShippingOrder. Le type de transformation devient XPath peronnalisé. Transformation XPath personnalisé
  2. Cliquez sur la case de type de transformation XPath personnalisé avec le bouton droit de la souris, puis cliquez sur Afficher dans > Vue Propriétés.
  3. Dans la vue Propriétés, cliquez sur l'onglet Général puis sur Editer.
  4. Dans la fenêtre Générateur d'expression XPath, tapez sum(Product/Quantity) puis cliquez sur OK. Propriété de la transformation XPath personnalisé

Commentaires en retour