标题处理程序容器
CICS® 提供的 SOAP 1.1 和 SOAP 1.2 消息处理程序通过使用通道 DFHHHC-V1 链接到标题处理程序。 在通道上传递的容器包括 DFHHEADER(专门用于报头处理程序接口),以及其他容器,如 DFHHEADER、DFHWS-XMLNS、DFHWS-BODY 和 DFHXMLSS-PARSE,这些容器在管道的其他部分可用,但在报头处理程序中有特定用途。
头处理程序接口还传递控制容器集、上下文容器集和用户容器集,管道中的所有头处理程序和消息处理程序都可以访问这些容器集。 有关这些容器的信息,请参阅 网络服务管道中使用的容器。
DFHHEADER 容器
当调用报头处理程序时,DFHHEADER 包含导致报头处理程序被驱动的单个报头块。 如果在管道配置文件中用 <mandatory>true</mandatory> 或 <mandatory>1</mandatory> 指定了头信息程序,即使 SOAP 消息中没有匹配的头信息块,也会调用该程序。 在这种情况下,容器 DFHHEADER 的长度为零。 当调用报头处理程序向没有报头块的 SOAP 报文添加报头块时,就会出现这种情况。
CICS 创建的 SOAP 消息最初没有报头。 如果要在邮件中添加标题,必须通过指定 <mandatory>true</mandatory> 或 <mandatory>1</mandatory> 来确保至少调用一个标题处理程序。
- 您可以原封不动地返回原始标题块。
- 您可以修改标题块的内容。
- 您可以在原始数据块上添加一个或多个新的标题数据块。
- 您可以用一个或多个不同的区块来替换原来的页眉区块。
- 您可以完全删除标题块。
DFHWS-XMLNS 容器
- 解析标题块中遇到的限定名称。
- 在新的或修改过的标题块中构建限定名称。
- 示例
xmlns:na='http://abc.example.org/schema' xmlns:nx='http://xyz.example.org/schema'
您可以在 DFHWS-XMLNS 的内容中添加更多命名空间声明到 SOAP 信封中。 不过,如果命名空间的作用域是 SOAP 头文件块或 SOAP 主体,则最好分别在头文件块或主体中声明。 建议不要在标题处理程序中删除容器 DFHWS-XMLNS 中的命名空间声明,因为在程序中不可见的 XML 元素可能会依赖这些声明。
DFHWS-BODY 集装箱
该容器包含 SOAP 信封的主体部分。 标题处理程序可以修改内容。
调用标题处理程序时,DFHWS-BODY 包含 SOAP <Body> 元素。
<Body> CICS 插入到 SOAP 消息中,以代替原来的 SOAP 消息:- 您可以原封不动地返回原始正文。
- 您可以修改正文的内容。
您不能完全删除 SOAP 主体,因为每个 SOAP 消息都必须包含一个 <Body> 元素。
DFHXMLSS-PARSE 容器
在管道配置中使用 <cics_soap_1.1_handler> 或 <cics_soap_1.2_handler> 元素并调用头程序时,DFHXMLSS-PARSE 会包含该头的 XML 系统服务 (XMLSS) 记录。 使用 <cics_soap_1.1_handler_java> 或 <cics_soap_1.2_handler_java> 元素时,不会创建此容器。