Visitor class for an XML document. More...
#include <easyxml.hxx>
Inherited by MyVisitor, PropsVisitor, and simgear::XMLStaticParser< Element >.
Public Member Functions | |
virtual | ~XMLVisitor () |
Virtual destructor. | |
virtual void | startXML () |
Callback for the start of an XML document. | |
virtual void | endXML () |
Callback for the end of an XML document. | |
virtual void | startElement (const char *name, const XMLAttributes &atts) |
Callback for the start of an XML element. | |
virtual void | endElement (const char *name) |
Callback for the end of an XML element. | |
virtual void | data (const char *s, int length) |
Callback for a chunk of character data. | |
virtual void | pi (const char *target, const char *data) |
Callback for an XML processing instruction. | |
virtual void | warning (const char *message, int line, int column) |
Callback for an XML parsing warning. | |
Related Functions | |
(Note that these are not member functions.) | |
void | readXML (istream &input, XMLVisitor &visitor, const string &path="") |
void | readXML (const string &path, XMLVisitor &visitor) |
void | readXML (const char *buf, const int size, XMLVisitor &visitor) |
Visitor class for an XML document.
This interface uses the Visitor pattern. The XML parser walks through the XML document and invokes the appropriate method in this visitor for each piece of markup it finds. By default, the methods do nothing; the application must subclass the visitor and override the methods for the events it's interested in. All applications are required to provide an implementation for the error callback.
Definition at line 238 of file easyxml.hxx.
virtual void XMLVisitor::data | ( | const char * | s, | |
int | length | |||
) | [inline, virtual] |
Callback for a chunk of character data.
The XML parser will invoke this method once for every chunk of character data in the XML document, including whitespace separating elements (as required by the XML recommendation). Note that character data may be chunked arbitrarily: the character data content of an element may be returned in one large chunk or several consecutive smaller chunks.
s | A pointer to the beginning of the character data (not null). | |
length | The number of characters in the chunk (may be zero). |
Definition at line 324 of file easyxml.hxx.
virtual void XMLVisitor::endElement | ( | const char * | name | ) | [inline, virtual] |
Callback for the end of an XML element.
The XML parser will invoke this method at the end of every XML element.
name | The name of the element that is ending (not null). |
Definition at line 307 of file easyxml.hxx.
virtual void XMLVisitor::endXML | ( | ) | [inline, virtual] |
Callback for the end of an XML document.
The XML parser will invoke this method once, at the end of the XML document, after all other methods are invoked, and only if there have been no parsing errors. The application can use this callback to close or write files, finalize data structures, and so on, but the application will need to be prepared to clean up any resources without this callback in the event of an error.
Definition at line 275 of file easyxml.hxx.
virtual void XMLVisitor::pi | ( | const char * | target, | |
const char * | data | |||
) | [inline, virtual] |
Callback for an XML processing instruction.
The XML parser will invoke this method once for every processing instruction in the XML document. Note that the XML declaration and the Text declaration are NOT PROCESSING INSTRUCTIONS and will not be reported through this callback. Processing instructions are not all that useful, but the XML recommendation requires that they be reported. Most applications can safely ignore this callback and use the empty default implementation.
target | The processing instruction target (not null). | |
data | The processing instruction data (not null). |
Definition at line 341 of file easyxml.hxx.
virtual void XMLVisitor::startElement | ( | const char * | name, | |
const XMLAttributes & | atts | |||
) | [inline, virtual] |
Callback for the start of an XML element.
The XML parser will invoke this method at the beginning of every XML element. Start and end element calls will be balanced and properly nested: every element has both a start and end callback (even if it was specified with an XML empty element tag), there is exactly one root element, and every element must end before its parent does. Elements may not overlap. Note that the attribute list provided is volatile; it's contents are not guaranteed to persist after the end of the callback. If the application needs to keep a copy of the attribute list, it can make the copy with the XMLAttributesDefault class.
name | The name of the element that is starting (not null). | |
atts | The element's attributes (not null). |
Definition at line 296 of file easyxml.hxx.
virtual void XMLVisitor::startXML | ( | ) | [inline, virtual] |
Callback for the start of an XML document.
The XML parser will invoke this method once, at the beginning of the XML document, before any other methods are invoked. The application can use this callback to set up data structures, open files, etc.
Definition at line 258 of file easyxml.hxx.
virtual void XMLVisitor::warning | ( | const char * | message, | |
int | line, | |||
int | column | |||
) | [inline, virtual] |
Callback for an XML parsing warning.
The XML parser will use this callback to report any non-fatal warnings during parsing. It is the responsibility of the application to deal with the warning in some appropriate way.
message | The warning message from the parser. | |
line | The number of the line that generated the warning. | |
column | The character position in the line that generated the warning. |
Definition at line 356 of file easyxml.hxx.
void readXML | ( | const char * | buf, | |
const int | size, | |||
XMLVisitor & | visitor | |||
) | [related] |
Read an XML document.
This function reads an XML document from the buffer provided, and invokes the callback methods in the visitor object to pass the parsing events back to the application. When this function returns, the parser will have reported all of the data in the XML document to the application through the visitor callback methods, and XML processing will be complete.
buf | The xml data buffer. | |
size | The size of the data buffer in bytes | |
visitor | An object that contains callbacks for XML parsing events. |
Throws | sg_io_exception or sg_xml_exception if there is a problem reading the file. |
void readXML | ( | const string & | path, | |
XMLVisitor & | visitor | |||
) | [related] |
Read an XML document.
This function reads an XML document from the input stream provided, and invokes the callback methods in the visitor object to pass the parsing events back to the application. When this function returns, the parser will have reported all of the data in the XML document to the application through the visitor callback methods, and XML processing will be complete.
path | The file name of the XML resource. | |
visitor | An object that contains callbacks for XML parsing events. |
Throws | sg_io_exception or sg_xml_exception if there is a problem reading the file. |
void readXML | ( | istream & | input, | |
XMLVisitor & | visitor, | |||
const string & | path = "" | |||
) | [related] |
Read an XML document.
This function reads an XML document from the input stream provided, and invokes the callback methods in the visitor object to pass the parsing events back to the application. When this function returns, the parser will have reported all of the data in the XML document to the application through the visitor callback methods, and XML processing will be complete.
input | The byte input stream containing the XML document. | |
visitor | An object that contains callbacks for XML parsing events. | |
path | A string describing the original path of the resource. |
Throws | sg_io_exception or sg_xml_exception if there is a problem reading the file. |