如何创建包含多个名称空间的类型

时间:2015-04-23 07:17:59

标签: spyne

我尝试接收并生成可以具有以下架构的消息:

<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()和朋友,我认为我看到了导致它的原因,但我无法解决如何解决问题,甚至无法解决问题。< / p>

1 个答案:

答案 0 :(得分:2)

认为这是我遇到的同样问题,我通过定义来解决它

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

这是通过查看spyne.protocol.xml.XmlDocument._get_members_etreespyne.model.complex._gen_attrs