[Soap-py-dev] complexTypeのメソッド

Back to archive index

Katsunori KANDA aml03****@mail1*****
2002年 5月 1日 (水) 02:23:30 JST


神田です。

早速メーリングリストに投稿してみました:-)

> SOAP.pyはcomplexTypeを投げられるようになっているようなのですが。。。
> 
> Sourceforge.jpのドキュメントに粗い訳をとりあえず置こうと作業していたら、

とてもありがたいです。

> 結構そんなことが書いてあるような。。。未確認ですが。
> 
> 文書の中のsimpleTypes.ja.txtです。
> # なぜかsimpleTypesなんです。。。
> 

確かに、そんなことが書いてあると思って
結局、もう一度丹念にソースを呼んでみたら一応の抜け道は用意され
ていました。

例によってTradeTracの呼び出しでためしてみました。

#!/usr/bin/env python

import sys
import SOAP

remote = SOAP.SOAPProxy(
  "http://ws.serviceobjects.net/uspo/USPatentOffice.asmx",
  namespace="http://www.serviceobjects.com/",
  soapaction="http://www.serviceobjects.com/GetPatentInfo"
)

SOAP.Config.debug = 1
remote.config.buildWithNamespacePrefix = 0
result = remote.GetPatentInfo(strInput="1234", strLicenseKey="123")

print result.Error


この中の、
config.buildWithNamespacePrefix = 0
とすると、指定した名前空間をデフォルトの名前空間として宣言でき
るみたいです。

#クラスSOAPBuilder の メソッドgennsを参照してみてください

この方法を使えばおそらく、今公開されてるほとんどのWebサービスは
呼び出せるような気がしますが、何でもというわけにはいかないでし
ょう。

たとえば、
<SOAP-ENV:Body>
    <Foo xmlns="urn:foo">
        <b:bar xmlns:b="urn:bar" />
	</Foo>
</SOAP-ENV:Body>
といった、2つの名前空間にまたがった形で引数を与えることは
できません。

いきなりここまで、やるのか?という疑問はかなりありますけど・・。
現状での、SOAP.pyの限界はここいらへんだと思います。




Soap-py-dev メーリングリストの案内
Back to archive index