Thank you for this excellent module.
I have used wsdl2perl.pl to generate classes, and have found this interface easy to use. I am able to generate a properly-encapsulated message with a call, but can't seem to find the invocation that will enable full namespacing. I know I could eventually trace my way through the serializer code and hack it in, but it seems it should be simple to do so.
The namespace calls did make it in via the import, so I am able to see the xmlns:tns and xmlns:xs definitions in my interface Element files.
Here is what I am currently generating:
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www
+.w3.org/2001/XMLSchema-instance">
<SOAP-ENV:Body>
<ProcessTransaction xmlns="http://tempuri.org/">
<request>
<Password>xxxx</Password>
<UserId>xxxx</UserId>
<Amount>1.01</Amount>
<TaxAmount>0.00</TaxAmount>
<TransactionType>Sale</TransactionType>
</request>
</ProcessTransaction>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:s="http://www.w
+3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<SOAP-ENV:Body>
<tns:ProcessTransaction xmlns:tns="http://tempuri.org/">
<tns:request>
<tns:Password xmlns:tns="http://schemas.datacontract.org/2004/07/.EPayment.VirtualTerminal.
+Common">xxxxx</tns:Password>
<tns:UserId xmlns:tns="http://schemas.datacontract.org/2004/07/.EPayment.VirtualTerminal.Co
+mmon">xxxx</tns:UserId>
<tns:Amount xmlns:tns="http://schemas.datacontract.org/2004/07/.EPayment.VirtualTerminal.Co
+mmon">1.01</tns:Amount>
<tns:TaxAmount xmlns:tns="http://schemas.datacontract.org/2004/07/.EPayment.VirtualTerminal
+.Common">0</tns:TaxAmount>
<tns:TransactionType xmlns:tns="http://schemas.datacontract.org/2004/07/.EPayment.VirtualTe
+rminal.Common">Sale</tns:TransactionType>
</tns:request>
</tns:ProcessTransaction>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
If there are any serializer options which can be invoked at object creation, I
would appreciate it.
This arises out of this code:
require MyInterfaces::Service::BasicBinding;
my $soap = MyInterfaces::Service::BasicBinding->new( {
deserializer_args => { strict => 0 },
})
or do {
die "Unable to import SOAP object WSDL.";
};
my $out = $soap->ProcessTransaction({ request => \%query });