この DFDL スキーマ CSV_1.xsd は、コンマ区切り値メッセージの最も単純なモデルを示しています。 サンプル入力データ CSV_1.csv には、反復されるコンマ区切りレコードが含まれています。 サンプル入力データは、サンプル DFDL スキーマ・ファイルを使用して解析されます。 マッピング・ノードによって DFDL ドメイン論理ツリーが XMLNSC ドメイン論理ツリーにコピーされ、XMLNSC ドメイン論理ツリーが XML メッセージとしてシリアライズされます。
このトピックには、サンプルを実行するための指示があります。 また、サンプル入力データおよび予想される出力メッセージも含まれるため、サンプルが機能したことを確認できます。
このサンプルで使用されるメッセージ・モデルについて詳しくは、コンマ区切り値 (CSV) サンプルの調査を参照してください。
サンプルの実行時に問題を検出した場合は、 WebSphere Message Broker 資料の『サンプル実行時の問題の解決』を参照してください。
Message Broker Toolkit を使用すると、DFDL スキーマ・ファイルに照らしてサンプル入力データを検査できます。
DFDL スキーマ・ファイルをテストするには、以下のようにします。
「DFDL テスト」パースペクティブが開き、「DFDL テスト - 解析」ビューにテスト解析の結果が表示されます。 テスト解析が成功した場合、「解析が正常に完了しました」というメッセージが表示されます。
「論理インスタンス」ビューでテスト解析の結果を確認できます。 「論理インスタンス」ビューには、論理ツリー・ビューでデータが表示されます。 解析中に発生したエラーを確認するには、「DFDL - トレース」ビューのパーサー・ログを使用します。
このサンプルの実行に使用されるテスト・メッセージは、以下のフォーマットに基づいています。
Bob,Dyson,true,23,23456,0,1543543.36<CRLF><CRLF> は、ASCII 16 進コード・ポイントが x'0D' および x'0A' の文字を表します。
Jimmy,Pace,false,1002,10001,-4.32423,654654.99<CRLF>
Ralf,McCartney,false,67,89125,4324307.35,986545.12<CRLF>
Elvis,John,true,3,60699,-0.343242356675,99999999999999.99<CRLF>
Rick,Clayton,true,461,33101,0.000000000000001,100.01
このサンプルは、メッセージ・フロー CSV2XML を使用します。このメッセージ・フローには、キュー CSV2XML.IN1 に接続された 1 つの MQInput ノードが含まれています。メッセージ・フローは、ドメインを XMLNSC に変更してキュー CSV2XML.OUT1 にメッセージを書き込む Mapping ノードを介してメッセージを渡します。出力 XML メッセージは、解析されたメッセージの論理構造を示します。
サンプルを実行するには、次のようにします。
すべてのステップが正常に終了したなら、サンプルは完了です。
ここで、メッセージ・ブローカー・プロジェクト CSVSchemas の DFDL スキーマ・ファイルを調べます。このメッセージ・モデルについては、『Comma Separated Value (CSV) サンプルの調査』を参照してください。
予期される出力 XML メッセージは、以下のとおりです。
<io:CSV_1 xmlns:io="http://www.example.org"> <customer> <firstname>Bob</firstname> <lastname>Dyson</lastname> <goldmember>true</goldmember> <housenumber>23</housenumber> <postcode>23456</postcode> <float>0E+0</float> <balance>1543543.36</balance> </customer><customer> <firstname>Jimmy</firstname> <lastname>Pace</lastname> <goldmember>false</goldmember> <housenumber>1002</housenumber> <postcode>10001</postcode> <float>-4.3242301940918E+0</float> <balance>654654.99</balance> </customer> <customer> <firstname>Ralf</firstname> <lastname>McCartney</lastname> <goldmember>false</goldmember> <housenumber>67</housenumber> <postcode>89125</postcode> <float>4.3243075E+6</float> <balance>986545.12</balance> </customer> <customer> <firstname>Elvis</firstname> <lastname>John</lastname> <goldmember>true</goldmember> <housenumber>3</housenumber> <postcode>60699</postcode> <float>-3.43242347240448E-1</float> <balance>99999999999999.99</balance> </customer> <customer> <firstname>Rick</firstname> <lastname>Clayton</lastname> <goldmember>true</goldmember> <housenumber>461</housenumber> <postcode>33101</postcode> <float>1.00000000362749E-15</float> <balance>100.01</balance> </customer> </io:CSV_1>