Read From XML

Le stage Read from XML stage lit un fichier XML dans un job ou un sous-flux. Il définit le chemin du fichier et le format de données, y compris un schéma XML et les détails des éléments de données.

Les éléments XML simples sont convertis en champs texte et transmis au stage suivant. Les données XML simples sont des enregistrements composés d'éléments XML qui contiennent uniquement des données et pas d'élément enfant. Voici un exemple de fichier de données XML simple :

<customers>
    <customer>
        <name>Sam</name>
        <gender>M</gender>
        <age>43</age>
        <country>United States</country>
    </customer>
    <customer>
        <name>Jeff</name>
        <gender>M</gender>
        <age>32</age>
        <country>Canada</country>
    </customer>
    <customer>
        <name>Mary</name>
        <gender>F</gender>
        <age>61</age>
        <country>Australia</country>
    </customer>
</customers>

Notez que, dans cet exemple, chaque enregistrement contient des éléments XML simples, tels que <name>, <gender>, <age> et <country>. Aucun des éléments ne contient d'éléments enfant.

Le stage Read from XML simplifie automatiquement les données simples de ce genre car la plupart des stages exigent que les données soient au format texte. Si vous souhaitez préserver la structure hiérarchique, utilisez un stage Aggregator après Read from XML pour convertir les données en données hiérarchiques.

Les éléments XML complexes restent au format hiérarchique et sont transmis en tant que champ de liste. Cependant, de nombreux stages requièrent des données au format plat, vous devrez donc simplifier des éléments XML complexes afin de les rendre utilisables par les stages en aval. Pour plus d'informations, reportez-vous à la section Simplification des éléments XML complexes.

Remarque : Read From XML ne prend pas en charge les types XML xs:anyType ni xs:anySimpleType.

Onglet de propriétés du fichier

Tableau 1. Onglet de propriétés du fichier

Nom de l'option

Description

Fichier de Schéma

Indique le chemin du fichier de schéma XSD. Cliquez sur le bouton de sélection (...) pour trouver le fichier souhaité. Notez que le fichier de schéma doit être sur le serveur pour que le fichier de données soit validé par rapport au schéma. Si le fichier de schéma n'est pas sur le serveur, la validation est désactivée.

Sinon, vous pouvez spécifier un fichier XML au lieu d'un fichier XSD. Si vous spécifiez un fichier XML, le schéma est inféré en fonction de la structure du fichier XML. Utiliser un fichier XML au lieu d'un fichier XSD présente les limites suivantes :

  • Le fichier XML ne peut pas être supérieur à 1 Mo. Si la taille du fichier XML est supérieure à 1 Mo, essayez d'enlever quelques données en maintenant la structure du fichier XML.
  • Le fichier de données ne sera pas validé en fonction du schéma déduit.
Remarque : Si le Spectrum™ Technology Platform est en cours d'exécution sur les systèmes Unix ou Linux, rappelez-vous que les noms de fichiers et les chemins sur ces plates-formes sont sensibles à la casse.

Fichier de données

Indique le chemin du fichier de données XML. Cliquez sur le bouton de sélection (...) pour trouver le fichier souhaité.

Remarque : Si le Spectrum™ Technology Platform est en cours d'exécution sur les systèmes Unix ou Linux, rappelez-vous que les noms de fichiers et les chemins sur ces plates-formes sont sensibles à la casse.

Aperçu

Affiche un aperçu du fichier de schéma ou XML. Lorsque vous spécifiez un fichier XSD, la structure d'arborescence reflète le XSD sélectionné. Une fois que vous indiquez un fichier de schéma et un fichier de données, vous pouvez cliquer sur les éléments de schéma en gras pour voir un aperçu des données que l'élément contient.

Onglet Champs

Tableau 2. Onglet Champs

Nom de l'option

Description

Filtre

