TDS 形式: 区切り分離タイプ

区切り分離タイプの場合、データ・フィールドを区切るために区切り文字が使用されますが、 タグは表示されません。 データ・フィールドはビット・ストリーム内で正しい順序になっていなければならず、 エレメントをビット・ストリームの中から省略することはできません。

「全エレメントを区切る」 分離タイプは、データ・フィールドが、事前指定の文字またはストリングによって区切られるということです。 以下の例では、4 つのデータ・フィールドがアスタリスク (*) の区切り文字で分離されています。
data1*data2*data3*data4
区切り分離タイプには、以下のようなエレメントの順序および有無に関する制限があります。
区切り文字の抑止および切り捨てに関する規則を考慮した後で、 このトピックでは、以下の区切り分離タイプについて説明します。

区切り文字の抑止および切り捨てに関する規則

全エレメントを区切る

「全エレメントを区切る」 分離タイプでは、すべてのエレメントが区切り文字によって区切られます。以下に例を示します。
data1*data2*data3*data4*data5
この場合、「区切り文字」* です。

「全エレメントを区切る」分離タイプでは、タグまたは関連するパラメーターを使用しません。

テキスト・エレメントの場合、区切り文字によって長さが決まります。また「エレメント長の監視」プロパティーが設定されていない限り、「長さ」プロパティーは無視されます。

非テキスト・エレメントの場合、エレメントの「物理タイプ」によって長さが決まります。TDS 形式: 単純データ値の長さの決定を参照してください。

適用できるプロパティー

以下のプロパティーが使用されます。
  • 「グループ標識」。 これは、グループまたは複合タイプの開始を示します。
  • 「グループ・ターミネーター」。 これは、グループまたは複合タイプの終わりを示します。
  • 「区切り文字」。これは、グループまたは複合タイプ内のデータ・エレメント間の分離文字を示します。
  • 「不在エレメント区切り文字の抑制」。 これは、区切り文字の抑止が許可されているかどうかを示します (以下を参照)。
以下に例を示します。
{data1*data22222*data3}
ここで、
  • 「グループ標識」{ です。
  • 「グループ・ターミネーター」} です。
  • 「区切り文字」* です。

エレメント規則の繰り返し

分離タイプが「全エレメントを区切る」の際にエレメントを繰り返す必要がある場合、「反復エレメント区切り文字」 (RED) を使用して、繰り返されるエレメントを分けます。

例えば、data2 が 5 回繰り返される場合、以下のようになります。
data1*data2:data2:data2:data2:data2*data3*data4
ここで、
  • 「区切り文字」* です。
  • 「反復エレメント区切り文字」: です。
「不在エレメント区切り文字の抑制」プロパティーが「タイプの終了」に設定されている場合、区切り文字の抑止を使用できます。したがって前述の例で、最初の data2 エレメントだけが表示された場合、ビット・ストリームは以下のようになります。
data1*data2*data3*data4
しかし、「不在エレメント区切り文字の抑制」プロパティーが「行わない」に設定されている場合、ビット・ストリームは以下のようになります。
data1*data2::::*data3*data4
「区切り文字」RED が一致する場合、2 つの区切り文字が出力されて、繰り返しが終了することが示されます。したがって、区切り文字と RED* の場合、ビット・ストリームは以下のようになります。
data1*data2**data3*data4

可変長エレメントを区切る

「可変長エレメントを区切る」分離のある複合タイプでは、長さによって判別されるエレメントと、区切られるエレメントとがあります。この区切られている形式と固定長形式の組み合わせは、両方の形式に関連する以下の規則に従います。長さが指定されて使用されますが、それらは必須ではありません。
  • テキスト・エレメントの長さが示されている場合は、それが使用され、そのエレメントを終了するために区切り文字は必要ありません。 そのエレメントは正しい長さに埋め込まれ、その長さを超えることはできません。
  • テキスト・エレメントの長さが示されていない場合は、区切り文字が必要です。
  • 非テキスト・エレメントの場合、エレメントの「物理タイプ」によって長さが決まります。TDS 形式: 単純データ値の長さの決定を参照してください。

可変長エレメントしか含んでいない「可変長エレメントを区切る」分離のある複合タイプは、「全エレメントを区切る」分離のある複合タイプと類似しています。固定長エレメントだけが含まれている場合、「固定長」タイプと類似しています。

以下に例を示します。
data1*data2*data3*data4000data5
ここで、
  • 「区切り文字」* です。
  • data4 の長さは 8 です。

適用できるプロパティー

