in reply to Re^2: Setting XML prefix for tags with SOAP::Lite
in thread Setting XML prefix for tags with SOAP::Lite

Well as I was cleaning up my parameter-adding code to post, I had some inspiration and have found a way to do it (though it seems clunky). I have also realised that it wasn't the lack of prefix causing the problem, it was that I was using the wrong method name (d'oh!). New code:

my @params = ( SOAP::Data->new( prefix => '', name => 'param1', value => SOAP::Data->type('' =>'value1') ), SOAP::Data->new( prefix => '', name => 'param2', value => SOAP::Data->type('' =>'value2') ) ); my $result = $rba->DirList(@params, $gridName, $securityHeader)->resul +t();

Which results in:

<soap:Body> <DirList xmlns="Test_Module"> <param1>value1</param1> <param2>value2</param2> </DirList> </soap:Body>

The tag "DirList" needs to be "DirList-Request", but I can't use this directly in my current code as I get bareword errors...

Replies are listed 'Best First'.
Re^4: Setting XML prefix for tags with SOAP::Lite
by TheFluffyOne (Beadle) on Aug 01, 2008 at 09:34 UTC

    Well after much more RTFMing and Googling, I've figured out how to handle the hyphenated method name:

    my $result = $rba->call($workflowName => (@params, $gridName, $securityHeader))->result();

    This code isn't a direct replacement for the line in the code above as I have reworked a few variables, but I think knowing that $workflowName is the method name to call should be enough for most to figure it out :)

    Next challenge is to figure out why 'result' isn't being populated...