Filtre la liste des éléments et des attributs pour faciliter la navigation. Le filtre n'a aucun impact sur les champs qui sont inclus dans la sortie. Il filtre uniquement la liste des éléments et des attributs pour faciliter la navigation.

XPath

La colonne XPath affiche l'expression XPath pour l'élément ou l'attribut. Elle est affichée à titre indicatif. Pour plus d'informations sur XPath, consultez cette page.

Champ

Le nom sera utilisé dans le dataflow pour l'élément ou l'attribut. Pour modifier le nom du champ, double-cliquez dessus et entrez le nom du champ souhaité.

Type

Le type de données à utiliser pour le champ.

bigdecimal
Type de données numérique prenant en charge 38 points de précision décimaux. Utilisez ce type de données pour les données utilisées dans les calculs mathématiques requérant un haut niveau de précision, en particulier ceux impliquant des données financières. Le type de données bigdecimal prend en charge des calculs plus précis que le type de données double.
booléen
Type logique doté de deux valeurs : True et False.
date
Type de données contenant un mois, un jour et une année. Le format des dates doit être aaaa-MM-jj. Par exemple, 2012-01-30.
datetime
Type de données contenant un mois, un jour, une année et des heures, des minutes et des secondes. Le format de datetime doit être aaaa-MM-jj'T'HH:mm:ss. Par exemple, 2012-01-30T06:15:30
double
Un type de données numérique qui contient à la fois des nombres en double précision négatifs et positifs entre 2-1074 et (2-2-52)×21023. En notation E, la plage de valeurs est comprise entre -1.79769313486232E+308 et 1.79769313486232E+308.
flottant
Un type de données numérique contenant des nombres de précision seuls négatifs et positifs entre 2-149 et (2-223)×2127. En notation E, la plage de valeurs est comprise entre -3.402823E+38 et 3.402823E+38.
integer
Un type de données numériques qui contient à la fois des nombres entiers négatifs et positifs entre -231 (-2,147,483,648) et 231-1 (2,147,483,647).
liste
Au sens strict du terme, une liste n'est pas un type de données. Cependant, lorsqu'un champ contient des données hiérarchiques, il est traité comme un champ de « liste ». Dans Spectrum™ Technology Platform, une liste représente un ensemble de données composées de plusieurs valeurs. Par exemple, un champ Noms peut contenir une liste de valeurs de noms. Cela peut être représenté sous forme d'une structure XML, comme suit :
<Names>
    <Name>John Smith</Name>
    <Name>Ann Fowler</Name>
</Names>
Il est important de souligner que le type de données de liste Spectrum™ Technology Platform est différent du type de données de liste de schéma XML dans le sens où ce dernier est un type de données simple composé de plusieurs valeurs, tandis que le type de données de liste Spectrum™ Technology Platform est semblable à un type de données complexe XML.
long
Un type de données numériques qui contient à la fois des nombres entiers négatifs et positifs entre -263 (-9,223,372,036,854,775,808) et 263-1 (9,223,372,036,854,775,807).
chaîne
Séquence de caractères.
time
Type de données contenant l'heure du jour. Le format de temps doit être HH:mm:ss. Par exemple, 21:15:59.

Include

Indique si ce champ doit être disponible dans le dataflow ou s'il faut l'exclure.

Exemple : fichier XML simple

Dans cet exemple, vous voulez lire le fichier suivant dans un dataflow :

<addresses>
    <address>
        <addressline1>One Global View</addressline1>
        <city>Troy</city>
        <state>NY</state>
        <postalcode>12128</postalcode>
    </address>
    <address>
        <addressline1>1825B Kramer Lane</addressline1>
        <city>Austin</city>
        <state>TX</state>
        <postalcode>78758</postalcode>
    </address>
</addresses>

Dans cet exemple, vous pouvez choisir d'inclure <addressline1>, <city>, <state> et <postalcode>. Un enregistrement est alors créé pour chaque élément <address>, car <address> est l'élément parent commun de <addressline1>, <city>, <state> et de <postalcode>.