CICS 助手的映射级别

映射是用于指定如何在语言结构和 XML 模式之间转换信息的一组规则。 要从可用的最复杂的映射中获益,必须将 CICS® 助手中的 MAPPING-LEVEL 参数设置为最新级别。

每个级别的映射都继承了先前映射的功能,其中最高级别的映射提供了最佳的可用功能。 最高映射级别在运行时提供对数据转换的更多控制,并除去对某些数据类型和 XML 元素的支持的限制。

如果要重新部署先前在该级别启用的应用程序,那么可以将 MAPPING-LEVEL 参数设置为较早的级别。

映射级别 4.3

映射级别 4.3 与具有 APAR PI88519及更高版本的 CICS TS V5.4 兼容。

映射级别 4.3 主要用于 DFHJS2LS,但也包含在 CICS Web Service 助手, XML 助手和 JSON 助手中。 此映射级别实现对 JSON 中的多维数组的支持。

映射级别 4.2

映射级别 4.2 与具有 APAR PI86039和更高版本的 CICS TS V5.4 兼容。

映射级别 4.2 主要用于 DFHJS2LS,但也包含在 CICS Web Service 助手, XML 助手和 JSON 助手中。 此映射级别实现对 JSON 中的 "其他属性" 的支持,并将以下三个参数引入到 DFHJS2LS: ADDITIONAL-PROPERTIES-DEFAULTADDITIONAL-PROPERTIES-MAXADDITIONAL-PROPERTIES-SIZE

映射级别 4.1

映射级别 4.1 与应用了 APAR PI67641 和更高版本的 CICS TS 5.3 区域或 CICS TS 5.2 区域兼容。

向 Web Service 助手、XML 助手和 JSON 助手添加了映射级别 4.1。 此映射级别针对从现有副本自底向上生成的简单数组实施改进的映射; 它还使 CICS 能够自动检测数组中未初始化的尾部存储器,并从生成的 XML/JSON 表单中省略这些记录。 有关更多信息,请参阅 COBOL 到 JSON 模式映射

DFHLS2WS, DFHWS2LS, DFHLS2SC, DFHSC2LS, DFHJS2LS和 DFHLS2JS 支持 TRUNCATE-NULL-ARRAYSTRUNCATE-NULL-ARRAY-VALUES 参数。

如果为 TRUNCATE-NULL-ARRAY-VALUESS 指定任何值,那么还必须指定 TRUNCATE-NULL-ARRAYS=ENABLED

映射级别 4.0

映射级别 4.0 与 CICS TS 5.2 区域兼容。

在映射级别 4.0 和更高版本上, DFHLS2SC 和 DFHLS2WS 支持 COBOL OCCURS 因变量子句,并支持将 COBOL 字符数组映射到 XML 字符串中。 您可以使用 CICS 助手上的 CHAR-OCCURS 参数来设置此行为。
  • 必须指定参数 DATA-TRUNCATION=ENABLED
  • 不支持复合的 OCCURS DEPENDING ON。 此限制意味着仅对结构的最后一个字段支持 OCCURS 靠 ON。
  • CICS 不支持将限定名 (使用 "OF" 关键字) 作为 OCCURS BASED ON 子句的目标,例如 FIELD1 OF STRUCTURE1
  • CICS 不支持UN定界关键字。 必须指定应用程序期望的表的最大大小。
在映射级别 4.0 和更高版本上, CICS Web Service 支持转换使用 UTF-16 Unicode 编码的应用程序数据。
  • 使用 LS2WS 或 LS2SC时,可以通过对 UTF-16使用特定于语言的数据类型来启用此行为。
  • 使用 WS2LS 或 SC2LS时,可以通过设置 CCSID=1200来启用此行为。
  • CICS 仅支持单个 Unicode 代码页 具有 IBM® 专用区域的 UTF-16BE (CCSID 1200)。
  • 不支持转换使用 UTF-8 编码的应用程序数据。
注: DFHLS2WS 和 DFHLS2SC 不支持 COBOL GROUP USAGE NATIONAL 子句。

映射级别 3.0 和更高级别

映射级别 3.0 与 CICS TS 4.1 区域和更高版本兼容。

此映射级别提供以下支持:

  • DFHSC2LS 和 DFHWS2LS 将 xsd:dateTime 数据类型映射到 CICS ASKTIME 格式。
  • DFHLS2WS 可以从使用多个容器而不是仅使用一个容器的应用程序生成 WSDL 文档和 Web Service 绑定。
  • 容许由固定长度数据结构描述的截断数据。 您可以使用 CICS 助手上的 DATA-TRUNCATION 参数来设置此行为。

映射级别 2.2 及更高版本

