WSDLPull使用复杂类型输入

时间:2015-04-22 15:50:13

标签: c++ wsdlpull

我试图使用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。

在使用其他工具重写之前,是否有人有示例代码或代码片段让我开始使用?

1 个答案:

答案 0 :(得分:1)

似乎WsdlInvoker对此没有支持(但是?)。 setValue调用setInputValue,后者又调用validate,但此方法在检测到复杂类型时停止处理:

const XSDType * pType = sParser_->getType(typeId);
if (pType && !pType->isSimple()){
   return 0;
}

似乎唯一支持的复杂类型是包含简单内容模型的类型。

这就是说,我认为gSOAP2Microsoft Windows Web Services API是更好的原生替代品。

相关问题