1

次のスキーマを持つことができるメッセージを受信して​​生成しようとしています:

<ns1:data>
  <ns1:status-change/>
  <ns2:rpc-call/>
</ns1:data>

私はそれから持っています:

class NS1ComplexModel(ComplexModel):
    __namespace__ = 'ns1'

class NS1Data(NS1ComplexModel):

    statusChange = NS1StatusChange
    rpcCall = NS2RPCCall

class NS1StatusChange(NS1ComplexModel):
    ...

しかし、これの結果、名前空間は であり、 ではns1ありませんns2

私はresolve_namespace()友人たちを調べてきましたが、何が原因なのかはわかっていると思いますが、それを修正する方法や回避する方法さえわかりません.

4

1 に答える 1

2

これは私が抱えている問題と同じだと思います。定義して解決しました

class NS2RPCCall(NS2ComplexModel):
    class Attributes(NS2ComplexModel.Attributes):
        sub_ns = NS1ComplexModel.__namespace__

これは と を見てspyne.protocol.xml.XmlDocument._get_members_etreeからspyne.model.complex._gen_attrsです。

于 2015-04-24T06:15:54.770 に答える