XercesDefs.hpp
上传用户:huihehuasu
上传日期:2007-01-10
资源大小:6948k
文件大小:13k
源码类别:

xml/soap/webservice

开发平台:

C/C++

  1. /*
  2.  * The Apache Software License, Version 1.1
  3.  *
  4.  * Copyright (c) 1999-2001 The Apache Software Foundation.  All rights
  5.  * reserved.
  6.  *
  7.  * Redistribution and use in source and binary forms, with or without
  8.  * modification, are permitted provided that the following conditions
  9.  * are met:
  10.  *
  11.  * 1. Redistributions of source code must retain the above copyright
  12.  *    notice, this list of conditions and the following disclaimer.
  13.  *
  14.  * 2. Redistributions in binary form must reproduce the above copyright
  15.  *    notice, this list of conditions and the following disclaimer in
  16.  *    the documentation and/or other materials provided with the
  17.  *    distribution.
  18.  *
  19.  * 3. The end-user documentation included with the redistribution,
  20.  *    if any, must include the following acknowledgment:
  21.  *       "This product includes software developed by the
  22.  *        Apache Software Foundation (http://www.apache.org/)."
  23.  *    Alternately, this acknowledgment may appear in the software itself,
  24.  *    if and wherever such third-party acknowledgments normally appear.
  25.  *
  26.  * 4. The names "Xerces" and "Apache Software Foundation" must
  27.  *    not be used to endorse or promote products derived from this
  28.  *    software without prior written permission. For written
  29.  *    permission, please contact apache@apache.org.
  30.  *
  31.  * 5. Products derived from this software may not be called "Apache",
  32.  *    nor may "Apache" appear in their name, without prior written
  33.  *    permission of the Apache Software Foundation.
  34.  *
  35.  * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
  36.  * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
  37.  * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
  38.  * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
  39.  * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
  40.  * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
  41.  * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
  42.  * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
  43.  * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
  44.  * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
  45.  * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  46.  * SUCH DAMAGE.
  47.  * ====================================================================
  48.  *
  49.  * This software consists of voluntary contributions made by many
  50.  * individuals on behalf of the Apache Software Foundation, and was
  51.  * originally based on software copyright (c) 1999, International
  52.  * Business Machines, Inc., http://www.ibm.com .  For more information
  53.  * on the Apache Software Foundation, please see
  54.  * <http://www.apache.org/>.
  55.  */
  56. /*
  57.  * $Log: XercesDefs.hpp,v $
  58.  * Revision 1.18  2001/11/29 18:25:18  tng
  59.  * FreeBSD support by Michael Huedepohl.
  60.  *
  61.  * Revision 1.17  2001/11/23 17:19:33  tng
  62.  * Change from 1.5.2 to 1.6.0
  63.  *
  64.  * Revision 1.16  2001/10/15 16:27:35  tng
  65.  * Changes for Xerces-C 1.5.2
  66.  *
  67.  * Revision 1.15  2001/07/13 20:16:38  tng
  68.  * Update for release 1.5.1.
  69.  *
  70.  * Revision 1.14  2001/06/05 13:52:25  tng
  71.  * Change Version number from Xerces 1.4 to 1.5.  By Pei Yong Zhang.
  72.  *
  73.  * Revision 1.13  2001/05/11 13:26:32  tng
  74.  * Copyright update.
  75.  *
  76.  * Revision 1.12  2001/02/08 14:15:33  tng
  77.  * 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.
  78.  *
  79.  * Revision 1.11  2001/01/25 19:17:06  tng
  80.  * const should be used instead of static const.  Fixed by Khaled Noaman.
  81.  *
  82.  * Revision 1.10  2001/01/12 22:09:07  tng
  83.  * Various update for Xerces 1.4
  84.  *
  85.  * Revision 1.9  2000/11/07 18:14:39  andyh
  86.  * Fix incorrect version number in gXercesMinVersion.
  87.  * From Pieter Van-Dyck
  88.  *
  89.  * Revision 1.8  2000/11/02 07:23:27  roddey
  90.  * Just a test of checkin access
  91.  *
  92.  * Revision 1.7  2000/08/18 21:29:14  andyh
  93.  * Change version to 1.3 in preparation for upcoming Xerces 1.3
  94.  * and XML4C 3.3 stable releases
  95.  *
  96.  * Revision 1.6  2000/08/07 20:31:34  jpolast
  97.  * include SAX2_EXPORT module
  98.  *
  99.  * Revision 1.5  2000/08/01 18:26:02  aruna1
  100.  * Tru64 support added
  101.  *
  102.  * Revision 1.4  2000/07/29 05:36:37  jberry
  103.  * Fix misspelling in Mac OS port
  104.  *
  105.  * Revision 1.3  2000/07/19 18:20:12  andyh
  106.  * Macintosh port: fix problems with yesterday's code checkin.  A couple
  107.  * of the changes were mangled or missed.
  108.  *
  109.  * Revision 1.2  2000/04/04 20:11:29  abagchi
  110.  * Added PTX support
  111.  *
  112.  * Revision 1.1  2000/03/02 19:54:50  roddey
  113.  * This checkin includes many changes done while waiting for the
  114.  * 1.1.0 code to be finished. I can't list them all here, but a list is
  115.  * available elsewhere.
  116.  *
  117.  * Revision 1.13  2000/03/02 01:51:00  aruna1
  118.  * Sun CC 5.0 related changes
  119.  *
  120.  * Revision 1.12  2000/02/24 20:05:26  abagchi
  121.  * Swat for removing Log from API docs
  122.  *
  123.  * Revision 1.11  2000/02/22 01:00:10  aruna1
  124.  * GNUGDefs references removed. Now only GCCDefs is used instead
  125.  *
  126.  * Revision 1.10  2000/02/06 07:48:05  rahulj
  127.  * Year 2K copyright swat.
  128.  *
  129.  * Revision 1.9  2000/02/01 23:43:32  abagchi
  130.  * AS/400 related change
  131.  *
  132.  * Revision 1.8  2000/01/21 22:12:29  abagchi
  133.  * OS390 Change: changed OE390 to OS390
  134.  *
  135.  * Revision 1.7  2000/01/14 01:18:35  roddey
  136.  * Added a macro, XMLStrL(), which is defined one way or another according
  137.  * to whether the per-compiler file defines XML_LSTRSUPPORT or not. This
  138.  * allows conditional support of L"" type prefixes.
  139.  *
  140.  * Revision 1.6  2000/01/14 00:52:06  roddey
  141.  * Updated the version information for the next release, i.e. 1.1.0
  142.  *
  143.  * Revision 1.5  1999/12/17 01:28:53  rahulj
  144.  * Merged in changes submitted for UnixWare 7 port. Platform
  145.  * specific files are still missing.
  146.  *
  147.  * Revision 1.4  1999/12/16 23:47:10  rahulj
  148.  * Updated for version 1.0.1
  149.  *
  150.  * Revision 1.3  1999/12/01 17:16:16  rahulj
  151.  * 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
  152.  *
  153.  * Revision 1.2  1999/11/10 02:02:51  abagchi
  154.  * Changed version numbers
  155.  *
  156.  * Revision 1.1.1.1  1999/11/09 01:05:35  twl
  157.  * Initial checkin
  158.  *
  159.  * Revision 1.3  1999/11/08 20:45:19  rahul
  160.  * Swat for adding in Product name and CVS comment log variable.
  161.  *
  162.  */
  163. #if !defined(XERCESDEFS_HPP)
  164. #define XERCESDEFS_HPP
  165. // ---------------------------------------------------------------------------
  166. //  These are the various representations of the current version of Xerces.
  167. //  These are updated for every build. They must be at the top because they
  168. //  can be used by various per-compiler headers below.
  169. // ---------------------------------------------------------------------------
  170. #define Xerces_DLLVersionStr "1_6_0"
  171. const char* const    gXercesVersionStr = "1_6";
  172. const char* const    gXercesFullVersionStr = "1_6_0";
  173. const unsigned int   gXercesMajVersion = 1;
  174. const unsigned int   gXercesMinVersion = 6;
  175. const unsigned int   gXercesRevision   = 0;
  176. // ---------------------------------------------------------------------------
  177. //  Include the header that does automatic sensing of the current platform
  178. //  and compiler.
  179. // ---------------------------------------------------------------------------
  180. #include    <util/AutoSense.hpp>
  181. // ---------------------------------------------------------------------------
  182. //  According to the platform we include a platform specific file. This guy
  183. //  will set up any platform specific stuff, such as character mode.
  184. // ---------------------------------------------------------------------------
  185. #if defined(XML_WIN32)
  186. #include    <util/Platforms/Win32/Win32Defs.hpp>
  187. #endif
  188. #if defined(XML_AIX)
  189. #include    <util/Platforms/AIX/AIXDefs.hpp>
  190. #endif
  191. #if defined(XML_SOLARIS)
  192. #include    <util/Platforms/Solaris/SolarisDefs.hpp>
  193. #endif
  194. #if defined(XML_UNIXWARE)
  195. #include    <util/Platforms/UnixWare/UnixWareDefs.hpp>
  196. #endif
  197. #if defined(XML_HPUX)
  198. #include    <util/Platforms/HPUX/HPUXDefs.hpp>
  199. #endif
  200. #if defined(XML_IRIX)
  201. #include    <util/Platforms/IRIX/IRIXDefs.hpp>
  202. #endif
  203. #if defined(XML_TANDEM)
  204. #include    <util/Platforms/Tandem/TandemDefs.hpp>
  205. #endif
  206. #if defined(XML_LINUX)
  207. #include    <util/Platforms/Linux/LinuxDefs.hpp>
  208. #endif
  209. #if defined(XML_FREEBSD)
  210. #include    <util/Platforms/FreeBSD/FreeBSDDefs.hpp>
  211. #endif
  212. #if defined(XML_OS390)
  213. #include    <util/Platforms/OS390/OS390Defs.hpp>
  214. #endif
  215. #if defined(XML_PTX)
  216. #include    <util/Platforms/PTX/PTXDefs.hpp>
  217. #endif
  218. #if defined(XML_OS2)
  219. #include    <util/Platforms/OS2/OS2Defs.hpp>
  220. #endif
  221. #if defined(XML_MACOS) || defined(XML_MACOSX)
  222. #include <util/Platforms/MacOS/MacOSDefs.hpp>
  223. #endif
  224. #if defined(XML_AS400)
  225. #include <util/Platforms/OS400/OS400Defs.hpp>
  226. #endif
  227. #if defined(XML_TRU64)
  228. #include <util/Platforms/Tru64/Tru64Defs.hpp>
  229. #endif
  230. // ---------------------------------------------------------------------------
  231. //  And now we subinclude a header according to the development environment
  232. //  we are on. This guy defines for each platform some basic stuff that is
  233. //  specific to the development environment.
  234. // ---------------------------------------------------------------------------
  235. #if defined(XML_VISUALCPP)
  236. #include    <util/Compilers/VCPPDefs.hpp>
  237. #endif
  238. #if defined(XML_CSET)
  239. #include    <util/Compilers/CSetDefs.hpp>
  240. #endif
  241. #if defined(XML_BORLAND)
  242. #include    <util/Compilers/BorlandCDefs.hpp>
  243. #endif
  244. #if defined(XML_SUNCC) || defined(XML_SUNCC5)
  245. #include    <util/Compilers/SunCCDefs.hpp>
  246. #endif
  247. #if defined(XML_SCOCC)
  248. #include    <util/Compilers/SCOCCDefs.hpp>
  249. #endif
  250. #if defined(XML_SOLARIS_KAICC)
  251. #include    <util/Compilers/SunKaiDefs.hpp>
  252. #endif
  253. #if defined(XML_HPUX_CC) || defined(XML_HPUX_aCC) || defined(XML_HPUX_KAICC)
  254. #include    <util/Compilers/HPCCDefs.hpp>
  255. #endif
  256. #if defined(XML_MIPSPRO_CC)
  257. #include    <util/Compilers/MIPSproDefs.hpp>
  258. #endif
  259. #if defined(XML_TANDEMCC)
  260. #include    <util/Compilers/TandemCCDefs.hpp>
  261. #endif
  262. #if defined(XML_GCC)
  263. #include    <util/Compilers/GCCDefs.hpp>
  264. #endif
  265. #if defined(XML_MVSCPP)
  266. #include    <util/Compilers/MVSCPPDefs.hpp>
  267. #endif
  268. #if defined(XML_IBMVAW32)
  269. #include    <util/Compilers/IBMVAW32Defs.hpp>
  270. #endif
  271. #if defined(XML_IBMVAOS2)
  272. #include    <util/Compilers/IBMVAOS2Defs.hpp>
  273. #endif
  274. #if defined(XML_METROWERKS)
  275. #include <util/Compilers/CodeWarriorDefs.hpp>
  276. #endif
  277. #if defined(XML_PTX_CC)
  278. #include <util/Compilers/PTXCCDefs.hpp>
  279. #endif
  280. #if defined(XML_AS400)
  281. #include <util/Compilers/OS400SetDefs.hpp>
  282. #endif
  283. #if defined(XML_DECCXX)
  284. #include <util/Compilers/DECCXXDefs.hpp>
  285. #endif
  286. // ---------------------------------------------------------------------------
  287. //  Some general typedefs that are defined for internal flexibility.
  288. //
  289. //  Note  that UTF16Ch is fixed at 16 bits, whereas XMLCh floats in size per
  290. //  platform, to whatever is the native wide char format there. UCS4Ch is
  291. //  fixed at 32 bits. The types we defined them in terms of are defined per
  292. //  compiler, using whatever types are the right ones for them to get these
  293. //  16/32 bit sizes.
  294. // ---------------------------------------------------------------------------
  295. typedef unsigned char       XMLByte;
  296. typedef XMLUInt16           UTF16Ch;
  297. typedef XMLUInt32           UCS4Ch;
  298. // ---------------------------------------------------------------------------
  299. //  Handle boolean. If the platform can handle booleans itself, then we
  300. //  map our boolean type to the native type. Otherwise we create a default
  301. //  one as an int and define const values for true and false.
  302. //
  303. //  This flag will be set in the per-development environment stuff above.
  304. // ---------------------------------------------------------------------------
  305. #if defined(NO_NATIVE_BOOL)
  306.   #ifndef bool
  307.     typedef int     bool;
  308.   #endif
  309.   #ifndef true
  310.     #define  true     1
  311.   #endif
  312.   #ifndef false
  313.     #define false 0
  314.   #endif
  315. #endif
  316. // ---------------------------------------------------------------------------
  317. //  According to whether the compiler suports L"" type strings, we define
  318. //  the XMLStrL() macro one way or another.
  319. // ---------------------------------------------------------------------------
  320. #if defined(XML_LSTRSUPPORT)
  321. #define XMLStrL(str)  L##str
  322. #else
  323. #define XMLStrL(str)  str
  324. #endif
  325. // ---------------------------------------------------------------------------
  326. //  Set up the import/export keyword  for our core projects. The
  327. //  PLATFORM_XXXX keywords are set in the per-development environment
  328. //  include above.
  329. // ---------------------------------------------------------------------------
  330. #if defined(PROJ_XMLUTIL)
  331. #define XMLUTIL_EXPORT PLATFORM_EXPORT
  332. #else
  333. #define XMLUTIL_EXPORT PLATFORM_IMPORT
  334. #endif
  335. #if defined(PROJ_XMLPARSER)
  336. #define XMLPARSER_EXPORT PLATFORM_EXPORT
  337. #else
  338. #define XMLPARSER_EXPORT PLATFORM_IMPORT
  339. #endif
  340. #if defined(PROJ_SAX4C)
  341. #define SAX_EXPORT PLATFORM_EXPORT
  342. #else
  343. #define SAX_EXPORT PLATFORM_IMPORT
  344. #endif
  345. #if defined(PROJ_SAX2)
  346. #define SAX2_EXPORT PLATFORM_EXPORT
  347. #else
  348. #define SAX2_EXPORT PLATFORM_IMPORT
  349. #endif
  350. #if defined(PROJ_DOM)
  351. #define CDOM_EXPORT PLATFORM_EXPORT
  352. #else
  353. #define CDOM_EXPORT PLATFORM_IMPORT
  354. #endif
  355. #if defined(PROJ_PARSERS)
  356. #define PARSERS_EXPORT  PLATFORM_EXPORT
  357. #else
  358. #define PARSERS_EXPORT  PLATFORM_IMPORT
  359. #endif
  360. #if defined(PROJ_VALIDATORS)
  361. #define VALIDATORS_EXPORT  PLATFORM_EXPORT
  362. #else
  363. #define VALIDATORS_EXPORT  PLATFORM_IMPORT
  364. #endif
  365. #endif