Python SUDS - Опрос WSDL для значений MinOccurs и MaxOccurs - PullRequest
0 голосов
/ 29 февраля 2012

Я хотел бы опросить WSDL с помощью SUDS, чтобы получить параметры и атрибуты веб-службы. Я в значительной степени до этой последней вещи. Как запросить службу, чтобы найти значения параметров minOccurs и maxOccurs?

Я вижу, что в объекте suds.xsd.sxbase есть свойство, которое называется обязательным, но, предполагая, что моей начальной точкой является клиентский объект, я не вижу пути к нему.

http://jortel.fedorapeople.org/suds/doc/suds.xsd.sxbase-pysrc.html#SchemaObject.required

client = Client(endpoint, username=username, password=password)
client.service[0][method]

Как я могу узнать, связан ли параметр?

Спасибо!

1 Ответ

0 голосов
/ 06 марта 2012

вы можете запросить фабричный распознаватель для метода и использовать метод children () для просмотра его параметров.

пример, для этого метода у меня есть мой wsdl:

<complexType name="AddAuthorizationRoleRequestType">
   <sequence>
      <element name="_this" type="vim25:ManagedObjectReference" />
      <element name="name" type="xsd:string" />
      <element name="privIds" type="xsd:string" minOccurs="0" maxOccurs="unbounded" />
   </sequence>
</complexType>

Я могу получить атрибуты через:

>>> a=client.factory.resolver.find("ns0:AddAuthorizationRoleRequestType")
>>> priv_el=a.children()[2][0]
<Element:0x107591a10 name="privIds" type="(u'string', u'http://www.w3.org/2001/XMLSchema')" />
>>> priv_el = a.children()[2][0]
>>> priv_el.max
unbounded
>>> priv_el.min
0

не очень элегантно, но работает

...