フラット データからの複合 XML の作成

多くの場合、データフローは、単純 XML 要素として XML に書き出されるフラット フィールドを含むレコードを生成します。フラット フィールドを複合 XML 要素に構成して階層データを生成する場合は、1 つ以上の Aggregator ステージを使用してこれを行うことができます。

例えば、先頭行がヘッダ レコードである次のフラット データがあるとします。

addressline1,age,city,country,gender,name,number,postalcode,stateprovince,type
1253 Summer St.,43,Boston,United States,M,Sam,019922,02110,MA,Savings

以下に示すように、住所に関連するデータ フィールドと、アカウントに関連するフィールドを、<Address> および <Account> という複合 XML 要素にグループ化できます。

<CustomerRecord>
        <name>Sam</name>
        <age>43</age>
        <gender>M</gender>
        <country>United States</country>
        <Address>
            <addressline1>1253 Summer St.</addressline1>
            <city>Boston</city>
            <stateprovince>MA</stateprovince>
            <postalcode>02110</postalcode>
        </Address>
        <Account>
            <number>019922</number>
            <type>Savings</type>
        </Account>
</CustomerRecord>
  1. 複合要素を作成するデータフロー内の位置に Aggregator ステージを追加します。
  2. Aggregator ステージをダブルクリックして、ステージのオプション を開きます。
  3. [グループ化方法] を選択し、[追加] をクリックします。
  4. アカウント番号など、各レコードに対して一意の値を含むフィールドを選択して、[OK] をクリックします。
  5. 他の単純フィールドも通過させる場合は、[グループ化方法] を選択し、再度 [追加] をクリックして、含める単純フィールドをすべて追加します。

    例えば、この場合は、各レコードに 5 つの単純フィールド number、name、age、gender、および country があります。

  6. [出力リスト] を選択し、[追加] をクリックします。
  7. [新しいデータ タイプ] を選択します。これによって、新しい複合要素が定義されます。この複合要素が含むデータの種類の説明を入力します。例えば、複合 XML 要素を作成しているので、"Complex" と入力することができます。データ タイプは、任意の名前にすることができます。
  8. [名前] フィールドに、フィールドに対して使用する名前を入力します。これが XML 要素名にもなります。
  9. [OK] をクリックします。
  10. 作成したフィールドを選択し、[追加] をクリックします。
  11. [既存フィールド] がオンの状態で、子フィールドとして複合要素に追加するフィールドを選択し、[OK] をクリックします。
  12. 前の 2 つのステップを繰り返して、その他のフィールドを複合要素に追加します。
  13. 必要に応じて、その他の複合フィールドを追加します。

    完了したら、各レコードに含める各単純フィールドおよび複合フィールドを一覧表示する Aggregator ステージができているはずです。例:

  14. [OK] をクリックします。