axis-java-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Lars Kruse Pedersen (JIRA)" <j...@apache.org>
Subject [jira] Commented: (AXIS2-3329) Problem parsing integer with leading zeros...
Date Tue, 13 Nov 2007 13:27:51 GMT

    [ https://issues.apache.org/jira/browse/AXIS2-3329?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12542142
] 

Lars Kruse Pedersen commented on AXIS2-3329:
--------------------------------------------

Each digit maps to a code that has a special mening, so there must be 3 digits.
Internally it will offcause be represented as an int, but any presentation must show 3 digits.
Yes it probably would be possible to use a string, but the problem is that the XSD is supplied
by the customer, so I can't just change it...
I know it sucks...

> Problem parsing integer with leading zeros...
> ---------------------------------------------
>
>                 Key: AXIS2-3329
>                 URL: https://issues.apache.org/jira/browse/AXIS2-3329
>             Project: Axis 2.0 (Axis2)
>          Issue Type: Bug
>          Components: adb
>    Affects Versions: 1.3
>         Environment: Windows XP
>            Reporter: Lars Kruse Pedersen
>            Assignee: Amila Chinthaka Suriarachchi
>
> I have the following xsd,
> <xs:simpleType name="UnderkontoArtKodeType">            
>       <xs:annotation>                 
>          <xs:documentation>Angiver typen af afregning</xs:documentation>
           
>       </xs:annotation>
>             
>       <xs:restriction base="xs:integer">
>          <xs:pattern value="[0-9]{3}"/>
>          <xs:totalDigits value="3"/>
>       </xs:restriction>
>    
> </xs:simpleType>
> When I receive XML with leading zeros, as in "001", ADB throws an exception....
> Looking at the generated ADB kode:
> public void setUnderkontoArtKodeType(java.math.BigInteger param) {
>         if (java.lang.String.valueOf(param).matches("[0-9]{3}")) {
>             this.localUnderkontoArtKodeType = param;
>         } else {
>             throw new java.lang.RuntimeException();
>         }
>     }
> It is clear why it fails, the "001" has already been converted to an integer, and when
the set method is called it takes the 1 and converts it to a string "1", and then tries to
validate for containing 3 digits...

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


---------------------------------------------------------------------
To unsubscribe, e-mail: axis-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-dev-help@ws.apache.org


Mime
View raw message