ReactOS 0.4.17-dev-966-gf06eace
tinyxml2::XMLDeclaration Class Reference

#include <tinyxml2.h>

Inheritance diagram for tinyxml2::XMLDeclaration:
Collaboration diagram for tinyxml2::XMLDeclaration:

Public Member Functions

virtual XMLDeclaration * ToDeclaration ()
 Safely cast to a Declaration, or null.
 
virtual const XMLDeclaration * ToDeclaration () const
 
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 XMLDeclaration * ToDeclaration ()
 Safely cast to a Declaration, or null.
 
virtual XMLUnknown * ToUnknown ()
 Safely cast to an Unknown, or null.
 
virtual const XMLElement * ToElement () const
 
virtual const XMLText * ToText () const
 
virtual const XMLComment * ToComment () const
 
virtual const XMLDocument * ToDocument () const
 
virtual const XMLDeclaration * ToDeclaration () const
 
virtual const XMLUnknown * ToUnknown () const
 
const char * Value () const
 
void SetValue (const char *val, bool staticMem=false)
 
const XMLNode * Parent () const
 Get the parent of this node on the DOM.
 
XMLNode * Parent ()
 
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.
 
XMLNode * FirstChild ()
 
const XMLElement * FirstChildElement (const char *name=0) const
 
XMLElement * FirstChildElement (const char *name=0)
 
const XMLNode * LastChild () const
 Get the last child node, or null if none exists.
 
XMLNode * LastChild ()
 
const XMLElement * LastChildElement (const char *name=0) const
 
XMLElement * LastChildElement (const char *name=0)
 
const XMLNode * PreviousSibling () const
 Get the previous (left) sibling node of this node.
 
XMLNode * PreviousSibling ()
 
const XMLElement * PreviousSiblingElement (const char *name=0) const
 Get the previous (left) sibling element of this node, with an optionally supplied name.
 
XMLElement * PreviousSiblingElement (const char *name=0)
 
const XMLNode * NextSibling () const
 Get the next (right) sibling node of this node.
 
XMLNode * NextSibling ()
 
const XMLElement * NextSiblingElement (const char *name=0) const
 Get the next (right) sibling element of this node, with an optionally supplied name.
 
XMLElement * NextSiblingElement (const char *name=0)
 
XMLNode * InsertEndChild (XMLNode *addThis)
 
XMLNode * LinkEndChild (XMLNode *addThis)
 
XMLNode * InsertFirstChild (XMLNode *addThis)
 
XMLNode * InsertAfterChild (XMLNode *afterThis, XMLNode *addThis)
 
void DeleteChildren ()
 
void DeleteChild (XMLNode *node)
 
virtual XMLNode * ShallowClone (XMLDocument *document) const =0
 
virtual bool ShallowEqual (const XMLNode *compare) const =0
 
virtual bool Accept (XMLVisitor *visitor) const =0
 

Protected Member Functions

 XMLDeclaration (XMLDocument *doc)
 
virtual ~XMLDeclaration ()
 
char * ParseDeep (char *, StrPair *endTag)
 
- Protected Member Functions inherited from tinyxml2::XMLNode
 XMLNode (XMLDocument *)
 
virtual ~XMLNode ()
 
virtual char * ParseDeep (char *, StrPair *)
 

Private Member Functions

 XMLDeclaration (const XMLDeclaration &)
 
XMLDeclaration & operator= (const XMLDeclaration &)
 

Friends

class XMLDocument
 

Additional Inherited Members

- Protected Attributes inherited from tinyxml2::XMLNode
XMLDocument * _document
 
XMLNode * _parent
 
StrPair _value
 
XMLNode * _firstChild
 
XMLNode * _lastChild
 
XMLNode * _prev
 
XMLNode * _next
 

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.

Definition at line 974 of file tinyxml2.h.

Constructor & Destructor Documentation

◆ XMLDeclaration() [1/2]

tinyxml2::XMLDeclaration::XMLDeclaration ( XMLDocument *  doc)
protected

Definition at line 1143 of file tinyxml2.cpp.

