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.hpp"
00026
#include <map>
00027
#include <string>
00028
00029 AXIS_CPP_NAMESPACE_START
00030
using namespace std;
00031
00032
typedef enum XSDTYPETag
00033 { XSD_UNKNOWN=1, XSD_INT, XSD_FLOAT, XSD_STRING, XSD_LONG, XSD_SHORT, \
00034 XSD_BYTE, XSD_UNSIGNEDLONG, \
00035 XSD_BOOLEAN, XSD_UNSIGNEDINT, XSD_UNSIGNEDSHORT, \
00036 XSD_UNSIGNEDBYTE, \
00037 XSD_DOUBLE, XSD_DECIMAL, XSD_DURATION, \
00038 XSD_DATETIME, XSD_TIME, XSD_DATE, \
00039 XSD_YEARMONTH, XSD_YEAR, XSD_MONTHDAY, XSD_DAY, \
00040 XSD_MONTH, XSD_HEXBINARY, \
00041 XSD_BASE64BINARY, XSD_ANYURI, XSD_QNAME, XSD_NCNAME, XSD_NOTATION, \
00042 XSD_INTEGER, \
00043 XSD_ARRAY, USER_TYPE, ACCESSOR, XSD_NMTOKEN, XSD_ANY
00044 } XSDTYPE;
00045
00054 class TypeMapping
00055 {
00056
public:
00057
static XSDTYPE map(
const AxisXMLCh* sType);
00058
static void initialize();
00059
static void uninitialize();
00060
00061
#if (defined(AIX) || (defined(_MSC_VER) && _MSC_VER >= 1300) || defined( __OS400__ ) || defined(__sun))
00062
static std::map<std::string, XSDTYPE> m_sTypeMap;
00063
#else
00064
static std::map<const std::string, XSDTYPE> m_sTypeMap;
00065
#endif
00066
static volatile bool m_bInit;
00067
TypeMapping();
00068
virtual ~
TypeMapping();
00069
00070 };
00071
00072 AXIS_CPP_NAMESPACE_END
00073
00074
#endif