tXSDValidator

Composants Talend Open Studio Guide de référence

EnrichVersion
6.3
EnrichProdName
Talend Open Studio for Data Quality
Talend Open Studio for Big Data
Talend Open Studio for ESB
Talend Open Studio for MDM
Talend Open Studio for Data Integration
task
Gouvernance de données
Qualité et préparation de données
Création et développement
EnrichPlatform
Studio Talend

Fonction

Le composant tXSDValidator valide un fichier XML ou un flux XML entrant en fonction d'un fichier XSD et envoie les informations de validation à la sortie définie.

Objectif

Ce composant permet de vérifier la qualité et la structure des données du fichier ou du flux à traiter.

Propriétés du tXSDValidator

Famille du composant

XML

 

Basic settings

Mode

Sélectionnez le mode de validation dans la liste déroulante :

-File Mode pour valider un fichier d'entrée,

-Flow Mode pour valider un flux d'entrée.

 

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.

Notez que, lorsque le mode sélectionné est File Mode, le schéma de ce composant est en lecture seule et contient les informations standard de validation de fichier.

 

XSD file

Spécifiez le chemin d'accès au fichier XSD de référence. Les URL HTTP sont également supportées, par exemple http://localhost:8080/book.xsd.

Ce champ est disponible uniquement lorsque l'option File Mode est sélectionnée dans la liste Mode.

 

XML file

Spécifiez le chemin d'accès au fichier XML à valider.

Ce champ est disponible uniquement lorsque l'option File Mode est sélectionnée dans la liste Mode.

 

If XML is valid, display

Saisissez le message à afficher dans la console si le fichier XML est valide.

Ce champ est disponible uniquement lorsque l'option File Mode est sélectionnée dans la liste Mode.

 

If XML is invalid, display

Saisissez le message à afficher dans la console si le fichier XML est invalide.

Ce champ est disponible uniquement lorsque l'option File Mode est sélectionnée dans la liste Mode.

 

Print to console

Cochez cette case pour afficher le message de validation dans la console.

Ce champ est disponible uniquement lorsque l'option File Mode est sélectionnée dans la liste Mode.

 

Allocate

Cliquez sur le bouton [+] pour ajouter autant de lignes que nécessaire et, dans chaque ligne, spécifiez la valeur des colonnes suivantes.

  • Input Column : cliquez dans la cellule et sélectionnez une colonne à valider.

  • XSD File : saisissez le chemin d'accès au fichier XSD de référence.

Ce champ est disponible uniquement lorsque l'option File Mode est sélectionnée dans la liste Mode.

Advanced settings

Enable Features

Cliquez sur le bouton [+] pour ajouter autant de lignes que nécessaire, et, dans chaque ligne, saisissez la Feature à activer dans le parseur sous-jacent, entre guillemets doubles, par exemple, "http://apache.org/xml/features/honour-all-schemaLocations".

Pour plus d'informations concernant les Features, consultez https://xerces.apache.org/xerces2-j/features.html (en anglais).

 

Encoding

Saisissez, entre guillemets doubles, le type d'encodage.

tStatCatcher Statistics

Cochez cette case pour collecter les métadonnées de traitement du Job, aussi bien au niveau du Job qu'au niveau de chaque 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.

DIFFERENCE : résultat de la validation. Cette variable est une variable Flow et retourne une chaîne de caractères.

VALID : résultat de la validation. Cette variable est une variable Flow et retourne un booléen.

XSD_ERROR_MESSAGE : message d'erreur XSD généré par le composant. Cette variable est une variable Flow et retourne une chaîne de caractères.

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

Lorsque le mode sélectionné est File Mode, ce composant peut être utilisé en standalone mais il est généralement connecté à un composant de sortie pour rassembler les informations de validation.

Scénario : Valider des flux de données par rapport à un fichier XSD

Ce scénario décrit un Job qui valide une colonne XML dans le fichier d'entrée ShipOrder.csv par rapport au fichier XSD de référence ShipOrder.xsd, écrit les lignes valides dans le fichier délimité ShipOrder_Valid.csv et les lignes invalides ainsi que les messages d'erreur dans le fichier délimité ShipOrder_Invalid.csv.

Pour un exemple similaire d'utilisation validant un fichier XML, consultez Scénario : Valider un fichier XML.

Le contenu du fichier d'entrée ShipOrder.csv comprenant la colonne XML ShipOrder à valider se présente comme suit :

ID;ShipOrder
000001;<shiporder orderid="000001"><orderperson>George Bush</orderperson><shipto><name>John Adams</name><address>Oxford Street</address></shipto><item><title>Empire Burlesque</title><note>Special Edition</note><quantity>1</quantity><price>10.90</price></item></shiporder>
000002;<shiporder orderid="000002"><orderperson>Judy Liu</orderperson><shipto><name>Jack Liu</name><address>Wangfujing Street</address></shipto><item><title>Hide Your Heart</title><quantity>1</quantity><price>9.90</price></item></shiporder>
000003;<shiporder><orderperson>Peter Qian</orderperson><shipto><name>Thomas Wang</name><address>Wangfujing Street</address></shipto><item><title>The Power of Habit</title><quantity>1</quantity><price>8.99</price></item></shiporder>

