Re: [soaplite] Re: WSDL limitations
- Thanks for the tips Sherzod.
Is you eBay's SDK's custom stubmaker public? I'd be interested in repurposing it for the Google AdWords API.
Also do you think it is far fetched to imagine fixing stubmaker to handle complexTypes in the general case, like the .NET, Java and Ruby SOAP toolkits do?
P@On 9/6/06, Sherzod Ruzmetov <sherzodr@...> wrote:Here is a tip for you Venkatraman. Don't rely on SOAP::Lite's WSLD support for reasons some of which you already discovered.Another main reason is, WSLD's aren't really meant to be accessed real-time. They are used for generating stubs for a programming language in question. Actually, very small WSDLs can be OK to be accessed real-time, but most WSDLs used by commercial services (such as eBay and PayPal) are not small. On an average machine it may take upto 45-60 seconds to parse one.Before a true WSLD stubmaker is available in Perl here is what you need to do:Study WSDL--------------------1. If it's relatively small you should be able to peek in and figure everything out in minutes, and start using SOAP::Lite without giving it WSDL.2. If it's relatively large and doesn't contain any "complexType"s you should be able to use stubmaker.pl to generate a stub for the methods and use it instead.3. If it has few complexTypes defined stubmaker.pl's result will need to be edited.4. If it has too many complexTypes you should write a script and parse all the complexTypes and write your own specialized stubmaker. Your XML parser could be just regex based, nothing robust. To help with writing simpler regexps pass the WSLD through xmllint with its --format option. This will make sure that each complexType element will be in its own line and allows your regexps to be very simple.The best suited Perl data structure to represent complexTypes is a blessed reference (Class)I discovered all this when I was developing a Perl SDK for eBay's SOAP API. Just FYI, eBay's WSDL consisted of about 80,000 lines and 560 complex types. Weighed over 3 MBs.Sherzod Ruzmetov-----Original Message-----
From: Scott Seely [mailto:email@example.com]
Sent: Wednesday, September 06, 2006 9:59 AM
To: 'Sherzod Ruzmetov'; 'Venkatraman S'; firstname.lastname@example.org
Subject: RE: [soaplite] Re: WSDL limitations
And in this case, that complexType just has to be accessed directly instead of through SOAP::Lite's simpler mechanisms. All the data is available, but you go from the simple use cases to the more advanced ones as soon as complexType is in the picture.
In the XML Schema whatever is defined as complexType.
From: email@example.com [mailto:firstname.lastname@example.org] On Behalf Of Venkatraman S
Sent: Wednesday, September 06, 2006 2:45 AM
Subject: Re: [soaplite] Re: WSDL limitations
Thomas J Pinkl <thomas.pinkl@...> wrote:
On Tue, Aug 29, 2006 at 05:44:04PM -0000, barry_roomberg wrote:
> According to the docs:
> Limited support for WSDL schema.
> What exactly does this mean?
> I've got a vendor who provides a SOAP interface into their system, and
> it is based on the WSDL file they provide. What should I be on the
> lookout for that won't work?
>>I haven't used WSDL files as input to a SOAP::Lite client, but from
past traffic on this list it seems that SOAP::Lite's support for WSDL
is limited to basic data types.
And what are the data types that arent supported (WSDL in SOAP::Lite) ? My problem seems to be related to this, as my return data type is a huge file ( kind of CLOB)
Patrick Chanezon, Google API Evangelist