Main Page   Class Hierarchy   Compound List   File List   Compound Members   File Members   Related Pages   Examples  

TypeMapping.hpp

00001 /*
00002  *   Copyright 2003-2004 The Apache Software Foundation.
00003 // (c) Copyright IBM Corp. 2004, 2005 All Rights Reserved
00004  *
00005  *   Licensed under the Apache License, Version 2.0 (the "License");
00006  *   you may not use this file except in compliance with the License.
00007  *   You may obtain a copy of the License at
00008  *
00009  *       http://www.apache.org/licenses/LICENSE-2.0
00010  *
00011  *   Unless required by applicable law or agreed to in writing, software
00012  *   distributed under the License is distributed on an "AS IS" BASIS,
00013  *   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
00014  *   See the License for the specific language governing permissions and
00015  *   limitations under the License.
00016  */
00017 
00018 
00019 #ifdef WIN32
00020 #pragma warning (disable : 4786)
00021 #endif
00022 
00023 #if !defined(_TYPEMAPPING_H____OF_AXIS_INCLUDED_)
00024 #define _TYPEMAPPING_H____OF_AXIS_INCLUDED_
00025 
00026 #include "GDefine.hpp"
00027 #include <map>
00028 #include <string>
00029 
00030 AXIS_CPP_NAMESPACE_START
00031 using namespace std;
00032 
00033 typedef enum XSDTYPETag 
00034 { XSD_UNKNOWN=1, XSD_INT, XSD_FLOAT, XSD_STRING, XSD_LONG, XSD_SHORT, \
00035                 XSD_BYTE, XSD_UNSIGNEDLONG, \
00036                 XSD_BOOLEAN, XSD_UNSIGNEDINT, XSD_UNSIGNEDSHORT, \
00037                 XSD_UNSIGNEDBYTE, \
00038                 XSD_DOUBLE, XSD_DECIMAL, XSD_DURATION, \
00039                 XSD_DATETIME, XSD_TIME, XSD_DATE, \
00040                 XSD_YEARMONTH, XSD_YEAR, XSD_MONTHDAY, XSD_DAY, \
00041                 XSD_MONTH, XSD_HEXBINARY, \
00042                 XSD_BASE64BINARY, XSD_ANYURI, XSD_QNAME,  XSD_NOTATION, \
00043                 XSD_INTEGER, \
00044                 XSD_ARRAY, USER_TYPE,  XSD_NMTOKEN, XSD_ANY
00045 } XSDTYPE;
00046 
00058 class TypeMapping  
00059 {
00060 public:
00061     static XSDTYPE map(const AxisXMLCh* sType);
00062     static void initialize();
00063         static void uninitialize();
00064 
00065 #if (defined(AIX) || (defined(_MSC_VER) && _MSC_VER >= 1300) || defined( __OS400__ ) || defined(__sun))
00066         static std::map<std::string, XSDTYPE> m_sTypeMap;
00067 #else
00068         static std::map<const std::string, XSDTYPE> m_sTypeMap;
00069 #endif
00070     static volatile bool m_bInit;
00071     TypeMapping();
00072     virtual ~TypeMapping();
00073 
00074 };
00075 
00076 AXIS_CPP_NAMESPACE_END
00077 
00078 #endif

Generated on Tue May 17 02:30:31 2005 for AxisC++ by doxygen1.2.18