axis-c-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Samisa Abeysinghe <samisa.abeysin...@gmail.com>
Subject Re: float type and date time format
Date Mon, 13 Dec 2004 08:56:56 GMT
Bonjour Jean,

Re: the datetime problem.
I had a look at the source and the trailing 'Z' character seems to be
hard coded in the serialize code in src/common/AxisTime.cpp. There is
no mention  of why Z has been used there - not even a comment, so I am
not sure what it means.

However, if we want to change the format, we can do that by fixing the code. 

Also, I used Axis Java's echo service and client samples, and saw that
Axis Java also send something similar to "2004-12-13T14:45:11Z".

BTW, you have copied values from  tm struct to xsd__dateTime struct.
This is not necessary, as the xsd__dateTime is defined to be of type
tm. So you can use type tm directly as the parameter to the web
service method.

Thanks,
Samisa...


On Thu, 09 Dec 2004 20:30:34 +0500, Jean ANDRE <jandre@cmtek.com> wrote:
> Bonjour everybody!
> 
> Well, I have a strange behavior with floating number and date time format.
> 
>  1 ) With float number, 77.99 becomes 77.989998 output string under
> Axis. Why I lost some digits ??????!!!
> 
>  2) With datetime format , in c++ test code, I just  moved some fields
> to another one of the same structure and I get the following output
> string: with Axis
>     <txnDate>*2004-12-09T19:54:32Z*</txnDate>
> 
>  I supposed that Z is for TimeZone ?  But how to construct a time to
> obtain such string ?
> 
> With dot-net client application and a java application I got the
> following string:
> <txnDate>2004-12-08T00:00:00.0000000-05:00</txnDate>
> 
> Thanks a lot for your answers. Take care!
> 
> Jean .A - Canada
> 
> In c++ test code, I put the following code according to the WSDL.
> 
> C++ Test code under Microsoft  Visual C++
> ==============================
> class TxnAmount
> {
> public:
>     float amount;
>     xsd__string currency;
>     TxnAmount();
>     ~TxnAmount();
> };
> 
>     xsd__dateTime txnDate;
>     tm* curTime;
>     time_t timer;
> 
>     amount.amount = 77.99;                // paymentForm.amount
>     amount.currency = "USD";            // paymentForm.currency
> 
>     memset(&txnDate, 0x00, sizeof(xsd__dateTime));
>     timer = time(NULL);
>     curTime = localtime( &timer );
>     txnDate.tm_isdst    = curTime->tm_isdst;
>     txnDate.tm_hour        = curTime->tm_hour;
>     txnDate.tm_min        = curTime->tm_min;
>     txnDate.tm_sec        = curTime->tm_sec;
>     txnDate.tm_wday        = curTime->tm_wday;
>     txnDate.tm_yday        = curTime->tm_yday;
>     txnDate.tm_mday        = curTime->tm_mday;             //
> paymentForm.txnDateD - day of the month - [1,31]
>     txnDate.tm_mon        = curTime->tm_mon;                //
> paymentForm.txnDateM - months since January - [0,11]
>     txnDate.tm_year        = curTime->tm_year;                //
> paymentForm.txnDateY - years since 1900
> 
> Fragment of the WDSL:
> ==================
>       <xs:element name="txnDate" type="xs:dateTime" minOccurs="0">
>       </xs:element>
>       <xs:complexType name="TxnAmount">
>         <xs:sequence>
>           <xs:element name="amount">
>             <xs:simpleType>
>               <xs:restriction base="xs:float">
>                 <xs:minInclusive value="0.00"/>
>                 <xs:maxInclusive value="9999999999.99"/>
>               </xs:restriction>
>             </xs:simpleType>
>           </xs:element>
>           <xs:element name="currency" minOccurs="0">
>             <xs:simpleType>
>               <xs:restriction base="xs:string">
>                 <xs:enumeration value="USD"/>
>                 <xs:enumeration value="CAD"/>
>               </xs:restriction>
>             </xs:simpleType>
>           </xs:element>
>         </xs:sequence>
>       </xs:complexType>
> 
> Fragment of the string sent by AXIS ??  Look the field amount !!!!
> =============================================
> <ns1:txnRequest>
> <orderTotal>
> <amount>77.989998</amount>
> <currency>USD</currency>
> </orderTotal>
> <billTo>
> 
> <txnDate>*2004-12-09T19:54:32Z*</txnDate>
> 
>

Mime
View raw message