このサンプルをインポートして部分的にセットアップし、適切なセットアップ手順を実行した後、 以下のサンプルの実行のセクションの指示に従ってサンプルを実行できます。
また、このトピックには、入力テスト・メッセージの例と、それに対応する出力メッセージも示されているため、サンプルが 機能したことを確認できます。
このサンプルの実行に使用されるすべてのテスト・メッセージは、以下のフォーマットに基づいています。
<SaleEnvelope>
<Header>
<SaleListCount>1</SaleListCount>
</Header>
<SaleList>
<Invoice>
<Initial>K</Initial>
<Initial>A</Initial>
<Surname>Braithwaite</Surname>
<Item>
<Code>00</Code>
<Code>01</Code>
<Code>02</Code>
<Description>Twister</Description>
<Category>Games</Category>
<Price>00.30</Price>
<Quantity>01</Quantity>
</Item>
<Item>
<Code>02</Code>
<Code>03</Code>
<Code>01</Code>
<Description>The Times Newspaper</Description>
<Category>Books and Media</Category>
<Price>00.20</Price>
<Quantity>01</Quantity>
</Item>
<Balance>00.50</Balance>
<Currency>Sterling</Currency>
</Invoice>
<Invoice>
<Initial>T</Initial>
<Initial>J</Initial>
<Surname>Dunnwin</Surname>
<Item>
<Code>04</Code>
<Code>05</Code>
<Code>01</Code>
<Description>The Origin of Species</Description>
<Category>Books and Media</Category>
<Price>22.34</Price>
<Quantity>02</Quantity>
</Item>
<Item>
<Code>06</Code>
<Code>07</Code>
<Code>01</Code>
<Description>Microscope</Description>
<Category>Miscellaneous</Category>
<Price>36.20</Price>
<Quantity>01</Quantity>
</Item>
<Balance>81.84</Balance>
<Currency>Euros</Currency>
</Invoice>
</SaleList>
<Trailer>
<CompletionTime>12.00.00</CompletionTime>
</Trailer>
</SaleEnvelope>
このサンプルには、2 つの JavaCompute ノードが含まれています。 1 つは XPath 式を使用するもので (JavaComputeTransformXPath)、もう 1 つは Java プラグイン・ノード API を使用するものです (JavaComputeTransformNoXPath)。 これは、同じ結果になる 2 種類の方法を比較することを意図したものです。
以下の説明では、JavaComputeTransformXPath ノードを取り上げています。 JavaComputeTransformNoXPath ノードの場合は、該当する箇所で XPath を NoXPath に置き換える必要がありますが、それ以外は 全く同じように指示に従ってください。
このサンプルは、メッセージ・フロー JavaComputeTransformXPathFlow を使用します。 このメッセージ・フローには JAVACOMPUTE.TRANSFORMXPATH.IN という入力キューが 1 つあり、メッセージを変換して 2 つの 出力キュー (JAVACOMPUTE.TRANSFORMXPATH.OUT および JAVACOMPUTE.TRANSFORMXPATH.FAILURE) のどちらかに経路指定できます。
サンプルを実行するには、次のようにします。
上記のすべてのステップが機能したなら、サンプルは完了になります。 メッセージ・フロー JavaComputeTransformXPathFlow の Java コードを参照し、メッセージの変換が行われた方法を調べてください。
JavaComputeTransformNoXPathFlow メッセージ・フローを使用する場合、出力メッセージは、次の例のような形式になります。
<Parent>
<Statement Type="Monthly">
<Customer>
<Initials>KA</Initials>
<Name>Braithwaite</Name>
<Balance>00.50</Balance>
</Customer>
<Purchases>
<Article>
<Desc>Twister</Desc>
<Cost>0.48</Cost>
<Qty>01</Qty>
</Article>
<Article>
<Desc>The Times Newspaper</Desc>
<Cost>0.32</Cost>
<Qty>01</Qty>
</Article>
</Purchases>
<Amount>0.8</Amount>
</Statement>
<Statement Type="Monthly">
<Customer>
<Initials>TJ</Initials>
<Name>Dunnwin</Name>
<Balance>81.84</Balance>
</Customer>
<Purchases>
<Article>
<Desc>The Origin of Species</Desc>
<Cost>35.744</Cost>
<Qty>02</Qty>
</Article>
<Article>
<Desc>Microscope</Desc>
<Cost>57.92</Cost>
<Qty>01</Qty>
</Article>
</Purchases>
<Amount>129.40800000000002</Amount>
</Statement>
</SaleList>
</Parent>
JavaComputeTransformXPathFlow メッセージ・フローを使用する場合、出力メッセージは、次の例のような形式になります。
<SaleEnvelope>
<SaleList>
<Statement Type="Monthly" Style="Full">
<Customer>
<Initials>KA</Initials>
<Name>Braithwaite</Name>
<Balance>00.50</Balance>
</Customer>
<Purchases>
<Article>
<Desc>Twister</Desc>
<Cost>0.48</Cost>
<Qty>01</Qty>
</Article>
<Article>
<Desc>The Times Newspaper</Desc>
<Cost>0.32</Cost>
<Qty>01</Qty>
</Article>
</Purchases>
<Amount>0.8</Amount>
</Statement>
<Statement Type="Monthly" Style="Full">
<Customer>
<Initials>TJ</Initials>
<Name>Dunnwin</Name>
<Balance>81.84</Balance>
</Customer>
<Purchases>
<Article>
<Desc>The Origin of Species</Desc>
<Cost>35.744</Cost>
<Qty>02</Qty>
</Article>
<Article>
<Desc>Microscope</Desc>
<Cost>57.92</Cost>
<Qty>01</Qty>
</Article>
</Purchases>
<Amount>129.408</Amount>
</Statement>
</SaleList>
</SaleEnvelope>
JavaComputeTransformXPath の出力メッセージと JavaComputeTransformNoXPath の出力メッセージの丸めの間には多少の違いがあり、 そのため上記の 0.32 の代わりに 0.32000000000000006 と出力されることが予想されます。