tWriteXMLField - 6.1

Composants Talend Guide de référence

EnrichVersion
6.1
EnrichProdName
Talend Big Data
Talend Big Data Platform
Talend Data Fabric
Talend Data Integration
Talend Data Management Platform
Talend Data Services Platform
Talend ESB
Talend MDM Platform
Talend Open Studio for Big Data
Talend Open Studio for Data Integration
Talend Open Studio for Data Quality
Talend Open Studio for ESB
Talend Open Studio for MDM
Talend Real-Time Big Data Platform
task
Création et développement
Gouvernance de données
Qualité et préparation de données
EnrichPlatform
Studio Talend

Propriétés du tWriteXMLField

Famille du composant

XML

 

Fonction

Le composant tWriteXMLField lit un fichier XML d'entrée, en extrait la structure et l'insère dans les champs du fichier ou de la table de sortie.

Objectif

Le tWriteXMLField lit un fichier XML d'entrée, extrait la structure du fichier et l'insère dans les champs du fichier ou de la table de sortie.

Basic settings

Output Column

Sélectionnez la colonne du composant de sortie dans laquelle vous souhaitez écrire la structure XML.

 

Configure XML Tree

Ouvre l'interface d'aide à la création de la structure XML à écrire dans un champ. Pour plus d'informations sur l'interface, consultez Définir un arbre XML.

 

Schema et Edit Schema

Un schéma est une description de lignes, il définit le nombre de champs qui sont traités et passés au composant suivant. Le schéma est soit local (built-in) soit distant dans le Repository.

Depuis la version 5.6, les modes Built-In et Repository sont disponibles dans toutes les solutions de Talend.

Cliquez sur Edit schema pour modifier le schéma. Si le schéma est en mode Repository, trois options sont disponibles :

  • View schema : sélectionnez cette option afin de voir le schéma.

  • Change to Built-In property : sélectionnez cette option pour passer le schéma en mode Built-In et effectuer des modifications locales.

  • Update repository connection : sélectionnez cette option afin de modifier le schéma stocké dans le référentiel et décider de propager ou non les modifications à tous les Jobs. Si vous souhaitez propager les modifications uniquement au Job courant, sélectionnez No et sélectionnez à nouveau la métadonnée du schéma dans la fenêtre [Repository Content].

 

 

Built-in : Le schéma est créé et conservé ponctuellement pour ce composant seulement. Voir également le Guide utilisateur du Studio Talend.

 

 

Repository : Le schéma existe déjà et est stocké dans le Repository. Ainsi, il peut être réutilisé dans divers projets et Job designs. Voir également le Guide utilisateur du Studio Talend.

 

Sync columns

Cliquez sur ce bouton pour synchroniser le schéma de sortie avec celui d'entrée. La fonction Sync ne s'affiche que si une connexion de type Row est liée au composant de sortie.

 

Group by

Sélectionnez la colonne à utiliser pour regrouper les données.

Advanced settings

Remove the XML declaration

Cochez cette case si vous ne souhaitez pas inclure la déclaration XML.

 

Create empty element if needed

Cette case est cochée par défaut. Si le contenu de la colonne Related Column de l'éditeur d'arborescence XML est nul, ou si aucune colonne n'est associée au nœud XML, cette option créera une balise ouvrante et une balise fermante aux endroits prévus.

 

Expand Empty Element if needed(for dom4j)

Cochez cette case afin de permettre aux éléments null d'être affichés en tant que paires de balises, par exemple <element></element>. Si cette case n'est pas cochées, les éléments null sont affichés en tant que balises auto-fermantes, par exemple <element/>. Pour plus d'informations concernant les balises XML, consultez http://www.tizag.com/xmlTutorial/xmltag.php (en anglais).

Note

Afin d'utiliser cette option, vous devez sélectionner le mode de génération Dom4J .

Cette option est disponible lorsque la case Create empty element if needed est cochée.

 

Create associated XSD file

Si l'un des éléments XML est associé à un espace de nommage, cette option créera le fichier XSD correspondant.

Note

Pour utiliser cette option, vous devez sélectionner le mode de génération Dom4J dans la liste Generation mode.

 

Advanced separator (for number)

Cochez cette case pour modifier les séparateurs utilisés par défaut dans les nombres.

Thousands separator : saisissez entre guillemets le séparateur à utiliser pour les milliers.

Decimal separator : saisissez entre guillemets le séparateur à utiliser pour les décimales.

 

Generation mode

Sélectionnez le mode de génération correspondant à votre mémoire disponible. Les modes disponibles sont :

  • Lent et consommateur de mémoire (Slow and memory-consuming - Dom4J).

    Note

    Cette option vous permet d'utiliser Dom4J pour traiter des fichiers XML très complexes.

  • Rapide et peu consommateur de mémoire (Fast with low memory consumption (SAX)).

 

Encoding

Sélectionnez l'encodage à partir de la liste ou sélectionnez Custom et définissez-le manuellement. Ce champ est obligatoire pour la manipulation des données de base de données.

 

tStatCatcher Statistics

Cochez cette case pour collecter les données de log au niveau du composant.

Global Variables

ERROR_MESSAGE : message d'erreur généré par le composant lorsqu'une erreur survient. Cette variable est une variable After et retourne une chaîne de caractères. Cette variable fonctionne uniquement si la case Die on error est décochée, si le composant a cette option.

NB_LINE : nombre de lignes lues par un composant d'entrée ou passées à un composant de sortie. Cette variable est une variable After et retourne un entier.

Une variable Flow fonctionne durant l'exécution d'un composant. Une variable After fonctionne après l'exécution d'un composant.

