Main Page   Modules   Class Hierarchy   Alphabetical List   Compound List   File List   Compound Members   File Members  

Fl_XmlParser.h

00001 #ifndef _FL_XMLPARSER_H_
00002 #define _FL_XMLPARSER_H_
00003 
00004 #include "Fl_Xml.h"
00005 #include "Fl_XmlHandler.h"
00006 #include "Fl_XmlTokenizer.h"
00007 
00008 class Fl_XmlNode;
00009 class Fl_XmlDoc;
00010 
00015 
00024 class Fl_XmlParser
00025 {
00026     friend class Fl_XmlTokenizer;
00027 
00028 public:
00037     static Fl_XmlDoc *create_dom(Fl_XmlTokenizer &tokenizer, Fl_XmlLocator *locator=0, bool html_mode=false);
00038     
00047     static Fl_XmlDoc *create_dom(const char *buffer, int buffer_len, Fl_XmlLocator *locator=0, bool html_mode=false);
00048     
00057     static Fl_XmlDoc *create_dom(FILE *fp, Fl_XmlLocator *locator=0, bool html_mode=false);
00058 
00068     static bool create_sax(Fl_XmlHandler &handler, Fl_XmlTokenizer &tokenizer, bool html_mode=false);
00069 
00080     static bool create_sax(Fl_XmlHandler &handler, const char *buffer, int buffer_len, bool html_mode=false);
00081 
00091     static bool create_sax(Fl_XmlHandler &handler, FILE *fp, bool html_mode=false);
00092 
00098     void handler(Fl_XmlHandler *handler) { m_eventhandler = handler; }
00099 
00103     Fl_XmlHandler *handler() const { return m_eventhandler; }
00104 
00105 protected:
00110     Fl_XmlParser(Fl_XmlTokenizer &tokenizer);
00111 
00113     bool parse_document(Fl_XmlDoc *doc);
00114 
00116     bool parse_doctype(Fl_XmlDocType *doc);
00117 
00119     bool parse_node(Fl_XmlDoc *doc, Fl_XmlNode *node);
00120 
00122     bool parse_attributes(Fl_XmlDoc *doc, Fl_XmlAttributes *attr);
00123 
00125     bool parse_comment(Fl_XmlNode *node);
00126 
00128     void html_mode(bool val) { m_html_mode = val; }
00130     bool html_mode() const { return m_html_mode; }
00131 
00132 private:
00133     // Stream tokenizer
00134     Fl_XmlTokenizer &tokenizer;    
00135     
00136     // Event handler pointer
00137     Fl_XmlHandler *m_eventhandler;
00138 
00139     //Needed Html mode parsing.
00140     bool m_html_mode;   
00141     bool tag_end;
00142     int force_ret;
00143     Fl_String last_block;
00144     Fl_String parent_name;
00145 };
00146 
00149 #endif

Generated on Thu Jul 31 15:33:46 2003 for eFLTK by doxygen1.2.15