00001 /* 00002 * The Apache Software License, Version 1.1 00003 * 00004 * Copyright (c) 1999-2001 The Apache Software Foundation. All rights 00005 * reserved. 00006 * 00007 * Redistribution and use in source and binary forms, with or without 00008 * modification, are permitted provided that the following conditions 00009 * are met: 00010 * 00011 * 1. Redistributions of source code must retain the above copyright 00012 * notice, this list of conditions and the following disclaimer. 00013 * 00014 * 2. Redistributions in binary form must reproduce the above copyright 00015 * notice, this list of conditions and the following disclaimer in 00016 * the documentation and/or other materials provided with the 00017 * distribution. 00018 * 00019 * 3. The end-user documentation included with the redistribution, 00020 * if any, must include the following acknowledgment: 00021 * "This product includes software developed by the 00022 * Apache Software Foundation (http://www.apache.org/)." 00023 * Alternately, this acknowledgment may appear in the software itself, 00024 * if and wherever such third-party acknowledgments normally appear. 00025 * 00026 * 4. The names "Xerces" and "Apache Software Foundation" must 00027 * not be used to endorse or promote products derived from this 00028 * software without prior written permission. For written 00029 * permission, please contact apache\@apache.org. 00030 * 00031 * 5. Products derived from this software may not be called "Apache", 00032 * nor may "Apache" appear in their name, without prior written 00033 * permission of the Apache Software Foundation. 00034 * 00035 * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED 00036 * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES 00037 * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 00038 * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR 00039 * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 00040 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 00041 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF 00042 * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 00043 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 00044 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT 00045 * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 00046 * SUCH DAMAGE. 00047 * ==================================================================== 00048 * 00049 * This software consists of voluntary contributions made by many 00050 * individuals on behalf of the Apache Software Foundation, and was 00051 * originally based on software copyright (c) 1999, International 00052 * Business Machines, Inc., http://www.ibm.com . For more information 00053 * on the Apache Software Foundation, please see 00054 * <http://www.apache.org/>. 00055 */ 00056 00057 /* 00058 * $Log: XercesDefs.hpp,v $ 00059 * Revision 1.1 2002/05/11 21:15:58 bhavani 00060 * CR#CR062582# adding xercesc 1.7 file 00061 * 00062 * Revision 1.4 2002/02/27 22:38:34 peiyongz 00063 * Bug# 6445 Caldera (SCO) OpenServer Port : patch from Martin Kalen 00064 * 00065 * Revision 1.3 2002/02/20 21:41:54 tng 00066 * project files changes for Xerces-C++ 1.7. 00067 * 00068 * Revision 1.2 2002/02/17 21:12:06 jberry 00069 * Adjust "sane includes" include path for Mac OS. 00070 * 00071 * I've also changed this path for XML_AS400, XML_TRU64, XML_PTX_CC, and XML_DECCXX 00072 * 'cause it looks like the right thing to do...hope that's not a mistake. 00073 * 00074 * Revision 1.1.1.1 2002/02/01 22:22:13 peiyongz 00075 * sane_include 00076 * 00077 * Revision 1.18 2001/11/29 18:25:18 tng 00078 * FreeBSD support by Michael Huedepohl. 00079 * 00080 * Revision 1.17 2001/11/23 17:19:33 tng 00081 * Change from 1.5.2 to 1.6.0 00082 * 00083 * Revision 1.16 2001/10/15 16:27:35 tng 00084 * Changes for Xerces-C 1.5.2 00085 * 00086 * Revision 1.15 2001/07/13 20:16:38 tng 00087 * Update for release 1.5.1. 00088 * 00089 * Revision 1.14 2001/06/05 13:52:25 tng 00090 * Change Version number from Xerces 1.4 to 1.5. By Pei Yong Zhang. 00091 * 00092 * Revision 1.13 2001/05/11 13:26:32 tng 00093 * Copyright update. 00094 * 00095 * Revision 1.12 2001/02/08 14:15:33 tng 00096 * enable COMPAQ Tru64 UNIX machines to build xerces-c with gcc (tested using COMPAQ gcc version2.95.2 19991024 (release) and Tru64 V5.0 1094). Added by Martin Kalen. 00097 * 00098 * Revision 1.11 2001/01/25 19:17:06 tng 00099 * const should be used instead of static const. Fixed by Khaled Noaman. 00100 * 00101 * Revision 1.10 2001/01/12 22:09:07 tng 00102 * Various update for Xerces 1.4 00103 * 00104 * Revision 1.9 2000/11/07 18:14:39 andyh 00105 * Fix incorrect version number in gXercesMinVersion. 00106 * From Pieter Van-Dyck 00107 * 00108 * Revision 1.8 2000/11/02 07:23:27 roddey 00109 * Just a test of checkin access 00110 * 00111 * Revision 1.7 2000/08/18 21:29:14 andyh 00112 * Change version to 1.3 in preparation for upcoming Xerces 1.3 00113 * and XML4C 3.3 stable releases 00114 * 00115 * Revision 1.6 2000/08/07 20:31:34 jpolast 00116 * include SAX2_EXPORT module 00117 * 00118 * Revision 1.5 2000/08/01 18:26:02 aruna1 00119 * Tru64 support added 00120 * 00121 * Revision 1.4 2000/07/29 05:36:37 jberry 00122 * Fix misspelling in Mac OS port 00123 * 00124 * Revision 1.3 2000/07/19 18:20:12 andyh 00125 * Macintosh port: fix problems with yesterday's code checkin. A couple 00126 * of the changes were mangled or missed. 00127 * 00128 * Revision 1.2 2000/04/04 20:11:29 abagchi 00129 * Added PTX support 00130 * 00131 * Revision 1.1 2000/03/02 19:54:50 roddey 00132 * This checkin includes many changes done while waiting for the 00133 * 1.1.0 code to be finished. I can't list them all here, but a list is 00134 * available elsewhere. 00135 * 00136 * Revision 1.13 2000/03/02 01:51:00 aruna1 00137 * Sun CC 5.0 related changes 00138 * 00139 * Revision 1.12 2000/02/24 20:05:26 abagchi 00140 * Swat for removing Log from API docs 00141 * 00142 * Revision 1.11 2000/02/22 01:00:10 aruna1 00143 * GNUGDefs references removed. Now only GCCDefs is used instead 00144 * 00145 * Revision 1.10 2000/02/06 07:48:05 rahulj 00146 * Year 2K copyright swat. 00147 * 00148 * Revision 1.9 2000/02/01 23:43:32 abagchi 00149 * AS/400 related change 00150 * 00151 * Revision 1.8 2000/01/21 22:12:29 abagchi 00152 * OS390 Change: changed OE390 to OS390 00153 * 00154 * Revision 1.7 2000/01/14 01:18:35 roddey 00155 * Added a macro, XMLStrL(), which is defined one way or another according 00156 * to whether the per-compiler file defines XML_LSTRSUPPORT or not. This 00157 * allows conditional support of L"" type prefixes. 00158 * 00159 * Revision 1.6 2000/01/14 00:52:06 roddey 00160 * Updated the version information for the next release, i.e. 1.1.0 00161 * 00162 * Revision 1.5 1999/12/17 01:28:53 rahulj 00163 * Merged in changes submitted for UnixWare 7 port. Platform 00164 * specific files are still missing. 00165 * 00166 * Revision 1.4 1999/12/16 23:47:10 rahulj 00167 * Updated for version 1.0.1 00168 * 00169 * Revision 1.3 1999/12/01 17:16:16 rahulj 00170 * Added support for IRIX 6.5.5 using SGI MIPSpro C++ 7.3 and 7.21 generating 32 bit objects. Changes submitted by Marc Stuessel 00171 * 00172 * Revision 1.2 1999/11/10 02:02:51 abagchi 00173 * Changed version numbers 00174 * 00175 * Revision 1.1.1.1 1999/11/09 01:05:35 twl 00176 * Initial checkin 00177 * 00178 * Revision 1.3 1999/11/08 20:45:19 rahul 00179 * Swat for adding in Product name and CVS comment log variable. 00180 * 00181 */ 00182 00183 00184 #if !defined(XERCESDEFS_HPP) 00185 #define XERCESDEFS_HPP 00186 00187 // --------------------------------------------------------------------------- 00188 // These are the various representations of the current version of Xerces. 00189 // These are updated for every build. They must be at the top because they 00190 // can be used by various per-compiler headers below. 00191 // --------------------------------------------------------------------------- 00192 #define Xerces_DLLVersionStr "1_7_0" 00193 const char* const gXercesVersionStr = "1_7"; 00194 const char* const gXercesFullVersionStr = "1_7_0"; 00195 const unsigned int gXercesMajVersion = 1; 00196 const unsigned int gXercesMinVersion = 7; 00197 const unsigned int gXercesRevision = 0; 00198 00199 00200 // --------------------------------------------------------------------------- 00201 // Include the header that does automatic sensing of the current platform 00202 // and compiler. 00203 // --------------------------------------------------------------------------- 00204 #include <xercesc/util/AutoSense.hpp> 00205 00206 00207 00208 // --------------------------------------------------------------------------- 00209 // According to the platform we include a platform specific file. This guy 00210 // will set up any platform specific stuff, such as character mode. 00211 // --------------------------------------------------------------------------- 00212 #if defined(XML_WIN32) 00213 #include <xercesc/util/Platforms/Win32/Win32Defs.hpp> 00214 #endif 00215 00216 #if defined(XML_AIX) 00217 #include <xercesc/util/Platforms/AIX/AIXDefs.hpp> 00218 #endif 00219 00220 #if defined(XML_SOLARIS) 00221 #include <xercesc/util/Platforms/Solaris/SolarisDefs.hpp> 00222 #endif 00223 00224 #if defined(XML_OPENSERVER) 00225 #include <xercesc/util/Platforms/OpenServer/OpenServerDefs.hpp> 00226 #endif 00227 00228 #if defined(XML_UNIXWARE) 00229 #include <xercesc/util/Platforms/UnixWare/UnixWareDefs.hpp> 00230 #endif 00231 00232 #if defined(XML_HPUX) 00233 #include <xercesc/util/Platforms/HPUX/HPUXDefs.hpp> 00234 #endif 00235 00236 #if defined(XML_IRIX) 00237 #include <xercesc/util/Platforms/IRIX/IRIXDefs.hpp> 00238 #endif 00239 00240 #if defined(XML_TANDEM) 00241 #include <xercesc/util/Platforms/Tandem/TandemDefs.hpp> 00242 #endif 00243 00244 #if defined(XML_LINUX) 00245 #include <xercesc/util/Platforms/Linux/LinuxDefs.hpp> 00246 #endif 00247 00248 #if defined(XML_FREEBSD) 00249 #include <xercesc/util/Platforms/FreeBSD/FreeBSDDefs.hpp> 00250 #endif 00251 00252 #if defined(XML_OS390) 00253 #include <xercesc/util/Platforms/OS390/OS390Defs.hpp> 00254 #endif 00255 00256 #if defined(XML_PTX) 00257 #include <xercesc/util/Platforms/PTX/PTXDefs.hpp> 00258 #endif 00259 00260 #if defined(XML_OS2) 00261 #include <xercesc/util/Platforms/OS2/OS2Defs.hpp> 00262 #endif 00263 00264 #if defined(XML_MACOS) || defined(XML_MACOSX) 00265 #include <xercesc/util/Platforms/MacOS/MacOSDefs.hpp> 00266 #endif 00267 00268 #if defined(XML_AS400) 00269 #include <xercesc/util/Platforms/OS400/OS400Defs.hpp> 00270 #endif 00271 00272 #if defined(XML_TRU64) 00273 #include <xercesc/util/Platforms/Tru64/Tru64Defs.hpp> 00274 #endif 00275 00276 00277 // --------------------------------------------------------------------------- 00278 // And now we subinclude a header according to the development environment 00279 // we are on. This guy defines for each platform some basic stuff that is 00280 // specific to the development environment. 00281 // --------------------------------------------------------------------------- 00282 #if defined(XML_VISUALCPP) 00283 #include <xercesc/util/Compilers/VCPPDefs.hpp> 00284 #endif 00285 00286 #if defined(XML_CSET) 00287 #include <xercesc/util/Compilers/CSetDefs.hpp> 00288 #endif 00289 00290 #if defined(XML_BORLAND) 00291 #include <xercesc/util/Compilers/BorlandCDefs.hpp> 00292 #endif 00293 00294 #if defined(XML_SUNCC) || defined(XML_SUNCC5) 00295 #include <xercesc/util/Compilers/SunCCDefs.hpp> 00296 #endif 00297 00298 #if defined(XML_SCOCC) 00299 #include <xercesc/util/Compilers/SCOCCDefs.hpp> 00300 #endif 00301 00302 #if defined(XML_SOLARIS_KAICC) 00303 #include <xercesc/util/Compilers/SunKaiDefs.hpp> 00304 #endif 00305 00306 #if defined(XML_HPUX_CC) || defined(XML_HPUX_aCC) || defined(XML_HPUX_KAICC) 00307 #include <xercesc/util/Compilers/HPCCDefs.hpp> 00308 #endif 00309 00310 #if defined(XML_MIPSPRO_CC) 00311 #include <xercesc/util/Compilers/MIPSproDefs.hpp> 00312 #endif 00313 00314 #if defined(XML_TANDEMCC) 00315 #include <xercesc/util/Compilers/TandemCCDefs.hpp> 00316 #endif 00317 00318 #if defined(XML_GCC) 00319 #include <xercesc/util/Compilers/GCCDefs.hpp> 00320 #endif 00321 00322 #if defined(XML_MVSCPP) 00323 #include <xercesc/util/Compilers/MVSCPPDefs.hpp> 00324 #endif 00325 00326 #if defined(XML_IBMVAW32) 00327 #include <xercesc/util/Compilers/IBMVAW32Defs.hpp> 00328 #endif 00329 00330 #if defined(XML_IBMVAOS2) 00331 #include <xercesc/util/Compilers/IBMVAOS2Defs.hpp> 00332 #endif 00333 00334 #if defined(XML_METROWERKS) 00335 #include <xercesc/util/Compilers/CodeWarriorDefs.hpp> 00336 #endif 00337 00338 #if defined(XML_PTX_CC) 00339 #include <xercesc/util/Compilers/PTXCCDefs.hpp> 00340 #endif 00341 00342 #if defined(XML_AS400) 00343 #include <xercesc/util/Compilers/OS400SetDefs.hpp> 00344 #endif 00345 00346 #if defined(XML_DECCXX) 00347 #include <xercesc/util/Compilers/DECCXXDefs.hpp> 00348 #endif 00349 00350 00351 // --------------------------------------------------------------------------- 00352 // Some general typedefs that are defined for internal flexibility. 00353 // 00354 // Note that UTF16Ch is fixed at 16 bits, whereas XMLCh floats in size per 00355 // platform, to whatever is the native wide char format there. UCS4Ch is 00356 // fixed at 32 bits. The types we defined them in terms of are defined per 00357 // compiler, using whatever types are the right ones for them to get these 00358 // 16/32 bit sizes. 00359 // --------------------------------------------------------------------------- 00360 typedef unsigned char XMLByte; 00361 typedef XMLUInt16 UTF16Ch; 00362 typedef XMLUInt32 UCS4Ch; 00363 00364 00365 00366 // --------------------------------------------------------------------------- 00367 // Handle boolean. If the platform can handle booleans itself, then we 00368 // map our boolean type to the native type. Otherwise we create a default 00369 // one as an int and define const values for true and false. 00370 // 00371 // This flag will be set in the per-development environment stuff above. 00372 // --------------------------------------------------------------------------- 00373 #if defined(NO_NATIVE_BOOL) 00374 #ifndef bool 00375 typedef int bool; 00376 #endif 00377 #ifndef true 00378 #define true 1 00379 #endif 00380 #ifndef false 00381 #define false 0 00382 #endif 00383 #endif 00384 00385 00386 // --------------------------------------------------------------------------- 00387 // According to whether the compiler suports L"" type strings, we define 00388 // the XMLStrL() macro one way or another. 00389 // --------------------------------------------------------------------------- 00390 #if defined(XML_LSTRSUPPORT) 00391 #define XMLStrL(str) L##str 00392 #else 00393 #define XMLStrL(str) str 00394 #endif 00395 00396 00397 00398 // --------------------------------------------------------------------------- 00399 // Set up the import/export keyword for our core projects. The 00400 // PLATFORM_XXXX keywords are set in the per-development environment 00401 // include above. 00402 // --------------------------------------------------------------------------- 00403 #if defined(PROJ_XMLUTIL) 00404 #define XMLUTIL_EXPORT PLATFORM_EXPORT 00405 #else 00406 #define XMLUTIL_EXPORT PLATFORM_IMPORT 00407 #endif 00408 00409 #if defined(PROJ_XMLPARSER) 00410 #define XMLPARSER_EXPORT PLATFORM_EXPORT 00411 #else 00412 #define XMLPARSER_EXPORT PLATFORM_IMPORT 00413 #endif 00414 00415 #if defined(PROJ_SAX4C) 00416 #define SAX_EXPORT PLATFORM_EXPORT 00417 #else 00418 #define SAX_EXPORT PLATFORM_IMPORT 00419 #endif 00420 00421 #if defined(PROJ_SAX2) 00422 #define SAX2_EXPORT PLATFORM_EXPORT 00423 #else 00424 #define SAX2_EXPORT PLATFORM_IMPORT 00425 #endif 00426 00427 #if defined(PROJ_DOM) 00428 #define CDOM_EXPORT PLATFORM_EXPORT 00429 #else 00430 #define CDOM_EXPORT PLATFORM_IMPORT 00431 #endif 00432 00433 #if defined(PROJ_PARSERS) 00434 #define PARSERS_EXPORT PLATFORM_EXPORT 00435 #else 00436 #define PARSERS_EXPORT PLATFORM_IMPORT 00437 #endif 00438 00439 #if defined(PROJ_VALIDATORS) 00440 #define VALIDATORS_EXPORT PLATFORM_EXPORT 00441 #else 00442 #define VALIDATORS_EXPORT PLATFORM_IMPORT 00443 #endif 00444 00445 #endif