加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c – 使用复杂类型输入的WSDLPull

发布时间:2020-12-16 07:11:38 所属栏目:百科 来源:网络整理
导读:我正在尝试使用wsdlpull调用Web服务方法,这很简单,直到我得到一个接受一个复杂类型数组的参数的服务方法,在这种情况下,它需要1个参数,这是一个无限数量的类型包含2个成员 – 一组名称/值对. s:complexType name="SendDetails" s:sequence s:element minOccur
我正在尝试使用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是更好的本土替代品.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读