Hello Nadir,

The Axis serializing code contains snippets for correctly serializing decimals thus obeying xsd:totalDigits and xsd:fractionDigits.
For example (Decimal.cpp)

   FractionDigits* fractionDigits = getFractionDigits();
   if (fractionDigits->isSet())
   {
       formatSpecifier += ".";
       AxisChar digits[100];
       AxisSprintf (digits, 10, "%i", fractionDigits->getFractionDigits());
       formatSpecifier += digits;
   }

The missing part is (among others) here

FractionDigits* Decimal::getFractionDigits()
{
   return new FractionDigits();
}

So the if block is never entered.
But perhaps the full solution of this problem would be too much effort and also %g would be sufficient for my practical purposes.

Greetings

Franz


Nadir Amra schrieb:
Franz, What do you think is the proper way of handling this?

Nadir K. Amra


Franz Fehringer <[EMAIL PROTECTED]> wrote on 04/23/2007 03:08:39 AM:

Hello Nadir,

To me this is a hack, but better than no solution.

Cheers

Franz


nadir amra (JIRA) schrieb: [ https://issues.apache.org/jira/browse/AXISCPP-1014?page=com.

atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12490498]
nadir amra commented on AXISCPP-1014:
-------------------------------------

If %g is used, then "123.00" would be returned as "123", which I guess is better than "123.000000". The question is whether that is OK?



incorrect handling of xsd:decimal due to missing code
-----------------------------------------------------

                Key: AXISCPP-1014
                URL: https://issues.apache.org/jira/browse/AXISCPP-1014
            Project: Axis-C++
         Issue Type: Bug
         Components: XSD Types
   Affects Versions: current (nightly)
        Environment: WIN2KSP4 VC6SP6 JDK1.5.0_07
           Reporter: Franz Fehringer
        Assigned To: nadir amra
           Priority: Minor
            Fix For:  1.6 Final


I want to point out a problem regarding xsd:decimal.
I have a datatype, which is a restriction of xsd:decimal with
restrictions
<xsd:maxExclusive value="100000"/>
 <xsd:fractionDigits value="2"/>
 <xsd:minInclusive value="0"/>
There is Java Code (in the generator) for reading/interpreting these
restrictions and there is C++ Code (in the axis library code) for handling these restrictions. But what is completely missing is the intermediate layer, i.e. Java code which generates C++ code for correct initialization of the pertaining struct members.
Therefore in sending xsd:decimals the fractionDigits are always six,
which is not suited for e.g. monetary values.
I hacked around this with replacing (in the XSD) xsd:decimal by xsd:
double (for xsd:double %g is used instead of %f).
Another hack would be to directly replace (in the library code) %f by
%g.



--
Dr. Franz Fehringer (Dipl. Math.)
Projektleiter Touristik-Systeme
____________________________________
ISO Software Systeme GmbH
Eichendorffstrasse 29
90491 Nürnberg
Germany

Tel.: +49/(911) - 99594-0

mailto:[EMAIL PROTECTED]
http://www.isogmbh.de

Amtsgericht Nürnberg HRB 18299
Geschäftsführer: Dipl.-Inform., Dipl.-Kaufm. Harald Goeb
Sitz: Nürnberg

[attachment "feh.vcf" deleted by Nadir Amra/Rochester/IBM] ---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



--
Dr. Franz Fehringer (Dipl. Math.)
Projektleiter Touristik-Systeme
____________________________________
ISO Software Systeme GmbH
Eichendorffstrasse 29
90491 Nürnberg
Germany

Tel.: +49/(911) - 99594-0

mailto:[EMAIL PROTECTED]
http://www.isogmbh.de

Amtsgericht Nürnberg HRB 18299
Geschäftsführer: Dipl.-Inform., Dipl.-Kaufm. Harald Goeb
Sitz: Nürnberg


begin:vcard
fn:Dr. Franz Fehringer
n:Fehringer;Franz
org:ISO Software Systeme
adr;quoted-printable:;;Eichendorffstrasse 29;N=C3=BCrnberg;;90491;Deutschland
email;internet:mailto:[EMAIL PROTECTED]
tel;work:+49/(911) - 99594-0 
tel;fax:+49/(911) - 99594-580
x-mozilla-html:TRUE
url:http://www.isogmbh.de/
version:2.1
end:vcard


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to