[ 
https://issues.apache.org/jira/browse/AXIS2-5392?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Tibor Mucha updated AXIS2-5392:
-------------------------------

    Description: 
The bigdecimal is encoded in soap xml as engineering string.
Case:
--- java WS object :
public class DummyOutput {
    BigDecimal bd;

    public BigDecimal getBd() {
        return bd;
    }

    public void setBd(BigDecimal bd) {
        this.bd = bd;
    }
}
---  generated wsdl: 
        <xs:schema attributeFormDefault="qualified" 
elementFormDefault="qualified" 
targetNamespace="http://api.service.tis.ymsgroup.com/xsd";>
            <xs:complexType name="DummyOutput">
                <xs:sequence>
                    <xs:element minOccurs="0" name="bd" nillable="true" 
type="xs:decimal"/>
                    <xs:element maxOccurs="unbounded" minOccurs="0" 
name="bdArray" nillable="true" type="xs:decimal"/>
                </xs:sequence>
            </xs:complexType>
        </xs:schema>
--- Test case:
public class DummyServices implements IDummyServices {

    public DummyOutput getArrayBigDecimal() {

        BigDecimal[] generateBigDecimalArray = generateBigDecimalArray();

        DummyOutput ret = new DummyOutput();
        ret.setBdArray(generateBigDecimalArray);
        ret.setBd(new BigDecimal("123E-10"));
        return ret;
    }

    private BigDecimal[] generateBigDecimalArray() {
        Random random = new Random();
        BigDecimal[] ret = new BigDecimal[10];
        for (int i = 0; i < ret.length; i++) {
            ret[i] = new BigDecimal("1E" + (random.nextBoolean() ? "+" : "-") + 
i);
            System.out.println(ret[i]);
        }

        return ret;
    }

}
--- the result is in engineering string:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/";>
   <soapenv:Body>
      <ns:getArrayBigDecimalResponse 
xmlns:ns="http://api.service.tis.ymsgroup.com";>
         <ns:return xsi:type="ax2135:DummyOutput" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; 
xmlns:ax2135="http://api.service.tis.ymsgroup.com/xsd";>
            <ax2135:bd>1.23E-8</ax2135:bd>
            <ax2135:bdArray>1</ax2135:bdArray>
            <ax2135:bdArray>1E+1</ax2135:bdArray>
            <ax2135:bdArray>1E+2</ax2135:bdArray>
            <ax2135:bdArray>1E+3</ax2135:bdArray>
            <ax2135:bdArray>1E+4</ax2135:bdArray>
            <ax2135:bdArray>0.00001</ax2135:bdArray>
            <ax2135:bdArray>0.000001</ax2135:bdArray>
            <ax2135:bdArray>1E-7</ax2135:bdArray>
            <ax2135:bdArray>1E-8</ax2135:bdArray>
            <ax2135:bdArray>1E-9</ax2135:bdArray>
         </ns:return>
      </ns:getArrayBigDecimalResponse>
   </soapenv:Body>
</soapenv:Envelope>
--- but expecting (to be compatible with soap not java receiver - in out case 
.NET):
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/";>
   <soapenv:Body>
      <ns:getArrayBigDecimalResponse 
xmlns:ns="http://api.service.tis.ymsgroup.com";>
         <ns:return xsi:type="ax2135:DummyOutput" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; 
xmlns:ax2135="http://api.service.tis.ymsgroup.com/xsd";>
            <ax2135:bd>0.0000000123</ax2135:bd>
            <ax2135:bdArray>1</ax2135:bdArray>
            <ax2135:bdArray>10</ax2135:bdArray>
            <ax2135:bdArray>100</ax2135:bdArray>
            <ax2135:bdArray>1000</ax2135:bdArray>
            <ax2135:bdArray>10000</ax2135:bdArray>
            <ax2135:bdArray>0.00001</ax2135:bdArray>
            <ax2135:bdArray>0.000001</ax2135:bdArray>
            <ax2135:bdArray>0.0000001</ax2135:bdArray>
            <ax2135:bdArray>0.00000001</ax2135:bdArray>
            <ax2135:bdArray>0.000000001</ax2135:bdArray>
         </ns:return>
      </ns:getArrayBigDecimalResponse>
   </soapenv:Body>
</soapenv:Envelope> 



  was:The bigdecimal is encoded in soup xml as engineering string

    
> java BigDecimal defined as type="xs:decimal" encodes in xml as engineering 
> string 
> ----------------------------------------------------------------------------------
>
>                 Key: AXIS2-5392
>                 URL: https://issues.apache.org/jira/browse/AXIS2-5392
>             Project: Axis2
>          Issue Type: Bug
>          Components: adb
>    Affects Versions: 1.6.2
>            Reporter: Tibor Mucha
>
> The bigdecimal is encoded in soap xml as engineering string.
> Case:
> --- java WS object :
> public class DummyOutput {
>     BigDecimal bd;
>     public BigDecimal getBd() {
>         return bd;
>     }
>     public void setBd(BigDecimal bd) {
>         this.bd = bd;
>     }
> }
> ---  generated wsdl: 
>         <xs:schema attributeFormDefault="qualified" 
> elementFormDefault="qualified" 
> targetNamespace="http://api.service.tis.ymsgroup.com/xsd";>
>             <xs:complexType name="DummyOutput">
>                 <xs:sequence>
>                     <xs:element minOccurs="0" name="bd" nillable="true" 
> type="xs:decimal"/>
>                     <xs:element maxOccurs="unbounded" minOccurs="0" 
> name="bdArray" nillable="true" type="xs:decimal"/>
>                 </xs:sequence>
>             </xs:complexType>
>         </xs:schema>
> --- Test case:
> public class DummyServices implements IDummyServices {
>     public DummyOutput getArrayBigDecimal() {
>         BigDecimal[] generateBigDecimalArray = generateBigDecimalArray();
>         DummyOutput ret = new DummyOutput();
>         ret.setBdArray(generateBigDecimalArray);
>         ret.setBd(new BigDecimal("123E-10"));
>         return ret;
>     }
>     private BigDecimal[] generateBigDecimalArray() {
>         Random random = new Random();
>         BigDecimal[] ret = new BigDecimal[10];
>         for (int i = 0; i < ret.length; i++) {
>             ret[i] = new BigDecimal("1E" + (random.nextBoolean() ? "+" : "-") 
> + i);
>             System.out.println(ret[i]);
>         }
>         return ret;
>     }
> }
> --- the result is in engineering string:
> <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/";>
>    <soapenv:Body>
>       <ns:getArrayBigDecimalResponse 
> xmlns:ns="http://api.service.tis.ymsgroup.com";>
>          <ns:return xsi:type="ax2135:DummyOutput" 
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; 
> xmlns:ax2135="http://api.service.tis.ymsgroup.com/xsd";>
>             <ax2135:bd>1.23E-8</ax2135:bd>
>             <ax2135:bdArray>1</ax2135:bdArray>
>             <ax2135:bdArray>1E+1</ax2135:bdArray>
>             <ax2135:bdArray>1E+2</ax2135:bdArray>
>             <ax2135:bdArray>1E+3</ax2135:bdArray>
>             <ax2135:bdArray>1E+4</ax2135:bdArray>
>             <ax2135:bdArray>0.00001</ax2135:bdArray>
>             <ax2135:bdArray>0.000001</ax2135:bdArray>
>             <ax2135:bdArray>1E-7</ax2135:bdArray>
>             <ax2135:bdArray>1E-8</ax2135:bdArray>
>             <ax2135:bdArray>1E-9</ax2135:bdArray>
>          </ns:return>
>       </ns:getArrayBigDecimalResponse>
>    </soapenv:Body>
> </soapenv:Envelope>
> --- but expecting (to be compatible with soap not java receiver - in out case 
> .NET):
> <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/";>
>    <soapenv:Body>
>       <ns:getArrayBigDecimalResponse 
> xmlns:ns="http://api.service.tis.ymsgroup.com";>
>          <ns:return xsi:type="ax2135:DummyOutput" 
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; 
> xmlns:ax2135="http://api.service.tis.ymsgroup.com/xsd";>
>             <ax2135:bd>0.0000000123</ax2135:bd>
>             <ax2135:bdArray>1</ax2135:bdArray>
>             <ax2135:bdArray>10</ax2135:bdArray>
>             <ax2135:bdArray>100</ax2135:bdArray>
>             <ax2135:bdArray>1000</ax2135:bdArray>
>             <ax2135:bdArray>10000</ax2135:bdArray>
>             <ax2135:bdArray>0.00001</ax2135:bdArray>
>             <ax2135:bdArray>0.000001</ax2135:bdArray>
>             <ax2135:bdArray>0.0000001</ax2135:bdArray>
>             <ax2135:bdArray>0.00000001</ax2135:bdArray>
>             <ax2135:bdArray>0.000000001</ax2135:bdArray>
>          </ns:return>
>       </ns:getArrayBigDecimalResponse>
>    </soapenv:Body>
> </soapenv:Envelope> 

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to