Utiliser le type Document pour créer l'arborescence XML - 6.5

Talend Open Studio for ESB Guide utilisateur

EnrichVersion
6.5
EnrichProdName
Talend Open Studio for ESB
task
Création et développement
EnrichPlatform
Studio Talend

Le type de données Document correspond parfaitement au concept de données structurées de type XML. Lorsque vous devez utiliser la structure XML pour mapper le flux d'entrée ou de sortie, ou les deux, utilisez ce type. Vous pouvez importer des arborescences XML de plusieurs sources XML et de les éditer directement dans son éditeur de mapping, afin de vous éviter de les éditer manuellement un à un.

Configurer le type de document

Le type de données Document est un des types de données fournis par Talend. Le type Document se sélectionne lorsque vous définissez le schéma correspondant à vos données dans le panneau Schema editor. Pour plus d'informations concernant le Schema editor, consultez Utiliser le Schema editor.

La capture d'écran ci-dessous montre un exemple de flux d'entrée, Customer, de type Document. Afin de le reproduire dans le Map editor, cliquez sur le bouton [+] pour ajouter une ligne du côté de l'entrée du Schema editor, renommez-la et sélectionnez Document dans la liste des types.

Dans la plupart des cas, le tXMLMap récupère le schéma du composant précédent ou suivant, par exemple, d'un tFileInputXML ou d'un scénario ESB, d'un tESBProviderRequest. Cela permet d'éviter les efforts manuels lors de la définition du type Document dans le flux XML à traiter. Cependant, pour continuer à modifier la structure XML ainsi que le contenu d'une ligne de type Document, vous devez utiliser le Map editor.

Note

Un flux Document comporte une arborescence XML personnalisée et représente un seul champ du schéma, pouvant contenir plusieurs champs de types différents. Pour plus d'informations concernant la configuration d'un schéma, consultez Onglet Basic settings.

Une fois une ligne de données définie comme type Document dans la table du flux de données correspondante, une arborescence XML de base est créée automatiquement pour refléter les détails de la structure. L'arborescence représente le nombre d'éléments minimum requis pour une arborescence XML valide, dans le tXMLMap :

  • L'élément root (racine) : il est l'élément requis par une arborescence XML à traiter et, si nécessaire, il est la base d'une arborescence XML plus sophistiquée.

  • L'élément loop (de boucle) : il détermine l'élément sur lequel s'effectue l'itération, afin de lire les données hiérarchiques dans une arborescence XML. Par défaut, l'élément racine est défini comme l'élément répétable.

Cette capture d'écran vous montre un exemple du flux d'entrée XML, Customer. À partir de la racine (root) XML créée, vous pouvez développer l'arborescence XML qui vous intéresse.

Pour ce faire, vous devez :

  1. Importer l'arborescence XML personnalisée à partir de sources de type :

    Note

    Si nécessaire, vous pouvez développer manuellement l'arborescence XML qui vous intéresse, à l'aide des options fournies dans le menu contextuel.

  2. Définir l'élément répétable pour l'arborescence XML que vous créez. Vous pouvez définir autant de boucles que nécessaire. Pour cette étape, prenez en compte les situations suivantes :

Si nécessaire, vous pouvez continuer à modifier l'arborescence XML à l'aide des options fournies dans le menu contextuel. Le tableau suivant présente les opérations que vous pouvez effectuer via ces options.

Options

Opérations

Create Sub-element et Create Attribute

Ajoute des éléments ou des attributs à l'arborescence XML importée. Consultez également : Ajouter un sous-élément ou un attribut à une structure XML

Set a namespace

Ajoute et gère des espaces de noms donnés dans la structure XML importée. Consultez également : Gérer un espace de nommage

Delete

Supprime un élément ou un attribut. Consultez également : Supprimer un élément ou un attribut depuis la structure XML

Rename

Renomme un élément ou un attribut.

As loop element

Définit ou réinitialise un élément répétable. Les éléments répétables multiples et optionnels sont supportés.

As optional loop

Cette option est disponible uniquement sur l'élément répétable que vous avez défini.

