XercesDefs.hpp
上传用户:zhuqijet
上传日期:2013-06-25
资源大小:10074k
文件大小:16k
源码类别:

词法分析

开发平台:

Visual 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.14  2003/05/12 09:44:19  gareth
  59.  * Port to NetBSD. Patch by Hiramatsu Yoshifumi.
  60.  *
  61.  * Revision 1.13  2003/03/13 22:11:46  tng
  62.  * [Bug 17858] Support for QNX/Neutrino.  Patch from Chris McKillop.
  63.  *
  64.  * Revision 1.12  2003/02/23 05:44:12  jberry
  65.  * Ripple through changes of BeOSDefs.h name change
  66.  *
  67.  * Revision 1.11  2002/12/31 19:31:07  tng
  68.  * [Bug 15590] BeOSDefs.hpp has wrong case in CVS.
  69.  *
  70.  * Revision 1.10  2002/12/02 20:40:49  tng
  71.  * [Bug 12490] Patches required to build Xerces-C++ on BeOS R5.  Patch from Andrew Bachmann.
  72.  *
  73.  * Revision 1.9  2002/11/05 21:44:21  tng
  74.  * Do not code using namespace in a global header.
  75.  *
  76.  * Revision 1.8  2002/11/04 14:40:12  tng
  77.  * C++ Namespace Support.
  78.  *
  79.  * Revision 1.7  2002/07/12 16:48:49  jberry
  80.  * Remove reliance on XML_MACOSX. XML_MACOS is used solely. Where qualification
  81.  * by compiler is required, look for the compiler explicitly such as with
  82.  * XML_METROWERKS or __APPLE__ (for the Apple GCC compiler).
  83.  *
  84.  * Add a few tweaks for compatibility with GCC3.1.
  85.  *
  86.  * This change may address Bug 10649.
  87.  *
  88.  * Revision 1.6  2002/07/10 12:56:45  tng
  89.  * [Bug 9154] Requesting Xerces Version Macro.
  90.  *
  91.  * Revision 1.5  2002/05/21 19:35:08  tng
  92.  * Update from 1.7 to 2.0
  93.  *
  94.  * Revision 1.4  2002/02/27 22:38:34  peiyongz
  95.  * Bug# 6445 Caldera (SCO) OpenServer Port : patch from Martin Kalen
  96.  *
  97.  * Revision 1.3  2002/02/20 21:41:54  tng
  98.  * project files changes for Xerces-C++ 1.7.
  99.  *
  100.  * Revision 1.2  2002/02/17 21:12:06  jberry
  101.  * Adjust "sane includes" include path for Mac OS.
  102.  *
  103.  * I've also changed this path for XML_AS400, XML_TRU64, XML_PTX_CC, and XML_DECCXX
  104.  * 'cause it looks like the right thing to do...hope that's not a mistake.
  105.  *
  106.  * Revision 1.1.1.1  2002/02/01 22:22:13  peiyongz
  107.  * sane_include
  108.  *
  109.  * Revision 1.18  2001/11/29 18:25:18  tng
  110.  * FreeBSD support by Michael Huedepohl.
  111.  *
  112.  * Revision 1.17  2001/11/23 17:19:33  tng
  113.  * Change from 1.5.2 to 1.6.0
  114.  *
  115.  * Revision 1.16  2001/10/15 16:27:35  tng
  116.  * Changes for Xerces-C 1.5.2
  117.  *
  118.  * Revision 1.15  2001/07/13 20:16:38  tng
  119.  * Update for release 1.5.1.
  120.  *
  121.  * Revision 1.14  2001/06/05 13:52:25  tng
  122.  * Change Version number from Xerces 1.4 to 1.5.  By Pei Yong Zhang.
  123.  *
  124.  * Revision 1.13  2001/05/11 13:26:32  tng
  125.  * Copyright update.
  126.  *
  127.  * Revision 1.12  2001/02/08 14:15:33  tng
  128.  * 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.
  129.  *
  130.  * Revision 1.11  2001/01/25 19:17:06  tng
  131.  * const should be used instead of static const.  Fixed by Khaled Noaman.
  132.  *
  133.  * Revision 1.10  2001/01/12 22:09:07  tng
  134.  * Various update for Xerces 1.4
  135.  *
  136.  * Revision 1.9  2000/11/07 18:14:39  andyh
  137.  * Fix incorrect version number in gXercesMinVersion.
  138.  * From Pieter Van-Dyck
  139.  *
  140.  * Revision 1.8  2000/11/02 07:23:27  roddey
  141.  * Just a test of checkin access
  142.  *
  143.  * Revision 1.7  2000/08/18 21:29:14  andyh
  144.  * Change version to 1.3 in preparation for upcoming Xerces 1.3
  145.  * and XML4C 3.3 stable releases
  146.  *
  147.  * Revision 1.6  2000/08/07 20:31:34  jpolast
  148.  * include SAX2_EXPORT module
  149.  *
  150.  * Revision 1.5  2000/08/01 18:26:02  aruna1
  151.  * Tru64 support added
  152.  *
  153.  * Revision 1.4  2000/07/29 05:36:37  jberry
  154.  * Fix misspelling in Mac OS port
  155.  *
  156.  * Revision 1.3  2000/07/19 18:20:12  andyh
  157.  * Macintosh port: fix problems with yesterday's code checkin.  A couple
  158.  * of the changes were mangled or missed.
  159.  *
  160.  * Revision 1.2  2000/04/04 20:11:29  abagchi
  161.  * Added PTX support
  162.  *
  163.  * Revision 1.1  2000/03/02 19:54:50  roddey
  164.  * This checkin includes many changes done while waiting for the
  165.  * 1.1.0 code to be finished. I can't list them all here, but a list is
  166.  * available elsewhere.
  167.  *
  168.  * Revision 1.13  2000/03/02 01:51:00  aruna1
  169.  * Sun CC 5.0 related changes
  170.  *
  171.  * Revision 1.12  2000/02/24 20:05:26  abagchi
  172.  * Swat for removing Log from API docs
  173.  *
  174.  * Revision 1.11  2000/02/22 01:00:10  aruna1
  175.  * GNUGDefs references removed. Now only GCCDefs is used instead
  176.  *
  177.  * Revision 1.10  2000/02/06 07:48:05  rahulj
  178.  * Year 2K copyright swat.
  179.  *
  180.  * Revision 1.9  2000/02/01 23:43:32  abagchi
  181.  * AS/400 related change
  182.  *
  183.  * Revision 1.8  2000/01/21 22:12:29  abagchi
  184.  * OS390 Change: changed OE390 to OS390
  185.  *
  186.  * Revision 1.7  2000/01/14 01:18:35  roddey
  187.  * Added a macro, XMLStrL(), which is defined one way or another according
  188.  * to whether the per-compiler file defines XML_LSTRSUPPORT or not. This
  189.  * allows conditional support of L"" type prefixes.
  190.  *
  191.  * Revision 1.6  2000/01/14 00:52:06  roddey
  192.  * Updated the version information for the next release, i.e. 1.1.0
  193.  *
  194.  * Revision 1.5  1999/12/17 01:28:53  rahulj
  195.  * Merged in changes submitted for UnixWare 7 port. Platform
  196.  * specific files are still missing.
  197.  *
  198.  * Revision 1.4  1999/12/16 23:47:10  rahulj
  199.  * Updated for version 1.0.1
  200.  *
  201.  * Revision 1.3  1999/12/01 17:16:16  rahulj
  202.  * 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
  203.  *
  204.  * Revision 1.2  1999/11/10 02:02:51  abagchi
  205.  * Changed version numbers
  206.  *
  207.  * Revision 1.1.1.1  1999/11/09 01:05:35  twl
  208.  * Initial checkin
  209.  *
  210.  * Revision 1.3  1999/11/08 20:45:19  rahul
  211.  * Swat for adding in Product name and CVS comment log variable.
  212.  *
  213.  */
  214. #if !defined(XERCESDEFS_HPP)
  215. #define XERCESDEFS_HPP
  216. // ---------------------------------------------------------------------------
  217. //  Include the Xerces version information; this is kept in a separate file to
  218. //  make modification simple and obvious. Updates to the version header file
  219. // ---------------------------------------------------------------------------
  220. #include    <xercesc/util/XercesVersion.hpp>
  221. // ---------------------------------------------------------------------------
  222. //  Include the header that does automatic sensing of the current platform
  223. //  and compiler.
  224. // ---------------------------------------------------------------------------
  225. #include    <xercesc/util/AutoSense.hpp>
  226. // ---------------------------------------------------------------------------
  227. //  According to the platform we include a platform specific file. This guy
  228. //  will set up any platform specific stuff, such as character mode.
  229. // ---------------------------------------------------------------------------
  230. #if defined(XML_WIN32)
  231. #include    <xercesc/util/Platforms/Win32/Win32Defs.hpp>
  232. #endif
  233. #if defined(XML_AIX)
  234. #include    <xercesc/util/Platforms/AIX/AIXDefs.hpp>
  235. #endif
  236. #if defined(XML_SOLARIS)
  237. #include    <xercesc/util/Platforms/Solaris/SolarisDefs.hpp>
  238. #endif
  239. #if defined(XML_OPENSERVER)
  240. #include    <xercesc/util/Platforms/OpenServer/OpenServerDefs.hpp>
  241. #endif
  242. #if defined(XML_UNIXWARE)
  243. #include    <xercesc/util/Platforms/UnixWare/UnixWareDefs.hpp>
  244. #endif
  245. #if defined(XML_HPUX)
  246. #include    <xercesc/util/Platforms/HPUX/HPUXDefs.hpp>
  247. #endif
  248. #if defined(XML_IRIX)
  249. #include    <xercesc/util/Platforms/IRIX/IRIXDefs.hpp>
  250. #endif
  251. #if defined(XML_TANDEM)
  252. #include    <xercesc/util/Platforms/Tandem/TandemDefs.hpp>
  253. #endif
  254. #if defined(XML_BEOS)
  255. #include    <xercesc/util/Platforms/BeOS/BeOSDefs.hpp>
  256. #endif
  257. #if defined(XML_LINUX)
  258. #include    <xercesc/util/Platforms/Linux/LinuxDefs.hpp>
  259. #endif
  260. #if defined(XML_FREEBSD)
  261. #include    <xercesc/util/Platforms/FreeBSD/FreeBSDDefs.hpp>
  262. #endif
  263. #if defined(XML_OS390)
  264. #include    <xercesc/util/Platforms/OS390/OS390Defs.hpp>
  265. #endif
  266. #if defined(XML_PTX)
  267. #include    <xercesc/util/Platforms/PTX/PTXDefs.hpp>
  268. #endif
  269. #if defined(XML_OS2)
  270. #include    <xercesc/util/Platforms/OS2/OS2Defs.hpp>
  271. #endif
  272. #if defined(XML_MACOS)
  273. #include <xercesc/util/Platforms/MacOS/MacOSDefs.hpp>
  274. #endif
  275. #if defined(XML_AS400)
  276. #include <xercesc/util/Platforms/OS400/OS400Defs.hpp>
  277. #endif
  278. #if defined(XML_TRU64)
  279. #include <xercesc/util/Platforms/Tru64/Tru64Defs.hpp>
  280. #endif
  281. #if defined(XML_QNX)
  282. #include <xercesc/util/Platforms/QNX/QNXDefs.hpp>
  283. #endif
  284. // ---------------------------------------------------------------------------
  285. //  And now we subinclude a header according to the development environment
  286. //  we are on. This guy defines for each platform some basic stuff that is
  287. //  specific to the development environment.
  288. // ---------------------------------------------------------------------------
  289. #if defined(XML_VISUALCPP)
  290. #include    <xercesc/util/Compilers/VCPPDefs.hpp>
  291. #endif
  292. #if defined(XML_CSET)
  293. #include    <xercesc/util/Compilers/CSetDefs.hpp>
  294. #endif
  295. #if defined(XML_BORLAND)
  296. #include    <xercesc/util/Compilers/BorlandCDefs.hpp>
  297. #endif
  298. #if defined(XML_SUNCC) || defined(XML_SUNCC5)
  299. #include    <xercesc/util/Compilers/SunCCDefs.hpp>
  300. #endif
  301. #if defined(XML_SCOCC)
  302. #include    <xercesc/util/Compilers/SCOCCDefs.hpp>
  303. #endif
  304. #if defined(XML_SOLARIS_KAICC)
  305. #include    <xercesc/util/Compilers/SunKaiDefs.hpp>
  306. #endif
  307. #if defined(XML_HPUX_CC) || defined(XML_HPUX_aCC) || defined(XML_HPUX_KAICC)
  308. #include    <xercesc/util/Compilers/HPCCDefs.hpp>
  309. #endif
  310. #if defined(XML_MIPSPRO_CC)
  311. #include    <xercesc/util/Compilers/MIPSproDefs.hpp>
  312. #endif
  313. #if defined(XML_TANDEMCC)
  314. #include    <xercesc/util/Compilers/TandemCCDefs.hpp>
  315. #endif
  316. #if defined(XML_GCC)
  317. #include    <xercesc/util/Compilers/GCCDefs.hpp>
  318. #endif
  319. #if defined(XML_MVSCPP)
  320. #include    <xercesc/util/Compilers/MVSCPPDefs.hpp>
  321. #endif
  322. #if defined(XML_IBMVAW32)
  323. #include    <xercesc/util/Compilers/IBMVAW32Defs.hpp>
  324. #endif
  325. #if defined(XML_IBMVAOS2)
  326. #include    <xercesc/util/Compilers/IBMVAOS2Defs.hpp>
  327. #endif
  328. #if defined(XML_METROWERKS)
  329. #include <xercesc/util/Compilers/CodeWarriorDefs.hpp>
  330. #endif
  331. #if defined(XML_PTX_CC)
  332. #include <xercesc/util/Compilers/PTXCCDefs.hpp>
  333. #endif
  334. #if defined(XML_AS400)
  335. #include <xercesc/util/Compilers/OS400SetDefs.hpp>
  336. #endif
  337. #if defined(XML_DECCXX)
  338. #include <xercesc/util/Compilers/DECCXXDefs.hpp>
  339. #endif
  340. #if defined(XML_QCC)
  341. #include <xercesc/util/Compilers/QCCDefs.hpp>
  342. #endif
  343. // ---------------------------------------------------------------------------
  344. //  Some general typedefs that are defined for internal flexibility.
  345. //
  346. //  Note  that UTF16Ch is fixed at 16 bits, whereas XMLCh floats in size per
  347. //  platform, to whatever is the native wide char format there. UCS4Ch is
  348. //  fixed at 32 bits. The types we defined them in terms of are defined per
  349. //  compiler, using whatever types are the right ones for them to get these
  350. //  16/32 bit sizes.
  351. //
  352. // ---------------------------------------------------------------------------
  353. typedef unsigned char       XMLByte;
  354. typedef XMLUInt16           UTF16Ch;
  355. typedef XMLUInt32           UCS4Ch;
  356. // ---------------------------------------------------------------------------
  357. //  Handle boolean. If the platform can handle booleans itself, then we
  358. //  map our boolean type to the native type. Otherwise we create a default
  359. //  one as an int and define const values for true and false.
  360. //
  361. //  This flag will be set in the per-development environment stuff above.
  362. // ---------------------------------------------------------------------------
  363. #if defined(NO_NATIVE_BOOL)
  364.   #ifndef bool
  365.     typedef int     bool;
  366.   #endif
  367.   #ifndef true
  368.     #define  true     1
  369.   #endif
  370.   #ifndef false
  371.     #define false 0
  372.   #endif
  373. #endif
  374. #if defined(XML_NETBSD)
  375. #include       <xercesc/util/Platforms/NetBSD/NetBSDDefs.hpp>
  376. #endif
  377. // ---------------------------------------------------------------------------
  378. //  According to whether the compiler suports L"" type strings, we define
  379. //  the XMLStrL() macro one way or another.
  380. // ---------------------------------------------------------------------------
  381. #if defined(XML_LSTRSUPPORT)
  382. #define XMLStrL(str)  L##str
  383. #else
  384. #define XMLStrL(str)  str
  385. #endif
  386. // ---------------------------------------------------------------------------
  387. // Define namespace symbols if the compiler supports it.
  388. // ---------------------------------------------------------------------------
  389. #if defined(XERCES_HAS_CPP_NAMESPACE)
  390.     #define XERCES_CPP_NAMESPACE_BEGIN namespace XERCES_CPP_NAMESPACE {
  391.     #define XERCES_CPP_NAMESPACE_END  }
  392.     #define XERCES_CPP_NAMESPACE_USE using namespace XERCES_CPP_NAMESPACE;
  393.     #define XERCES_CPP_NAMESPACE_QUALIFIER XERCES_CPP_NAMESPACE::
  394.     namespace XERCES_CPP_NAMESPACE { }
  395.     namespace xercesc = XERCES_CPP_NAMESPACE;
  396. #else
  397.     #define XERCES_CPP_NAMESPACE_BEGIN
  398.     #define XERCES_CPP_NAMESPACE_END
  399.     #define XERCES_CPP_NAMESPACE_USE
  400.     #define XERCES_CPP_NAMESPACE_QUALIFIER
  401. #endif
  402. // ---------------------------------------------------------------------------
  403. //  Set up the import/export keyword  for our core projects. The
  404. //  PLATFORM_XXXX keywords are set in the per-development environment
  405. //  include above.
  406. // ---------------------------------------------------------------------------
  407. #if defined(PROJ_XMLUTIL)
  408. #define XMLUTIL_EXPORT PLATFORM_EXPORT
  409. #else
  410. #define XMLUTIL_EXPORT PLATFORM_IMPORT
  411. #endif
  412. #if defined(PROJ_XMLPARSER)
  413. #define XMLPARSER_EXPORT PLATFORM_EXPORT
  414. #else
  415. #define XMLPARSER_EXPORT PLATFORM_IMPORT
  416. #endif
  417. #if defined(PROJ_SAX4C)
  418. #define SAX_EXPORT PLATFORM_EXPORT
  419. #else
  420. #define SAX_EXPORT PLATFORM_IMPORT
  421. #endif
  422. #if defined(PROJ_SAX2)
  423. #define SAX2_EXPORT PLATFORM_EXPORT
  424. #else
  425. #define SAX2_EXPORT PLATFORM_IMPORT
  426. #endif
  427. #if defined(PROJ_DOM)
  428. #define CDOM_EXPORT PLATFORM_EXPORT
  429. #else
  430. #define CDOM_EXPORT PLATFORM_IMPORT
  431. #endif
  432. #if defined(PROJ_PARSERS)
  433. #define PARSERS_EXPORT  PLATFORM_EXPORT
  434. #else
  435. #define PARSERS_EXPORT  PLATFORM_IMPORT
  436. #endif
  437. #if defined(PROJ_VALIDATORS)
  438. #define VALIDATORS_EXPORT  PLATFORM_EXPORT
  439. #else
  440. #define VALIDATORS_EXPORT  PLATFORM_IMPORT
  441. #endif
  442. #endif