http://www.perlmonks.org?node_id=987017

jasonld has asked for the wisdom of the Perl Monks concerning the following question:

I am attempting to generate a client that calls a web service. I was able to get it nearly working, except it seems that the main method being called ends up with a tag with an xmlns attribute (i.e. <inv:InventoryUpdateBatch xmlns="...">). This is causing it to fail with "org.apache.axis2.databinding.ADBException: Unexpected subelement".

I know that removing the xmlns parameter on the main method's tag will work, as I confirmed it using SoapUI, by using the identical XML generated by SOAP::Lite, and removing that one xmlns attribute. Note that I am using call() to add a prefix (inv) to the method. That prefix is the same namespace that is in xmlns, which was previously serialized using register_ns(), so it shows up as an attribute on the soap:Envelope tag, xmlns:inv="...".

I have searched the cookbook and examples to no avail. Any help would be greatly appreciated. Thanks!

Replies are listed 'Best First'.
Re: Supress xmlns attribute in SOAP::Lite
by Anonymous Monk on Aug 13, 2012 at 08:08 UTC

    I am attempting to generate a client that calls a web service

    You're working too hard, use SOAP::Simple/XML::Compile::SOAP/http://perl.overmeer.net/xml-compile/ is much easier (if you learn the SOAP lingo)

    I have searched the cookbook and examples to no avail. Any help would be greatly appreciated. Thanks!

    :) I remember answering a question like that before, something to do with encodingStyle and/or envelope, but I hate SOAP :) 2010/2011 was a good year