22 #if !defined(XERCESC_INCLUDE_GUARD_XML_DATETIME_HPP)
23 #define XERCESC_INCLUDE_GUARD_XML_DATETIME_HPP
70 inline void setBuffer(
const XMLCh*
const);
104 void parseDateTime();
116 void parseMonthDay();
118 void parseYearMonth();
120 void parseDuration();
157 static int compareResult(
int
171 static inline int getRetVal(
int,
int);
179 inline void assertBuffer()
const;
184 inline bool initParser();
186 inline bool isNormalized()
const;
200 void parseTimeZone();
210 ,
const XMLCh ch)
const;
215 int parseIntYear(
const XMLSize_t end)
const;
217 double parseMiliSecond(
const XMLSize_t start
224 void validateDateTime()
const;
230 int fillYearString(
XMLCh*& ptr,
int value)
const;
232 void searchMiliSeconds(
XMLCh*& miliStartPtr,
XMLCh*& miliEndPtr)
const;
237 bool operator==(
const XMLDateTime& toCompare)
const;
257 int fValue[TOTAL_SIZE];
258 int fTimeZone[TIMEZONE_ARRAYSIZE];
278 for (; fEnd > 0; fEnd--)
286 if (fEnd > fBufferMaxLen)
289 fBufferMaxLen = fEnd + 8;
293 memcpy(fBuffer, aString, (fEnd) *
sizeof(
XMLCh));
294 fBuffer[fEnd] =
'\0';
298 inline void XMLDateTime::reset()
305 fTimeZone[hh] = fTimeZone[mm] = 0;
312 inline void XMLDateTime::copy(
const XMLDateTime& rhs)
315 fValue[i] = rhs.fValue[i];
317 fMilliSecond = rhs.fMilliSecond;
318 fHasTime = rhs.fHasTime;
319 fTimeZone[hh] = rhs.fTimeZone[hh];
320 fTimeZone[mm] = rhs.fTimeZone[mm];
326 if (fEnd > fBufferMaxLen)
329 fBufferMaxLen = rhs.fBufferMaxLen;
333 memcpy(fBuffer, rhs.fBuffer, (fEnd+1) *
sizeof(
XMLCh));
337 inline bool XMLDateTime::initParser()
339 if (!fBuffer || fBuffer[0] ==
chNull)
348 inline bool XMLDateTime::isNormalized()
const
350 return ( fValue[
utc] ==
UTC_STD ?
true :
false );
353 inline int XMLDateTime::getRetVal(
int c1,
int c2)