#include <tinyxml.h>
Public Member Functions | |
virtual bool | Accept (TiXmlVisitor *visitor) const |
virtual TiXmlNode * | Clone () const |
Creates a copy of this Declaration and returns it. | |
const char * | Encoding () const |
Encoding. Will return an empty string if none was found. | |
void | operator= (const TiXmlDeclaration ©) |
virtual const char * | Parse (const char *p, TiXmlParsingData *data, TiXmlEncoding encoding) |
virtual void | Print (FILE *cfile, int depth, TIXML_STRING *str) const |
virtual void | Print (FILE *cfile, int depth) const |
const char * | Standalone () const |
Is this a standalone document? | |
TiXmlDeclaration (const TiXmlDeclaration ©) | |
TiXmlDeclaration () | |
Construct an empty declaration. | |
TiXmlDeclaration (const std::string &_version, const std::string &_encoding, const std::string &_standalone) | |
Constructor. | |
TiXmlDeclaration (const char *_version, const char *_encoding, const char *_standalone) | |
Construct. | |
virtual const TiXmlDeclaration * | ToDeclaration () const |
Cast to a more defined type. Will return null not of the requested type. | |
virtual TiXmlDeclaration * | ToDeclaration () |
Cast to a more defined type. Will return null not of the requested type. | |
const char * | Version () const |
Version. Will return an empty string if none was found. | |
virtual | ~TiXmlDeclaration () |
Protected Member Functions | |
void | CopyTo (TiXmlDeclaration *target) const |
virtual void | StreamIn (std::istream *in, TIXML_STRING *tag) |
Private Attributes | |
TIXML_STRING | encoding |
TIXML_STRING | standalone |
TIXML_STRING | version |
In correct XML the declaration is the first entry in the file.
<?xml version="1.0" standalone="yes"?>
TinyXml will happily read or write files without a declaration, however. There are 3 possible attributes to the declaration: version, encoding, and standalone.
Note: In this version of the code, the attributes are handled as special cases, not generic attributes, simply because there can only be at most 3 and they are always the same.
TiXmlDeclaration::TiXmlDeclaration | ( | ) | [inline] |
Construct an empty declaration.
Definition at line 1282 of file tinyxml.h.
Referenced by Clone().
: TiXmlNode( TiXmlNode::DECLARATION ) {}
TiXmlDeclaration::TiXmlDeclaration | ( | const std::string & | _version, |
const std::string & | _encoding, | ||
const std::string & | _standalone | ||
) |
Constructor.
TiXmlDeclaration::TiXmlDeclaration | ( | const char * | _version, |
const char * | _encoding, | ||
const char * | _standalone | ||
) |
Construct.
Definition at line 1384 of file tinyxml.cc.
References encoding, standalone, and version.
: TiXmlNode( TiXmlNode::DECLARATION ) { version = _version; encoding = _encoding; standalone = _standalone; }
TiXmlDeclaration::TiXmlDeclaration | ( | const TiXmlDeclaration & | copy | ) |
Definition at line 1408 of file tinyxml.cc.
References CopyTo().
: TiXmlNode( TiXmlNode::DECLARATION ) { copy.CopyTo( this ); }
virtual TiXmlDeclaration::~TiXmlDeclaration | ( | ) | [inline, virtual] |
bool TiXmlDeclaration::Accept | ( | TiXmlVisitor * | visitor | ) | const [virtual] |
Walk the XML tree visiting this node and all of its children.
Implements TiXmlNode.
Definition at line 1454 of file tinyxml.cc.
References TiXmlVisitor::Visit().
{ return visitor->Visit( *this ); }
TiXmlNode * TiXmlDeclaration::Clone | ( | ) | const [virtual] |
Creates a copy of this Declaration and returns it.
Implements TiXmlNode.
Definition at line 1460 of file tinyxml.cc.
References clone(), CopyTo(), and TiXmlDeclaration().
{ TiXmlDeclaration* clone = new TiXmlDeclaration(); if ( !clone ) return 0; CopyTo( clone ); return clone; }
void TiXmlDeclaration::CopyTo | ( | TiXmlDeclaration * | target | ) | const [protected] |
Definition at line 1444 of file tinyxml.cc.
References encoding, standalone, and version.
Referenced by Clone(), operator=(), and TiXmlDeclaration().
{ TiXmlNode::CopyTo( target ); target->version = version; target->encoding = encoding; target->standalone = standalone; }
const char* TiXmlDeclaration::Encoding | ( | ) | const [inline] |
Encoding. Will return an empty string if none was found.
Definition at line 1304 of file tinyxml.h.
References encoding.
Referenced by TiXmlDocument::Parse().
{ return encoding.c_str (); }
void TiXmlDeclaration::operator= | ( | const TiXmlDeclaration & | copy | ) |
Definition at line 1415 of file tinyxml.cc.
References TiXmlNode::Clear(), and CopyTo().
const char * TiXmlDeclaration::Parse | ( | const char * | p, |
TiXmlParsingData * | data, | ||
TiXmlEncoding | encoding | ||
) | [virtual] |
Implements TiXmlBase.
Definition at line 1577 of file tinyxmlparser.cc.
References TiXmlParsingData::Cursor(), encoding, TiXmlNode::GetDocument(), TiXmlBase::IsWhiteSpace(), TiXmlBase::location, L1TEmulatorMonitor_cff::p, TiXmlAttribute::Parse(), TiXmlDocument::SetError(), TiXmlBase::SkipWhiteSpace(), TiXmlParsingData::Stamp(), standalone, TiXmlBase::StringEqual(), TiXmlBase::TIXML_ERROR_PARSING_DECLARATION, TiXmlAttribute::Value(), and version.
{ p = SkipWhiteSpace( p, _encoding ); // Find the beginning, find the end, and look for // the stuff in-between. TiXmlDocument* document = GetDocument(); if ( !p || !*p || !StringEqual( p, "<?xml", true, _encoding ) ) { if ( document ) document->SetError( TIXML_ERROR_PARSING_DECLARATION, 0, 0, _encoding ); return 0; } if ( data ) { data->Stamp( p, _encoding ); location = data->Cursor(); } p += 5; version = ""; encoding = ""; standalone = ""; while ( p && *p ) { if ( *p == '>' ) { ++p; return p; } p = SkipWhiteSpace( p, _encoding ); if ( StringEqual( p, "version", true, _encoding ) ) { TiXmlAttribute attrib; p = attrib.Parse( p, data, _encoding ); version = attrib.Value(); } else if ( StringEqual( p, "encoding", true, _encoding ) ) { TiXmlAttribute attrib; p = attrib.Parse( p, data, _encoding ); encoding = attrib.Value(); } else if ( StringEqual( p, "standalone", true, _encoding ) ) { TiXmlAttribute attrib; p = attrib.Parse( p, data, _encoding ); standalone = attrib.Value(); } else { // Read over whatever it is. while( p && *p && *p != '>' && !IsWhiteSpace( *p ) ) ++p; } } return 0; }
void TiXmlDeclaration::Print | ( | FILE * | cfile, |
int | depth, | ||
TIXML_STRING * | str | ||
) | const [virtual] |
Definition at line 1422 of file tinyxml.cc.
References encoding, standalone, and version.
Referenced by Print(), and TiXmlPrinter::Visit().
{ if ( cfile ) fprintf( cfile, "<?xml " ); if ( str ) (*str) += "<?xml "; if ( !version.empty() ) { if ( cfile ) fprintf (cfile, "version=\"%s\" ", version.c_str ()); if ( str ) { (*str) += "version=\""; (*str) += version; (*str) += "\" "; } } if ( !encoding.empty() ) { if ( cfile ) fprintf (cfile, "encoding=\"%s\" ", encoding.c_str ()); if ( str ) { (*str) += "encoding=\""; (*str) += encoding; (*str) += "\" "; } } if ( !standalone.empty() ) { if ( cfile ) fprintf (cfile, "standalone=\"%s\" ", standalone.c_str ()); if ( str ) { (*str) += "standalone=\""; (*str) += standalone; (*str) += "\" "; } } if ( cfile ) fprintf( cfile, "?>" ); if ( str ) (*str) += "?>"; }
virtual void TiXmlDeclaration::Print | ( | FILE * | cfile, |
int | depth | ||
) | const [inline, virtual] |
All TinyXml classes can print themselves to a filestream or the string class (TiXmlString in non-STL mode, std::string in STL mode.) Either or both cfile and str can be null.
This is a formatted print, and will insert tabs and newlines.
(For an unformatted stream, use the << operator.)
Implements TiXmlBase.
Definition at line 1312 of file tinyxml.h.
References Print().
{ Print( cfile, depth, 0 ); }
const char* TiXmlDeclaration::Standalone | ( | ) | const [inline] |
Is this a standalone document?
Definition at line 1306 of file tinyxml.h.
References standalone.
{ return standalone.c_str (); }
virtual void TiXmlDeclaration::StreamIn | ( | std::istream * | in, |
TIXML_STRING * | tag | ||
) | [protected, virtual] |
Implements TiXmlNode.
virtual const TiXmlDeclaration* TiXmlDeclaration::ToDeclaration | ( | ) | const [inline, virtual] |
virtual TiXmlDeclaration* TiXmlDeclaration::ToDeclaration | ( | ) | [inline, virtual] |
const char* TiXmlDeclaration::Version | ( | ) | const [inline] |
TIXML_STRING TiXmlDeclaration::encoding [private] |
Definition at line 1335 of file tinyxml.h.
Referenced by CopyTo(), Encoding(), Parse(), Print(), and TiXmlDeclaration().
TIXML_STRING TiXmlDeclaration::standalone [private] |
Definition at line 1336 of file tinyxml.h.
Referenced by CopyTo(), Parse(), Print(), Standalone(), and TiXmlDeclaration().
TIXML_STRING TiXmlDeclaration::version [private] |