tFileInputMSXML - 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 tFileInputMSXML

Famille du composant

XML ou File/Input

 

Fonction

Le composant tFileInputMSXML permet de lire des schémas multiples à partir d'un fichier XML structuré et de les restituer en sortie.

Objectif

Le tFileInputMSXML ouvre le fichier multi structure complexe, en lit la structure (schémas) puis utilise des liens de type Row pour envoyer les champs, tels qu'ils ont été définis dans les différents schémas, vers les composants suivants dans le Job.

Basic settings

File Name

Chemin d'accès et nom du fichier, et/ou variable à traiter.

Pour plus d'informations concernant l'utilisation et la définition de variables, consultez le Guide utilisateur du Studio Talend.

 

Root XPath query

Racine de l'arborescence XML sur laquelle se base la requête.

 

Enable XPath in column "Schema XPath loop" but lose the order

Cochez cette case si vous souhaitez définir un chemin XPath dans le champ Schema XPath loop du tableau Outputs sans garder l'ordre des données montrées dans le fichier XML source.

Avertissement

Cette option ne prend effet que si vous sélectionnez le mode de génération dom4j dans la vue Advanced settings.

 

Outputs

Schema : Définissez autant de schémas que nécessaire.

Schema XPath loop : Saisissez le nœud ou le chemin XPath de l'arborescence XML sur lequel la boucle est basée.

XPath Queries : Renseignez les champs à extraire de la structure XML d'entrée.

Create empty row : Cochez cette case si vous souhaitez créer des lignes vides pour le(s) champ(s) vide(s) du schéma.

 

Die on error

Cette case est cochée par défaut et stoppe le Job en cas d'erreur. Décochez cette case pour terminer le traitement avec les lignes sans erreurs, et ignorer les lignes en erreur.

Advanced settings

Trim all column

Cochez cette case pour supprimer les espaces en début et en fin de champ dans toutes les colonnes.

 

Validate date

Cochez cette case pour vérifier strictement le format de la date par rapport au schéma d'entrée.

 Ignore DTD fileCochez cette case afin d'ignorer le fichier DTD indiqué dans le fichier XML traité.

 

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 métadonnées de process du Job, aussi bien au niveau du Job qu'au niveau de chaque composant.

Global Variables

NB_LINE : nombre de lignes traitées. Cette variable est une variable After et retourne un entier.

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.

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.

Log4j

Si vous utilisez une solution Talend soumise à souscription, l'activité de ce composant peut être journalisée avec la fonctionnalité log4j. Pour plus d'informations sur cette fonctionnalité, consultez le Guide utilisateur du Studio Talend.

Pour plus d'informations sur les niveaux de logs du log4j, consultez la documentation d'Apache : http://logging.apache.org/log4j/1.2/apidocs/org/apache/log4j/Level.html (en anglais).

Scénario : Lecture d'un fichier XML multi-structuré

Le présent scénario décrit un Job permettant de lire un fichier XML multi-structuré, d'en extraire les champs désirés et de les afficher dans la console.

Construire le Job

  1. Déposez un tFileInputMSXML de la Palette dans l'espace de modélisation graphique et double-cliquez sur le composant afin d'ouvrir sa vue Basic settings dans l'onglet Component.

  2. Parcourez votre système jusqu'au fichier XML que vous souhaitez traiter, D:/Input/multischema_xml.xml dans cet exemple. Ce fichier qui contient les données suivantes :

    <root>
            <toy>Cat</toy>
            <record>We Belong Together</record>
            <book>As You Like It</book>
            <book>All's Well That Ends Well</book>
            <record>When You Believe</record>
            <toy>Dog</toy>
    </root>
  3. Dans le champ Root XPath query, indiquez la racine de l'arborescence XML sur laquelle sera basée la requête, "/root" dans cet exemple.

  4. Cochez la case Enable XPath in column "Schema XPath loop" But lose the order.

    Dans cet exemple, afin d'extraire les champs voulus, vous devez définir un chemin XPath dans le champ Schema XPath loop du tableau Outputs pour chaque flux de sortie sans que l'ordre des données montrées dans le fichier XML source ne soit gardé.

  5. Cliquez sur le bouton [+] pour ajouter des lignes au tableau Outputs dans lesquelles vous pouvez définir les schémas de sortie, record et book dans cet exemple.

  6. Dans le tableau Outputs, cliquez dans chaque cellule Schema et cliquez sur le bouton [...] pour saisir le nom du schéma dans la boîte de dialogue qui s'ouvre.

    Saisissez un nom pour le schéma de sortie et cliquez sur OK afin de fermer la boîte de dialogue.

  7. L'éditeur de schéma du tFileInputMSXML s'affiche.

    Définissez le schéma selon vos besoins.

  8. Effectuez cette procédure afin de définir le schéma de sortie record.

  9. Dans la cellule Schema XPath loop, indiquez le nœud de l'arborescence XML sur laquelle sera basée la requête. Dans cet exemple, saisissez "/book" et "/record" respectivement.

  10. Dans la cellule XPath Queries, indiquez les champs à extraire du fichier XML d'entrée. Dans cet exemple, saisissez la requête XPath ".".

  11. Dans l'espace de modélisation graphique, déposez deux tLogRow de la Palette et reliez le tFileInputMSXML au tLogRow1 et au tLogRow2 à l'aide des liens book et record respectivement.

    Renommez les deux composants tLogRow book et record respectivement.

Sauvegarder et exécuter le Job

  1. Appuyez sur Ctrl+S pour sauvegarder votre Job.

  2. Appuyez sur F6 ou cliquez sur Run dans l'onglet Run afin d'exécuter le Job.

    Le fichier XML multi-structuré est lu ligne par ligne et les champs extraits s'affichent dans la console. Les deux premiers champs sont pour le schéma book et les deux autres pour le schéma record.