2015-04-23 109 views
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()和朋友,我想我知道是什麼原因造成的,但我無法弄清楚如何修復它甚至解決它。

回答

2

認爲這是我有同樣的問題,我定義

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

這是在看spyne.protocol.xml.XmlDocument._get_members_etreespyne.model.complex._gen_attrs解決它。

+0

這是正確的,但我建議在父節點(本例中爲'NS1Data')對象內嵌入'rpcCall = NS2RPCCall.customize(sub_ns =「NS2」)''。 –

相關問題