00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023 #if !defined(XercesDOMParser_HPP)
00024 #define XercesDOMParser_HPP
00025
00026
00027 #include <xercesc/parsers/AbstractDOMParser.hpp>
00028
00029 XERCES_CPP_NAMESPACE_BEGIN
00030
00031
00032 class EntityResolver;
00033 class ErrorHandler;
00034 class Grammar;
00035 class XMLEntityResolver;
00036 class XMLResourceIdentifier;
00037
00048 class XercesDOMParser : public AbstractDOMParser
00049 {
00050 public :
00051
00052
00053
00054
00072 XercesDOMParser
00073 (
00074 XMLValidator* const valToAdopt = 0
00075 , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
00076 , XMLGrammarPool* const gramPool = 0
00077 );
00078
00082 virtual ~XercesDOMParser();
00083
00085
00086
00087
00088
00089
00090
00093
00101 ErrorHandler* getErrorHandler();
00102
00110 const ErrorHandler* getErrorHandler() const;
00111
00119 EntityResolver* getEntityResolver();
00120
00128 const EntityResolver* getEntityResolver() const;
00129
00138 XMLEntityResolver* getXMLEntityResolver();
00139
00148 const XMLEntityResolver* getXMLEntityResolver() const;
00149
00160 bool isCachingGrammarFromParse() const;
00161
00172 bool isUsingCachedGrammarInParse() const;
00173
00180 Grammar* getGrammar(const XMLCh* const nameSpaceKey);
00181
00187 Grammar* getRootGrammar();
00188
00195 const XMLCh* getURIText(unsigned int uriId) const;
00196
00203 unsigned int getSrcOffset() const;
00204
00212 bool getIgnoreCachedDTD() const;
00213
00215
00216
00217
00218
00219
00220
00223
00237 void setErrorHandler(ErrorHandler* const handler);
00238
00255 void setEntityResolver(EntityResolver* const handler);
00256
00274 void setXMLEntityResolver(XMLEntityResolver* const handler);
00275
00293 void cacheGrammarFromParse(const bool newState);
00294
00313 void useCachedGrammarInParse(const bool newState);
00314
00329 void setIgnoreCachedDTD(const bool newValue);
00330
00332
00333
00334
00335
00336
00362 void resetDocumentPool();
00363
00365
00366
00367
00368
00369
00372
00397 virtual void error
00398 (
00399 const unsigned int errCode
00400 , const XMLCh* const msgDomain
00401 , const XMLErrorReporter::ErrTypes errType
00402 , const XMLCh* const errorText
00403 , const XMLCh* const systemId
00404 , const XMLCh* const publicId
00405 , const XMLSSize_t lineNum
00406 , const XMLSSize_t colNum
00407 );
00408
00417 virtual void resetErrors();
00419
00420
00421
00422
00423
00424
00427
00440 virtual void endInputSource(const InputSource& inputSource);
00441
00457 virtual bool expandSystemId
00458 (
00459 const XMLCh* const systemId
00460 , XMLBuffer& toFill
00461 );
00462
00471 virtual void resetEntities();
00472
00496 virtual InputSource* resolveEntity
00497 (
00498 const XMLCh* const publicId
00499 , const XMLCh* const systemId
00500 , const XMLCh* const baseURI = 0
00501 );
00502
00519 virtual InputSource* resolveEntity
00520 (
00521 XMLResourceIdentifier* resourceIdentifier
00522 );
00523
00536 virtual void startInputSource(const InputSource& inputSource);
00537
00539
00540
00541
00542
00543
00573 Grammar* loadGrammar(const InputSource& source,
00574 const short grammarType,
00575 const bool toCache = false);
00576
00602 Grammar* loadGrammar(const XMLCh* const systemId,
00603 const short grammarType,
00604 const bool toCache = false);
00605
00630 Grammar* loadGrammar(const char* const systemId,
00631 const short grammarType,
00632 const bool toCache = false);
00633
00637 void resetCachedGrammarPool();
00638
00640
00641
00642 private :
00643
00644
00645
00646 void resetParse();
00647
00648
00649
00650
00651 XercesDOMParser(const XercesDOMParser&);
00652 XercesDOMParser& operator=(const XercesDOMParser&);
00653
00654
00655
00656
00657
00658
00659
00660
00661
00662
00663 EntityResolver* fEntityResolver;
00664 XMLEntityResolver* fXMLEntityResolver;
00665 ErrorHandler* fErrorHandler;
00666 };
00667
00668
00669
00670
00671
00672
00673 inline void XercesDOMParser::endInputSource(const InputSource&)
00674 {
00675
00676 }
00677
00678 inline bool XercesDOMParser::expandSystemId(const XMLCh* const, XMLBuffer&)
00679 {
00680
00681 return false;
00682 }
00683
00684 inline void XercesDOMParser::resetEntities()
00685 {
00686
00687 }
00688
00689 inline void XercesDOMParser::startInputSource(const InputSource&)
00690 {
00691
00692 }
00693
00694
00695
00696
00697
00698 inline ErrorHandler* XercesDOMParser::getErrorHandler()
00699 {
00700 return fErrorHandler;
00701 }
00702
00703 inline const ErrorHandler* XercesDOMParser::getErrorHandler() const
00704 {
00705 return fErrorHandler;
00706 }
00707
00708 inline EntityResolver* XercesDOMParser::getEntityResolver()
00709 {
00710 return fEntityResolver;
00711 }
00712
00713 inline const EntityResolver* XercesDOMParser::getEntityResolver() const
00714 {
00715 return fEntityResolver;
00716 }
00717
00718 inline XMLEntityResolver* XercesDOMParser::getXMLEntityResolver()
00719 {
00720 return fXMLEntityResolver;
00721 }
00722
00723 inline const XMLEntityResolver* XercesDOMParser::getXMLEntityResolver() const
00724 {
00725 return fXMLEntityResolver;
00726 }
00727
00728 XERCES_CPP_NAMESPACE_END
00729
00730 #endif