Lorsque l'élément correspondant existe dans le fichier source, l'élément répétable facultatif fonctionne de la même manière qu'un élément répétable normal. Cependant, dans des cas d'utilisation réelle, avec des différences entre l'arborescence XML et la structure du fichier source, il est recommandé d'adapter l'arborescence XML au fichier source, pour améliorer les performances.

As group element

Dans la structure XML de sortie, définit un élément comme group element. Consultez également : Grouper les données de sortie

As aggregate element

Dans la structure XML de sortie, Définit un élément aggregate. Consultez également : Agréger les données de sortie

Add Choice

Configure l'élément Choice. Tous ses éléments enfants développés seront contenus dans cette déclaration. Cet élément provient des concepts XSD. Il permet au tXMLMap d'exécuter la fonction de l'élément Choice XSD afin de lire ou d'écrire un flux Document.

Lorsque le tXMLMap traite un élément Choice, les éléments contenus dans sa déclaration ne sont pas écrits en sortie, à moins que leurs expressions de mapping soient définies de manière appropriée.

Note

Le composant tXMLMap déclare automatiquement tout élément Choice défini dans le fichier XSD importé.

Set as Substitution

Configure l'élément Substitution afin de spécifier l'élément substituable pour un élément Head donné, défini dans le XSD correspondant. L'élément de substitution permet au tXMLMap d'exécuter la fonction de l'élément Substitution XSD afin de lire ou d'écrire un flux Document.

Lorsque le tXMLMap traite un élément de substitution, les éléments contenus dans sa déclaration ne sont pas écrits en sortie, à moins que leurs expressions de mapping soient définies de manière appropriée.

Note

Le composant tXMLMap déclare automatiquement tout élément Substitution défini dans le fichier XSD importé.

Les sections suivantes présentent de manière détaillée les processus de création d'arborescence XML.

Importer une structure XML à partir de fichiers XML et XSD

Pour importer une arborescence depuis un fichier XML, suivez les instructions ci-dessous :

  1. Dans la table d'entrée correspondante, cliquez-droit sur le nom de la colonne pour ouvrir le menu contextuel. Dans cet exemple, cliquez-droit sur la colonne Customer.

  2. Dans ce menu, sélectionnez Import From File.

  3. Dans la boîte de dialogue, parcourez votre système jusqu'au fichier XML que vous souhaitez utiliser pour fournir la structure XML, puis double-cliquez sur le fichier.

Pour importer une arborescence depuis un fichier XSD, suivez les instructions ci-dessous :

  1. Dans la table d'entrée correspondante, cliquez-droit sur le nom de la colonne pour ouvrir le menu contextuel. Dans cet exemple, cliquez-droit sur la colonne Customer.

  2. Dans ce menu, sélectionnez Import From File.

  3. Dans la boîte de dialogue, parcourez votre système jusqu'au fichier XSD que vous souhaitez utiliser pour fournir la structure XML, puis double-cliquez sur le fichier.

  4. Dans la boîte de dialogue qui apparaît, sélectionnez un élément racine dans la liste Root pour être la racine de votre arborescence XML puis cliquez sur OK. L'arborescence XML décrite par le fichier XSD importée est établie.

    Note

    La racine de l'arborescence XML est adaptable :

    • Lors de l'import d'une structure XML d'entrée ou de sortie depuis un fichier XSD, vous pouvez choisir un élément pour en faire la racine de votre structure XML.

    • Une fois qu'une structure XML a été importée, la balise root est automatiquement renommée avec le nom de la source XML. Pour modifier le nom de la racine manuellement, vous devez utiliser l'éditeur de schéma. Pour plus d'informations concernant cet éditeur, consultez Utiliser le Tree schema editor.

Puis spécifiez l'élément répétable de cette structure XML. Pour plus d'informations concernant le paramétrage de l'élément répétable, consultez Définir ou réinitialiser un élément répétable pour une structure XML créée.

Importer une structure XML à partir du Repository

