# TinyXML-2: tinyxml2::XMLDeclaration Class Reference

tinyxml2::XMLDeclaration Class Reference

`#include <tinyxml2.h>`

Inheritance diagram for tinyxml2::XMLDeclaration:

## Public Member Functions

virtual XMLDeclaration * | ToDeclaration ()
| Safely cast to a Declaration, or null.
virtual bool | Accept (XMLVisitor *visitor) const
virtual XMLNode * | ShallowClone (XMLDocument *document) const
virtual bool | ShallowEqual (const XMLNode *compare) const
Public Member Functions inherited from tinyxml2::XMLNode
const XMLDocument * | GetDocument () const
| Get the XMLDocument that owns this XMLNode.
XMLDocument * | GetDocument ()
| Get the XMLDocument that owns this XMLNode.
virtual XMLElement * | ToElement ()
| Safely cast to an Element, or null.
virtual XMLText * | ToText ()
| Safely cast to Text, or null.
virtual XMLComment * | ToComment ()
| Safely cast to a Comment, or null.
virtual XMLDocument * | ToDocument ()
| Safely cast to a Document, or null.
virtual XMLUnknown * | ToUnknown ()
| Safely cast to an Unknown, or null.
const char * | Value () const
void | SetValue (const char *val, bool staticMem=false)
int | GetLineNum () const
| Gets the line number the node is in, if the document was parsed from a file.
const XMLNode * | Parent () const
| Get the parent of this node on the DOM.
bool | NoChildren () const
| Returns true if this node has no children.
const XMLNode * | FirstChild () const
| Get the first child node, or null if none exists.
const XMLElement * | FirstChildElement (const char *name=0) const
const XMLNode * | LastChild () const
| Get the last child node, or null if none exists.
const XMLElement * | LastChildElement (const char *name=0) const
const XMLNode * | PreviousSibling () const
| Get the previous (left) sibling node of this node.
const XMLElement * | PreviousSiblingElement (const char *name=0) const
| Get the previous (left) sibling element of this node, with an optionally supplied name.
const XMLNode * | NextSibling () const
| Get the next (right) sibling node of this node.
const XMLElement * | NextSiblingElement (const char *name=0) const
| Get the next (right) sibling element of this node, with an optionally supplied name.
XMLNode * | InsertEndChild (XMLNode *addThis)
XMLNode * | InsertFirstChild (XMLNode *addThis)
XMLNode * | InsertAfterChild (XMLNode *afterThis, XMLNode *addThis)
void | DeleteChildren ()
void | DeleteChild (XMLNode *node)
XMLNode * | DeepClone (XMLDocument *target) const
void | SetUserData (void *userData)
void * | GetUserData () const

## Detailed Description

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.

## Member Function Documentation

## Accept()

virtual bool tinyxml2::XMLDeclaration::Accept | ( | XMLVisitor * | visitor | ) | const

virtual

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:

- http://www.saxproject.org/
- http://c2.com/cgi/wiki?HierarchicalVisitorPattern

Which are both good references for "visiting".

An example of using Accept():

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

Implements tinyxml2::XMLNode.

## ShallowClone()

virtual XMLNode* tinyxml2::XMLDeclaration::ShallowClone | ( | XMLDocument * | document | ) | const

virtual

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.

Implements tinyxml2::XMLNode.

## ShallowEqual()

virtual bool tinyxml2::XMLDeclaration::ShallowEqual | ( | const XMLNode * | compare | ) | const

virtual

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.

Implements tinyxml2::XMLNode.

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

- tinyxml2.h