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

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

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

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

全エレメントを区切る

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

適用できるパラメーター

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

「全エレメントを区切る」では、タグまたは関連するパラメーターは使用されません。 長さも無視されます。

以下に例を示します。
{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

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

「可変長エレメントを区切る」分離タイプ (「区切りおよび固定」 分離タイプとも呼ばれる) では、 長さによって判別されるエレメントと、区切られるエレメントとがあります。 これは実際には区切られている形式と固定長形式の組み合わせであり、その両方に関連する以下の規則があります。 長さが指定されて使用されますが、それらは必須ではありません。
  • エレメントの長さが示されている場合は、それが使用され、そのエレメントを終了するために区切り文字は必要ありません。 そのエレメントは正しい長さに埋め込まれ、その長さを超えることはできません。
  • 長さが示されていない場合は、区切り文字が必要です。

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

以下に例を示します。
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, 2006 最終更新: 08/21/2006
ad00812_