Pour renseigner un champ ou une expression à l'aide d'une variable, appuyez sur les touches Ctrl+Espace pour accéder à la liste des variables. A partir de cette liste, vous pouvez choisir la variable que vous souhaitez utiliser.

Pour plus d'informations concernant les variables, consultez le Guide utilisateur du Studio Talend.

Utilisation

Ce composant doit être utilisé en composant intermédiaire. Il nécessite donc un composant d'entrée et de sortie.

Scénario : Extraire la structure d'un fichier XML et l'insérer dans les champs d'une base de données

Ce scénario est composé de trois composants et permet de lire un fichier XML, d'en extraire la structure puis de transmettre cette structure dans les champs d'une table.

  1. Glissez les composants tFileInputXml et tWriteXMLField de la famille Xml et un composant tMysqlOutput de la famille Database > Mysql de la Palette dans l'espace de modélisation graphique.

    Reliez ces composants via des liens de type Row > Main.

  2. Double-cliquez sur le composant tFileInputXml pour paramétrer ses propriétés dans l'onglet Basic settings.

  3. Dans la liste déroulante Property type, sélectionnez l'option Repository si la description de votre fichier est stockée dans une métadonnée du Repository. Si vous cliquez-déposez le composant directement à partir de la métadonnée, vous n'aurez pas besoin de modifier ses propriétés.

    Pour plus d'informations concernant le stockage des métadonnées dans la vue Repository consultez le Guide utilisateur du Studio Talend.

  4. Sinon, sélectionnez l'option Built-in et renseignez manuellement les champs suivants. Pour plus d'informations sur les propriétés du composant tFileInputXML, consultez tFileInputXML.

    Si vous avez sélectionné l'option Built-in, cliquez sur le bouton [...] à côté du champ Edit schema puis dans la boîte de dialogue, décrivez manuellement la structure de votre fichier.

  5. Dans le champ Look Xpath query, saisissez sur quel nœud du fichier la boucle doit être effectuée. Pour ce scénario, la boucle est effectuée sur le nœud customer. La colonne Column du tableau Mapping sera automatiquement renseignée avec la description du fichier que vous avez configuré.

    Dans la colonne Xpath query, saisissez entre guillemet le nœud du fichier XML contenant les données correspondant à la colonne de gauche.

  6. Cliquez sur le composant tWriteXMLField dans le Job designer puis cliquez sur la vue Component pour l'afficher et paramétrer les propriétés du composant :

  7. Cliquez sur le bouton [...] à côté du champ Edit schema et, dans la boîte de dialogue, ajoutez une ligne en cliquant sur le bouton [+].

  8. Dans cette ligne, saisissez le nom de la colonne de votre flux de sortie que vous souhaitez renseigner avec la structure du fichier XML dans la zone de droite, CustomerDetails dans ce scénario.

    Dans la colonne Type de cette ligne, indiquez qu'elle est de type String et dans la colonne Length, indiquez qu'elle est de longueur 255.

    Cliquez sur OK pour valider votre schéma de sortie et retourner aux propriétés du composant.

    Dans le champ Output Column, sélectionnez la colonne dans laquelle vous souhaitez insérer le contenu XML.

  9. Cliquez sur le bouton [...] du champ Configure Xml Tree pour ouvrir l'interface d'aide à la création de structures XML.

  10. Dans la zone Link Target, cliquez sur le nœud rootTag et renommez-le CustomerDetails.

    Dans la zone Linker source, sélectionnez CustomerName et CustomerAddress et glissez-les sur le nœud CustomerDetails. Une boîte de dialogue s'ouvre vous demandant quel type d'action vous souhaitez effectuer.

    Sélectionnez Create as sub-element of target node afin de créer des sous-éléments au nœud CustomerDetails.

    Cliquez-droit sur l'élément CustomerName et sélectionnez l'option Set As Loop Element dans le menu.

    Cliquez sur OK pour valider la structure XML que vous avez définie.

  11. Dans le Job designer, double-cliquez sur le composant tMysqlOutput pour paramétrer ses propriétés dans l'onglet Basic settings.

  12. Si votre schéma est déjà stocké sous le nœud Db Connections dans le Repository, sélectionnez l'option Repository dans le champ Schema puis choisissez les métadonnées appropriées à partir de la liste.

    Pour plus d'informations concernant le stockage des métadonnées dans la vue Repository consultez le Guide utilisateur du Studio Talend.

    Si vous n'avez encore défini aucun schéma, sélectionnez l'option Built-in et renseignez manuellement les informations de connexion et la structure des données dans un schéma. Pour plus d'informations sur les propriétés du composant tMysqlOutput, consultez tMysqlSCD.

    Dans le champ Table, saisissez le nom de la table dont les champs contiendront les données XML.

    Dans le champ Action on table, sélectionnez l'opération que vous souhaitez effectuer sur la table. Pour ce scénario, sélectionnez Create table pour créer la table.

    Dans le champ Action on data, sélectionnez l'opération que vous souhaitez effectuer sur les données. Pour ce scénario, laissez l'option Insert.

    Cliquez sur le bouton Sync columns pour récupérer le schéma du composant précédent. Vous pouvez cliquer sur le bouton [...] à côté du champ Edit schema pour consulter le schéma.

  13. Enregistrez le Job et appuyez sur F6 pour l'exécuter.

Chaque champ de la colonne CustomerDetails est renseignée avec la structure XML du fichier de départ : l'instruction de traitement XML <?xml version=""1.0"" encoding=""ISO-8859-15""?>, le premier nœud séparant chaque client <CustomerDetails> et les informations sur les clients <CustomerAddress> et <CustomerName>.