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 class EntityResolver;
00069 class ErrorHandler;
00070 class Grammar;
00071
00072
00083 class XercesDOMParser : public AbstractDOMParser
00084 {
00085 public :
00086
00087
00088
00089
00092
00101 XercesDOMParser(XMLValidator* const valToAdopt = 0);
00102
00106 virtual ~XercesDOMParser();
00107
00109
00110
00111
00112
00113
00114
00117
00125 ErrorHandler* getErrorHandler();
00126
00134 const ErrorHandler* getErrorHandler() const;
00135
00143 EntityResolver* getEntityResolver();
00144
00152 const EntityResolver* getEntityResolver() const;
00153
00164 bool isCachingGrammarFromParse() const;
00165
00176 bool isUsingCachedGrammarInParse() const;
00177
00184 Grammar* getGrammar(const XMLCh* const nameSpaceKey);
00185
00191 Grammar* getRootGrammar();
00192
00199 const XMLCh* getURIText(unsigned int uriId);
00200
00202
00203
00204
00205
00206
00207
00210
00224 void setErrorHandler(ErrorHandler* const handler);
00225
00241 void setEntityResolver(EntityResolver* const handler);
00242
00260 void cacheGrammarFromParse(const bool newState);
00261
00280 void useCachedGrammarInParse(const bool newState);
00281
00283
00284
00285
00286
00287
00290
00313 void resetDocumentPool();
00314
00316
00317
00318
00319
00320
00323
00348 virtual void error
00349 (
00350 const unsigned int errCode
00351 , const XMLCh* const msgDomain
00352 , const XMLErrorReporter::ErrTypes errType
00353 , const XMLCh* const errorText
00354 , const XMLCh* const systemId
00355 , const XMLCh* const publicId
00356 , const XMLSSize_t lineNum
00357 , const XMLSSize_t colNum
00358 );
00359
00368 virtual void resetErrors();
00370
00371
00372
00373
00374
00375
00378
00391 virtual void endInputSource(const InputSource& inputSource);
00392
00408 virtual bool expandSystemId
00409 (
00410 const XMLCh* const systemId
00411 , XMLBuffer& toFill
00412 );
00413
00422 virtual void resetEntities();
00423
00445 virtual InputSource* resolveEntity
00446 (
00447 const XMLCh* const publicId
00448 , const XMLCh* const systemId
00449 , const XMLCh* const baseURI = 0
00450 );
00451
00464 virtual void startInputSource(const InputSource& inputSource);
00465
00467
00468
00469
00470
00471
00474
00501 Grammar* loadGrammar(const InputSource& source,
00502 const short grammarType,
00503 const bool toCache = false);
00504
00530 Grammar* loadGrammar(const XMLCh* const systemId,
00531 const short grammarType,
00532 const bool toCache = false);
00533
00558 Grammar* loadGrammar(const char* const systemId,
00559 const short grammarType,
00560 const bool toCache = false);
00561
00565 void resetCachedGrammarPool();
00566
00568
00569
00570 private :
00571
00572
00573
00574
00575
00576
00577
00578
00579
00580 EntityResolver* fEntityResolver;
00581 ErrorHandler* fErrorHandler;
00582 };
00583
00584
00585
00586
00587
00588
00589 inline void XercesDOMParser::endInputSource(const InputSource&)
00590 {
00591
00592 }
00593
00594 inline bool XercesDOMParser::expandSystemId(const XMLCh* const, XMLBuffer&)
00595 {
00596
00597 return false;
00598 }
00599
00600 inline void XercesDOMParser::resetEntities()
00601 {
00602
00603 }
00604
00605 inline void XercesDOMParser::startInputSource(const InputSource&)
00606 {
00607
00608 }
00609
00610
00611
00612
00613
00614 inline ErrorHandler* XercesDOMParser::getErrorHandler()
00615 {
00616 return fErrorHandler;
00617 }
00618
00619 inline const ErrorHandler* XercesDOMParser::getErrorHandler() const
00620 {
00621 return fErrorHandler;
00622 }
00623
00624 inline EntityResolver* XercesDOMParser::getEntityResolver()
00625 {
00626 return fEntityResolver;
00627 }
00628
00629 inline const EntityResolver* XercesDOMParser::getEntityResolver() const
00630 {
00631 return fEntityResolver;
00632 }
00633
00634
00635 #endif