| API Docs for SAX and DOM |

Main Page Class Hierarchy Alphabetical List Compound List File List Compound Members File Members

# XercesDOMParser.hpp

Go to the documentation of this file.

    00001 /*
    00002  * The Apache Software License, Version 1.1
    00003  *
    00004  * Copyright (c) 2001-2002 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) 2001, 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  * $Id: XercesDOMParser.hpp,v 1.18 2004/01/29 11:46:32 cargilld Exp $
    00059  *
    00060  */
    00061
    00062 #if !defined(XercesDOMParser_HPP)
    00063 #define XercesDOMParser_HPP
    00064
    00065
    00066 #include <xercesc/parsers/AbstractDOMParser.hpp>
    00067
    00068 XERCES_CPP_NAMESPACE_BEGIN
    00069
    00070
    00071 class EntityResolver;
    00072 class ErrorHandler;
    00073 class Grammar;
    00074 class XMLEntityResolver;
    00075 class XMLResourceIdentifier;
    00076
    00087 class  XercesDOMParser : public AbstractDOMParser
    00088 {
    00089 public :
    00090     // -----------------------------------------------------------------------
    00091     //  Constructors and Detructor
    00092     // -----------------------------------------------------------------------
    00093
    00111     XercesDOMParser
    00112     (
    00113           XMLValidator* const   valToAdopt = 0
    00114         , MemoryManager* const  manager = XMLPlatformUtils::fgMemoryManager
    00115         , XMLGrammarPool* const gramPool = 0
    00116     );
    00117
    00121     virtual ~XercesDOMParser();
    00122
    00124
    00125
    00126     // -----------------------------------------------------------------------
    00127     //  Getter methods
    00128     // -----------------------------------------------------------------------
    00129
    00132
    00140     ErrorHandler* getErrorHandler();
    00141
    00149     const ErrorHandler* getErrorHandler() const;
    00150
    00158     EntityResolver* getEntityResolver();
    00159
    00167     const EntityResolver* getEntityResolver() const;
    00168
    00177     XMLEntityResolver* getXMLEntityResolver();
    00178
    00187     const XMLEntityResolver* getXMLEntityResolver() const;
    00188
    00199     bool isCachingGrammarFromParse() const;
    00200
    00211     bool isUsingCachedGrammarInParse() const;
    00212
    00219     Grammar* getGrammar(const XMLCh* const nameSpaceKey);
    00220
    00226     Grammar* getRootGrammar();
    00227
    00234     const XMLCh* getURIText(unsigned int uriId) const;
    00235
    00241     unsigned int getSrcOffset() const;
    00242
    00244
    00245
    00246     // -----------------------------------------------------------------------
    00247     //  Setter methods
    00248     // -----------------------------------------------------------------------
    00249
    00252
    00266     void setErrorHandler(ErrorHandler* const handler);
    00267
    00284     void setEntityResolver(EntityResolver* const handler);
    00285
    00303     void setXMLEntityResolver(XMLEntityResolver* const handler);
    00304
    00322     void cacheGrammarFromParse(const bool newState);
    00323
    00342     void useCachedGrammarInParse(const bool newState);
    00343
    00345
    00346     // -----------------------------------------------------------------------
    00347     //  Utility methods
    00348     // -----------------------------------------------------------------------
    00349
    00375     void resetDocumentPool();
    00376
    00378
    00379     // -----------------------------------------------------------------------
    00380     //  Implementation of the XMLErrorReporter interface.
    00381     // -----------------------------------------------------------------------
    00382
    00385
    00410     virtual void error
    00411     (
    00412         const   unsigned int                errCode
    00413         , const XMLCh* const                msgDomain
    00414         , const XMLErrorReporter::ErrTypes  errType
    00415         , const XMLCh* const                errorText
    00416         , const XMLCh* const                systemId
    00417         , const XMLCh* const                publicId
    00418         , const XMLSSize_t                  lineNum
    00419         , const XMLSSize_t                  colNum
    00420     );
    00421
    00430     virtual void resetErrors();
    00432
    00433
    00434     // -----------------------------------------------------------------------
    00435     //  Implementation of the XMLEntityHandler interface.
    00436     // -----------------------------------------------------------------------
    00437
    00440
    00453     virtual void endInputSource(const InputSource& inputSource);
    00454
    00470     virtual bool expandSystemId
    00471     (
    00472         const   XMLCh* const    systemId
    00473         ,       XMLBuffer&      toFill
    00474     );
    00475
    00484     virtual void resetEntities();
    00485
    00509     virtual InputSource* resolveEntity
    00510     (
    00511         const   XMLCh* const    publicId
    00512         , const XMLCh* const    systemId
    00513         , const XMLCh* const    baseURI = 0
    00514     );
    00515
    00532     virtual InputSource* resolveEntity
    00533     (
    00534         XMLResourceIdentifier* resourceIdentifier
    00535     );
    00536
    00549     virtual void startInputSource(const InputSource& inputSource);
    00550
    00552
    00553     // -----------------------------------------------------------------------
    00554     //  Grammar preparsing interface
    00555     // -----------------------------------------------------------------------
    00556
    00586     Grammar* loadGrammar(const InputSource& source,
    00587                          const short grammarType,
    00588                          const bool toCache = false);
    00589
    00615     Grammar* loadGrammar(const XMLCh* const systemId,
    00616                          const short grammarType,
    00617                          const bool toCache = false);
    00618
    00643     Grammar* loadGrammar(const char* const systemId,
    00644                          const short grammarType,
    00645                          const bool toCache = false);
    00646
    00650     void resetCachedGrammarPool();
    00651
    00653
    00654
    00655 private :
    00656     // -----------------------------------------------------------------------
    00657     //  Unimplemented constructors and operators
    00658     // -----------------------------------------------------------------------
    00659     XercesDOMParser(const XercesDOMParser&);
    00660     XercesDOMParser& operator=(const XercesDOMParser&);
    00661
    00662     // -----------------------------------------------------------------------
    00663     //  Private data members
    00664     //
    00665     //  fEntityResolver
    00666     //      The installed SAX entity resolver, if any. Null if none.
    00667     //
    00668     //  fErrorHandler
    00669     //      The installed SAX error handler, if any. Null if none.
    00670     //-----------------------------------------------------------------------
    00671     EntityResolver*          fEntityResolver;
    00672     XMLEntityResolver*       fXMLEntityResolver;
    00673     ErrorHandler*            fErrorHandler;
    00674 };
    00675
    00676
    00677
    00678 // ---------------------------------------------------------------------------
    00679 //  XercesDOMParser: Handlers for the XMLEntityHandler interface
    00680 // ---------------------------------------------------------------------------
    00681 inline void XercesDOMParser::endInputSource(const InputSource&)
    00682 {
    00683     // The DOM entity resolver doesn't handle this
    00684 }
    00685
    00686 inline bool XercesDOMParser::expandSystemId(const XMLCh* const, XMLBuffer&)
    00687 {
    00688     // The DOM entity resolver doesn't handle this
    00689     return false;
    00690 }
    00691
    00692 inline void XercesDOMParser::resetEntities()
    00693 {
    00694     // Nothing to do on this one
    00695 }
    00696
    00697 inline void XercesDOMParser::startInputSource(const InputSource&)
    00698 {
    00699     // The DOM entity resolver doesn't handle this
    00700 }
    00701
    00702
    00703 // ---------------------------------------------------------------------------
    00704 //  XercesDOMParser: Getter methods
    00705 // ---------------------------------------------------------------------------
    00706 inline ErrorHandler* XercesDOMParser::getErrorHandler()
    00707 {
    00708     return fErrorHandler;
    00709 }
    00710
    00711 inline const ErrorHandler* XercesDOMParser::getErrorHandler() const
    00712 {
    00713     return fErrorHandler;
    00714 }
    00715
    00716 inline EntityResolver* XercesDOMParser::getEntityResolver()
    00717 {
    00718     return fEntityResolver;
    00719 }
    00720
    00721 inline const EntityResolver* XercesDOMParser::getEntityResolver() const
    00722 {
    00723     return fEntityResolver;
    00724 }
    00725
    00726 inline XMLEntityResolver* XercesDOMParser::getXMLEntityResolver()
    00727 {
    00728     return fXMLEntityResolver;
    00729 }
    00730
    00731 inline const XMLEntityResolver* XercesDOMParser::getXMLEntityResolver() const
    00732 {
    00733     return fXMLEntityResolver;
    00734 }
    00735
    00736 XERCES_CPP_NAMESPACE_END
    00737
    00738 #endif

Copyright © 2004 The Apache Software Foundation. All Rights Reserved.