映射级别 2.2 与应用了 APAR PK69738 和更高版本的 CICS TS 3.2 区域兼容。

在映射级别 2.2 和更高版本上, DFHSC2LS 和 DFHWS2LS 支持以下 XML 映射:
  • 元素的固定值
  • 替换组
  • 抽象数据类型
  • XML schema <sequence> elements can nest inside <choice> elements
DFHSC2LS 和 DFHWS2LS 提供对以下 XML 映射的增强支持:
  • 抽象元素
  • XML schema <choice> elements

映射级别 2.1 和更高级别

映射级别 2.1 与应用了 APAR PK59794 和更高版本的 CICS TS 3.2 区域兼容。

此映射级别包含对使用新的 INLINE-MAXOCCURS-LIMIT 参数和 CHAR-VARYING 参数上的新值处理变量内容的方式的更大控制。

在映射级别 2.1 和更高版本上, DFHSC2LS 和 DFHWS2LS 为 XML 映射提供了以下新的改进支持:
  • The XML schema <any> element
  • xsd:anyType 类型
  • 抽象元素的容错
  • INLINE-MAXOCCURS-LIMIT 参数
  • minOccurs 属性

INLINE-MAXOCCURS-LIMIT 参数指定是否以内联方式映射可变重复列表。 有关映射内联可变重复内容的更多信息,请参阅 元素的变量数组

Support for the minOccurs attribute is enhanced for the XML schema <sequence>, <choice>, and <all> elements. 如果 minOccurs="0" ,那么 CICS 助手会将这些元素视为 minOccurs="0" 属性也是其所有子元素的属性。

在映射级别 2.1 和更高版本上, DFHLS2SC 和 DFHLS2WS 支持以下 XML 映射:
  • 将忽略 COBOL 和 PL/I 中的填充物字段
  • CHAR-VARYING 参数的折叠值
  • CHAR-VARYING 参数的值 BINARY

将忽略 COBOL 和 PL/I 中的填充字段; 它们不会显示在生成的 XML 模式中,并且在运行时数据结构中留下相应的间隔。

折叠 会导致 CICS 忽略文本字段中的尾部空格。

BINARY 提供对二进制字段的支持。 当您将 COBOL 转换为 XML 模式时,此值很有用。 此选项仅在 SBCS 字符数组上可用,并且允许将该数组映射到固定长度的 xsd:base64Binary 字段而不是 xsd:string 字段。

映射级别 1.2 和更高级别

映射级别 1.2 与 CICS TS 3.1 区域和更高版本兼容。

通过批处理工具上的以下附加参数,可以更好地控制在运行时变换字符和二进制数据的方式:
  • CHAR-VARYING
  • CHAR-VARYING-LIMIT
  • CHAR-MULTIPLIER
  • DEFAULT-CHAR-MAXLENGTH
如果您决定使用 DFHSC2LS 或 DFHWS2LS中的 CHAR-MULTIPLIER 参数,那么在使用此参数的值来计算字符数据所需的空间量之后,以下规则适用。
  • DFHSC2LS 和 DFHWS2LS 提供以下映射:
    • 最大长度超过 32 767 字节的可变长度字符数据类型映射到容器。 您可以使用 CHAR-VARYING-LIMIT 参数来设置下限。 将在语言结构中创建一个 16 字节的字段以存储容器的名称。 在运行时,将字符数据存储在容器中,并将容器名称放入语言结构中。
    • 最大长度小于 32 768 字节的可变长度字符数据类型映射到除 C/C++ 和 Enterprise PL/I 以外的所有语言的 VARYING 结构。 在 C/C + + 中,这些数据类型映射到以 null 结束的字符串,而在 Enterprise PL/I 中,这些数据类型映射到 VARYINGZ 结构。 您可以使用 CHAR-VARYING 参数来选择可变长度字符数据的映射方式。
    • 最大长度小于 32 768 字节的可变长度二进制数据映射到所有语言的 VARYING 结构。 如果最大长度等于或大于 32 768 字节,那么数据将映射到容器。 将在语言结构中创建一个 16 字节的字段以存储容器的名称。 在运行时,二进制数据存储在容器中,而容器名称放置在语言结构中。

如果 XML 模式中的字符数据类型没有与其关联的长度,那么可以使用 DFHWS2LS 或 DFHSC2LS中的 DEFAULT-CHAR-MAXLENGTH 参数来分配缺省长度。

DFHLS2SC 和 DFHLS2WS 提供以下映射:
  • 字符字段映射到 xsd:string 数据类型,并且可以在运行时作为固定长度字段或以 null 结束的字符串进行处理。 您可以使用 CHAR-VARYING 参数来选择在运行时处理除 PL/I 以外的所有语言的可变长度字符数据的方式。
  • 如果数据的最大长度大于 32 767 字节或未定义长度,那么 Base64Binary 数据类型将映射到容器。 如果数据长度为 32 767 或更小,那么 base64Binary 数据类型将映射到所有语言的 VARYING 结构。

