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