Class XMLDeclaration

Inheritance Relationships

Base Type

Class Documentation

class XMLDeclaration : public tinyxml2::XMLNode

In correct XML the declaration is the first entry in the file.

    <?xml version="1.0" standalone="yes"?>

TinyXML-2 will happily read or write files without a declaration, however.

The text of the declaration isn't interpreted. It is parsed and written as a string.

Public Functions

inline virtual XMLDeclaration *ToDeclaration() override

Safely cast to a Declaration, or null.

inline virtual const XMLDeclaration *ToDeclaration() const override
virtual bool Accept(XMLVisitor *visitor) const override

Accept a hierarchical visit of the nodes in the TinyXML-2 DOM. Every node in the XML tree will be conditionally visited and the host will be called back via the XMLVisitor interface.

This is essentially a SAX interface for TinyXML-2. (Note however it doesn't re-parse the XML for the callbacks, so the performance of TinyXML-2 is unchanged by using this interface versus any other.)

The interface has been based on ideas from:

Which are both good references for "visiting".

An example of using Accept():

XMLPrinter printer;
tinyxmlDoc.Accept( &printer );
const char* xmlcstr = printer.CStr();

virtual XMLNode *ShallowClone(XMLDocument *document) const override

Make a copy of this node, but not its children. You may pass in a Document pointer that will be the owner of the new Node. If the 'document' is null, then the node returned will be allocated from the current Document. (this->GetDocument())

Note: if called on a XMLDocument, this will return null.

virtual bool ShallowEqual(const XMLNode *compare) const override

Test if 2 nodes are the same, but don't test children. The 2 nodes do not need to be in the same Document.

Note: if called on a XMLDocument, this will return false.

Protected Functions

explicit XMLDeclaration(XMLDocument *doc)
virtual ~XMLDeclaration()
virtual char *ParseDeep(char *p, StrPair *parentEndTag, int *curLineNumPtr) override