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]