00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00039
00040
00041
00042
00043
00044
00045
00046
00047
00048
00049
00050
00051
00052
00053
00054
00055
00056
00057
00058
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
00091
00092
00104 XercesDOMParser(XMLValidator* const valToAdopt = 0);
00105
00109 virtual ~XercesDOMParser();
00110
00112
00113
00114
00115
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
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
00296
00297
00323 void resetDocumentPool();
00324
00326
00327
00328
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
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
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
00583
00584
00585
00586
00587
00588
00589
00590 EntityResolver* fEntityResolver;
00591 ErrorHandler* fErrorHandler;
00592 };
00593
00594
00595
00596
00597
00598
00599 inline void XercesDOMParser::endInputSource(const InputSource&)
00600 {
00601
00602 }
00603
00604 inline bool XercesDOMParser::expandSystemId(const XMLCh* const, XMLBuffer&)
00605 {
00606
00607 return false;
00608 }
00609
00610 inline void XercesDOMParser::resetEntities()
00611 {
00612
00613 }
00614
00615 inline void XercesDOMParser::startInputSource(const InputSource&)
00616 {
00617
00618 }
00619
00620
00621
00622
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