00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 #if !defined(XercesDOMParser_HPP)
00023 #define XercesDOMParser_HPP
00024
00025
00026 #include <xercesc/parsers/AbstractDOMParser.hpp>
00027
00028 XERCES_CPP_NAMESPACE_BEGIN
00029
00030
00031 class EntityResolver;
00032 class ErrorHandler;
00033 class Grammar;
00034 class XMLEntityResolver;
00035 class XMLResourceIdentifier;
00036
00047 class XercesDOMParser : public AbstractDOMParser
00048 {
00049 public :
00050
00051
00052
00053
00071 XercesDOMParser
00072 (
00073 XMLValidator* const valToAdopt = 0
00074 , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
00075 , XMLGrammarPool* const gramPool = 0
00076 );
00077
00081 virtual ~XercesDOMParser();
00082
00084
00085
00086
00087
00088
00089
00092
00100 ErrorHandler* getErrorHandler();
00101
00109 const ErrorHandler* getErrorHandler() const;
00110
00118 EntityResolver* getEntityResolver();
00119
00127 const EntityResolver* getEntityResolver() const;
00128
00137 XMLEntityResolver* getXMLEntityResolver();
00138
00147 const XMLEntityResolver* getXMLEntityResolver() const;
00148
00159 bool isCachingGrammarFromParse() const;
00160
00171 bool isUsingCachedGrammarInParse() const;
00172
00179 Grammar* getGrammar(const XMLCh* const nameSpaceKey);
00180
00186 Grammar* getRootGrammar();
00187
00194 const XMLCh* getURIText(unsigned int uriId) const;
00195
00202 unsigned int getSrcOffset() const;
00203
00211 bool getIgnoreCachedDTD() const;
00212
00214
00215
00216
00217
00218
00219
00222
00236 void setErrorHandler(ErrorHandler* const handler);
00237
00254 void setEntityResolver(EntityResolver* const handler);
00255
00273 void setXMLEntityResolver(XMLEntityResolver* const handler);
00274
00292 void cacheGrammarFromParse(const bool newState);
00293
00312 void useCachedGrammarInParse(const bool newState);
00313
00328 void setIgnoreCachedDTD(const bool newValue);
00329
00331
00332
00333
00334
00335
00361 void resetDocumentPool();
00362
00364
00365
00366
00367
00368
00371
00396 virtual void error
00397 (
00398 const unsigned int errCode
00399 , const XMLCh* const msgDomain
00400 , const XMLErrorReporter::ErrTypes errType
00401 , const XMLCh* const errorText
00402 , const XMLCh* const systemId
00403 , const XMLCh* const publicId
00404 , const XMLSSize_t lineNum
00405 , const XMLSSize_t colNum
00406 );
00407
00416 virtual void resetErrors();
00418
00419
00420
00421
00422
00423
00426
00439 virtual void endInputSource(const InputSource& inputSource);
00440
00456 virtual bool expandSystemId
00457 (
00458 const XMLCh* const systemId
00459 , XMLBuffer& toFill
00460 );
00461
00470 virtual void resetEntities();
00471
00495 virtual InputSource* resolveEntity
00496 (
00497 const XMLCh* const publicId
00498 , const XMLCh* const systemId
00499 , const XMLCh* const baseURI = 0
00500 );
00501
00518 virtual InputSource* resolveEntity
00519 (
00520 XMLResourceIdentifier* resourceIdentifier
00521 );
00522
00535 virtual void startInputSource(const InputSource& inputSource);
00536
00538
00539
00540
00541
00542
00572 Grammar* loadGrammar(const InputSource& source,
00573 const short grammarType,
00574 const bool toCache = false);
00575
00601 Grammar* loadGrammar(const XMLCh* const systemId,
00602 const short grammarType,
00603 const bool toCache = false);
00604
00629 Grammar* loadGrammar(const char* const systemId,
00630 const short grammarType,
00631 const bool toCache = false);
00632
00636 void resetCachedGrammarPool();
00637
00639
00640
00641 private :
00642
00643
00644
00645 void resetParse();
00646
00647
00648
00649
00650 XercesDOMParser(const XercesDOMParser&);
00651 XercesDOMParser& operator=(const XercesDOMParser&);
00652
00653
00654
00655
00656
00657
00658
00659
00660
00661
00662 EntityResolver* fEntityResolver;
00663 XMLEntityResolver* fXMLEntityResolver;
00664 ErrorHandler* fErrorHandler;
00665 };
00666
00667
00668
00669
00670
00671
00672 inline void XercesDOMParser::endInputSource(const InputSource&)
00673 {
00674
00675 }
00676
00677 inline bool XercesDOMParser::expandSystemId(const XMLCh* const, XMLBuffer&)
00678 {
00679
00680 return false;
00681 }
00682
00683 inline void XercesDOMParser::resetEntities()
00684 {
00685
00686 }
00687
00688 inline void XercesDOMParser::startInputSource(const InputSource&)
00689 {
00690
00691 }
00692
00693
00694
00695
00696
00697 inline ErrorHandler* XercesDOMParser::getErrorHandler()
00698 {
00699 return fErrorHandler;
00700 }
00701
00702 inline const ErrorHandler* XercesDOMParser::getErrorHandler() const
00703 {
00704 return fErrorHandler;
00705 }
00706
00707 inline EntityResolver* XercesDOMParser::getEntityResolver()
00708 {
00709 return fEntityResolver;
00710 }
00711
00712 inline const EntityResolver* XercesDOMParser::getEntityResolver() const
00713 {
00714 return fEntityResolver;
00715 }
00716
00717 inline XMLEntityResolver* XercesDOMParser::getXMLEntityResolver()
00718 {
00719 return fXMLEntityResolver;
00720 }
00721
00722 inline const XMLEntityResolver* XercesDOMParser::getXMLEntityResolver() const
00723 {
00724 return fXMLEntityResolver;
00725 }
00726
00727 XERCES_CPP_NAMESPACE_END
00728
00729 #endif