私は、先頭のアンダースコアで定義された変数を持つSOAPサービスを使用しています(プライベートを想定していますが、ドキュメントにはそれらを使用する必要がある特定の例があります)。WSDL では、次のようになります。
<xsd:element maxOccurs="1" minOccurs="0" name="__encoded_query" type="xsd:string"/>
いくつかの実験を通じて、 client.service 呼び出しで名前付きパラメーターを使用すると、先頭にアンダースコアがあるものを除いて、通常どおり変数を割り当てることができると判断しました。
例えば:
client.service.getRecords( name='server1' )
正しい XML を生成します。
<ns1:getRecords>
<name>server1</name>
</ns1:getRecords>
しかし、アンダースコアでパラメーターを使用しようとすると:
client.service.getRecords( __encoded_query='name=server1' )
生成される XML には、パラメーターがまったく含まれていません。
<ns1:getRecords/>
これが私が慣れていない構文のニュアンス (Python または suds) なのか、それともプライベート変数の規則に基づいて変数を保護することによって "スマート" になろうとしている suds なのかはわかりません。__encoded_query
いずれにせよ、これはこの Web サービスを使用する文書化された方法であるため、ブロックを含む XML を生成するために suds を取得する方法を理解する必要があります。