2012-02-29 9 views
0

Webサービスのパラメータと属性を取得するためにSUDSを使用してWSDLを調べたいと思います。私はこの1つの最後の事にかなり下っています。パラメータのminOccursとmaxOccursの値を見つけるためにサービスを調べるにはどうすればよいですか?Python SUDS - MinOccurs値とMaxOccurs値のためのWSDLの問い合わせ

suds.xsd.sxbaseオブジェクトにrequiredという名前のプロパティがありますが、私の出発点がクライアントオブジェクトであると仮定すると、取得するパスは表示されません。

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

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

パラメータがバインドされている場合どのように見つけることができますか?

ありがとうございます!

答えて

0

メソッドのファクトリリゾルバにクエリを実行し、children()メソッドを使用してパラメータを確認できます。

の例では、この方法のために、私は私のwsdlがありますない

>>> 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 

非常にエレガントな、それは

に動作します:

<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> 

を私は経由して属性を取得することができます

関連する問題