00001 
00002 
00003 
00004 
00005 
00006 
00007 
00008 
00009 
00010 
00011 
00012 
00013 
00014 
00015 
00016 
00017 
00018 
00019 
00020 
00021 #ifndef SAX2XMLReader_HPP
00022 #define SAX2XMLReader_HPP
00023 
00024 #include <xercesc/util/XercesDefs.hpp>
00025 #include <xercesc/util/XMLUniDefs.hpp>
00026 #include <xercesc/framework/XMLValidator.hpp>
00027 #include <xercesc/framework/XMLPScanToken.hpp>
00028 
00029 XERCES_CPP_NAMESPACE_BEGIN
00030 
00031 class ContentHandler ;
00032 class DTDHandler;
00033 class EntityResolver;
00034 class ErrorHandler;
00035 class InputSource;
00036 class LexicalHandler;
00037 class DeclHandler;
00038 class XMLDocumentHandler;
00039 class Grammar;
00040 
00041 class  SAX2XMLReader
00042 {
00043 public:
00044     
00045     
00046     
00049 
00057     enum ValSchemes
00058     {
00059         Val_Never
00060         , Val_Always
00061         , Val_Auto
00062     };
00064 
00065 
00066     
00067     
00068     
00072     SAX2XMLReader()
00073     {
00074     }
00076     virtual ~SAX2XMLReader()
00077     {
00078     }
00080 
00081     
00082     
00083     
00086 
00092     virtual ContentHandler* getContentHandler() const = 0 ;
00093 
00099     virtual DTDHandler* getDTDHandler() const = 0;
00100 
00106     virtual EntityResolver* getEntityResolver() const = 0 ;
00107 
00113     virtual ErrorHandler* getErrorHandler() const = 0 ;
00114 
00122     virtual bool getFeature(const XMLCh* const name) const = 0;
00123 
00143     virtual void* getProperty(const XMLCh* const name) const = 0 ;
00144 
00161     virtual void setContentHandler(ContentHandler* const handler) = 0;
00162 
00178     virtual void setDTDHandler(DTDHandler* const handler) = 0;
00179 
00196     virtual void setEntityResolver(EntityResolver* const resolver) = 0;
00197 
00215     virtual void setErrorHandler(ErrorHandler* const handler) = 0;
00216 
00240     virtual void setFeature(const XMLCh* const name, const bool value) = 0;
00241 
00265     virtual void setProperty(const XMLCh* const name, void* value) = 0 ;
00266 
00292     virtual void parse
00293     (
00294         const   InputSource&    source
00295     ) = 0;
00296 
00316     virtual void parse
00317     (
00318         const   XMLCh* const    systemId
00319     ) = 0;
00320 
00340     virtual void parse
00341     (
00342         const   char* const     systemId
00343     ) = 0;
00344     
00346 
00347     
00348     
00349     
00357     virtual DeclHandler* getDeclarationHandler() const = 0 ;
00358 
00364     virtual LexicalHandler* getLexicalHandler() const = 0 ;
00365 
00382     virtual void setDeclarationHandler(DeclHandler* const handler) = 0;
00383 
00400     virtual void setLexicalHandler(LexicalHandler* const handler) = 0;
00401 
00403 
00404     
00405     
00406     
00419     virtual XMLValidator* getValidator() const = 0;
00420 
00431     virtual int getErrorCount() const = 0 ;
00432 
00446     virtual bool getExitOnFirstFatalError() const = 0;
00447 
00462     virtual bool getValidationConstraintFatal() const = 0;
00463 
00470     virtual Grammar* getGrammar(const XMLCh* const nameSpaceKey) = 0;
00471 
00477     virtual Grammar* getRootGrammar() = 0;
00478 
00485     virtual const XMLCh* getURIText(unsigned int uriId) const = 0;
00486 
00493     virtual unsigned int getSrcOffset() const = 0;
00494 
00496 
00497     
00498     
00499     
00511     virtual void setValidator(XMLValidator* valueToAdopt) = 0;
00512 
00534     virtual void setExitOnFirstFatalError(const bool newState) = 0;
00535 
00561     virtual void setValidationConstraintFatal(const bool newState) = 0;
00563 
00564 
00565     
00566     
00567     
00568 
00571 
00599     virtual bool parseFirst
00600     (
00601         const   XMLCh* const    systemId
00602         ,       XMLPScanToken&  toFill
00603     ) = 0;
00604 
00632     virtual bool parseFirst
00633     (
00634         const   char* const     systemId
00635         ,       XMLPScanToken&  toFill
00636     ) = 0;
00637 
00665     virtual bool parseFirst
00666     (
00667         const   InputSource&    source
00668         ,       XMLPScanToken&  toFill
00669     ) = 0;
00670 
00695     virtual bool parseNext(XMLPScanToken& token) = 0;
00696 
00718     virtual void parseReset(XMLPScanToken& token) = 0;
00719 
00721 
00722     
00723     
00724     
00725 
00755     virtual Grammar* loadGrammar(const InputSource& source,
00756                                  const short grammarType,
00757                                  const bool toCache = false) = 0;
00758 
00784     virtual Grammar* loadGrammar(const XMLCh* const systemId,
00785                                  const short grammarType,
00786                                  const bool toCache = false) = 0;
00787 
00812     virtual Grammar* loadGrammar(const char* const systemId,
00813                                  const short grammarType,
00814                                  const bool toCache = false) = 0;
00815 
00819     virtual void resetCachedGrammarPool() = 0;
00820 
00831     virtual void setInputBufferSize(const size_t bufferSize);
00832 
00834 
00835 
00836     
00837     
00838     
00839 
00855     virtual void installAdvDocHandler(XMLDocumentHandler* const toInstall) = 0;
00856 
00866     virtual bool removeAdvDocHandler(XMLDocumentHandler* const toRemove) = 0;
00868 
00869 private :
00870     
00871     SAX2XMLReader(const SAX2XMLReader&);
00872 
00873     
00874     SAX2XMLReader& operator=(const SAX2XMLReader&);
00875 
00876 };
00877 
00878 inline void SAX2XMLReader::setInputBufferSize(const size_t ) 
00879 {
00880 }
00881 
00882 XERCES_CPP_NAMESPACE_END
00883 
00884 #endif