以下のプロパティーが使用されます。
  • 「グループ標識」。 これは、グループまたは複合タイプの開始を示します。
  • 「グループ・ターミネーター」。 これは、グループまたは複合タイプの終わりを示します。
  • 「区切り文字」。これは、グループまたは複合タイプ内のデータ・エレメント間の分離文字を示します。
  • 「不在エレメント区切り文字の抑制」。 これは、区切り文字の抑止が許可されているかどうかを示します。
  • (オプション)「長さ」または「長さ参照」。これらは、テキスト・エレメントの長さを示します。テキスト・エレメントに長さがある場合、その長さが使用されます。 そのエレメントの長さが分かっているため、その後の区切り文字を出力する必要がありません。 長さが分からない場合、区切り文字が必要です。 非テキスト・エレメントの場合、区切り文字は不要です。
以下の例では、4 番目のフィールド (data4 が入っている) が固定長 8 であり、 埋め込み文字 0 です。
{data1*data22222*data3*data4000data5}
ここで、
  • 「グループ標識」{ です。
  • 「グループ・ターミネーター」} です。
  • 「区切り文字」* です。

エレメント規則の繰り返し

「可変長エレメントを区切る」環境での繰り返しエレメントのアクションは、繰り返しの最小および最大数と、エレメントで長さが指定されているかどうかに依存しています。

区切りエレメントの繰り返し

区切りエレメント (つまり、長さがないエレメント) が繰り返される場合、 「反復エレメント区切り文字」 (RED) が必要であり、「全エレメントを区切る」 の規則が守られます。 そのため、最後の繰り返しの後で区切り文字が必要になります。 この繰り返しの区切り文字の抑止を行うこともできます。

例えば、data2 が繰り返される場合、以下のようになります。
data1*data2:data2:data2:data2:data2:data2*data3*data4000data5
ここで、
  • 「区切り文字」* です。
  • 「反復エレメント区切り文字」: です。
  • data4 は固定長の 8 です。

「不在エレメント区切り文字の抑制」フィールド が「タイプの終了」に設定されている場合、区切り文字の抑止を使用できます。

前述の例では、最初の data2 だけが繰り返されます。
data1*data2*data3*data4000data5
しかし、「不在エレメント区切り文字の抑制」「行わない」に設定されている場合、ビット・ストリームは以下のようになります。
data1*data2:::::*data3*data4000data5
区切り文字と RED が一致する場合、 2 つの区切り文字が出力されて、繰り返しが終了することが示されます。 それで、区切り文字と RED が両方とも * の場合、ビット・ストリームは以下のようになります。
data1*data2**data3*data4

これは、「可変長エレメントを区切る」環境内での、非固定長の複合タイプまたはグループにも適用されます。

固定長エレメントの繰り返し

定義されている長さのエレメント (固定長エレメント) が繰り返され、 最小オカレンスが最大オカレンスと同じではない場合、RED は必要ありませんが、最後の繰り返しの後で区切り文字が必要です。 この繰り返しの区切り文字の抑止を行えます。

例えば、data4 (固定長 8) が繰り返され、最小オカレンスが 2、 最大オカレンスが 4 の場合、以下のようになります。
data1*data2*data3*data400data400data400data400*data5
この場合、「区切り文字」* です。
または、data4 のオカレンスが 2 つだけの場合、以下のようになります。
data1*data2*data3*data4000data4000*data5

定義されている長さのエレメント (固定長エレメント) が繰り返され、最小オカレンスが最大オカレンスと同じである場合、RED は不要です。 区切り文字も、最後の繰り返しの後で不要になります。 この繰り返しは切り捨てることができず、すべてのエレメントを示さなければなりません。

例えば、data4 (固定長 8) が 4 回繰り返される場合以下のようになります。
data1*data2*data3*data4000data4000data4000data4000data5
この場合、「区切り文字」* です。
または、data4 のオカレンスが 2 つだけの場合、以下のようになります。
data1*data2*data3*data4000data40000000000000000000data5

これは、「可変長エレメントを区切る」環境内での、非固定長の複合タイプまたはグループにも適用されます。

複合タイプに「可変長エレメントを区切る」分離がある場合は、区切り文字は常に、組み込まれている (「子」) 複合エレメントと次のエレメントの間の出力になります。「子」複合エレメントの分離が「固定長」の場合でも同様です。入力上で、パーサーはこの種の区切り文字があってもなくてもビット・ストリームを受け入れます。

特記事項 | 商標 | ダウンロード | ライブラリー | サポート | フィードバック

Copyright IBM Corporation 1999, 2009Copyright IBM Corporation 1999, 2009.
最終更新 : 2009-02-20 12:43:05

ad00812_