// @(#)root/xmlparser:$Id$ // Author: Jose Lo 12/4/2005 /************************************************************************* * Copyright (C) 1995-2005, Rene Brun and Fons Rademakers. * * All rights reserved. * * * * For the licensing terms see $ROOTSYS/LICENSE. * * For the list of contributors see $ROOTSYS/README/CREDITS. * *************************************************************************/ #ifndef ROOT_TXMLParser #define ROOT_TXMLParser #include "TQObject.h" #include "TObject.h" #include "TString.h" struct _xmlParserCtxt; class TXMLParser : public TObject, public TQObject { private: TXMLParser(const TXMLParser&) = delete; TXMLParser& operator=(const TXMLParser&) = delete; protected: _xmlParserCtxt *fContext; ///< Parse the xml file Bool_t fValidate; ///< To validate the parse context Bool_t fReplaceEntities; ///< Replace entities Bool_t fStopError; ///< Stop when parse error occurs TString fValidateError; ///< Parse error TString fValidateWarning; ///< Parse warning Int_t fParseCode; ///< To keep track of the errorcodes virtual void InitializeContext(); virtual void ReleaseUnderlying(); virtual void OnValidateError(const TString& message); virtual void OnValidateWarning(const TString& message); virtual void SetParseCode(Int_t code); public: TXMLParser(); ~TXMLParser() override; void SetValidate(Bool_t val = kTRUE); Bool_t GetValidate() const { return fValidate; } void SetReplaceEntities(Bool_t val = kTRUE); Bool_t GetReplaceEntities() const { return fReplaceEntities; } virtual Int_t ParseFile(const char *filename) = 0; virtual Int_t ParseBuffer(const char *contents, Int_t len) = 0; virtual void StopParser(); Int_t GetParseCode() const { return fParseCode; } const char *GetParseCodeMessage(Int_t parseCode) const; void SetStopOnError(Bool_t stop = kTRUE); Bool_t GetStopOnError() const { return fStopError; } const char *GetValidateError() const { return fValidateError; } const char *GetValidateWarning() const { return fValidateWarning; } ClassDefOverride(TXMLParser,0); // XML SAX parser }; #endif