Umasoft
 All Classes Files Functions Variables Typedefs Enumerations Enumerator Groups Pages
Public Member Functions | Related Functions | List of all members
XMLVisitor Class Reference

#include <easyxml.hpp>

Inheritance diagram for XMLVisitor:
AnimPathVisitor BioRegionVisitor ContentVisitor EnviroOptionsVisitor KMLVisitor LocationVisitor MaterialDescriptorArrayVisitor PathsVisitor PlantListVisitor StructureVisitor StructVisitorGML TagVisitor VisitorGU VisitorOSM VisitorRawXML

Public Member Functions

virtual ~XMLVisitor ()
 Virtual destructor.
 
virtual void startXML ()
 
virtual void endXML ()
 
virtual void startElement (const char *name, const XMLAttributes &atts)
 
virtual void endElement (const char *name)
 
virtual void data (const char *s, int length)
 
virtual void pi (const char *target, const char *data)
 
virtual void warning (const char *message, int line, int column)
 

Related Functions

(Note that these are not member functions.)

void readXML (istream &input, XMLVisitor &visitor, const string &path="", bool progress_callback(int)=NULL)
 
void readXML (const string &path, XMLVisitor &visitor, bool progress_callback(int)=NULL)
 

Detailed Description

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.

Member Function Documentation

virtual void XMLVisitor::data ( const char *  s,
int  length 
)
inlinevirtual

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.

Parameters
sA pointer to the beginning of the character data (not null).
lengthThe number of characters in the chunk (may be zero).

Reimplemented in KMLVisitor, VisitorOSM, StructVisitorGML, VisitorRawXML, VisitorGU, StructureVisitor, ContentVisitor, AnimPathVisitor, TagVisitor, LocationVisitor, EnviroOptionsVisitor, and PathsVisitor.

virtual void XMLVisitor::endElement ( const char *  name)
inlinevirtual

Callback for the end of an XML element.

The XML parser will invoke this method at the end of every XML element.

Parameters
nameThe name of the element that is ending (not null).
See Also
startElement

Reimplemented in KMLVisitor, VisitorOSM, StructVisitorGML, VisitorRawXML, VisitorGU, BioRegionVisitor, StructureVisitor, ContentVisitor, TParamsVisitor, AnimPathVisitor, PlantListVisitor, TagVisitor, LocationVisitor, EnviroOptionsVisitor, and PathsVisitor.

virtual void XMLVisitor::endXML ( )
inlinevirtual

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.

See Also
startXML
#error

Reimplemented in StructVisitorGML, StructureVisitor, ContentVisitor, AnimPathVisitor, MaterialDescriptorArrayVisitor, and LocationVisitor.

virtual void XMLVisitor::pi ( const char *  target,
const char *  data 
)
inlinevirtual

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.

Parameters
targetThe processing instruction target (not null).
dataThe processing instruction data (not null).
virtual void XMLVisitor::startElement ( const char *  name,
const XMLAttributes atts 
)
inlinevirtual

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.

Parameters
nameThe name of the element that is starting (not null).
attsThe element's attributes (not null).
See Also
endElement

Reimplemented in KMLVisitor, VisitorOSM, StructVisitorGML, VisitorRawXML, VisitorGU, BioRegionVisitor, StructureVisitor, ContentVisitor, TParamsVisitor, AnimPathVisitor, PlantListVisitor, MaterialDescriptorArrayVisitor, TagVisitor, LocationVisitor, EnviroOptionsVisitor, and PathsVisitor.

virtual void XMLVisitor::startXML ( )
inlinevirtual

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.

See Also
endXML

Reimplemented in StructVisitorGML, BioRegionVisitor, StructureVisitor, ContentVisitor, AnimPathVisitor, PlantListVisitor, MaterialDescriptorArrayVisitor, and LocationVisitor.

virtual void XMLVisitor::warning ( const char *  message,
int  line,
int  column 
)
inlinevirtual

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.

Parameters
messageThe warning message from the parser.
lineThe number of the line that generated the warning.
columnThe character position in the line that generated the warning.

Friends And Related Function Documentation

void readXML ( istream &  input,
XMLVisitor visitor,
const string &  path = "",
bool   progress_callbackint = NULL 
)
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.

Parameters
inputThe byte input stream containing the XML document.
visitorAn object that contains callbacks for XML parsing events.
pathA string describing the original path of the resource.
Exceptions
Throwsxh_io_exception or xh_xml_exception if there is a problem reading the file.
See Also
XMLVisitor
void readXML ( const string &  path,
XMLVisitor visitor,
bool   progress_callbackint = NULL 
)
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.

Parameters
pathThe file name of the XML resource, in UTF-8 encoding.
visitorAn object that contains callbacks for XML parsing events.
Exceptions
Throwsxh_io_exception or xh_xml_exception if there is a problem reading the file.
See Also
XMLVisitor

The documentation for this class was generated from the following file: