我在 wsdl 中遇到了一些复杂类型的问题。这里是wsdl的一部分:
<xs:element name="Params" nillable="true">
<xs:complexType>
<xs:sequence>
<xs:element name="Param" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute name="name" type="xs:string"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
SOAP-req 中的结果字段必须类似于:
<ns0:Params>
<ns0:Param ns1:name="name1">val1</ns1:Param>
<ns0:Param ns1:name="name1">val1</ns1:Param>
</ns0:Params>
泡沫给了我下一个类型:
>>> client.factory.create("Payment.Params.Param")
(Param){
_name = ""
}
如果我设置 _name,suds 会生成 XML:
<ns0:Params>
<ns0:Param name="name1"/>
<ns0:Param name="name2"/>
</ns0:Params>
所以,我可以为“Param”设置属性名称,但是如何设置值呢?