我有一个来自第三方服务的原始 wsdl。简化。
<s:element name="ProcessRequest">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="strXMLInput" type="s:string"/>
</s:sequence>
</s:complexType>
</s:element>
我为 CICS Web 服务助手进行了修改,它生成一个 COBOL 副本来表示应该发送到服务的 xml。
简化。
<s:element name="ProcessRequest">
<s:complexType>
<s:sequence>
<s:element name="strXMLInput" >
<s:complexType>
<s:sequence>
<s:element name="ACORD">
<s:complexType>
<s:sequence>
<s:element name="SignonRq">
<s:complexType>
<s:sequence>
<s:element name="CustLoginId">
<s:simpleType>
<s:restrictionbase="s:string" >
<s:length value="10"/>
</s:restriction>
</s:simpleType>
</s:element>
我已经更改了 wsdl,因此我的字帖将包含所有元素,以将正确的 ACORD xml 发送到服务,而不是在 cobol 中构建一个冗长的字符串。使用 WireShark,我捕获了服务请求,并且完全是未编码的文档 xml,因此是正确的请求
<ProcessRequest><strXMLInput>>:Acord....etc,
但我正在发送我的模组
<ProcessRequest><strXMLInput><Acord....etc.//actual doc xml
无论如何,我可以使用扩展的 wsdl 来完成这项工作,并让大型机知道 strXMLInput 仍然是一个字符串,但有孩子,或任何其他想法?谢谢...