python spyne complexModel,数组为无类型

时间:2018-04-18 10:47:57

标签: soap suds spyne

我有一个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对其进行建模,它可以接受没有定义类型的数组?

1 个答案:

答案 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')