Primary Navigation

WSDL limitations

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

Message 1 of 7
, Aug 29 10:44 AM

0 Attachment

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?

Thomas J Pinkl

... 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

Message 2 of 7
, Sep 5, 2006

0 Attachment

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.

Off topic: I worked with a Barry Roomberg once, at a company in Ivyland
PA. Any connection?

... 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

Message 3 of 7
, Sep 5, 2006

0 Attachment

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)

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)

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

Message 5 of 7
, Sep 6, 2006

0 Attachment

Message

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.

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)

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

Message 6 of 7
, Sep 6, 2006

0 Attachment

Message

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.

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.

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)

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

Message 7 of 7
, Sep 7, 2006

0 Attachment

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?

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.

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.

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)