// @(#)root/xmlparser:$Id$
// Author: Jose Lo   12/1/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_TSAXParser
#define ROOT_TSAXParser

#ifndef ROOT_TXMLParser
#include "TXMLParser.h"
#endif


class TList;
class TSAXParserCallback;
struct _xmlSAXHandler;


class TSAXParser : public TXMLParser {

friend class TSAXParserCallback;

private:
   _xmlSAXHandler         *fSAXHandler;  ///< libxml2 SAX handler

   virtual Int_t           Parse();

   TSAXParser(const TSAXParser&);             // Not implemented
   TSAXParser& operator=(const TSAXParser&);  // Not implemented

public:
   TSAXParser();
   virtual ~TSAXParser();

   virtual Int_t           ParseFile(const char *filename);
   virtual Int_t           ParseBuffer(const char *contents, Int_t len);

   virtual void            OnStartDocument();  //*SIGNAL*
   virtual void            OnEndDocument();  //*SIGNAL*
   virtual void            OnStartElement(const char *name, const TList *attr);  //*SIGNAL*
   virtual void            OnEndElement(const char *name);  //*SIGNAL*
   virtual void            OnCharacters(const char *characters);  //*SIGNAL*
   virtual void            OnComment(const char *text);  //*SIGNAL*
   virtual void            OnWarning(const char *text);  //*SIGNAL*
   virtual Int_t           OnError(const char *text);  //*SIGNAL*
   virtual Int_t           OnFatalError(const char *text);  //*SIGNAL*
   virtual void            OnCdataBlock(const char *text, Int_t len);  //*SIGNAL*

   virtual void            ConnectToHandler(const char *handlerName, void *handler);

   ClassDef(TSAXParser,0); // SAX Parser
};

#endif
 TSAXParser.h:1
 TSAXParser.h:2
 TSAXParser.h:3
 TSAXParser.h:4
 TSAXParser.h:5
 TSAXParser.h:6
 TSAXParser.h:7
 TSAXParser.h:8
 TSAXParser.h:9
 TSAXParser.h:10
 TSAXParser.h:11
 TSAXParser.h:12
 TSAXParser.h:13
 TSAXParser.h:14
 TSAXParser.h:15
 TSAXParser.h:16
 TSAXParser.h:17
 TSAXParser.h:18
 TSAXParser.h:19
 TSAXParser.h:20
 TSAXParser.h:21
 TSAXParser.h:22
 TSAXParser.h:23
 TSAXParser.h:24
 TSAXParser.h:25
 TSAXParser.h:26
 TSAXParser.h:27
 TSAXParser.h:28
 TSAXParser.h:29
 TSAXParser.h:30
 TSAXParser.h:31
 TSAXParser.h:32
 TSAXParser.h:33
 TSAXParser.h:34
 TSAXParser.h:35
 TSAXParser.h:36
 TSAXParser.h:37
 TSAXParser.h:38
 TSAXParser.h:39
 TSAXParser.h:40
 TSAXParser.h:41
 TSAXParser.h:42
 TSAXParser.h:43
 TSAXParser.h:44
 TSAXParser.h:45
 TSAXParser.h:46
 TSAXParser.h:47
 TSAXParser.h:48
 TSAXParser.h:49
 TSAXParser.h:50
 TSAXParser.h:51
 TSAXParser.h:52
 TSAXParser.h:53
 TSAXParser.h:54
 TSAXParser.h:55
 TSAXParser.h:56
 TSAXParser.h:57
 TSAXParser.h:58
 TSAXParser.h:59
 TSAXParser.h:60