00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 #if !defined(XERCESC_INCLUDE_GUARD_XMLNUMBER_HPP)
00023 #define XERCESC_INCLUDE_GUARD_XMLNUMBER_HPP
00024
00025 #include <xercesc/internal/XSerializable.hpp>
00026 #include <xercesc/util/XMemory.hpp>
00027
00028 XERCES_CPP_NAMESPACE_BEGIN
00029
00030 class XMLUTIL_EXPORT XMLNumber : public XSerializable, public XMemory
00031 {
00032 public:
00033
00034 enum
00035 {
00036 LESS_THAN = -1,
00037 EQUAL = 0,
00038 GREATER_THAN = 1,
00039 INDETERMINATE = 2
00040 };
00041
00042 enum NumberType {
00043 Float,
00044 Double,
00045 BigDecimal,
00046 DateTime,
00047 UnKnown
00048 };
00049
00050 virtual ~XMLNumber();
00051
00059 virtual XMLCh* getRawData() const = 0;
00060
00068 virtual const XMLCh* getFormattedString() const = 0;
00069
00078 virtual int getSign() const = 0;
00079
00080
00081
00082
00083 DECL_XSERIALIZABLE(XMLNumber)
00084
00085 static XMLNumber* loadNumber(XMLNumber::NumberType numType
00086 , XSerializeEngine& serEng);
00087
00088 protected:
00089
00090 XMLNumber();
00091 XMLNumber(const XMLNumber&);
00092
00093 private:
00094
00095
00096
00097 XMLNumber& operator=(const XMLNumber&);
00098 };
00099
00100 XERCES_CPP_NAMESPACE_END
00101
00102 #endif