Pour importer une structure XML :

  1. Dans la table d'entrée correspondante, cliquez-droit sur le nom de la colonne pour ouvrir le menu contextuel. Dans cet exemple, cliquez-droit sur la colonne Customer.

  2. Dans le menu contextuel, sélectionnez l'option Import From Repository.

  3. Dans la boîte de dialogue qui s'ouvre alors, sélectionnez la connexion XML ou MDM souhaitée pour importer la structure XML correspondante.

    Cette figure vous montre un exemple de connexion XML importée du Repository.

    Note

    Pour importer une arborescence XML du Repository, la connexion XML correspondante doit déjà avoir été créée. Pour plus d'informations concernant la création d'une connexion à un fichier XML dans le Repository, consultez Centraliser des métadonnées d'un fichier XML.

  4. Cliquez sur OK pour valider la sélection.

La structure XML est créée et une boucle est automatiquement définie car la boucle avait déjà été spécifiée lors de la création de la connexion XML stockée dans le Repository.

Définir ou réinitialiser un élément répétable pour une structure XML créée

Vous devez définir un minimum un élément répétable pour tous les flux de données XML n'ayant pas d'élément boucle déjà défini. S'ils en ont déjà un, vous devez réinitialiser l'élément répétable lorsque c'est nécessaire.

Pour définir ou réinitialiser un élément répétable, procédez comme suit :

  1. Dans la structure XML créée, cliquez-droit sur l'élément que vous souhaitez définir comme élément boucle. Par exemple, vous souhaitez définir le nœud Customer comme élément boucle.

  2. Dans le menu contextuel, sélectionnez As loop element afin de définir l'élément sélectionné comme élément boucle.

    Une fois ceci effectué, l'élément sélectionné se voit ajouter le texte suivant : loop.

Note

Si vous fermez le Map Editor sans avoir défini les éléments répétables nécessaires, comme expliqué plus tôt dans ce scénario, l'élément racine est automatiquement défini comme élément répétable.

Ajouter un sous-élément ou un attribut à une structure XML

Dans la structure XML, vous pouvez ajouter manuellement un sous-élément ou un attribut à la racine ou à l'un des éléments.

Pour effectuer une de ces opérations, procédez comme suit :

  1. Dans la structure que vous souhaitez modifier, cliquez-droit sur l'élément sur lequel vous souhaitez ajouter un sous-élément ou un attribut et sélectionnez Create Sub-Element ou Create Attribute en fonction de ce que vous souhaitez ajouter.

  2. Dans l'assistant Create New Element, saisissez le nom du sous-élément ou de l'attribut à ajouter.

  3. Cliquez OK pour valider la création du nouvel élément. Ce nouveau sous-élément ou attribut apparaît alors dans la structure XML.

Supprimer un élément ou un attribut depuis la structure XML

Pour supprimer un élément ou un attribut d'une structure XML existante, procédez comme suit : Pour définir un espace de nommage :

  1. Dans l'arborescence XML que vous souhaitez modifier, cliquez-droit sur l'élément ou l'attribut que vous souhaitez supprimer.

  2. Dans le menu contextuel, sélectionnez Delete.

    L'élément ou l'attribut sélectionné est supprimé, ainsi que tous les sous-éléments ou attributs qu'il contenait.

Gérer un espace de nommage

Vous pouvez définir et modifier un espace de nommage pour chacun des éléments des arborescences XML de ces flux d'entrée ou de sortie.

Définir un espace de nommage

Pour définir un espace de nommage :

  1. Dans la structure XML du flux d'entrée ou de sortie que vous souhaitez modifier, cliquez-droit sur l'élément auquel vous souhaitez associer un espace de nommage. Par exemple, dans l'arborescence XML de Customer, vous devez créer un espace de nommage pour le nœud racine.

  2. Dans le menu contextuel, sélectionnez Set A Namespace. L'assistant Namespace dialog s'ouvre.

  3. Dans cet assistant, saisissez l'URI à utiliser.

  4. Si vous devez ajouter un préfixe à cet espace de nommage, cochez la case Prefix dans l'assistant et saisissez le préfixe à utiliser. Dans cet exemple, cochez la case et saisissez xhtml.

  5. Cliquez sur OK pour valider l'espace de nommage.

Modifier la valeur par défaut d'un espace de nommage

Pour définir un espace de nommage :

  1. Dans l'arborescence XML contenant l'espace de nommage à modifier, cliquez-droit sur l'espace de nommage pour ouvrir le menu contextuel.

  2. Dans le menu, sélectionnez Change Namespace pour ouvrir l'assistant correspondant.

  3. Saisissez la nouvelle valeur dans cet assistant.

  4. Cliquez sur OK pour valider cette modification.