1143 : XMLNode( doc )
1144{
1145}
XMLNode(XMLDocument *)
Definition: tinyxml2.cpp:701

◆ ~XMLDeclaration()

tinyxml2::XMLDeclaration::~XMLDeclaration ( )
protectedvirtual

Definition at line 1148 of file tinyxml2.cpp.

1149{
1150 //printf( "~XMLDeclaration\n" );
1151}

◆ XMLDeclaration() [2/2]

tinyxml2::XMLDeclaration::XMLDeclaration ( const XMLDeclaration &  )
private

Member Function Documentation

◆ Accept()

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:

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.

Definition at line 1185 of file tinyxml2.cpp.

1186{
1187 TIXMLASSERT( visitor );
1188 return visitor->Visit( *this );
1189}
#define TIXMLASSERT(x)
Definition: tinyxml2.h:88

◆ operator=()

XMLDeclaration & tinyxml2::XMLDeclaration::operator= ( const XMLDeclaration &  )
private

◆ ParseDeep()

char * tinyxml2::XMLDeclaration::ParseDeep ( char *  p,
StrPair *  endTag 
)
protectedvirtual

Reimplemented from tinyxml2::XMLNode.

Definition at line 1154 of file tinyxml2.cpp.

1155{
1156 // Declaration parses as text.
1157 const char* start = p;
1159 if ( p == 0 ) {
1161 }
1162 return p;
1163}
@ NEEDS_NEWLINE_NORMALIZATION
Definition: tinyxml2.h:121
char * ParseText(char *in, const char *endTag, int strFlags)
Definition: tinyxml2.cpp:191
void SetError(XMLError error, const char *str1, const char *str2)
Definition: tinyxml2.cpp:2053
StrPair _value
Definition: tinyxml2.h:863
XMLDocument * _document
Definition: tinyxml2.h:861
GLuint start
Definition: gl.h:1545
GLfloat GLfloat p
Definition: glext.h:8902
@ XML_ERROR_PARSING_DECLARATION
Definition: tinyxml2.h:501

◆ ShallowClone()

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.

Definition at line 1166 of file tinyxml2.cpp.

1167{
1168 if ( !doc ) {
1169 doc = _document;
1170 }
1171 XMLDeclaration* dec = doc->NewDeclaration( Value() ); // fixme: this will always allocate memory. Intern?
1172 return dec;
1173}
ios_base &_STLP_CALL dec(ios_base &__s)
Definition: _ios_base.h:321
XMLDeclaration(XMLDocument *doc)
Definition: tinyxml2.cpp:1143
const char * Value() const
Definition: tinyxml2.cpp:719

◆ ShallowEqual()

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.

Definition at line 1176 of file tinyxml2.cpp.

1177{
1179 const XMLDeclaration* declaration = compare->ToDeclaration();
1180 return ( declaration && XMLUtil::StringEqual( declaration->Value(), Value() ));
1181}
static bool StringEqual(const char *p, const char *q, int nChar=INT_MAX)
Definition: tinyxml2.h:555
Definition: bug.cpp:8
_Must_inspect_result_ _In_ WDFKEY _In_ PCUNICODE_STRING _Out_opt_ PUSHORT _Inout_opt_ PUNICODE_STRING Value
Definition: wdfregistry.h:413

◆ ToDeclaration() [1/2]

virtual XMLDeclaration * tinyxml2::XMLDeclaration::ToDeclaration ( )
inlinevirtual

Safely cast to a Declaration, or null.

Reimplemented from tinyxml2::XMLNode.

Definition at line 978 of file tinyxml2.h.

978 {
979 return this;
980 }

◆ ToDeclaration() [2/2]

virtual const XMLDeclaration * tinyxml2::XMLDeclaration::ToDeclaration ( ) const
inlinevirtual

Reimplemented from tinyxml2::XMLNode.

Definition at line 981 of file tinyxml2.h.

981 {
982 return this;
983 }

Friends And Related Function Documentation

◆ XMLDocument

friend class XMLDocument
friend

Definition at line 976 of file tinyxml2.h.


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