オプションのフィールドおよびレコードの指定

このタスクについて

フラット・ファイル・スキーマでオプションのフィールドまたはレコードを作成するときは、フラット・ファイル・データがどのように解析されるかを理解することが重要です。そうすれば、あいまいさを防止するようにフラット・ファイル・スキーマを設計することができます。 例えば、区切り文字で区切られているルート・ノードと 3 つの子ストリング・フィールドを持つフラット・ファイル・スキーマを作成し、子ストリング・フィールドの field1 が必須、field2 がオプション、field3 が必須だとすると、実行時に次のデータを解析する場合にスキーマの文法はあいまいになります。

A,C

このフラット・ファイル・データは次の 2 とおりに解析される可能性があります。
  • field1 は A に等しく、かつ field2 は B に等しい
  • field1 は A に等しく、かつ field3 は C に等しい

オプション・フィールドの後に必須フィールドを指定すると、正しく解析できないあいまいな文法が定義されます。 オプション・フィールドの後に必須レコードを指定しても、正しく解析できないあいまいな文法が定義されます。

このフラット・ファイル・スキーマを、field1 が必須、field2 がオプション、field3 がオプションという 3 つの子ストリング・フィールドを含むように再定義しても、この問題は修正されません。フラット・ファイル・データ A,C が解析されるとき、field1 が A に等しく、field2 が C に等しくなるためです。ここでもスキーマの文法はあいまいです。つまりこれは望ましい結果ではありません。望ましいのは値 C が field3 に割り当てられることです。 必須レコードの後に 2 つのオプション・レコードを指定しても、あいまいな文法が定義されます。




フィードバック | 特記事項


タイム・スタンプ・アイコン 最終更新: 2013年11月7日 (木曜日)


http://pic.dhe.ibm.com/infocenter/wci/v7r0m0/topic/com.ibm.wci.doc/Specifying_Optional_Fields_and_Records.html