Le contenu du fichier XSD de référence ShipOrder.xsd se présente comme suit :

<?xml version="1.0" encoding="ISO-8859-1" ?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
 <xs:element name="shiporder">
  <xs:complexType>
   <xs:sequence>
    <xs:element name="orderperson" type="xs:string"/>
    <xs:element name="shipto">
     <xs:complexType>
      <xs:sequence>
       <xs:element name="name" type="xs:string"/>
       <xs:element name="address" type="xs:string"/>
      </xs:sequence>
     </xs:complexType>
    </xs:element>
    <xs:element name="item" maxOccurs="unbounded">
     <xs:complexType>
      <xs:sequence>
       <xs:element name="title" type="xs:string"/>
       <xs:element name="note" type="xs:string" minOccurs="0"/>
       <xs:element name="quantity" type="xs:positiveInteger"/>
       <xs:element name="price" type="xs:decimal"/>
      </xs:sequence>
     </xs:complexType>
    </xs:element>
   </xs:sequence>
   <xs:attribute name="orderid" type="xs:string" use="required"/>
  </xs:complexType>
 </xs:element>
</xs:schema>

Construire le Job

  1. Créez un nouveau Job et ajoutez un composant tFileInputDelimited, un tXSDValidator et deux tFileOutputDelimited en saisissant leur nom dans l'espace de modélisation graphique ou en les déposant depuis la Palette.

  2. Double-cliquez sur le composant tXSDValidator pour ouvrir sa vue Basic settings et sélectionnez Flow Mode dans la liste déroulante Mode.

  3. Reliez le tFileInputDelimited au tXSDValidator à l'aide d'un lien Row > Main.

  4. Reliez le tXSDValidator au premier tFileOutputDelimited à l'aide d'un lien Row > Main pour écrire en sortie les lignes valides.

  5. Reliez le tXSDValidator au second tFileOutputDelimited à l'aide d'un lien Row > Rejects pour écrire en sortie les lignes invalides.

Configuration des composants

  1. Double-cliquez sur le tFileInputDelimited pour ouvrir sa vue Component.

  2. Dans le champ File name/Stream, spécifiez le chemin d'accès au fichier d'entrée. Dans cet exemple, le fichier d'entrée est E:/ShipOrder.csv.

    Dans le champ Header, saisissez 1 pour ignorer la première ligne (l'en-tête) du fichier d'entrée.

    Cliquez sur le bouton [...] à côté du champ Edit schema et définissez le schéma en ajoutant deux colonnes ID et ShipOrder de type String.

  3. Double-cliquez sur le composant tXSDValidator pour ouvrir sa vue Component.

  4. Cliquez sur le bouton Sync columns afin de récupérer le schéma du composant tFileInputDelimited précédent et, dans la boîte de dialogue qui s'ouvre, cliquez sur Yes pour propager le schéma aux deux composants tFileOutputDelimited.

    Ajoutez une ligne à la table Allocate en cliquant sur le bouton [+]. Cliquez dans la cellule de la colonne Input Column et sélectionnez la colonne XML ShipOrder à valider. Dans la colonne XSD File, saisissez le chemin d'accès au fichier XSD de référence, E:/ShipOrder.xsd dans cet exemple.

  5. Double-cliquez sur le premier tFileOutputDelimited pour ouvrir sa vue Component.

  6. Dans le champ File Name, spécifiez le chemin d'accès au fichier de sortie qui stockera les lignes valides. Dans cet exemple, le fichier est E:/ShipOrder_Valid.csv.

    Cochez la case Include Header pour inclure les en-têtes de colonnes dans le fichier de sortie.

  7. Double-cliquez sur le second tFileOutputDelimited pour ouvrir sa vue Component.

  8. Cliquez sur le bouton [...] à côté du champ Edit schema pour voir son schéma.

    Vous pouvez voir qu'une colonne supplémentaire errorMessage contenant les informations d'erreur pour les lignes invalides est ajoutée automatiquement au schéma, en plus des deux colonnes propagées.

  9. Dans le champ File Name, spécifiez le chemin d'accès au fichier de sortie qui va stocker les lignes invalides et les messages d'erreur. Dans cet exemple, le fichier est E:/ShipOrder_Invalid.csv.

    Cochez la case Include Header pour inclure les colonnes d'en-tête dans le fichier de sortie.

Sauvegarder et exécuter le Job

  1. Appuyez sur les touches Ctrl+S afin de sauvegarder le Job.

  2. Appuyez sur F6 pour exécuter le Job.