I have set up a soaplib service using some complex types and using the soaplib client it all works as I would expect. But using the suds client I am having problems.

I am calling for a list of objects. I get a result of complex types back and within each complex type a couple of other complex types. These ones inside I cannot access without jumping through a load of hoops.

I have looked around for some idea as to what to do next, but have not found any real hints. I did find the sharepoint example which seems very close to what I am doing and the way that seems to work is what I was hoping I could do with my service. But my results are not the same. What I wanted to do was to access the elements via the usage job.actors.id etc. I can get job.actors, but after that is the problem. This is the point where the warning messages might be originating from.

The warning messages I am getting are coming from suds.umx about not finding a type which looks to me as though the complex types are not being interpreted correctly. I might be completely wrong here

I am hoping someone can give me a clue as to what I am doing wrong or point me in the direction of what to try next.

Below I have included the debug output which I hope is enough to see what is going on


Thanks for any info.

John Aherne


DEBUG:suds.client:sending to (http://localhost:7789/CreateJob?wsdl)
message:
<SOAP-ENV:Envelope xmlns:ns0="http://schemas.xmlsoap.org/soap/envelope/" xmlns:x
si="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENV="http://schemas.xm
lsoap.org/soap/envelope/">
   <SOAP-ENV:Header/>
   <ns0:Body/>
</SOAP-ENV:Envelope>
DEBUG:suds.client:headers = {'SOAPAction': u'"list_jobs"', 'Content-Type': 'text
/xml'}
DEBUG:suds.client:http succeeded:
<SOAP-ENV:Envelope xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http:/
/www.w3.org/1999/XMLSchema-instance" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/
soap/envelope/" xmlns="CreateJob.CreateJob"><SOAP-ENV:Body><list_jobsResponse><l
ist_jobsResult type="tns:JobArray"><Job><specialInstructions type="tns:SpecialIn
structionArray"><SpecialInstruction><type xsi:type="xs:string">Meeting</type><id
 xsi:type="xs:integer">244</id><value xs:nil="1"/></SpecialInstruction></special
Instructions><asSoonAsPossible xs:nil="1"/><callerName xsi:type="xs:string">john
</callerName><lastDrop xs:nil="1"/><jobDate xs:nil="1"/><callerPhone xs:nil="1"/
><number xsi:type="xs:integer">1</number><stops type="tns:StopArray"/><pinCode x
s:nil="1"/><delay xs:nil="1"/><cancelledOnArrival xs:nil="1"/><actors type="tns:
ActorArray"><Actor><id xs:nil="1"/><email xsi:type="xs:string">fred@fred.com</em
ail><role xs:nil="1"/><name xsi:type="xs:string">fred</name><telephone xs:nil="1
"/></Actor></actors><firstPickUp xs:nil="1"/><cancelled xs:nil="1"/><mainPasseng
er xs:nil="1"/><price xsi:type="xs:float">30.5</price><callerEmail xs:nil="1"/><
id xs:nil="1"/><serviceCode xs:nil="1"/></Job></list_jobsResult></list_jobsRespo
nse></SOAP-ENV:Body></SOAP-ENV:Envelope>
WARNING:suds.umx.typed:attribute (type) type, not-found
WARNING:suds.umx.typed:attribute (type) type, not-found
WARNING:suds.umx.typed:attribute (type) type, not-found
WARNING:suds.umx.typed:attribute (type) type, not-found
(JobArray){
   _type = "tns:JobArray"
   Job[] =
      (Job){
         specialInstructions =
            (SpecialInstructionArray){
               _type = "tns:SpecialInstructionArray"
               SpecialInstruction[] =
                  (SpecialInstruction){
                     type = "Meeting"
                     id = 244
                     value = None
                  },
            }
         asSoonAsPossible = None
         callerName = "john"
         lastDrop = None
         jobDate = None
         callerPhone = None
         number = 1
         stops =
            (StopArray){
               _type = "tns:StopArray"
            }
         pinCode = None
         delay = None
         cancelledOnArrival = None
         actors =
            (ActorArray){
               _type = "tns:ActorArray"
               Actor[] =
                  (Actor){
                     id = None
                     email = "fred@fred.com"
                     role = None
                     name = "fred"
                     telephone = None
                  },
            }
         firstPickUp = None
         cancelled = None
         mainPassenger = None
         price = 30.5
         callerEmail = None
         id = None
         serviceCode = None
      },
 }