Hi,
this sounds like SOAP::WSDL gets something wrong with nested complex
types.
There's a canonical XML form all XML can be transformed into (no matter
whether using prefixes or the xmlns="..." attribute), and from your
example it looks like SOAP::WSDL misinterprets at least one namespace.
Show quoted text>From your example, there should be no xmlns="" necessary, as all child
elements are in the same namespace, and the elements are supposed to be
namespace-qualified.
Can you provide a WSDL provoking this error?
Martin
Am Montag, den 17.05.2010, 09:59 -0400 schrieb Ruedi Rueegg via RT:
Show quoted text> Queue: SOAP-WSDL
> Ticket <URL:
https://rt.cpan.org/Ticket/Display.html?id=57441 >
>
> Hi Martin,
>
> 1) Setting elementFormDefault="unqualified" in the schema of the WSDL and
> recreating the perl bindings with wsdl2perl results in empty 'xmlns=""'
> attributes of the top level elements (1), e.g.
>
> <SOAP-ENV:Envelope xmlns:xsi="...">
> <SOAP-ENV:Body>
> <requestMsg xmlns="http://...">
> <header xmlns=""> (1)
> <timeStamp>2010-05-17T09:10:11Z</timeStamp>
> </header>
> <payload xmlns=""> (1)
> <entityIdentification>
> <subscriptionID>SAM:SER:1234</subscriptionID>
> </entityIdentification>
> ...
>
> soapUI 3.5 does not validate this message but accepts a non empty
> attribute
> <header xmlns="http://...">
> or its omission
> <header>
> ...
> <payload>
>
> 2) With the default elementFormDefault="qualified" the 'xmlns=""' appears
> as attribute of the child elements of complex types (2). This is not
> accepted by the SOAP server.
>
> <SOAP-ENV:Envelope xmlns:xsi="...">
> <SOAP-ENV:Body>
> <requestMsg xmlns="http://...">
> <header>
> <timeStamp>2010-05-17T09:20:22Z</timeStamp>
> </header>
> <payload>
> <entityIdentification xmlns=""> (2)
> <subscriptionID
> xmlns="http://...">SAM:SER:1234</subscriptionID>
> </entityIdentification>
> ...
>
> soapUI 3.5 does not validate this message but accepts the non empty
> attribute
> <entityIdentification xmlns="http://...">
> or its omission
> <entityIdentification>
>
> 3) soapUI (and eclipse WPT) creates from the WSDL
> (elementFormDefault="qualified") a valid request (with namespace
> prefixes), e.g.
>
> <soapenv:Envelope xmlns:soapenv="http://...">
> <soapenv:Header/>
> <soapenv:Body>
> <v1:requestMsg xmlns="http://...">
> <v1:header>
> <v1:timeStamp>2010-05-17T09:30:22Z</v1:timeStamp>
> </v1:header>
> <v1:payload>
> <v1:entityIdentification>
> <v1:subscriptionID>SAM:SER:1234</v1:subscriptionID>
> </v1:entityIdentification>
> ...
>
> Is there a way to use the set_prefix of SOAP::WSDL::Client to achieve this
> ?
>
> Ruedi
>
>