Matt,
The factory.create() method takes a (.) separated path. The path is used to reference elements nested elements such as:
<element name="A"> <element name="B"/> <element name="C"/> </element> </element>
Element 'C' is not a top level element so the only way to create one is using the following path:
client.factory.create('A.B.C')
But, to handle names containing (.), I'll need to add an optional param (maybe: pathseparator) to create(). I'll CC you on the ticket so you'll get an email when it's committted.
Regards,
Jeff
Matt C wrote:
It looks like I'm working, at least for the getter methods. I'm flailing now with figuring out how to deal with my types correctly...I suspect that the types defined with dots "." in them may cause me grief:
Calling the create() method expects the following types: create(Common.StringSequence pool_names, LocalLB.LBMethodSequence lb_methods, Common.IPPortDefinitionSequenceSequence members, )
In [198]: mem = c.factory.create('Common.IPPortDefinition') DEBUG:suds.resolver:searching schema for (Common) DEBUG:suds.xsd.query:('Common', u'urn:iControl'), not-found DEBUG:suds.xsd.query:('Common', u'urn:iControl'), not-found ERROR:suds.resolver:(Common) not-found ERROR:suds.resolver:path: "Common.IPPortDefinition", not-found
Any suggestions? Once I figure out how to deal with these types correctly (with fingers crossed that Suds is OK with the Soap-Enc: Arrays defined in the WSDL) I think we may be off to the races.
Regards, Matt
On Thu, Feb 26, 2009 at 3:47 PM, Matt C <mcauthorn@gmail.com mailto:mcauthorn@gmail.com> wrote:
Jeff: Many thanks. I'll look into getting the WSDL changed. In the meantime I'm eager to start working with the library - thanks for the work! Regards, Matt On Wed, Feb 25, 2009 at 2:45 PM, Jeff Ortel <jortel@redhat.com <mailto:jortel@redhat.com>> wrote: Hey Matt, Found the problem. The Import.bind() isn't helping because the WSDL is broken in a different way. It is referencing the 'Array' type defined in the schema for the soap section 5 encoding namespace ( http://schemas.xmlsoap.org/soap/encoding/ ) but does *not* import it. Properly importing the namespace by adding: <xsd:import namespace='http://schemas.xmlsoap.org/soap/encoding/'/ <http://schemas.xmlsoap.org/soap/encoding/%27/>> at line #24 in the WSDL fixes the WSDL. (see attached). As mentioned, 0.3.4 automatically binds the 'http://schemas.xmlsoap.org/soap/encoding/' namespace to the schemaLocation="http://schemas.xmlsoap.org/soap/encoding/". So, if you're using suds 0.3.4+, you no longer need to manually bind the namespace. Hope this helps, Jeff Matt C wrote: For some reason I simply can't get past this error. I am running 0.3.3 and I've tried all of the manual bind tricks that I've been able to dig up. Any suggestions would be most appreciated. The WSDL in question is attached. Regards, Matt On Mon, Feb 23, 2009 at 10:23 AM, Giovanni Marco Dall'Olio <dalloliogm@gmail.com <mailto:dalloliogm@gmail.com> <mailto:dalloliogm@gmail.com <mailto:dalloliogm@gmail.com>>> wrote: On Mon, Feb 23, 2009 at 3:56 PM, Jeff Ortel <jortel@redhat.com <mailto:jortel@redhat.com> <mailto:jortel@redhat.com <mailto:jortel@redhat.com>>> wrote: > > > Giovanni Marco Dall'Olio wrote: >> >> Hi people, >> >> I have received many times the same error "Type not found: '(Array, >> http://schemas.xmlsoap.org/soap/encoding/, )", when using suds to >> interrogate some third party wsdl services. > > This is a schema import issue that is address in: > https://fedorahosted.org/suds/wiki/TipsAndTricks under heading: "Schema - > TypeNotFound". > > Note: Since the problem is so wide spread, 0.3.4 automatically does the > bind(). Thank you very much for the quick answer! I can confirm you that with 0.3.4 it works well. One last thing: I am going to report this problem to the respective maintainers of the various wsdls. >> >> I have also posted a bug report here: >> - https://fedorahosted.org/suds/ticket/200 >> >> however, hey, please check your bug tracker because it seems to have >> been spammed. > > This is big problem on all Fedora Trac projects :-( > > We're working to resolve the problem. > >> >> Here are the wsdl from which I get the Type not found error: >> - http://soap.genome.jp/KEGG.wsdl >> - http://www.reactome.org:8080/caBIOWebApp/services/caBIOService?wsdl >> - those here: http://bond.unleashedinformatics.com/Action? (go to >> 'Downloads - WSDL APIs') >> >> _______________________________________________ >> fedora-suds-list mailing list >> fedora-suds-list@redhat.com <mailto:fedora-suds-list@redhat.com> <mailto:fedora-suds-list@redhat.com <mailto:fedora-suds-list@redhat.com>> >> https://www.redhat.com/mailman/listinfo/fedora-suds-list > -- My blog on bioinformatics (now in English): http://bioinfoblog.it _______________________________________________ fedora-suds-list mailing list fedora-suds-list@redhat.com <mailto:fedora-suds-list@redhat.com> <mailto:fedora-suds-list@redhat.com <mailto:fedora-suds-list@redhat.com>> https://www.redhat.com/mailman/listinfo/fedora-suds-list ------------------------------------------------------------------------ _______________________________________________ fedora-suds-list mailing list fedora-suds-list@redhat.com <mailto:fedora-suds-list@redhat.com> https://www.redhat.com/mailman/listinfo/fedora-suds-list