| API Docs for SAX and DOM |

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

# SAX2XMLReader.hpp

Go to the documentation of this file.

    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: SAX2XMLReader.hpp,v $
    00059  * Revision 1.6  2002/07/11 18:29:09  knoaman
    00060  * Grammar caching/preparsing - initial implementation.
    00061  *
    00062  * Revision 1.5  2002/07/04 15:35:44  tng
    00063  * API Documentation typo fix.
    00064  *
    00065  * Revision 1.4  2002/06/27 18:46:53  tng
    00066  * API Documentation Update.
    00067  *
    00068  * Revision 1.3  2002/06/17 15:39:49  tng
    00069  * To be consistent, SAX2 is updated with:
    00070  * 1. the progressive parse methods should use the fReuseGrammar flag set from setFeature instead of using parameter
    00071  * 2. add feature "http://apache.org/xml/features/continue-after-fatal-error", and users should use setFeature instead of setExitOnFirstFatalError
    00072  * 3. add feature "http://apache.org/xml/features/validation-error-as-fatal", and users should use setFeature instead of setValidationConstraintFatal
    00073  *
    00074  * Revision 1.2  2002/05/30 16:22:53  tng
    00075  * Add feature to optionally ignore external DTD.
    00076  *
    00077  * Revision 1.1.1.1  2002/02/01 22:22:09  peiyongz
    00078  * sane_include
    00079  *
    00080  * Revision 1.18  2002/01/28 18:45:40  knoaman
    00081  * Update documentation for SAX2 feature 'namespace-prefixes'.
    00082  *
    00083  * Revision 1.17  2002/01/28 17:08:33  knoaman
    00084  * SAX2-ext's DeclHandler support.
    00085  *
    00086  * Revision 1.16  2002/01/18 16:31:26  tng
    00087  * Break program.xml which takes too long to load, into program-sax.xml, program-sax2.xml, program-dom.xml, program-idom.xml.
    00088  *
    00089  * Revision 1.15  2002/01/02 15:36:54  tng
    00090  * Some documentation update.
    00091  *
    00092  * Revision 1.14  2001/11/20 18:51:44  tng
    00093  * Schema: schemaLocation and noNamespaceSchemaLocation to be specified outside the instance document.  New methods setExternalSchemaLocation and setExternalNoNamespaceSchemaLocation are added (for SAX2, two new properties are added).
    00094  *
    00095  * Revision 1.13  2001/11/14 14:15:59  tng
    00096  * Update SAX2 feature documentation.
    00097  *
    00098  * Revision 1.12  2001/09/12 13:03:43  tng
    00099  * [Bug 3155] SAX2 does not offer progressive parse.
    00100  *
    00101  * Revision 1.11  2001/08/01 19:11:02  tng
    00102  * Add full schema constraint checking flag to the samples and the parser.
    00103  *
    00104  * Revision 1.10  2001/06/27 17:40:16  knoaman
    00105  * Fix for bug #2353.
    00106  *
    00107  * Revision 1.9  2001/06/19 16:44:31  tng
    00108  * Add installAdvDocHandler to SAX2XMLReader as the code is there already.
    00109  *
    00110  * Revision 1.8  2001/06/04 21:03:07  jberry
    00111  * Add pure virtual getErrorCount to SAX2XMLReader interface.
    00112  *
    00113  * Revision 1.7  2001/05/11 13:26:25  tng
    00114  * Copyright update.
    00115  *
    00116  * Revision 1.6  2001/02/15 15:56:31  tng
    00117  * Schema: Add setSchemaValidation and getSchemaValidation for DOMParser and SAXParser.
    00118  * Add feature "http://apache.org/xml/features/validation/schema" for SAX2XMLReader.
    00119  * New data field  fSchemaValidation in XMLScanner as the flag.
    00120  *
    00121  * Revision 1.5  2001/01/12 21:22:00  tng
    00122  * Documentation Enhancement: Add list of SAX2 feature strings that are supported.
    00123  *
    00124  * Revision 1.4  2000/12/22 15:17:04  tng
    00125  * SAX2-ext's LexicalHandler support added by David Bertoni.
    00126  *
    00127  * Revision 1.3  2000/08/09 22:19:29  jpolast
    00128  * many conformance & stability changes:
    00129  *   - ContentHandler::resetDocument() removed
    00130  *   - attrs param of ContentHandler::startDocument() made const
    00131  *   - SAXExceptions thrown now have msgs
    00132  *   - removed duplicate function signatures that had 'const'
    00133  *       [ eg: getContentHander() ]
    00134  *   - changed getFeature and getProperty to apply to const objs
    00135  *   - setProperty now takes a void* instead of const void*
    00136  *   - SAX2XMLReaderImpl does not inherit from SAXParser anymore
    00137  *   - Reuse Validator (http://apache.org/xml/features/reuse-validator) implemented
    00138  *   - Features & Properties now read-only during parse
    00139  *
    00140  * Revision 1.2  2000/08/07 18:21:27  jpolast
    00141  * change  module to
    00142  *
    00143  * Revision 1.1  2000/08/02 18:02:35  jpolast
    00144  * initial checkin of sax2 implementation
    00145  * submitted by Simon Fell (simon@fell.com)
    00146  * and Joe Polastre (jpolast@apache.org)
    00147  *
    00148  *
    00149  */
    00150
    00151 #ifndef SAX2XMLReader_HPP
    00152 #define SAX2XMLReader_HPP
    00153
    00154 #include <xercesc/util/XercesDefs.hpp>
    00155 #include <xercesc/util/XMLUniDefs.hpp>
    00156 #include <xercesc/framework/XMLValidator.hpp>
    00157 #include <xercesc/framework/XMLPScanToken.hpp>
    00158
    00159 class ContentHandler ;
    00160 class DTDHandler;
    00161 class EntityResolver;
    00162 class ErrorHandler;
    00163 class InputSource;
    00164 class LexicalHandler;
    00165 class DeclHandler;
    00166 class XMLDocumentHandler;
    00167 class Grammar;
    00168
    00169 class  SAX2XMLReader
    00170 {
    00171 public:
    00172     // -----------------------------------------------------------------------
    00173     //  Class types
    00174     // -----------------------------------------------------------------------
    00177
    00185     enum ValSchemes
    00186     {
    00187         Val_Never
    00188         , Val_Always
    00189         , Val_Auto
    00190     };
    00192
    00193
    00194     // -----------------------------------------------------------------------
    00195     //  Constructors and Destructor
    00196     // -----------------------------------------------------------------------
    00199     /** The default constructor */
    00200     SAX2XMLReader()
    00201     {
    00202     }
    00204     virtual ~SAX2XMLReader()
    00205     {
    00206     }
    00208
    00209     //-----------------------------------------------------------------------
    00210     // The XMLReader interface
    00211     //-----------------------------------------------------------------------
    00214
    00220     virtual ContentHandler* getContentHandler() const = 0 ;
    00221
    00227     virtual DTDHandler* getDTDHandler() const = 0;
    00228
    00234     virtual EntityResolver* getEntityResolver() const = 0 ;
    00235
    00241     virtual ErrorHandler* getErrorHandler() const = 0 ;
    00242
    00250     virtual bool getFeature(const XMLCh* const name) const = 0;
    00251
    00271     virtual void* getProperty(const XMLCh* const name) const = 0 ;
    00272
    00289     virtual void setContentHandler(ContentHandler* const handler) = 0;
    00290
    00306     virtual void setDTDHandler(DTDHandler* const handler) = 0;
    00307
    00324     virtual void setEntityResolver(EntityResolver* const resolver) = 0;
    00325
    00343     virtual void setErrorHandler(ErrorHandler* const handler) = 0;
    00344
    00368     virtual void setFeature(const XMLCh* const name, const bool value) = 0;
    00369
    00393     virtual void setProperty(const XMLCh* const name, void* value) = 0 ;
    00394
    00420     virtual void parse
    00421     (
    00422         const   InputSource&    source
    00423     ) = 0;
    00424
    00444     virtual void parse
    00445     (
    00446         const   XMLCh* const    systemId
    00447     ) = 0;
    00448
    00468     virtual void parse
    00469     (
    00470         const   char* const     systemId
    00471     ) = 0;
    00472
    00474
    00475     // -----------------------------------------------------------------------
    00476     //  SAX 2.0-ext
    00477     // -----------------------------------------------------------------------
    00480
    00485     virtual DeclHandler* getDeclarationHandler() const = 0 ;
    00486
    00492     virtual LexicalHandler* getLexicalHandler() const = 0 ;
    00493
    00510     virtual void setDeclarationHandler(DeclHandler* const handler) = 0;
    00511
    00528     virtual void setLexicalHandler(LexicalHandler* const handler) = 0;
    00529
    00531
    00532     // -----------------------------------------------------------------------
    00533     //  Getter Methods
    00534     // -----------------------------------------------------------------------
    00537
    00547     virtual XMLValidator* getValidator() const = 0;
    00548
    00559     virtual int getErrorCount() const = 0 ;
    00560
    00574     virtual bool getExitOnFirstFatalError() const = 0;
    00575
    00590     virtual bool getValidationConstraintFatal() const = 0;
    00591
    00598     virtual Grammar* getGrammar(const XMLCh* const nameSpaceKey) = 0;
    00599
    00605     virtual Grammar* getRootGrammar() = 0;
    00606
    00613     virtual const XMLCh* getURIText(unsigned int uriId) = 0;
    00614
    00616
    00617     // -----------------------------------------------------------------------
    00618     //  Setter Methods
    00619     // -----------------------------------------------------------------------
    00622
    00631     virtual void setValidator(XMLValidator* valueToAdopt) = 0;
    00632
    00654     virtual void setExitOnFirstFatalError(const bool newState) = 0;
    00655
    00681     virtual void setValidationConstraintFatal(const bool newState) = 0;
    00683
    00684
    00685     // -----------------------------------------------------------------------
    00686     //  Progressive scan methods
    00687     // -----------------------------------------------------------------------
    00688
    00691
    00719     virtual bool parseFirst
    00720     (
    00721         const   XMLCh* const    systemId
    00722         ,       XMLPScanToken&  toFill
    00723     ) = 0;
    00724
    00752     virtual bool parseFirst
    00753     (
    00754         const   char* const     systemId
    00755         ,       XMLPScanToken&  toFill
    00756     ) = 0;
    00757
    00785     virtual bool parseFirst
    00786     (
    00787         const   InputSource&    source
    00788         ,       XMLPScanToken&  toFill
    00789     ) = 0;
    00790
    00815     virtual bool parseNext(XMLPScanToken& token) = 0;
    00816
    00838     virtual void parseReset(XMLPScanToken& token) = 0;
    00839
    00841
    00842     // -----------------------------------------------------------------------
    00843     //  Grammar preparsing interface
    00844     // -----------------------------------------------------------------------
    00845
    00848
    00875     virtual Grammar* loadGrammar(const InputSource& source,
    00876                                  const short grammarType,
    00877                                  const bool toCache = false) = 0;
    00878
    00904     virtual Grammar* loadGrammar(const XMLCh* const systemId,
    00905                                  const short grammarType,
    00906                                  const bool toCache = false) = 0;
    00907
    00932     virtual Grammar* loadGrammar(const char* const systemId,
    00933                                  const short grammarType,
    00934                                  const bool toCache = false) = 0;
    00935
    00939     virtual void resetCachedGrammarPool() = 0;
    00940
    00942
    00943
    00944     // -----------------------------------------------------------------------
    00945     //  Advanced document handler list maintenance methods
    00946     // -----------------------------------------------------------------------
    00947
    00950
    00963     virtual void installAdvDocHandler(XMLDocumentHandler* const toInstall) = 0;
    00964
    00974     virtual bool removeAdvDocHandler(XMLDocumentHandler* const toRemove) = 0;
    00976
    00977 private :
    00978     /* The copy constructor, you cannot call this directly */
    00979     SAX2XMLReader(const SAX2XMLReader&);
    00980
    00981     /* The assignment operator, you cannot call this directly */
    00982     void operator=(const SAX2XMLReader&);
    00983
    00984 };
    00985
    00986 #endif

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