spyneクラス定義から特定のクラスタグ名を取得する方法はありますか?spyneポリモーフィックなタグ名を正しく取得する方法
場合を考えると、私のクラス階層は次のようになります。
# models.py
class Vehicle(ComplexModel):
...
class Car(Vehicle):
...
class Bike(Vehicle):
...
それから私は、多型の作業を取得するために、彼らの問題は似ているようだ引き起こし、この質問の答えの指示に従いました。変更された
how to implement abstract model in spyne
How do you @rpc _returns polymorphic types in spyne?
重要なコード行:
# start.py
application=Application(
...
in_protocol=Soap11(...),
out_protocol=Soap11(polymorphic=True)
)
これまでのところ、とても良いです。私はこれをした後、私は次のような応答を持っている:
<!-- Response.xml -->
...
<Vehicle xsi:type="Car">
...
</Vehicle>
...
だから私の質問は次のとおりです。
iはタグ名として一般的なクラス名Vehicle
を取り除くとの名前を取得取得することができます特定のクラス代わりにタグ名としてCar
?
したがって応答は次のようなものでなければなりません:
Remove the namespace from Spyne response variables
:私は `ctx.out_string」といくつかのアプローチや、この問題のいくつかのテキスト置換を見てきました
<Car>
...
</Car>
私はおそらく私のためにうまくいくと思いますが、まだ見つからなかったAPIに「従来の」方法がある場合は、代わりに使用することがわかっています。
これは、SOAP多形性の実装方法です。これはバグだと思いますか? –
@BurakArslanさて、私はそれに精通していませんでした。私はそれについて少し研究します。いいえ この種の機能は必要ないと言っているのですが、lxmlのようなxmlインタプリタは、xmlで作業するときには、tagnameとして 'xsi:type'を決定する必要があります。また、 'xsi:type'が特定の型であるため、一般的なスーパークラスをタグ名のように無視します。 – 0x00F
今どこから来ているのか分かります。私の答えを見てください。 –