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

Fl_XmlParser Class Reference
[eFLTK XML module]

The XML parser class. More...

#include <Fl_XmlParser.h>

List of all members.

Public Methods

void handler (Fl_XmlHandler *handler)
 Sets the SAX event handler. More...

Fl_XmlHandlerhandler () const
 Returns current SAX event handler, NULL if none specific.


Static Public Methods

Fl_XmlDoccreate_dom (Fl_XmlTokenizer &tokenizer, Fl_XmlLocator *locator=0, bool html_mode=false)
 Parse new XML/HTML document from stream. More...

Fl_XmlDoccreate_dom (const char *buffer, int buffer_len, Fl_XmlLocator *locator=0, bool html_mode=false)
 Parse new XML/HTML document from stream. More...

Fl_XmlDoccreate_dom (FILE *fp, Fl_XmlLocator *locator=0, bool html_mode=false)
 Parse new XML/HTML document from stream. More...

bool create_sax (Fl_XmlHandler &handler, Fl_XmlTokenizer &tokenizer, bool html_mode=false)
 Parse XML/HTML document in SAX mode. More...

bool create_sax (Fl_XmlHandler &handler, const char *buffer, int buffer_len, bool html_mode=false)
 Parse XML/HTML document in SAX mode. More...

bool create_sax (Fl_XmlHandler &handler, FILE *fp, bool html_mode=false)
 Parse XML/HTML document in SAX mode. More...


Protected Methods

 Fl_XmlParser (Fl_XmlTokenizer &tokenizer)
 Create new parser. More...

bool parse_document (Fl_XmlDoc *doc)
 Parse subnodes until end-of-stream.

bool parse_doctype (Fl_XmlDocType *doc)
 Parse doctype declaration.

bool parse_node (Fl_XmlDoc *doc, Fl_XmlNode *node)
 Parse a node and its subnodes.

bool parse_attributes (Fl_XmlDoc *doc, Fl_XmlAttributes *attr)
 Parse an XML node attributes to attr.

bool parse_comment (Fl_XmlNode *node)
 Parse a comment ().

void html_mode (bool val)
 Turn HTML mode on/off.

bool html_mode () const
 Return current mode of parser.


Friends

class Fl_XmlTokenizer


Detailed Description

The XML parser class.

The parser is non-validating parser. It cannot handle external DTD's at all. Internal DTD's are partially handled, i.e. custom entities are parsed, though parameter entities are not supported. Parser expands entitied during parsing, so entity reference nodes are not supported either. I.e. cdata/attributes stored to node or send to SAX handler, are already expanded.

Definition at line 24 of file Fl_XmlParser.h.


Constructor & Destructor Documentation

Fl_XmlParser::Fl_XmlParser Fl_XmlTokenizer   tokenizer [protected]
 

Create new parser.

Parameters:
tokenizer  is used as stream tokenizer.


Member Function Documentation

Fl_XmlDoc* Fl_XmlParser::create_dom FILE *    fp,
Fl_XmlLocator   locator = 0,
bool    html_mode = false
[static]
 

Parse new XML/HTML document from stream.

throws Fl_XmlException on error and returns NULL. Caller is supposed to free returned Fl_XmlDoc with 'delete' operator. You can set own tokenizer, e.g. which reads data from net.

Parameters:
fp, FILE  * to parse. fp MUST be opened and closed by caller.
locator  for tokenizer. If error occurs, you can get position from here.
html_mode, document  is parsed in HTML mode, for XML this should be always false.

Fl_XmlDoc* Fl_XmlParser::create_dom const char *    buffer,
int    buffer_len,
Fl_XmlLocator   locator = 0,
bool    html_mode = false
[static]
 

Parse new XML/HTML document from stream.

throws Fl_XmlException on error and returns NULL. Caller is supposed to free returned Fl_XmlDoc with 'delete' operator.

Parameters:
buffer, pointer  to data for parse.
buffer_len, length  of data on buffer
locator  for tokenizer. If error occurs, you can get position from here.
html_mode, document  is parsed in HTML mode, for XML this should be always false.

Fl_XmlDoc* Fl_XmlParser::create_dom Fl_XmlTokenizer   tokenizer,
Fl_XmlLocator   locator = 0,
bool    html_mode = false
[static]
 

Parse new XML/HTML document from stream.

throws Fl_XmlException on error and returns NULL. Caller is supposed to free returned Fl_XmlDoc with 'delete' operator. You can set own tokenizer, e.g. which reads data from net.

Parameters:
tokenizer, stream  for document data to parse.
locator  for tokenizer. If error occurs, you can get position from here.
html_mode, document  is parsed in HTML mode, for XML this should be always false.

bool Fl_XmlParser::create_sax Fl_XmlHandler   handler,
FILE *    fp,
bool    html_mode = false
[static]
 

Parse XML/HTML document in SAX mode.

This is good for large XML documents, where keeping nodes in memory would take too much memory. While parsing document, handler methods are called.

Parameters:
handler, SAX  handler to use catch events.
fp, FILE  * to parse. fp MUST be opened and closed by caller.
html_mode, document  is parsed in HTML mode, for XML this should be always false.
See also:
Fl_XmlHandler

bool Fl_XmlParser::create_sax Fl_XmlHandler   handler,
const char *    buffer,
int    buffer_len,
bool    html_mode = false
[static]
 

Parse XML/HTML document in SAX mode.

This is good for large XML documents, where keeping nodes in memory would take too much memory. While parsing document, handler methods are called.

Parameters:
handler, SAX  handler to use catch events.
buffer, pointer  to data for parse.
buffer_len, length  of data on buffer
html_mode, document  is parsed in HTML mode, for XML this should be always false.
See also:
Fl_XmlHandler

bool Fl_XmlParser::create_sax Fl_XmlHandler   handler,
Fl_XmlTokenizer   tokenizer,
bool    html_mode = false
[static]
 

Parse XML/HTML document in SAX mode.

This is good for large XML documents, where keeping nodes in memory would take too much memory. While parsing document, handler methods are called.

Parameters:
handler, SAX  handler to use catch events.
tokenizer, stream  for document data to parse.
html_mode, document  is parsed in HTML mode, for XML this should be always false.
See also:
Fl_XmlHandler

void Fl_XmlParser::handler Fl_XmlHandler   handler [inline]
 

Sets the SAX event handler.

If handler is NULL, SAX events are ignored and nodes are stored to DOM tree.

Parameters:
handler, event  handler to set

Definition at line 98 of file Fl_XmlParser.h.


The documentation for this class was generated from the following file:
Generated on Thu Jul 31 15:33:58 2003 for eFLTK by doxygen1.2.15