[Xml-compile] Help with a WSDL declaring multiple operations with the same name

David McMath mcdave at stanford.edu
Fri Aug 24 17:54:57 GMT 2012


On 8/23/12 6:20 PM, David McMath wrote:
> Dear List,
>
> I'm supposed to work with the WSDL file at
>
> http://www1.sabameeting.com/CWS/CWS.asmx?WSDL
>
> XML::Compile::WSDL11 seems not to quite understand the file, and I =

> can't decide whether to gripe about the WSDL or about Perl.
>
> With my eye, I can see that there are several operations with the name =

> "Find".  I can't seem to invoke anything other than the one with =

> action "http://www.centra.com/CWS/FindUser". The attach script uses =

> XML::Compile::WSDL11::operations to list out facts about the =

> operations; I see the one for FindUser repeated but never, say =

> FindEvent.  And when I do
>
>     my $m =3D $wsdl->compileClient( 'Find',
>                                   transport_hook =3D> \&_fake_server,
>                                   port =3D> 'CWSSoap'
>                               ) ;
>
> I only get the FindUser method.
>
The URL I gave has evidently been having some issues.  It works for me, =

but whatever.  I quote what I think is the relevant snippet below; I can =

pass along the whole file if it helps (it's about 250K).

The issue seems to be that they violate recommendation "R2304" by using =

overloaded operators, but it's evidently still legal WSDL 1.1 (ok, they =

use the same name for input and output parameters; I edited my local =

copy to address that and it didn't help)

     http://ws-i.org/profiles/BasicProfile-1.2-2010-11-09.html#R2304

Folks around the internet basically just advise variations on "don't =

overload functions".  The workaround I've come up with it to further =

edit the WSDL myself to change the function names; I don't think that =

will affect the SOAP calls that are actually created, because there are =

different soapAction values for each case.  That's a lot of work for me =

to screw up, so I'd prefer a different solution.

Any advice is appreciated, but mostly I'm just about ready to accept =

"no" as an answer and try to fix the WSDL.

dave

--

   <wsdl:portType name=3D"CWSSoap">
...
     <wsdl:operation name=3D"Find">
       <wsdl:documentation =

xmlns:wsdl=3D"http://schemas.xmlsoap.org/wsdl/">Find all the Centra Users =

matching certain User parameters.</wsdl:documentation>
       <wsdl:input name=3D"FindUser" message=3D"tns:FindUserSoapIn" />
       <wsdl:output name=3D"FindUser" message=3D"tns:FindUserSoapOut" />
     </wsdl:operation>
  ...
     <wsdl:operation name=3D"Find">
       <wsdl:documentation =

xmlns:wsdl=3D"http://schemas.xmlsoap.org/wsdl/">Find all the Centra Events =

matching cetain Event parameters.</wsdl:documentation>
       <wsdl:input name=3D"FindEvent" message=3D"tns:FindEventSoapIn" />
       <wsdl:output name=3D"FindEvent" message=3D"tns:FindEventSoapOut" />
     </wsdl:operation>
...
   </wsdl:portType>

> Can anyone offer a suggestion about how I might find the proper =

> method?  I hope I'm just missing something simple.
>
> Thanks,
>
> dave


>
>
> _______________________________________________
> Xml-compile mailing list
> Xml-compile at lists.scsys.co.uk
> http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/xml-compile

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.scsys.co.uk/pipermail/xml-compile/attachments/20120824/b3=
391bc4/attachment.htm


More information about the Xml-compile mailing list