使用 CICS 助手时的数据映射限制
CICS® 支持高级语言结构与符合 WSDL 版本 1.1 或 2.0的 XML 模式或 WSDL 文档之间的双向数据映射,但存在某些限制。 这些限制仅适用于 DFHWS2LS 和 DFHSC2LS 工具,并根据映射级别而有所不同。
所有映射级别的限制
- 仅支持使用文字编码的 SOAP 绑定。 因此,必须将
use属性设置为值literal;use="encoded"不受支持。 - 必须使用 XML 模式定义语言 (XSD) 对数据类型定义进行编码。 在模式中,必须显式声明 SOAP 消息中使用的数据类型。
- Web Service 描述中某些关键字的长度有限。 例如,操作,绑定和部件名限制为 255 个字符。 在某些情况下,最大操作名称长度可能稍短。
- 将忽略 Web Service 描述中定义的任何 SOAP 故障。 如果希望服务提供者应用程序发送 SOAP 故障消息,请使用 EXEC CICS SOAPFAULT 命令。
- DFHWS2LS and DFHSC2LS support only a single <xsd:any> element in a particular scope. 例如,不支持以下模式片段:
在此处,如果需要,<xsd:sequence> <xsd:any/> <xsd:any/> </xsd:sequence><xsd:any>可以指定minOccurs和maxOccurs。 例如,支持以下模式片段:<xsd:sequence> <xsd:any minOccurs="2" maxOccurs="2"/> </xsd:sequence> - 不支持循环引用。 例如,其中类型 A 包含类型 B ,而类型 B 又包含类型 A。
- Recurrence is not supported in group elements, such as <xsd:choice>, <xsd:sequence>, <xsd:group>, or <xsd:all> elements. 例如,不支持以下模式片段:
异常位于映射级别 2.1 和更高级别,其中<xsd:choice maxOccurs="2"> <xsd:element name="name1" type="string"/> </xsd:choice>maxOccurs="1"和minOccurs="0"在这些元素上受支持。 - DFHSC2LS 和 DFHWS2LS 不支持 SOAP 消息中的数据类型和元素,这些数据类型和元素派生自来自
xsi:type属性或替换组的 XML 模式中的已声明数据类型和元素,但在映射级别 2.2 及更高级别 (如果父元素或类型定义为抽象) 时除外。 - Embedded <xsd:sequence> and <xsd:group> elements inside an <xsd:choice> element are not supported prior to mapping level 2.2. Embedded <xsd:choice> and <xsd:all> elements inside an <xsd:choice> element are never supported.
改进了映射级别 1.1 和更高版本的支持
当映射级别为 1.1 或更高时, DFHWS2LS 提供对以下 XML 元素和元素类型的支持:
- The <xsd:list> element.
- The <xsd:union> element.
xsd:anySimpleType类型。- The <xsd:attribute> element. 在映射级别 1.0 ,将忽略此元素。
改进了映射级别 2.1 和更高版本的支持
当映射级别为 2.1 或更高时, DFHWS2LS 支持以下 XML 元素和元素属性:
- The <xsd:any> element.
xsd:anyType类型。- 抽象元素。 在较早的映射级别中,仅支持抽象元素作为继承层次结构中的非终端类型。
- The
maxOccursandminOccursattributes on the <xsd:all>, <xsd:choice>, and <xsd:sequence> elements, only whenmaxOccurs="1"andminOccurs="0". - 将禁止 COBOL 中的 "填充物" 字段和 PL/I 中的 "*" 字段。 这些字段不会显示在生成的 WSDL 中,并且在运行时在数据结构中留下相应的间隔。
改进了映射级别 2.2 和更高版本的支持
When the mapping level is 2.2 or higher, DFHSC2LS and DFHWS2LS provide improved support for the <xsd:choice> element, supporting a maximum of 255 options in the <xsd:choice> element. For more information on <xsd:choice> support, see Support for <xsd:choice>.
在映射级别 2.2 和更高版本上, CICS 助手支持以下 XML 映射:
- 替换组
- 元素的固定值
- 抽象数据类型
Embedded <xsd:sequence> and <xsd:group> elements inside an <xsd:choice> element are supported at mapping level 2.2 and higher. 例如,支持以下模式片段:
<xsd:choice>
<xsd:element name="name1" type="string"/>
<xsd:sequence/>
</xsd:choice>
如果将 SOAP 消息中的父元素或类型定义为抽象元素,那么 DFHSC2LS 和 DFHWS2LS 支持从 XML 模式中声明的数据类型和元素派生的数据类型和元素。
改进了映射级别 3.0 和更高版本的支持
当映射级别为 3.0 或更高时, CICS 助手支持以下映射改进:
- DFHSC2LS 和 DFHWS2LS 将
xsd:dateTime数据类型映射到 CICS ASKTIME 格式。 - DFHLS2WS 可以从使用多个容器而不是仅使用一个容器的应用程序生成 WSDL 文档和 Web Service 绑定。
- 容许由固定长度数据结构描述的截断数据。 您可以使用 CICS 助手上的 DATA-TRUNCATION 参数来设置此行为。
改进了映射级别 4.0 和更高版本的支持
当映射级别为 4.0 或更高时, CICS 助手支持以下映射改进:
在映射级别 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 编码的应用程序数据。
- 使用 DFHLS2WS 或 DFHLS2SC时,可以通过对 UTF-16使用特定于语言的数据类型来启用此行为。
- 使用 DFHWS2LS 或 DFHSC2LS时,可以通过设置 CCSID=1200来启用此行为。
- CICS 仅支持单个 Unicode 代码页
具有 IBM® 专用区域的 UTF-16BE
(CCSID 1200)。 - 不支持转换使用 UTF-8 编码的应用程序数据。
注: DFHLS2WS 和 DFHLS2SC 不支持 COBOL GROUP USAGE NATIONAL 子句。