ROOT logo
// @(#)root/xmlparser:$Id: TSAXParser.h 29654 2009-07-31 14:34:14Z rdm $
// 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

//////////////////////////////////////////////////////////////////////////
//                                                                      //
// TSAXParser                                                           //
//                                                                      //
// TSAXParser is a subclass of TXMLParser, it is a wraper class to      //
// libxml library.                                                      //
//                                                                      //
// SAX (Simple API for XML) is an event based interface, which doesn't  //
// maintain the DOM tree in memory, in other words, it's much more      //
// efficient for large document.                                        //
//                                                                      //
// TSAXParserCallback contains a number of callback routines to the     //
// parser in a xmlSAXHandler structure. The parser will then parse the  //
// document and call the appropriate callback when certain conditions   //
// occur.                                                               //
//                                                                      //
//////////////////////////////////////////////////////////////////////////


#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
 TSAXParser.h:61
 TSAXParser.h:62
 TSAXParser.h:63
 TSAXParser.h:64
 TSAXParser.h:65
 TSAXParser.h:66
 TSAXParser.h:67
 TSAXParser.h:68
 TSAXParser.h:69
 TSAXParser.h:70
 TSAXParser.h:71
 TSAXParser.h:72
 TSAXParser.h:73
 TSAXParser.h:74
 TSAXParser.h:75
 TSAXParser.h:76
 TSAXParser.h:77
 TSAXParser.h:78
 TSAXParser.h:79