// Copyright (c) 2002 David Muse // See the COPYING file for more information. #ifndef RUDIMENTS_XMLSAX_H #define RUDIMENTS_XMLSAX_H #include <rudiments/private/xmlsaxincludes.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. #ifdef RUDIMENTS_NAMESPACE namespace rudiments { #endif class xmlsaxprivate; class xmlsax { 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. bool parseFile(const char *filename); // parse file "filename" bool parseString(const char *string); // parse string "string" const char *getError(); // if parseFile() or parseString() fails, // returns the error that caused the failure protected: // Callback methods. These methods are called as the XML is // parsed. virtual bool tagStart(const char *name); // Gets called when a start tag is parsed. virtual bool attributeName(const char *name); // Gets called when an attribute name // is parsed. virtual bool attributeValue(const char *value); // Gets called when an attribute value // is parsed. virtual bool text(const char *string); // Gets called when a block of text is parsed. virtual bool tagEnd(const char *name); // Gets called when an end tag is parsed. virtual bool comment(const char *string); // Gets called when a comment is parsed. virtual bool cdata(const char *string); // Gets called when cdata is parsed. #include <rudiments/private/xmlsax.h> }; #ifdef RUDIMENTS_NAMESPACE } #endif #endif