Supprimer un espace de nommage

Pour supprimer un espace de nommage :

  1. Dans l'arborescence XML contenant l'espace de nommage à modifier, cliquez-droit sur l'espace de nommage pour ouvrir le menu contextuel.

  2. Dans le menu, cliquez sur Delete pour valider cette suppression.

Grouper les données de sortie

Le composant tXMLMap utilise un élément "group" pour regrouper les données de sortie selon certaines conditions données. Cela vous permet d'entourer de balises "group element" les éléments répondant à la condition.

Pour définir un élément "group", deux restrictions doivent être respectées :

  1. le nœud racine ne peut être défini en tant qu'élément "group" ;

  2. l'élément "group" doit être défini sur l'élément dont le sous-élément répétable dépend directement.

Note

L'option de configuration d'un élément "group" est visible à partir du moment où vous avez défini un élément répétable. Cette option est également invisible si un élément ne peut pas être configuré comme élément "group".

Une fois l'élément "group" défini, tous ses sous-éléments sauf la boucle sont utilisés comme conditions pour regrouper les données de sortie.

Vous devez créer avec soin l'arborescence XML pour une utilisation optimale d'un élément "group" donné. Pour plus d'informations concernant l'utilisation d'un élément "group", consultez tXMLMap sur https://help.talend.com.

Note

Le tXMLMap propose des éléments "group" et "aggregate" afin de classer les données dans la structure XML. Lorsque vous gérez une ligne de données XML, la différence de comportement est la suivante :

  • L'élément "group" traite toujours les données en un seul flux.

  • L'élément "aggregate" sépare ce flux en différents flux XML complets.

Définir un group element

Pour définir un group element, procédez comme suit :

  1. Dans l'arborescence XML de la sortie dans le Map editor, cliquez-droit sur l'élément que vous voulez définir comme group element.

  2. Dans le menu contextuel qui s'ouvre, sélectionnez As group element.

    Cet élément de la sélection devient le group element. La capture d'écran vous montre un exemple de l'arborescence XML avec le group element.

Révoquer un "group element" défini

Pour révoquer un "group element" défini, procédez comme suit :

  1. Dans l'arborescence XML de la sortie dans le Map editor, cliquez-droit sur l'élément que vous avez défini comme group element.

  2. Dans le menu contextuel, sélectionnez Remove group element.

    Le "group element" défini est révoqué.

Agréger les données de sortie

Avec le tXMLMap, vous pouvez définir autant d'éléments "aggregate" que nécessaire dans l'arborescence XML de sortie afin de classer les données XML. Ce composant écrit les données classées, chaque classification devenant un flux XML complet.

  1. Pour définir un élément en tant qu'élément "aggregate", cliquez-droit sur l'élément concerné dans l'arborescence XML du côté droit du Map editor puis, dans le menu contextuel, sélectionnez As aggregate element.

    Cet élément devient l'élément "aggregate". Un texte lui est ajouté : aggregate. Un texte lui est ajouté : aggregate.

  2. Pour révoquer la définition de l'élément "aggregate", cliquez-droit sur cet élément puis sélectionnez Remove aggregate element, dans le menu contextuel.

Note

Pour définir un élément "aggregate", assurez-vous que cet élément n'a pas d'enfant et que la fonctionnalité All in one est désactivée. L'option As aggregate element est disponible dans le menu contextuel si les deux conditions sont respectées. Pour plus d'informations concernant la fonctionnalité All in one, consultez Ecrire dans un document les éléments en sortie.

Pour un exemple d'utilisation de l'élément "aggregate" avec le tXMLMap, consultez la documentation du composant sur https://help.talend.com.

Note

Le composant tXMLMap propose les éléments "group" et "aggregate" pour classer les données dans une structure XML. Lors de la gestion d'une ligne de données (flux XML complet), la différence de comportement est la suivante :

  • L'élément "group" traite toujours les données dans un flux unique.

  • L'élément "aggregate" sépare ce flux en différents flux XML complets.