我正在尝试使用 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 的参数。
在我使用不同的工具重写之前,有没有人有示例代码或片段来帮助我入门?
最佳答案
似乎 WsdlInvoker
不支持这个(还?)。 setValue
电话 setInputValue
依次调用 validate
, 但当检测到复杂类型时,此方法将停止处理:
const XSDType * pType = sParser_->getType(typeId);
if (pType && !pType->isSimple()){
return 0;
}
似乎唯一受支持的复杂类型是包含简单内容模型的类型。
这样说,我觉得gSOAP2和 Microsoft Windows Web Services API是更好的原生替代品。
关于c++ - 使用复杂类型输入的 WSDLPull,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29802743/