// Copyright (c) 2002 David Muse
// See the COPYING file for more information.
#ifndef RUDIMENTS_XMLSAX_H
#define RUDIMENTS_XMLSAX_H
#include <rudiments/errorhandler.h>
#include <rudiments/stringbuffer.h>
#include <rudiments/file.h>
// The xmlsax class is a base class for an XML SAX parser. To use this
// class, you should create a class that inherits from it and implements the
// virtual methods.
class xmlsax : public errorhandler {
public:
xmlsax();
virtual ~xmlsax();
// When these methods are run, they parse the XML. As these
// methods encounter tags, attributes, text, etc., they call
// the callback methods below.
int parseFile(const char *filename);
// parse file "filename"
int parseString(const char *string);
// parse string "string"
protected:
// Callback methods. These methods are called as the XML is
// parsed.
virtual int tagStart(char *name);
// Gets called when a start tag is parsed.
virtual int attributeName(char *name);
// Gets called when an attribute name
// is parsed.
virtual int attributeValue(char *value);
// Gets called when an attribute value
// is parsed.
virtual int text(char *string);
// Gets called when a block of text is parsed.
virtual int tagEnd(char *name);
// Gets called when an end tag is parsed.
virtual int comment(char *string);
// Gets called when a comment is parsed.
virtual int cdata(char *string);
// Gets called when cdata is parsed.
#include <rudiments/private/xmlsax.h>
};
#ifdef ENABLE_RUDIMENTS_INLINES
#include <rudiments/private/xmlsaxinlines.h>
#endif
#endif