00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018 #ifdef WIN32
00019 #pragma warning (disable : 4786)
00020 #endif
00021
00022 #if !defined(_TYPEMAPPING_H____OF_AXIS_INCLUDED_)
00023 #define _TYPEMAPPING_H____OF_AXIS_INCLUDED_
00024
00025 #include "GDefine.h"
00026
00027 typedef enum XSDTYPETag
00028 { XSD_UNKNOWN=1, XSD_INT, XSD_FLOAT, XSD_STRING, XSD_LONG, XSD_SHORT, \
00029 XSD_BYTE, XSD_UNSIGNEDLONG, \
00030 XSD_BOOLEAN, XSD_UNSIGNEDINT, XSD_UNSIGNEDSHORT, \
00031 XSD_UNSIGNEDBYTE, \
00032 XSD_DOUBLE, XSD_DECIMAL, XSD_DURATION, \
00033 XSD_DATETIME, XSD_TIME, XSD_DATE, \
00034 XSD_YEARMONTH, XSD_YEAR, XSD_MONTHDAY, XSD_DAY, \
00035 XSD_MONTH, XSD_HEXBINARY, \
00036 XSD_BASE64BINARY, XSD_ANYURI, XSD_QNAME, XSD_NOTATION, \
00037 XSD_INTEGER, \
00038 XSD_ARRAY, USER_TYPE, ACCESSOR, XSD_NMTOKEN, XSD_ANY
00039 } XSDTYPE;
00040
00041 #ifdef __cplusplus
00042
00043 #include <map>
00044 #include <string>
00045
00046 using namespace std;
00047
00056 class TypeMapping
00057 {
00058 public:
00059 static XSDTYPE map(const AxisXMLCh* sType);
00060 static void initialize();
00061
00062 #if (defined(AIX) || (defined(_MSC_VER) && _MSC_VER >= 1300))
00063 static std::map<AxisXMLString, XSDTYPE> m_sTypeMap;
00064 #else
00065 static std::map<const AxisXMLString, XSDTYPE> m_sTypeMap;
00066 #endif
00067 static volatile bool m_bInit;
00068 TypeMapping();
00069 virtual ~TypeMapping();
00070
00071 };
00072
00073 #endif
00074
00075 #endif
00076
00077