映射级别 1.1 和更高版本

映射级别 1.1 与 CICS TS 3.1 区域和更高版本兼容。

此映射级别提供了 XML 字符和二进制数据类型的改进映射,尤其是在映射具有 maxLengthminLength 属性的可变长度数据时,这些属性是使用 XML 模式中的不同值定义的。 通过以下方式处理数据:
  • 固定长度大于 16 MB 的字符和二进制数据类型映射到除 PL/I 以外的所有语言的容器。 在 PL/I 中,大于 32 767 字节的固定长度字符和二进制数据类型将映射到容器。 将在语言结构中创建一个 16 字节的字段以存储容器的名称。 在运行时,将定长数据存储在容器中,并将容器名称放入语言结构中。

    因为容器的长度是可变的,所以映射到容器的固定长度数据不会填充空格或空或截断,以与 XML 模式或 Web Service 描述中指定的固定长度相匹配。 如果数据的长度很重要,那么您可以编写应用程序以进行检查,或者在 CICS 区域中开启验证。 SOAP 和 XML 验证都具有显着的性能影响。

  • XML schema <list> and <union> data types map to character fields.
  • 将映射而不是忽略模式定义的 XML 属性。 每个 XML 元素最多允许 255 个属性。 有关更多信息,请参阅 对 XML 属性的支持
  • 支持 xsi:nil 属性。 有关更多信息,请参阅 对 XML 属性的支持

仅映射级别 1.1

映射级别 1.1 与 CICS TS 3.1 区域和更高版本兼容。

此映射级别提供了 XML 字符和二进制数据类型的改进映射,尤其是在映射具有 maxLengthminLength 属性的可变长度数据时,这些属性是使用 XML 模式中的不同值定义的。 通过以下方式处理数据:
  • 可变长度二进制数据类型映射到容器。 将在语言结构中创建一个 16 字节的字段以存储容器的名称。 在运行时,二进制数据存储在容器中,而容器名称放置在语言结构中。
  • 最大长度大于 32 767 字节的可变长度字符数据类型映射到容器。 将在语言结构中创建一个 16 字节的字段以存储容器的名称。 在运行时,将字符数据存储在容器中,并将容器名称放入语言结构中。
  • 固定长度小于 16 MB 的字符和二进制数据类型映射到除 PL/I 以外的所有语言的固定长度字段。 在 PL/I 中, 32 767 字节或更少的固定长度字符和二进制数据类型映射到固定长度字段。
  • CICS 以 hexBinary 格式 (而不是 base64Binary 格式) 对数据进行编码和解码。 XML 模式中的 Base64Binary 数据类型映射到语言结构中的字段。 使用以下公式计算字段的大小: 4 × (ceil ( z /3)) ,其中:
    • z 是 XML 模式中数据类型的长度。
    • ceil ( x ) 是大于或等于 x的最小整数。
    如果 z 的长度大于 24 566 字节,那么生成的语言结构无法编译。 如果您具有大于 24 566 字节的 base64Binary 数据,那么必须使用映射级别 1.2。 通过映射级别 1.2,可以将 base64Binary 数据映射到容器,而不是使用语言结构中的字段。

仅映射级别 1.0

映射级别 1.0 与 CICS TS 3.1 区域和更高版本兼容。

请注意以下限制,这些限制在以后的映射级别中已修改:
  • DFHSC2LS 和 DFHWS2LS 将 XML 模式中的字符和二进制数据类型映射到语言结构中的固定长度字段。 查看此部分 XML 模式:
    <xsd:element name="example">
    <xsd:simpleType>
    <xsd:restriction base="xsd:string">
    <xsd:maxLength value="33000"/>
    </xsd:restriction>
    </xsd:simpleType>
    </xsd:element>
    该部分 XML 模式出现在 COBOL 语言结构中,如以下示例所示:
    15 example PIC X(33000)
  • CICS 以 hexBinary 格式 (而不是 base64Binary 格式) 对数据进行编码和解码。 DFHSC2LS 和 DFHWS2LS 将 Base64Binary 数据映射到固定长度的字符字段,其内容必须由应用程序进行编码或解码。
  • DFHSC2LS 和 DFHWS2LS 在处理期间忽略 XML 属性。
  • DFHLS2SC 和 DFHLS2WS 将语言结构中的字符和二进制字段解释为固定长度字段,并将这些字段映射到具有 maxLength 属性的 XML 元素。 在运行时,语言结构中的字段将填充空格或空值 (如果没有足够的可用数据)。