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

Talend Open Studio for MDM Guide utilisateur

EnrichVersion
6.2
EnrichProdName
Talend Open Studio for MDM
task
Gouvernance de données
Qualité et préparation de données
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 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 sur 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 schéma, 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 de boucle.

Cette capture d'écran vous montre un exemple du flux d'entrée XML, Customer. A partir de la racine 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 de boucle pour l'arborescence XML que vous créez.

    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 nommage 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 de boucle.

    As optional loop

    Cette option est disponible uniquement sur l'élément de boucle que vous avez défini.

    Lorsque l'élément correspondant existe dans le fichier source, l'élément de boucle facultatif fonctionne de la même manière qu'un élément de boucle normal. Sinon, il définit automatiquement son élément père comme élément de boucle. En l'absence d'élément père dans le fichier source, il prend l'élément du plus haut niveau hiérarchique, avant l'élément racine. 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 fils 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 structure XML à partir d'un fichier XML, suivez la procédure suivante :

  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 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 la structure XML d'un fichier XSD, procédez comme suit :

  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élect 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 :

    • Lorsque vous importez une structure XML d'entrée ou de sortie à partir d'un fichier XSD, vous pouvez choisir l'élément racine de votre arborescence 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 de boucle de cette structure XML. Pour plus d'informations sur le paramétrage de l'élément de boucle, consultez Définir ou réinitialiser un élément de boucle pour une structure XML créée.

Importer une structure XML à partir du Repository

Pour importer une XML à partir d'une connexion du Repository, suivez la procédure suivante :

  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 métadonnée de connexion XML.

Définir ou réinitialiser un élément de boucle pour une structure XML créée

Vous devez définir un minimum un élément de boucle 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 de boucle lorsque c'est nécessaire.

Pour définir ou réinitialiser un élément de boucle, 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 de boucle nécessaires, comme expliqué plus tôt dans ce scénario, l'élément racine est automatiquement défini comme élément de boucle.

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 :

  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 et 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 modifier la valeur par défaut d'un espace de nommage, procédez comme suit :

  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, procédez comme suit :

  1. Dans l'arborescence XML contenant l'espace de nommage, cliquez-droit sur cet 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 "group element" 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 group element, deux restrictions doivent être respectées :

  1. le nœud racine ne peut être défini en tant que group element ;

  2. le group element doit être défini sur l'élément dont le sous-élément de boucle dépend directement.

    Note

    L'option de group element est visible à partir du moment où vous avez défini un élément de boucle. Cette option est également invisible lorsqu'un élément n'est pas autorisé à être un élément de groupe.

Une fois le group element 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 group element donné. Pour plus d'informations concernant l'utilisation d'un group element, consultez le tXMLMap dans le Guide de référence des Composants Talend Open Studio.

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 as 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.

  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 le Guide de référence desComposants Talend Open Studio.

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.