Choix d'une transformation pour mapper des éléments répétitifs

Dans l' éditeur de mappage de données graphiques, vous pouvez utiliser la transformation For Each , la transformation Append , la transformation Join , les fonctions XPath, Custom XPathet la transformation Java personnalisée pour mapper des tableaux d'entrée et de sortie. Vous pouvez utiliser l'une de ces transformations pour choisir l'ensemble des éléments du tableau que vous souhaitez transformer et placer le résultat dans un tableau de sortie ou un élément unique.

A propos de cette tâche

La seule façon de contrôler l'ordre de remplissage d'un tableau de sortie est d'utiliser la transformation Append . Vous devez fournir des connexions d'entrée à la transformation Ajouter et définir leur ordre dans la page Propriétés . Pour plus d'informations, voir Ajout.

Procédure

Choisissez l'une des transformations suivantes pour mapper les éléments répétitifs:

  1. Lorsque vous avez des éléments répétitifs comme entrée et sortie dans une transformation, vous pouvez utiliser la transformation For Each pour définir l'élément de tableau de sortie.

    La transformation For Each itère sur un élément de tableau d'entrée, qui peut être un type simple ou un type complexe, et entre un mappage imbriqué dans lequel vous pouvez fournir des transformations pour remplir une instance de la sortie de l'entrée. Vous pouvez configurer la cardinalité pour filtrer les instances à traiter en fonction de l'index. Vous pouvez également fournir une expression booléenne qui sera appliquée à chaque instance pour déterminer si elle sera mappée.

    Cette figure montre l'onglet Propriétés de la transformation Pour chaque. L'option Autoriser les entrées vides est disponible sous Entrées de filtre.

    En outre, vous pouvez également définir l'option Autoriser les entrées vides de sorte que l' éditeur de mappage de données graphiques entre dans la transformation imbriquée une fois lorsqu'aucune correspondance n'est trouvée. Il peut être utilisé pour implémenter une jointure externe en fournissant une entrée supplémentaire à Pour chaque.

    Pour plus d'informations, voir Pour chaque.

  2. Lorsque vous disposez de plusieurs entrées qui sont des éléments de type simple, des éléments de type complexe ou des éléments répétitifs à partir desquels vous devez construire un tableau, vous pouvez utiliser la transformation Append pour ajouter des instances à un tableau de sortie de type simple ou à un tableau de sortie de type complexe.

    Pour plus d'informations, voir Ajout.

  3. Lorsque vous disposez de plusieurs entrées qui sont des éléments de type simple, des éléments de type complexe ou des éléments répétitifs en tant qu'entrée d'une transformation et que vous souhaitez joindre ces éléments, vous pouvez utiliser la transformation Jointure pour les combiner en un seul élément de sortie répétitif. L'élément de sortie peut être un tableau ou un élément unique. Vous configurez une expression pour contrôler les conditions de correspondance pour la jointure. L' éditeur de mappage de données graphiques fournit un lien permettant de créer une correspondance simple par expression d'index.

    Pour plus d'informations, voir Jointure.

  4. Vous pouvez utiliser des fonctions XPath pour mapper un tableau à un élément unique. Par exemple, vous pouvez utiliser fn:string-join pour renvoyer une chaîne créée en concaténant plusieurs arguments de chaîne ou fn: sum pour renvoyer la somme d'un élément numérique répétitif en un seul élément.

    Pour plus d'informations, voir Transformations XPath intégrées.

  5. Lorsque vous souhaitez mapper une instance particulière d'un tableau à une sortie unique, vous pouvez utiliser une transformation XPath personnalisée qui comporte une expression de prédicat XPath pour sélectionner une instance particulière.
    Par exemple, si vous souhaitez sélectionner la valeur "Country" dans l'instance d'un tableau d'éléments "Address" comportant un élément enfant "Type" avec la valeur "home", utilisez la forme suivante pour votre transformation XPath personnalisée:
    $Address[Type = 'home']/Country
    Remarque: Si vous souhaitez utiliser une valeur d'élément d'entrée pour sélectionner dynamiquement un élément d'un tableau par index, vous devez vous assurer que votre expression de prédicat XPath génère une valeur numérique singleton. Par exemple, pour sélectionner la valeur "Country" dans l'instance d'un tableau d'éléments "Address" à l'index spécifié par un élément d'entrée "Counter" (défini en tant que xsd:int), utilisez le formulaire suivant pour votre transformation XPath personnalisée:
    $Address[fn:data($Counter)]/Country
    La fonction fn:data() est utilisée pour obtenir la valeur numérique de l'élément d'entrée. Si l'élément "Counter" est défini en tant que xsd:string , vous devez utiliser la forme suivante pour transtyper explicitement la valeur en valeur numérique:
    $Address[xs:int($Counter)]/Country
  6. Vous pouvez utiliser une transformation Java personnalisée pour mapper un tableau en transmettant le tableau en tant que paramètre d'entrée ou de sortie à l'aide d'une liste d'objets MbElement .

    Pour plus d'informations, voir Java personnalisé.