Soap 创建 xs:choice 元素
Zeep create xs:choice element
我有 ArrayOfVEHICLE 类型的 wsdl:
<xs:complexType name="ArrayOfVEHICLE">
<xs:sequence>
<xs:choice maxOccurs="unbounded" minOccurs="0">
<xs:element name="VEHICLE" nillable="true" type="tns:VEHICLE"/>
<xs:element name="VEHICLEV2" nillable="true" type="tns:VEHICLEV2"/>
</xs:choice>
</xs:sequence>
</xs:complexType>
我正在尝试使用 zeep 创建具有该类型的元素:
vehicle_v2_type = client.get_type("ns0:ArrayOfVEHICLE")
vehicle_v2 = vehicle_v2_type(VEHICLEV2={...})
我得到一个错误:
TypeError: {http://www.vsk.ru}ArrayOfVEHICLE() got an unexpected keyword argument 'VEHICLE2'. Signature: `({VEHICLE: {http://www.vsk.ru}VEHICLE} | {VEHICLEV2: {http://www.vsk.ru}VEHICLEV2})[]`
我试过使用 zeep docs 中的 _value_1 方法,如下所示:
vehicle_v2 = vehicle_v2_type(_value_1={"VEHICLEV2": {...}})
我又收到一个错误:
TypeError: No complete xsd:Sequence found for the xsd:Choice '_value_1'.
The signature is: ({VEHICLE: {http://www.vsk.ru}VEHICLE} | {VEHICLEV2: {http://www.vsk.ru}VEHICLEV2})[]
有人知道如何使用 zeep 创建该元素吗?
好的,我知道了。我的 wsdl 说选择元素必须是列表,因为签名:
<xs:choice maxOccurs="unbounded" minOccurs="0">
简单的方法是创建 Nested list using _value_1,在我的例子中没有工厂
client.service.SomeService(
...
vehicles={ # Element with ArrayOfVEHICLE type
"_value_1" : [
{
"VEHICLE2": {...}
}
]
}
)
希望这对某人有所帮助
我有 ArrayOfVEHICLE 类型的 wsdl:
<xs:complexType name="ArrayOfVEHICLE">
<xs:sequence>
<xs:choice maxOccurs="unbounded" minOccurs="0">
<xs:element name="VEHICLE" nillable="true" type="tns:VEHICLE"/>
<xs:element name="VEHICLEV2" nillable="true" type="tns:VEHICLEV2"/>
</xs:choice>
</xs:sequence>
</xs:complexType>
我正在尝试使用 zeep 创建具有该类型的元素:
vehicle_v2_type = client.get_type("ns0:ArrayOfVEHICLE")
vehicle_v2 = vehicle_v2_type(VEHICLEV2={...})
我得到一个错误:
TypeError: {http://www.vsk.ru}ArrayOfVEHICLE() got an unexpected keyword argument 'VEHICLE2'. Signature: `({VEHICLE: {http://www.vsk.ru}VEHICLE} | {VEHICLEV2: {http://www.vsk.ru}VEHICLEV2})[]`
我试过使用 zeep docs 中的 _value_1 方法,如下所示:
vehicle_v2 = vehicle_v2_type(_value_1={"VEHICLEV2": {...}})
我又收到一个错误:
TypeError: No complete xsd:Sequence found for the xsd:Choice '_value_1'.
The signature is: ({VEHICLE: {http://www.vsk.ru}VEHICLE} | {VEHICLEV2: {http://www.vsk.ru}VEHICLEV2})[]
有人知道如何使用 zeep 创建该元素吗?
好的,我知道了。我的 wsdl 说选择元素必须是列表,因为签名:
<xs:choice maxOccurs="unbounded" minOccurs="0">
简单的方法是创建 Nested list using _value_1,在我的例子中没有工厂
client.service.SomeService(
...
vehicles={ # Element with ArrayOfVEHICLE type
"_value_1" : [
{
"VEHICLE2": {...}
}
]
}
)
希望这对某人有所帮助