Subject: | strings with leading zero mistreated as int |
Date: | Thu, 04 Jan 2007 15:16:44 +0100 |
To: | bug-SOAP-Lite [...] rt.cpan.org |
From: | Pav Lucistnik <pav [...] oook.cz> |
SOAP::Lite 0.69
Values like "00223" are sent as xsd:int. They should be xsd:string.
--- Lite.pm Wed Aug 16 16:49:34 2006
+++ Lite.pm Thu Jan 4 15:10:35 2007
@@ -786,6 +786,8 @@
_typelookup => {
'base64Binary' =>
[10, sub {$_[0] =~ /[^\x09\x0a\x0d\x20-\x7f]/}, 'as_base64Binary'],
+ 'zerostring' =>
+ [12, sub {$_[0] =~ /^0\d/; }, 'as_string'],
'int' =>
[20, sub {$_[0] =~ /^[+-]?(\d+)$/ && $1 <= 2147483648 && $1 >= -2147483648; }, 'as_int'],
'long' =>
Current output:
<inventory_number xsi:type="xsd:int">0022300455</inventory_number>
Desired output:
<inventory_number xsi:type="xsd:string">0022300455</inventory_number>
--
Pav Lucistnik <pav@oook.cz>
<pav@FreeBSD.org>
Somebody ought to cross ball point pens with coat hangers so that the
pens will multiply instead of disappear.