複合 XML 要素のフラット化
データフローのほとんどのステージで、フラット形式のデータが必要とされます。つまり、XML ファイルの階層データをデータフローに読み込む場合に、データに複合 XML 要素が含まれているときは、データをフラット化する必要があります。複合 XML 要素は、他の要素または属性を含む要素です。例えば、次のデータ ファイルでは、<address>
要素と<account>
要素は複合 XML 要素です。
<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>
次の手順は、Splitter ステージを使用して、複数の複合 XML 要素を含む XML データをフラット化する方法を説明したものです。
注: データに 1 つの複合 XML 要素が含まれる場合は、1 つの Splitter ステージを使用して、Read from XML ステージを Splitter ステージに接続するだけで、データをフラット化できます。1 つの複合 XML 要素を含むデータ ファイルに対しては、この手順で説明するように Broadcaster ステージと Record Combiner ステージを使用する必要はありません。
データ フローは、複合 XML 要素を持つレコードを含む XML 入力を受け入れ、データをフラット化するように設定されました。Record Combiner から生成されるレコードは、フラット データを必要とするすべてのステージに送ることができます。例えば、Record Combiner ステージを Validate Address ステージに接続して、住所を検証できます。