| 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.13 2003/01/09 19:07:08 tng 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
    00075
    00086 class  XercesDOMParser : public AbstractDOMParser
    00087 {
    00088 public :
    00089     // -----------------------------------------------------------------------
    00090     //  Constructors and Detructor
    00091     // -----------------------------------------------------------------------
    00092
    00104     XercesDOMParser(XMLValidator* const valToAdopt = 0);
    00105
    00109     virtual ~XercesDOMParser();
    00110
    00112
    00113
    00114     // -----------------------------------------------------------------------
    00115     //  Getter methods
    00116     // -----------------------------------------------------------------------
    00117
    00120
    00128     ErrorHandler* getErrorHandler();
    00129
    00137     const ErrorHandler* getErrorHandler() const;
    00138
    00146     EntityResolver* getEntityResolver();
    00147
    00155     const EntityResolver* getEntityResolver() const;
    00156
    00167     bool isCachingGrammarFromParse() const;
    00168
    00179     bool isUsingCachedGrammarInParse() const;
    00180
    00187     Grammar* getGrammar(const XMLCh* const nameSpaceKey);
    00188
    00194     Grammar* getRootGrammar();
    00195
    00202     const XMLCh* getURIText(unsigned int uriId) const;
    00203
    00209     unsigned int getSrcOffset() const;
    00210
    00212
    00213
    00214     // -----------------------------------------------------------------------
    00215     //  Setter methods
    00216     // -----------------------------------------------------------------------
    00217
    00220
    00234     void setErrorHandler(ErrorHandler* const handler);
    00235
    00251     void setEntityResolver(EntityResolver* const handler);
    00252
    00270     void cacheGrammarFromParse(const bool newState);
    00271
    00290     void useCachedGrammarInParse(const bool newState);
    00291
    00293
    00294     // -----------------------------------------------------------------------
    00295     //  Utility methods
    00296     // -----------------------------------------------------------------------
    00297
    00323     void resetDocumentPool();
    00324
    00326
    00327     // -----------------------------------------------------------------------
    00328     //  Implementation of the XMLErrorReporter interface.
    00329     // -----------------------------------------------------------------------
    00330
    00333
    00358     virtual void error
    00359     (
    00360         const   unsigned int                errCode
    00361         , const XMLCh* const                msgDomain
    00362         , const XMLErrorReporter::ErrTypes  errType
    00363         , const XMLCh* const                errorText
    00364         , const XMLCh* const                systemId
    00365         , const XMLCh* const                publicId
    00366         , const XMLSSize_t                  lineNum
    00367         , const XMLSSize_t                  colNum
    00368     );
    00369
    00378     virtual void resetErrors();
    00380
    00381
    00382     // -----------------------------------------------------------------------
    00383     //  Implementation of the XMLEntityHandler interface.
    00384     // -----------------------------------------------------------------------
    00385
    00388
    00401     virtual void endInputSource(const InputSource& inputSource);
    00402
    00418     virtual bool expandSystemId
    00419     (
    00420         const   XMLCh* const    systemId
    00421         ,       XMLBuffer&      toFill
    00422     );
    00423
    00432     virtual void resetEntities();
    00433
    00455     virtual InputSource* resolveEntity
    00456     (
    00457         const   XMLCh* const    publicId
    00458         , const XMLCh* const    systemId
    00459         , const XMLCh* const    baseURI = 0
    00460     );
    00461
    00474     virtual void startInputSource(const InputSource& inputSource);
    00475
    00477
    00478     // -----------------------------------------------------------------------
    00479     //  Grammar preparsing interface
    00480     // -----------------------------------------------------------------------
    00481
    00511     Grammar* loadGrammar(const InputSource& source,
    00512                          const short grammarType,
    00513                          const bool toCache = false);
    00514
    00540     Grammar* loadGrammar(const XMLCh* const systemId,
    00541                          const short grammarType,
    00542                          const bool toCache = false);
    00543
    00568     Grammar* loadGrammar(const char* const systemId,
    00569                          const short grammarType,
    00570                          const bool toCache = false);
    00571
    00575     void resetCachedGrammarPool();
    00576
    00578
    00579
    00580 private :
    00581     // -----------------------------------------------------------------------
    00582     //  Private data members
    00583     //
    00584     //  fEntityResolver
    00585     //      The installed SAX entity resolver, if any. Null if none.
    00586     //
    00587     //  fErrorHandler
    00588     //      The installed SAX error handler, if any. Null if none.
    00589     //-----------------------------------------------------------------------
    00590     EntityResolver*          fEntityResolver;
    00591     ErrorHandler*            fErrorHandler;
    00592 };
    00593
    00594
    00595
    00596 // ---------------------------------------------------------------------------
    00597 //  XercesDOMParser: Handlers for the XMLEntityHandler interface
    00598 // ---------------------------------------------------------------------------
    00599 inline void XercesDOMParser::endInputSource(const InputSource&)
    00600 {
    00601     // The DOM entity resolver doesn't handle this
    00602 }
    00603
    00604 inline bool XercesDOMParser::expandSystemId(const XMLCh* const, XMLBuffer&)
    00605 {
    00606     // The DOM entity resolver doesn't handle this
    00607     return false;
    00608 }
    00609
    00610 inline void XercesDOMParser::resetEntities()
    00611 {
    00612     // Nothing to do on this one
    00613 }
    00614
    00615 inline void XercesDOMParser::startInputSource(const InputSource&)
    00616 {
    00617     // The DOM entity resolver doesn't handle this
    00618 }
    00619
    00620
    00621 // ---------------------------------------------------------------------------
    00622 //  XercesDOMParser: Getter methods
    00623 // ---------------------------------------------------------------------------
    00624 inline ErrorHandler* XercesDOMParser::getErrorHandler()
    00625 {
    00626     return fErrorHandler;
    00627 }
    00628
    00629 inline const ErrorHandler* XercesDOMParser::getErrorHandler() const
    00630 {
    00631     return fErrorHandler;
    00632 }
    00633
    00634 inline EntityResolver* XercesDOMParser::getEntityResolver()
    00635 {
    00636     return fEntityResolver;
    00637 }
    00638
    00639 inline const EntityResolver* XercesDOMParser::getEntityResolver() const
    00640 {
    00641     return fEntityResolver;
    00642 }
    00643
    00644
    00645 XERCES_CPP_NAMESPACE_END
    00646
    00647 #endif

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