我试图使用wsdlpull调用Web服务方法,直到我找到一个接受一个复杂类型数组的参数的服务方法,这很简单,在这种情况下它需要1个参数包含2个成员的无限数量的类型 - 名称/值对的数组。
<s:complexType name="SendDetails">
<s:sequence>
<s:element minOccurs="0" maxOccurs="unbounded" name="Detail" type="tns:Detail"/>
</s:sequence>
</s:complexType>
<s:complexType name="Detail">
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="Name" type="s:string"/>
<s:element minOccurs="0" maxOccurs="1" name="Value" type="s:string"/>
</s:sequence>
</s:complexType>
我不知道如何将这些作为参数设置为wsdlpull。
在使用其他工具重写之前,是否有人有示例代码或代码片段让我开始使用?
答案 0 :(得分:1)
似乎WsdlInvoker
对此没有支持(但是?)。 setValue
调用setInputValue
,后者又调用validate
,但此方法在检测到复杂类型时停止处理:
const XSDType * pType = sParser_->getType(typeId);
if (pType && !pType->isSimple()){
return 0;
}
似乎唯一支持的复杂类型是包含简单内容模型的类型。
这就是说,我认为gSOAP2和Microsoft Windows Web Services API是更好的原生替代品。