Abflachen von komplexen XML-Elementen

Für die meisten Schritte in einem Datenfluss müssen die Daten in einem flachen Format vorliegen. Wenn Sie also hierarchische Daten aus einer XML-Datei in einen Datenfluss einlesen, müssen Sie diese abflachen, wenn die Daten komplexe XML-Elemente enthalten. Ein komplexes XML-Element ist ein Element, das andere Elemente oder Attribute enthält. In der folgenden Datendatei sind beispielsweise die Elemente <address> und <account> komplexe XML-Elemente:

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

Die folgenden Schritte beschreiben, wie Sie Splitter-Schritte verwenden, um XML-Daten abzuflachen, die mehrere komplexe XML-Elemente enthalten.

Anmerkung: Wenn Ihre Daten ein einzelnes komplexes XML-Element enthalten, können Sie einen einzelnen Splitter-Schritt verwenden, um die Daten abzuflachen, indem Sie einfach den „Read from XML“-Schritt mit dem Splitter-Schritt verbinden. Bei Datendateien, die ein einzelnes komplexes XML-Element enthalten, müssen Sie die Schritte „Broadcaster“ und „Record Combiner“ abweichend von der hier beschriebenen Prozedur nicht verwenden.
  1. Fügen Sie Ihrem Datenfluss einen „Read from XML“-Schritt hinzu und konfigurieren Sie ihn. Weitere Informationen finden Sie unter Read from XML.
  2. Fügen Sie einen „Broadcaster“-Schritt hinzu und verbinden Sie ihn mit dem „Read from XML“-Schritt.
  3. Fügen Sie für jedes komplexe XML-Element in Ihren Daten einen Splitter-Schritt hinzu.
  4. Verbinden Sie den „Broadcaster“-Schritt mit jedem Splitter-Schritt.
  5. Fügen Sie einen „Record Combiner“-Schritt hinzu und verbinden Sie ihn mit jedem Splitter-Schritt.

    Sie sollten nun einen Datenfluss haben, der wie folgt aussieht:

  6. Doppelklicken Sie auf den ersten Splitter-Schritt, um die Schrittoptionen zu öffnen.
  7. Wählen Sie im Feld Unterteilen bei eins der komplexen Felder aus. Im obigen Beispiel könnte das das Adressenfeld sein.
  8. Klicken Sie auf OK.
  9. Konfigurieren Sie jeden zusätzlichen Splitter-Schritt. Wählen Sie im Feld Unterteilen bei jedes einzelnen Splitter-Schrittes ein anderes komplexes XML-Element aus.

Der Datenfluss ist nun konfiguriert, eine XML-Eingabe zu akzeptieren, die Datensätze mit komplexen XML-Elementen enthält, und die Daten abzuflachen. Die aus dem „Record Combiner“-Schritt resultierenden Datensätze können zu jedem Schritt gesendet werden, der flache Daten erfordert. Sie können beispielsweise den „Record Combiner“-Schritt zur Adressenüberprüfung mit einem „Validate Address“-Schritt verbinden.