将zeep用于xsd:choice

时间:2018-03-22 09:26:40

标签: python xml xsd wsdl zeep

我有以下类型

<xsd:element name="getDetail">
    <xsd:complexType>
        <xsd:sequence>
            <xsd:choice>
                <xsd:element name="uno" type="xsd:string" />
                <xsd:element name="dos" type="uct:DosType" />
                <xsd:element name="tres" type="uct:E164Type" />
                <xsd:element name="cuatro" type="xsd:string" />
            </xsd:choice>
        </xsd:sequence>
    </xsd:complexType>
</xsd:element>

所以我必须选择一个选项。为此,我确实遵循以下链接的数据结构方法,主要是嵌套使用_value_1方法

http://docs.python-zeep.org/en/master/datastructures.html

所以我写的代码就像这样

element = client.get_element('ns2:getSubscriptionDetail')
element_value = element(_value_1={'uno' : 'numeroUno', 'dos':'numeroDos' , 'tres': 'numeroTres', 'cuatro': 'numeroCuatro'})

但是当我运行我的python时,我收到了这个错误:

TypeError: {ns0}getSubscriptionDetail() got an unexpected keyword argument '_value_1'. Signature: `({uno: xsd:string} | {dos: {ns0}ImsiType} | {tres: {ns0}E164Type} | {cuatro: xsd:string})`

为什么 value1 是意外的参数?有什么想法吗?

PD:我的类型getDetail在xsd:sequence中有xsd:choice,在zeep文档中,类型是颠倒的。这很重要吗?我无法改变我的WSDL

0 个答案:

没有答案