我正在使用 zeep (Python 3.6) 与 SOAP API 交互,并使用包含此部分的 WSDL 模式:
<xs:element name="passengers">
<xs:complexType>
<xs:sequence>
<xs:element maxOccurs="unbounded" name="passenger" type="com:PassengerType"/>
</xs:sequence>
</xs:complexType>
</xs:element>
所以我希望我的 zeep 生成的 XML 看起来像这样:
<book:passengers>
<book:passenger>
...redacted...
</book:passenger>
</book:passengers>
我第一次尝试使用 Zeep 实现这一点是这样的:
passengers = [factories.PassengerType()]
但是,当将此发送到我的 SOAP API 时,会产生以下错误:
File "/usr/local/lib/python3.6/site-packages/zeep/xsd/elements/element.py", line 220, in validate
"Missing element %s" % (self.name), path=render_path)
zeep.exceptions.ValidationError: Missing element passenger (createBookingRecordRequest.passengers)
我相信这是因为我的“乘客”属性应该包含一个带有标签名称“乘客”的 Zeep 对象,其中包含我的元素列表。我已经尝试修补zeep.xsd.AnyType
来实现这一点,但还没有成功。
任何建议,将不胜感激。