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

I have the following SOAP-Server Code:
use SOAP::Transport::HTTP; my $daemon = SOAP::Transport::HTTP::Daemon -> new (LocalPort => 10013, Reuse => 1) -> dispatch_to('Demo'); print "Contact to SOAP server at ", $daemon->url, "\n"; $daemon->handle; package Demo; use Data::Dumper; sub OrderInquiry { print "OrderInquiry called\n"; my $self = shift; my %hash = @_; print Dumper \%hash; return "OrderInquiry order Created"; }
When I call this client script:
use SOAP::Lite +trace => [qw(debug)]; print SOAP::Lite -> uri('/Demo') -> proxy('http://localhost:10013/') -> OrderInquiry(SOAP::Data->name(vorname=>'physi')) + -> result;
I get the following result in the server window:
OrderInquiry called
$VAR1 = {
          'physi' => undef
        };
But where can I access the tag 'vorname'? The XML, which was sended contains :
<vorname xsi:type="xsd:string">physi</vorname>
How can I access the 'vorname' tag? I thought that I should get a hash in the server which looked like that:
$VAR1 = {
          'vorname' => 'physi'
        }
but the key is missing.

Any suggestions ?

Thanks in advance.
-----------------------------------
--the good, the bad and the physi--
-----------------------------------

Replies are listed 'Best First'.
Re: How to get SOAP Tags in SOAP::Lite Server
by Anonymous Monk on Nov 05, 2009 at 09:00 UTC
      Well, I don't want to get envelop Data, I like to access the body xml as a hash. Or am I'm missing something? Couldn't get further with this hint :-(
      -----------------------------------
      --the good, the bad and the physi--
      -----------------------------------