Strictly speaking, that ain't necessary :)
#!/usr/bin/perl --
use strict;
use warnings;
use SOAP::Lite;
#~ use SOAP::Lite 0.65 +trace => 'debug';
use SOAP::Lite +trace => [ 'all', '-objects' ];
my $soap =
SOAP::Lite->proxy( 'http://localhost/blah/DummyService', timeout =>
+1, );
my $serializer = $soap->serializer();
$serializer->register_ns( 'http://mydummy.namespace.localhost', 'mns'
+);
my $data = [
SOAP::Data->name('mns:test'),
SOAP::Data->name( 'mns:description' => 'an item in my namespace',
+)
->type('mns:mytype')
];
print $serializer->envelope(
method => @{ $data }
), "\n";
warn "\n", '-' x 66, "\n";
my $som = eval { $soap->call( @{$data} ) };
warn "\n", '-' x 66, "\n";
__END__
### *nix $ perl testsoap.pl 3 2>/dev/null |xml_pp
$ perl testsoap.pl 2>NUL |xml_pp
<?xml version="1.0" encoding="UTF-8"?>
<soap:Envelope soap:encodingStyle="http://schemas.xmlsoap.org/soap/enc
+oding/" xmlns:mns="http://mydummy.namespace.localhost" xmlns:soap="ht
+tp://schemas.xmlsoap.org/soap/envelope/" xmlns:soapenc="http://schema
+s.xmlsoap.org/soap/encoding/" xmlns:xsd="http://www.w3.org/2001/XMLSc
+hema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<soap:Body>
<mns:test>
<mns:description xsi:type="mns:mytype">an item in my namespace</
+mns:description>
</mns:test>
</soap:Body>
</soap:Envelope>