Simplification des éléments XML complexes

La plupart des stages dans un flux de données exigent que les données soient au format plat. Cela signifie que lorsque vous lisez des données hiérarchiques à partir d'un fichier XML dans un flux de données, vous devrez les aplatir si les données contiennent des éléments XML complexes. Un élément XML complexe est un élément qui contient d'autres éléments ou attributs. Par exemple, dans le fichier de données suivant, les éléments <address> et the<account> sont des éléments XML complexes :

<customers>
    <customer>
        <name>Sam</name>
        <gender>M</gender>
        <age>43</age>
        <country>United States</country>
        <address>
            <addressline1>1253 Summer St.</addressline1>
            <city>Boston</city>
            <stateprovince>MA</stateprovince>
            <postalcode>02110</postalcode>
        </address>
        <account>
            <type>Savings</type>
            <number>019922</number>
        </account>
    </customer>
    <customer>
        <name>Jeff</name>
        <gender>M</gender>
        <age>32</age>
        <country>Canada</country>
        <address>
            <addressline1>26 Wellington St.</addressline1>
            <city>Toronto</city>
            <stateprovince>ON</stateprovince>
            <postalcode>M5E 1S2</postalcode>
        </address>
        <account>
            <type>Checking</type>
            <number>238832</number>
        </account>
    </customer>
    <customer>
        <name>Mary</name>
        <gender>F</gender>
        <age>61</age>
        <country>Australia</country>
        <address>
            <addressline1>Level 7, 1 Elizabeth Plaza</addressline1>
            <city>North Sydney</city>
            <stateprovince>NSW</stateprovince>
            <postalcode>2060</postalcode>
        </address>
        <account>
            <type>Savings</type>
            <number>839938</number>
        </account>
    </customer>
</customers>

La procédure suivante indique comment utiliser les stages Splitter pour simplifier des données XML contenant plusieurs éléments XML complexes.

Remarque : Si vos données contiennent un seul élément XML complexe, vous pouvez utiliser un stage Splitter unique pour simplifier les données en associant simplement le stage Read from XML au stage Splitter. Vous ne devez pas utiliser les stages Broadcaster et Record Combiner, décrits dans cette procédure pour les fichiers de données contenant un élément XML complexe unique.
  1. Ajoutez un stage Read from XML à votre flux de données et configurez le stage. Pour plus d'informations, reportez-vous à la section Read From XML.
  2. Ajoutez un stage Broadcaster et associez-lui le stage Read from XML.
  3. Ajoutez un stage Splitter pour chaque élément XML complexe dans vos données.
  4. Associez le stage Broadcaster à chaque stage Splitter.
  5. Ajoutez un stage Record Combiner et associez-lui chaque stage Splitter.

    Votre flux de données doit désormais ressembler à ce qui suit :

  6. Double-cliquez sur le premier stage Splitter pour ouvrir les options correspondantes.
  7. Dans le champ Split at, sélectionnez un des champs complexes. Dans le fichier de données d'exemple ci-dessus, il pourrait s'agir du champ d'adresse.
  8. Cliquez sur OK.
  9. Configurez chaque stage Splitter supplémentaire en sélectionnant un autre élément XML complexe dans le champ Split at de chaque stage Splitter.

Le flux de données est alors configuré afin de prendre l'entrée XML contenant les enregistrements dotés d'éléments XML complexes et de simplifier les données. Les enregistrements résultant du stage Record Combiner peuvent être envoyés à tout stage exigeant des données texte. Par exemple, vous pouvez joindre le stage Record Combiner à un stage Validate Address pour la validation d'adresse.