Skip Menu |

This queue is for tickets about the SOAP-WSDL CPAN distribution.

Report information
The Basics
Id: 57441
Status: open
Priority: 0/
Queue: SOAP-WSDL

People
Owner: Nobody in particular
Requestors: Ruedi.Rueegg [...] ascom.ch
Cc:
AdminCc:

Bug Information
Severity: (no value)
Broken in: (no value)
Fixed in: (no value)



Subject: Howto suppress empty ' xmlns=""' ?
Date: Wed, 12 May 2010 21:22:38 +0200
To: bug-SOAP-WSDL [...] rt.cpan.org
From: Ruedi Rueegg <Ruedi.Rueegg [...] ascom.ch>
Howto suppress empty ' xmlns=""' ? Using SOAP-WSDL-2.00.10 on v5.8.9 built for MSWin32-x86-multi-thread. I'm writing a client for a SOAP server which doesn't accept xmlns="" in start tags of parent elements. Is there an option in SOAP::WSDL to suppress such empty namespace attributes ? Ruedi Rüegg
Subject: Re: [rt.cpan.org #57441] Howto suppress empty ' xmlns=""' ?
Date: Thu, 13 May 2010 19:37:49 +0200
To: bug-SOAP-WSDL [...] rt.cpan.org
From: Martin Kutter <martin.kutter [...] fen-net.de>
Hi Ruedi, the 'xmlns=""' attribute is - usually - not a bug. You probably get SOAP messages like this: <soap:Envelope xmlns:soap="..."> <soap:Body> <foo xmlns="uri:bar"> <baz xmlns=""> </baz> </foo> <soap:Body> <soap:Envelope> This is equivalent to <f:foo xmlns:f="uri:bar"> <baz> </baz> </f:foo> If you want the child elements of the top level element to be unqualified, set the elementFormDefault="unqualified" attribute in the XML Schema. SOAP::WSDL defaults to "qualified" (which actually is a bug, but is intentionally left unfixed up to now, because fixing would possibly break older clients. I'll add the ability to set the default some time, and then fix it). Martin Am Mittwoch, den 12.05.2010, 15:22 -0400 schrieb Ruedi Rueegg via RT: Show quoted text
> Wed May 12 15:22:57 2010: Request 57441 was acted upon. > Transaction: Ticket created by Ruedi.Rueegg@ascom.ch > Queue: SOAP-WSDL > Subject: Howto suppress empty ' xmlns=""' ? > Broken in: (no value) > Severity: (no value) > Owner: Nobody > Requestors: Ruedi.Rueegg@ascom.ch > Status: new > Ticket <URL: https://rt.cpan.org/Ticket/Display.html?id=57441 > > > > Howto suppress empty ' xmlns=""' ? > > Using SOAP-WSDL-2.00.10 on v5.8.9 built for MSWin32-x86-multi-thread. > > I'm writing a client for a SOAP server which doesn't accept xmlns="" in > start tags of parent elements. > Is there an option in SOAP::WSDL to suppress such empty namespace > attributes ? > > Ruedi Rüegg > > >
Subject: Re: [rt.cpan.org #57441] Howto suppress empty ' xmlns=""' ?
Date: Mon, 17 May 2010 15:59:27 +0200
To: bug-SOAP-WSDL [...] rt.cpan.org
From: Ruedi Rueegg <Ruedi.Rueegg [...] ascom.ch>
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
Subject: Re: [rt.cpan.org #57441] Howto suppress empty ' xmlns=""' ?
Date: Mon, 17 May 2010 23:13:02 +0200
To: bug-SOAP-WSDL [...] rt.cpan.org
From: Martin Kutter <martin.kutter [...] fen-net.de>
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 > >
Subject: Re: [rt.cpan.org #57441] Howto suppress empty ' xmlns=""' ?
Date: Tue, 18 May 2010 14:54:33 +0200
To: bug-SOAP-WSDL [...] rt.cpan.org
From: Ruedi Rueegg <Ruedi.Rueegg [...] ascom.ch>
Hi, Attached is Tst.wsdl that shows this behaviour. The resulting SOAP-request contains the empty 'xmlns=""' on line 8. <SOAP-ENV:Envelope xmlns:xsi="..."> <SOAP-ENV:Body> <requestMsg xmlns="http://..."> <header> <timeStamp>2010-05-18T09:33:16Z</timeStamp> </header> <payload> <entityIdentification xmlns=""> <subscriptionID xmlns="http://...">SAM:SER:1234</subscriptionID> </entityIdentification> </payload> </requestMsg> </SOAP-ENV:Body> </SOAP-ENV:Envelope> Ruedi
Download Tst.wsdl
application/octet-stream 3.7k

Message body not shown because it is not plain text.