本部分描述您可为类型的数据元素分隔属性设置的每个值的一般规则。
- 标记定界
-
- 标记编码长度
-
- 每个简单子元素的标记属性必须包含非空值。
- 编码长度的长度属性必须包含大于零的正整数。
- 定界变长元素
-
- 使用数据模式
- 每个为复杂类型的子代的简单元素必须具有为数据模式指定的正则表达式。请参阅正则表达式语法。
- 所有元素是定界的
-
- 固定长度
- 所有简单子代元素必须指定长度,除非它们的数据类型为布尔值(或得自布尔值)。
- 所有复合子代元素必须指定长度,除非它们的数据类型为布尔值(或得自布尔值)。
- 可以使用长度属性或成员长度值属性来指定长度。
- 固定长度 AL3
- 所有具有非布尔复合子元素和非布尔简单子元素的长度属性必须为非零值,或者它们的类型成员属性长度值为非空值。
- 标记固定长度
-
- 所有具有非布尔复合子元素和非布尔简单子元素的长度属性必须为非零值,或者它们的类型成员属性长度值为非空值。
- 每个简单子元素的标记属性必须包含非空值。
以下规则还应用于:
- 如果将父类型组合设置为选项,并将父数据元素分隔属性设置为定界变长元素、定界所有元素、固定长度或固定长度 AL3:
- 对于任何子代复杂类型,不能将类型组合设置为消息。
- 对于任何子代复杂类型,不能将数据元素分隔方法设置为标记定界或标记固定长度。
如果这样做,则不会成功部署消息集。
- 如果您已将类型的数据元素分隔属性设置为固定长度、固定长度 AL3 或标记固定长度,您必须为此父代下的所有简单元素设置长度或长度值属性,并且对于所有具有简单内容的复杂元素和符合元素也都必须进行此设置。
- 对于固定长度环境中的选项(数据元素分隔设置为固定长度、标记固定长度或固定长度 AL3),长度引用无效,并且应该使用元素长度。
- 在属性长度值中指定的元素必须是类型 INTEGER 的简单元素,它们必须以与引用元素相同的结构存在,并且它们必须在该结构中的引用元素之前出现。
- 具有简单内容的复杂类型和复合元素必须有空的类型成员属性长度值。这是因为在父结构中引用元素后会出现元素长度值,这由前一个规则禁止。
- 具有简单内容的复杂类型不能拥有分开的使用数据模式类型。
- 符合元素不能拥有分开的使用数据模式类型。
- 不考虑类型的数据元素分隔属性的设置,如果简单元素的类型是 BINARY,则您必须设置长度或长度值属性。
- 对于固定长度元素,对齐属性必须设置为不适用以外的值,并且填充字符属性不能是空值。
- 如果消息中的任何元素将它的解释元素值属性设置为消息键,则必须为消息集中所有消息设置消息键属性。
- 如果您已将类型成员中的重复属性设置为是,您必须为下列两种情形中的最大发生属性设置值:
- 如果已定义一个元素,作为将属性数据元素分隔设置为固定长度的复杂类型的成员。
- 如果您已定义一个固定长度元素,作为将属性数据元素分隔设置为定界变长元素的复杂类型的成员。
当代理调用解析器以解释输入消息时,它假设元素出现的次数等于您为最大出现次数设置的值。当解析器构造输出消息时,如果元素小于最大出现次数的值,则使用缺省值插入缺少的元素。