WSDLP, используя входы сложного типа

Я пытаюсь вызвать метод веб-службы с помощью wsdlpull, и это довольно просто, пока я не получу один метод службы, который принимает параметр, который является массивом сложных типов, в этом случае он принимает 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.

У кого-нибудь есть пример кода или фрагмент кода, чтобы начать работу, прежде чем я переписываю с помощью другого инструмента?

4

Решение

Кажется, что WsdlInvoker не имеет поддержки для этого (пока?). setValue звонки setInputValue который в свою очередь вызывает validate, но этот метод останавливает обработку при обнаружении сложного типа:

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

Единственный сложный тип, который, кажется, поддерживается, это тот, который содержит простую модель содержимого.

Это сказал, я думаю, gSOAP2 а также API веб-служб Microsoft Windows лучше родные альтернативы.

1

Другие решения


По вопросам рекламы [email protected]