我有一个wsdl,我正在使用spyne复制soap服务。当我使用suds客户端解析wsdl,并创建一个要传递给服务方法并打印它的对象时,它显示:
inqMultiRequest =
(TSYSMultipleInquiryRequestType){
_reqID = ""
inquireRequest[] = <empty>
}
inquireRequest是一个没有定义类型的数组。要使用spyne模型对此进行建模,我将TSYSMultipleInquiryRequestType定义为:
class TSYSMultipleInquiryRequestType(TSYSRequestMsgType):
__namespace__ = DEFAULT_NS
inquireRequest = Array
但是当使用以下命令运行wsgi服务器时它会引发异常:
异常:无效的数组定义 TSYSMultipleInquiryRequestType.inquireRequest
我应该如何使用spyne对其进行建模,它可以接受没有定义类型的数组?
答案 0 :(得分:0)
我解决了问题。显然问题是suds如何报告servie方法和对象。我唯一需要的是指定max_occurs =&#39; inf&#39;在模型中。如果不指定max_occurs,suds客户端工厂会创建一个inquireRequest实例。使用max_occurs,它将其创建为一个我可以添加多个
的数组class TSYSMultipleInquiryRequestType(TSYSRequestMsgType):
inquireRequest = TSYSInquiryRequestType.customize(
nullable=False, min_occurs=0, max_occurs='inf')