複数のループエレメントを使って製品データを再構築
次のシナリオでは、複数のループエレメントを使ってProductsIn.xmlというXMLソースファイルから製品データを再構築する4コンポーネントのジョブを作成し、ProductsOut.xmlというXMLファイルに書き込みます。
以下が4つのコンポーネントです。
-
tFileInputXML: ソース製品データを読み取り、それをtXMLMapコンポーネントに渡します。
-
tXMLMap: 入力フローを合理化された予想されるストラクチャーに変換します。
-
tLogRow: 実行結果をコンソール上に提供します。
-
tFileOutputXML: 出力フローをXMLファイルに書き込みます。
ソースXMLファイルProductsIn.xmlのコンテンツは以下のとおりです。
<?xml version="1.0" encoding="ISO-8859-15"?>
<products category="1" name="laptop">
<!-- Summary -->
<summary>
<company>DELL, HP</company>
<sales unit="Dollars">12345678910.12345</sales>
<model>business</model>
</summary>
<!-- Loop1 manufacturer -->
<manufacturer id="manu_1" date="2012-10-30">
<name>DELL</name>
</manufacturer>
<manufacturer id="manu_2" date="2012-10-28">
<name>HP</name>
</manufacturer>
<!-- Loop2 types -->
<types model="business1">
<type>DELL123</type>
<manufacturer_id>manu_1</manufacturer_id>
</types>
<types model="business2">
<type>HP123</type>
<manufacturer_id>manu_2</manufacturer_id>
</types>
<!-- Loop3 sale -->
<sales>
<sale unit="Dollars" type="DELL123">
<quater>1</quater>
<income>12345</income>
</sale>
<sale unit="Dollars" type="HP123">
<quater>1</quater>
<income>12345.123</income>
</sale>
</sales>
</products>
このシナリオの目的は、製品データを再構築して、製造業務に役立つ製品情報のプレゼンテーションを合理化することです。予想される出力データは次のとおりです。ルートエレメントはmanufacturersに変更され 、セールス情報はsaleエレメントにインテグレーションされ、manufacturerエレメントは1つのレベルに削減されます。
ProductsOutput.xmlというソースXMLファイルの期待されるコンテンツは次のとおりです。
<?xml version="1.0" encoding="ISO-8859-15"?>
<manufacturers category="1" name="laptop">
<sales unit="Dollars">
<sale sales_type="DELL123">12345.0</sale>
<sale sales_type="HP123">12345.123</sale>
</sales>
<manufacturer id="manu_1" date="03-04-0036" name="DELL"/>
<manufacturer id="manu_2" date="04-04-0034" name="HP"/>
<types>
<type>DELL123</type>
<manufacturer_id>manu_1</manufacturer_id>
</types>
<types>
<type>DELL123</type>
<manufacturer_id>manu_2</manufacturer_id>
</types>
<types>
<type>HP123</type>
<manufacturer_id>manu_1</manufacturer_id>
</types>
<types>
<type>HP123</type>
<manufacturer_id>manu_2</manufacturer_id>
</types>
</manufacturers>