TDS 格式:定界分隔类型

对于定界分隔类型,定界符用于分隔数据字段,但不出现标记。数据字段需要在位流中以正确的顺序给定且元素无法从位流中省略。

所有元素定界分隔类型表明数据字段使用预指定的字符或字符串定界。在本示例中,四个数据字段使用星号(*)定界符分隔:
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 匹配,则输出这两个定界符以表明重复结束。因此,如果定界符和 RED*,则位流是:
data1*data2**data3*data4

定界变长元素

可变元素定界分隔类型(也称为定界和固定分隔类型)中,有些元素使用它们的长度确定,而有些是定界的。它确实是定界和固定长度格式的组合,且遵守与它们两者关联的规则。可以给定和使用长度,但它们不是强制的。
  • 如果长度对于元素是出现的,则使用它,且不需要定界符以终止元素。元素必须填充到正确的长度,且无法超出该长度。
  • 如果没有给定长度,则定界符是必需的。

变量元素定界分隔类型仅包含类似所有元素定界类型的可变长度元素。如果它仅包含固定长度元素,它类似固定长度类型。

例如:
data1*data2*data3*data4000data5
其中:
  • 定界符*
  • data4 的长度为 8

可用参数

使用了这些参数:
  • 组指示符表明组或复杂类型的开始。
  • 组终止符表明组或复杂类型的结束。
  • 定界符分隔组或复杂类型中的数据元素。
  • 抑制缺少元素定界符表明是否允许定界符抑制。
  • (可选地)长度长度引用中的一个表明元素的长度。如果元素有长度,则使用该长度。由于元素的长度是已知的,因此没有必要在它后面输出定界符。如果长度不是已知的,则元素是必需的。
在本示例中,第四个字段(包含 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 匹配,则输出这两个定界符以表明重复结束。因此,如果定界符和 RED 都是 *,则位流是:
data1*data2**data3*data4

这也应用于变量元素定界环境中的非固定长度复杂类型或组。

固定长度元素重复

如果带有定义的长度的元素(固定长度元素)是重复的,且最小出现次数与最大出现次数不相同,则不需要 RED,但定界符在最后一个重复后需要的。可能发生此重复的定界符禁止。

例如,如果 data4(带有固定长度 8)重复,且最小出现次数为 2,最大出现次数为 4:
data1*data2*data3*data400data400data400data400*data5
其中定界符*
或,如果 data4 只出现两次:
data1*data2*data3*data4000data4000*data5

如果带有定义的长度的元素(固定长度元素)是重复的,且最小出现次数与最大出现次数不相同,则不需要 RED。最后一个重复后还需要定界符。不能出现此重复的截断且所有元素需要出现。

例如,如果 data4(带有固定长度 8)重复四次:
data1*data2*data3*data4000data4000data4000data4000data5
其中定界符*
或,如果 data4 只出现两次:
data1*data2*data3*data4000data40000000000000000000data5

这也应用于变量元素定界环境中的非固定长度复杂类型或组。

声明 | 商标 | 下载 | 书库 | 支持 | 反馈
Copyright IBM Corporation 1999, 2006 最后一次更新时间:2006/08/14
ad00812_