Google

logo top
Main Page   Widgets   Namespaces   Book  

Glib::Markup::Parser Class Reference
[Simple XML Subset Parser]

The abstract markup parser base class. More...

Inheritance diagram for Glib::Markup::Parser:

Inheritance graph
[legend]
List of all members.

Public Types

typedef std::map< Glib::ustring,
Glib::ustring, Glib::Markup::AttributeKeyLess
AttributeMap

Public Methods

virtual ~Parser ()=0

Protected Methods

 Parser ()
 Constructs a Parser object.

virtual void on_start_element (ParseContext& context, const Glib::ustring& element_name, const AttributeMap& attributes)
 Called for open tags <foo bar="baz">.

virtual void on_end_element (ParseContext& context, const Glib::ustring& element_name)
 Called for close tags </foo>.

virtual void on_text (ParseContext& context, const Glib::ustring& text)
 Called for character data.

virtual void on_passthrough (ParseContext& context, const Glib::ustring& passthrough_text)
 Called for strings that should be re-saved verbatim in this same position, but are not otherwise interpretable.

virtual void on_error (ParseContext& context, const MarkupError& error)
 Called on error, including one thrown by an overridden virtual method.


Detailed Description

The abstract markup parser base class.

To implement a parser for your markup format, derive from Glib::Markup::Parser and implement the virtual methods.

You don't have to override all of the virtual methods. If a particular method is not implement the data passed to it will be ignored. Except for the error method, any of these callbacks can throw an error exception; in particular the MarkupError::UNKNOWN_ELEMENT, MarkupError::UNKNOWN_ATTRIBUTE, and MarkupError::INVALID_CONTENT errors are intended to be thrown from these overridden methods. If you throw an error from a method, Glib::Markup::ParseContext::parse() will report that error back to its caller.


Member Typedef Documentation

typedef std::map<Glib::ustring, Glib::ustring, Glib::Markup::AttributeKeyLess> Glib::Markup::Parser::AttributeMap
 


Constructor & Destructor Documentation

virtual Glib::Markup::Parser::~Parser (   [pure virtual]
 

Glib::Markup::Parser::Parser (   [protected]
 

Constructs a Parser object.

Note that Markup::Parser is an abstract class which can't be instantiated directly. To implement the parser for your markup format, derive from Markup::Parser and implement the virtual methods.


Member Function Documentation

virtual void Glib::Markup::Parser::on_end_element ( ParseContext   context,
const Glib::ustring   element_name
[protected, virtual]
 

Called for close tags </foo>.

This virtual method is invoked when the closing tag of an element is seen.

Parameters:
context The Markup::ParseContext object the parsed data belongs to.
element_name The name of the element.
Exceptions:
Glib::MarkupError An exception you should throw if something went wrong, for instance if an unknown attribute name was encountered. In particular the MarkupError::UNKNOWN_ELEMENT, MarkupError::UNKNOWN_ATTRIBUTE, and MarkupError::INVALID_CONTENT errors are intended to be thrown from user-implemented methods.

virtual void Glib::Markup::Parser::on_error ( ParseContext   context,
const MarkupError   error
[protected, virtual]
 

Called on error, including one thrown by an overridden virtual method.

Parameters:
context The Markup::ParseContext object the parsed data belongs to.
error A MarkupError object with detailed information about the error.

virtual void Glib::Markup::Parser::on_passthrough ( ParseContext   context,
const Glib::ustring   passthrough_text
[protected, virtual]
 

Called for strings that should be re-saved verbatim in this same position, but are not otherwise interpretable.

This virtual method is invoked for comments, processing instructions and doctype declarations; if you're re-writing the parsed document, write the passthrough text back out in the same position.

Parameters:
context The Markup::ParseContext object the parsed data belongs to.
passthrough_text The text that should be passed through.
Exceptions:
Glib::MarkupError An exception you should throw if something went wrong, for instance if an unknown attribute name was encountered. In particular the MarkupError::UNKNOWN_ELEMENT, MarkupError::UNKNOWN_ATTRIBUTE, and MarkupError::INVALID_CONTENT errors are intended to be thrown from user-implemented methods.

virtual void Glib::Markup::Parser::on_start_element ( ParseContext   context,
const Glib::ustring   element_name,
const AttributeMap   attributes
[protected, virtual]
 

Called for open tags <foo bar="baz">.

This virtual method is invoked when the opening tag of an element is seen.

Parameters:
context The Markup::ParseContext object the parsed data belongs to.
element_name The name of the element.
attributes A map of attribute name/value pairs.
Exceptions:
Glib::MarkupError An exception you should throw if something went wrong, for instance if an unknown attribute name was encountered. In particular the MarkupError::UNKNOWN_ELEMENT, MarkupError::UNKNOWN_ATTRIBUTE, and MarkupError::INVALID_CONTENT errors are intended to be thrown from user-implemented methods.

virtual void Glib::Markup::Parser::on_text ( ParseContext   context,
const Glib::ustring   text
[protected, virtual]
 

Called for character data.

This virtual method is invoked when some text is seen (text is always inside an element).

Parameters:
context The Markup::ParseContext object the parsed data belongs to.
text The parsed text in UTF-8 encoding.
Exceptions:
Glib::MarkupError An exception you should throw if something went wrong, for instance if an unknown attribute name was encountered. In particular the MarkupError::UNKNOWN_ELEMENT, MarkupError::UNKNOWN_ATTRIBUTE, and MarkupError::INVALID_CONTENT errors are intended to be thrown from user-implemented methods.


The documentation for this class was generated from the following file:
Generated for gtkmm by Doxygen 1.3-rc1 © 1997-2001