指定数据元素分隔方法以建模消息

TDS 消息中的数据元素是根据您必须为复杂类型的数据元素分隔属性指定的数据元素分隔方法而进行标识的。取决于您已为数据元素分隔设置的值,也可能需要属性标记数据分隔符定界符(用于消息集和复杂类型)来标识每个元素。

您可为每个复杂类型指定的方法描述如下。给定的示例全都基于一种包含三个 STRING 类型元素的复杂类型。其中使用标记数据分隔的是冒号(:),而使用定界符的是星号(*)。

标记定界
每个数据值前都有一个作为元素属性指定的标记。如果此标记具有关联的标记长度,表明此标记为固定长度标记,则每个数据值紧跟在标记后面。如果标记未指定为固定长度标记,则使用标记数据分隔符将标记与下一个元素进行分隔。每个数据值都使用定界符与下一个数据值进行分隔。 复杂类型中的最后一个元素之后没有定界符

以下示例显示了固定长度标记:

 tag1data1*tag2data2*tag3data3

以下示例显示了可变长度标记:

 tag1:data1*tag11:data2*tag111:data3
标记固定长度
此方法类似于标记定界,除了数据值始终是固定长度的。因此,每个数据值后面不需要定界符。 标记它们本身可以是固定长度或变长的,取决于标记数据分隔符标记长度的设置。

以下示例显示了固定长度标记:

tag1data1tag2data2tag3data3

以下示例显示了可变长度标记:

tag1:data1tag11:data2tag111:data3
标记编码长度
此方法在数据之前有一个标记和长度字段。它向解析器表明位流中跟随着每个标记的是定义与此标记关联的数据长度的数据。必须设置编码长度的长度参数。如果编码长度的长度中的值包括额外字符,则还必须设置编码长度中的额外字符参数。

以下示例显示一个四个字符的固定长度标记(标记长度已设置为四),一个三个字符的长度字段(编码长度的长度已设置为三)和几个数据字符。编码长度中的额外字符已设置为零:

tagA007dataAAAtagB006dataBBtagC009dataCCCCC
在上面给定的位流中,解析器查找标记“tagA”并抽取长度值 7。因为编码长度中的额外字符设置为零,所以接下来的七个(7 - 0)字符是数据。然后接着是下一个标记“tagB”的字符和长度值 6,然后是标记“tagC”等等。此示例中,每一种情况下,长度字段的值就是数据的长度。

以下示例显示一个四个字符的固定长度标记(标记长度已设置为四),一个三个字符的长度字段(编码长度的长度已设置为三)和几个数据字符。编码长度中的额外字符 已设置为三(因为此示例中长度字段值包括三个字符的长度字段和数据字段):

tagA012dataAAAAAtagB010dataBBBtagC016dataCCCCCCCCC
在上面给定的位流中,在“tagA”之后,解析器抽取长度值 12。但是,因为编码长度中的额外字符设置为三,所以只有接下来的九个(12 - 3)字符是数据。然后接着是“tagB”的字符和长度值 10,等等。此示例中,每一种情况下,长度字段中的值比实际的数据长度值大三。
所有元素是定界的
数据值没有标记,但每个数据值之间都由定界符分隔。

以下示例显示了这种情况:

data1*data2*data3
可变长度元素定界
如果数据元素是固定长度的,则其后紧跟着下一个数据值。如果数据元素是变长的,则由定界符将它与下一个数据值进行分隔。其中没有标记。

以下示例显示了作为固定长度元素的元素 2 ,和作为变长元素的元素 1 和 3 :

data1*data2data3
使用数据模式
与每个元素关联的数据由解析器确定,方法是将数据与此元素的数据模式属性中的正则表达式匹配。TDS 解析器使用数据模式中的正则表达式来:
  • 确定与每个元素关联的数据的长度。
  • 确定在重复元素的情况下,出现的另一个元素是否存在于位流中。
  • 确定位流中元素的存在(如果模型是匹配的)或不存在(如果匹配不匹配)。
没有定界符或标记,除了作为正则表达式模型编码的那些定界符或标记。请参阅正则表达式语法以获取模型匹配是如何进行的说明。
以下示例显示三个元素,每个都显示正则表达式数据模式
First Data Pattern = [A-Z]{1,3}
Second Data Pattern = [0-9]+
Third Data Pattern = [a-z]*

Message data = 'DT31758934information for you'

First element data: 'DT'
Second element data: '31758934'
Third element data: 'information'
第一个数据模式意味着“范围 A 到 Z 中从一到三的字符”,第二个意味着“范围 0 到 9 中一个或多个字符”,而第三个意味着“范围 a 到 z 中零或多个字符”。注意每个元素的数据是如何由与元素的数据模式不匹配的第一个字符终止的。
固定长度
所有元素都是固定长度的,且每个数据值与紧跟其后的下一个数据值之间没有定界符。其中没有标记。

以下示例显示了这种情况:

data1data2data3
固定长度 AL3
此方法与固定长度相同,但它还通知解析器实现涉及 ACORD ALS 标准中预定义的缺少元素、长度编码以及版本控制的一些规则。
未定义
当您将复杂类型的类型组合属性设置为消息时,该值将自动设置,并且您不能将其设置为任何其他值。同样,不能设置 TDS 类型属性组指示符组终止符标记数据分隔符标记长度定界符的值。

如果将数据元素分隔方法设置为未定义,则您不得将类型构成属性设置为选项无序集有序集顺序简单无序集

如需了解有关将类型组合设置为消息的更多信息,请参阅多段式消息

相关概念
消息建模
消息模型
多段式消息
TDS 格式:与逻辑模型的关系
相关任务
开发消息模型
使用消息模型对象
相关参考
消息模型引用信息
消息模型对象属性
附加的 MRM 域信息
附加的 TDS 信息
消息特征
声明 | 商标 | 下载 | 书库 | 支持 | 反馈
Copyright IBM Corporation 1999, 2006 最后一次更新时间:2006/08/14
ad09830_