Merge branch 'int/11/fp3' into int/13/fp3

* int/11/fp3:
  In stamp always advance the pointer if *p= 0xef
  external/tinyxml 2_4_3
  external/tinyxml 2_4_2
  external/tinyxml 2_4_1

Change-Id: I2e4ca307531336fa78393b2c7010e54996b1a3be
diff --git a/changes.txt b/changes.txt
index 3fc47d2..0e8ea23 100644
--- a/changes.txt
+++ b/changes.txt
@@ -208,3 +208,19 @@
   from 'instructor_'
 - Ellers submitted his very popular tutorials, which have been added to the distribution.
 
+2.4.1
+- Fixed CDATA output formatting
+- Fixed memory allocators in TinyString to work with overloaded new/delete
+
+2.4.2
+- solosnake pointed out that TIXML_LOG causes problems on an XBOX. The definition in the header
+  was superflous and was moved inside of DEBUG_PARSING
+
+2.4.3
+- Fixed a test bug that caused a crash in 'xmltest'. TinyXML was fine, but it isn't good
+  to ship with a broken test suite.
+- Started converting some functions to not cast between std::string and const char* 
+  quite as often.
+- Added FILE* versions of the document loads - good suggestion from Wade Brainerd
+- Empty documents might not always return the errors they should. [1398915] Thanks to igor v.
+- Added some asserts for multiply adding a node, regardng bug [1391937] suggested by Paco Arjonilla.
diff --git a/docs/annotated.html b/docs/annotated.html
index 342af3f..1510a44 100644
--- a/docs/annotated.html
+++ b/docs/annotated.html
@@ -17,7 +17,7 @@
   <tr><td class="indexkey"><a class="el" href="classTiXmlText.html">TiXmlText</a></td><td class="indexvalue">XML text </td></tr>
   <tr><td class="indexkey"><a class="el" href="classTiXmlUnknown.html">TiXmlUnknown</a></td><td class="indexvalue">Any tag that tinyXml doesn't recognize is saved as an unknown </td></tr>
 </table>
-<hr size="1"><address style="align: right;"><small>Generated on Sat Oct 8 14:15:30 2005 for TinyXml by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Sun Jan 15 23:12:04 2006 for TinyXml by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4 </small></address>
 </body>
diff --git a/docs/classTiXmlAttribute-members.html b/docs/classTiXmlAttribute-members.html
index 1c14a73..98aebe8 100644
--- a/docs/classTiXmlAttribute-members.html
+++ b/docs/classTiXmlAttribute-members.html
@@ -11,25 +11,25 @@
   <tr class="memlist"><td><a class="el" href="classTiXmlAttribute.html#a5">IntValue</a>() const </td><td><a class="el" href="classTiXmlAttribute.html">TiXmlAttribute</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="classTiXmlBase.html#e1">IsWhiteSpaceCondensed</a>()</td><td><a class="el" href="classTiXmlBase.html">TiXmlBase</a></td><td><code> [inline, static]</code></td></tr>
   <tr class="memlist"><td><a class="el" href="classTiXmlAttribute.html#a3">Name</a>() const </td><td><a class="el" href="classTiXmlAttribute.html">TiXmlAttribute</a></td><td><code> [inline]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classTiXmlAttribute.html#a15">Next</a>() const </td><td><a class="el" href="classTiXmlAttribute.html">TiXmlAttribute</a></td><td></td></tr>
-  <tr class="memlist"><td><a class="el" href="classTiXmlAttribute.html#a17">Previous</a>() const </td><td><a class="el" href="classTiXmlAttribute.html">TiXmlAttribute</a></td><td></td></tr>
-  <tr class="memlist"><td><a class="el" href="classTiXmlAttribute.html#a23">Print</a>(FILE *cfile, int depth) const </td><td><a class="el" href="classTiXmlAttribute.html">TiXmlAttribute</a></td><td><code> [virtual]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classTiXmlAttribute.html#a8">QueryDoubleValue</a>(double *_value) const </td><td><a class="el" href="classTiXmlAttribute.html">TiXmlAttribute</a></td><td></td></tr>
-  <tr class="memlist"><td><a class="el" href="classTiXmlAttribute.html#a7">QueryIntValue</a>(int *_value) const </td><td><a class="el" href="classTiXmlAttribute.html">TiXmlAttribute</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="classTiXmlAttribute.html#a16">Next</a>() const </td><td><a class="el" href="classTiXmlAttribute.html">TiXmlAttribute</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="classTiXmlAttribute.html#a18">Previous</a>() const </td><td><a class="el" href="classTiXmlAttribute.html">TiXmlAttribute</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="classTiXmlAttribute.html#a24">Print</a>(FILE *cfile, int depth) const </td><td><a class="el" href="classTiXmlAttribute.html">TiXmlAttribute</a></td><td><code> [virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classTiXmlAttribute.html#a9">QueryDoubleValue</a>(double *_value) const </td><td><a class="el" href="classTiXmlAttribute.html">TiXmlAttribute</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="classTiXmlAttribute.html#a8">QueryIntValue</a>(int *_value) const </td><td><a class="el" href="classTiXmlAttribute.html">TiXmlAttribute</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="classTiXmlBase.html#a3">Row</a>() const </td><td><a class="el" href="classTiXmlBase.html">TiXmlBase</a></td><td><code> [inline]</code></td></tr>
   <tr class="memlist"><td><a class="el" href="classTiXmlBase.html#e0">SetCondenseWhiteSpace</a>(bool condense)</td><td><a class="el" href="classTiXmlBase.html">TiXmlBase</a></td><td><code> [inline, static]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classTiXmlAttribute.html#a12">SetDoubleValue</a>(double _value)</td><td><a class="el" href="classTiXmlAttribute.html">TiXmlAttribute</a></td><td></td></tr>
-  <tr class="memlist"><td><a class="el" href="classTiXmlAttribute.html#a11">SetIntValue</a>(int _value)</td><td><a class="el" href="classTiXmlAttribute.html">TiXmlAttribute</a></td><td></td></tr>
-  <tr class="memlist"><td><a class="el" href="classTiXmlAttribute.html#a9">SetName</a>(const char *_name)</td><td><a class="el" href="classTiXmlAttribute.html">TiXmlAttribute</a></td><td><code> [inline]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classTiXmlAttribute.html#a13">SetName</a>(const std::string &amp;_name)</td><td><a class="el" href="classTiXmlAttribute.html">TiXmlAttribute</a></td><td><code> [inline]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classTiXmlAttribute.html#a10">SetValue</a>(const char *_value)</td><td><a class="el" href="classTiXmlAttribute.html">TiXmlAttribute</a></td><td><code> [inline]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classTiXmlAttribute.html#a14">SetValue</a>(const std::string &amp;_value)</td><td><a class="el" href="classTiXmlAttribute.html">TiXmlAttribute</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classTiXmlAttribute.html#a13">SetDoubleValue</a>(double _value)</td><td><a class="el" href="classTiXmlAttribute.html">TiXmlAttribute</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="classTiXmlAttribute.html#a12">SetIntValue</a>(int _value)</td><td><a class="el" href="classTiXmlAttribute.html">TiXmlAttribute</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="classTiXmlAttribute.html#a10">SetName</a>(const char *_name)</td><td><a class="el" href="classTiXmlAttribute.html">TiXmlAttribute</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classTiXmlAttribute.html#a14">SetName</a>(const std::string &amp;_name)</td><td><a class="el" href="classTiXmlAttribute.html">TiXmlAttribute</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classTiXmlAttribute.html#a11">SetValue</a>(const char *_value)</td><td><a class="el" href="classTiXmlAttribute.html">TiXmlAttribute</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classTiXmlAttribute.html#a15">SetValue</a>(const std::string &amp;_value)</td><td><a class="el" href="classTiXmlAttribute.html">TiXmlAttribute</a></td><td><code> [inline]</code></td></tr>
   <tr class="memlist"><td><a class="el" href="classTiXmlAttribute.html#a0">TiXmlAttribute</a>()</td><td><a class="el" href="classTiXmlAttribute.html">TiXmlAttribute</a></td><td><code> [inline]</code></td></tr>
   <tr class="memlist"><td><a class="el" href="classTiXmlAttribute.html#a1">TiXmlAttribute</a>(const std::string &amp;_name, const std::string &amp;_value)</td><td><a class="el" href="classTiXmlAttribute.html">TiXmlAttribute</a></td><td><code> [inline]</code></td></tr>
   <tr class="memlist"><td><a class="el" href="classTiXmlAttribute.html#a2">TiXmlAttribute</a>(const char *_name, const char *_value)</td><td><a class="el" href="classTiXmlAttribute.html">TiXmlAttribute</a></td><td><code> [inline]</code></td></tr>
   <tr class="memlist"><td><a class="el" href="classTiXmlBase.html#p1">userData</a></td><td><a class="el" href="classTiXmlBase.html">TiXmlBase</a></td><td><code> [protected]</code></td></tr>
   <tr class="memlist"><td><a class="el" href="classTiXmlAttribute.html#a4">Value</a>() const </td><td><a class="el" href="classTiXmlAttribute.html">TiXmlAttribute</a></td><td><code> [inline]</code></td></tr>
-</table><hr size="1"><address style="align: right;"><small>Generated on Sat Oct 8 14:15:30 2005 for TinyXml by&nbsp;
+</table><hr size="1"><address style="align: right;"><small>Generated on Sun Jan 15 23:12:04 2006 for TinyXml by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4 </small></address>
 </body>
diff --git a/docs/classTiXmlAttribute.html b/docs/classTiXmlAttribute.html
index 1b4db51..aa7db75 100644
--- a/docs/classTiXmlAttribute.html
+++ b/docs/classTiXmlAttribute.html
@@ -46,48 +46,48 @@
 double&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTiXmlAttribute.html#a6">DoubleValue</a> () const </td></tr>
 
 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return the value of this attribute, converted to a double. <br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTiXmlAttribute.html#a7">QueryIntValue</a> (int *_value) const </td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTiXmlAttribute.html#a8">QueryIntValue</a> (int *_value) const </td></tr>
 
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">QueryIntValue examines the value string.  <a href="#a7"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="a8"></a><!-- doxytag: member="TiXmlAttribute::QueryDoubleValue" ref="a8" args="(double *_value) const " -->
-int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTiXmlAttribute.html#a8">QueryDoubleValue</a> (double *_value) const </td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">QueryIntValue examines the value string.  <a href="#a8"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="a9"></a><!-- doxytag: member="TiXmlAttribute::QueryDoubleValue" ref="a9" args="(double *_value) const " -->
+int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTiXmlAttribute.html#a9">QueryDoubleValue</a> (double *_value) const </td></tr>
 
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">QueryDoubleValue examines the value string. See <a class="el" href="classTiXmlAttribute.html#a7">QueryIntValue()</a>. <br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="a9"></a><!-- doxytag: member="TiXmlAttribute::SetName" ref="a9" args="(const char *_name)" -->
-void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTiXmlAttribute.html#a9">SetName</a> (const char *_name)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">QueryDoubleValue examines the value string. See <a class="el" href="classTiXmlAttribute.html#a8">QueryIntValue()</a>. <br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="a10"></a><!-- doxytag: member="TiXmlAttribute::SetName" ref="a10" args="(const char *_name)" -->
+void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTiXmlAttribute.html#a10">SetName</a> (const char *_name)</td></tr>
 
 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set the name of this attribute. <br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="a10"></a><!-- doxytag: member="TiXmlAttribute::SetValue" ref="a10" args="(const char *_value)" -->
-void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTiXmlAttribute.html#a10">SetValue</a> (const char *_value)</td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="a11"></a><!-- doxytag: member="TiXmlAttribute::SetValue" ref="a11" args="(const char *_value)" -->
+void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTiXmlAttribute.html#a11">SetValue</a> (const char *_value)</td></tr>
 
 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set the value. <br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="a11"></a><!-- doxytag: member="TiXmlAttribute::SetIntValue" ref="a11" args="(int _value)" -->
-void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTiXmlAttribute.html#a11">SetIntValue</a> (int _value)</td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="a12"></a><!-- doxytag: member="TiXmlAttribute::SetIntValue" ref="a12" args="(int _value)" -->
+void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTiXmlAttribute.html#a12">SetIntValue</a> (int _value)</td></tr>
 
 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set the value from an integer. <br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="a12"></a><!-- doxytag: member="TiXmlAttribute::SetDoubleValue" ref="a12" args="(double _value)" -->
-void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTiXmlAttribute.html#a12">SetDoubleValue</a> (double _value)</td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="a13"></a><!-- doxytag: member="TiXmlAttribute::SetDoubleValue" ref="a13" args="(double _value)" -->
+void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTiXmlAttribute.html#a13">SetDoubleValue</a> (double _value)</td></tr>
 
 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set the value from a double. <br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="a13"></a><!-- doxytag: member="TiXmlAttribute::SetName" ref="a13" args="(const std::string &amp;_name)" -->
-void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTiXmlAttribute.html#a13">SetName</a> (const std::string &amp;_name)</td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="a14"></a><!-- doxytag: member="TiXmlAttribute::SetName" ref="a14" args="(const std::string &amp;_name)" -->
+void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTiXmlAttribute.html#a14">SetName</a> (const std::string &amp;_name)</td></tr>
 
 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">STL std::string form. <br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="a14"></a><!-- doxytag: member="TiXmlAttribute::SetValue" ref="a14" args="(const std::string &amp;_value)" -->
-void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTiXmlAttribute.html#a14">SetValue</a> (const std::string &amp;_value)</td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="a15"></a><!-- doxytag: member="TiXmlAttribute::SetValue" ref="a15" args="(const std::string &amp;_value)" -->
+void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTiXmlAttribute.html#a15">SetValue</a> (const std::string &amp;_value)</td></tr>
 
 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">STL std::string form. <br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="a15"></a><!-- doxytag: member="TiXmlAttribute::Next" ref="a15" args="() const " -->
-const <a class="el" href="classTiXmlAttribute.html">TiXmlAttribute</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTiXmlAttribute.html#a15">Next</a> () const </td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="a16"></a><!-- doxytag: member="TiXmlAttribute::Next" ref="a16" args="() const " -->
+const <a class="el" href="classTiXmlAttribute.html">TiXmlAttribute</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTiXmlAttribute.html#a16">Next</a> () const </td></tr>
 
 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the next sibling attribute in the DOM. Returns null at end. <br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="a17"></a><!-- doxytag: member="TiXmlAttribute::Previous" ref="a17" args="() const " -->
-const <a class="el" href="classTiXmlAttribute.html">TiXmlAttribute</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTiXmlAttribute.html#a17">Previous</a> () const </td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="a18"></a><!-- doxytag: member="TiXmlAttribute::Previous" ref="a18" args="() const " -->
+const <a class="el" href="classTiXmlAttribute.html">TiXmlAttribute</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTiXmlAttribute.html#a18">Previous</a> () const </td></tr>
 
 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the previous sibling attribute in the DOM. Returns null at beginning. <br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTiXmlAttribute.html#a23">Print</a> (FILE *cfile, int depth) const </td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTiXmlAttribute.html#a24">Print</a> (FILE *cfile, int depth) const </td></tr>
 
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">All TinyXml classes can print themselves to a filestream.  <a href="#a23"></a><br></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">All TinyXml classes can print themselves to a filestream.  <a href="#a24"></a><br></td></tr>
 </table>
 <hr><a name="_details"></a><h2>Detailed Description</h2>
 An attribute is a name-value pair. 
@@ -97,7 +97,7 @@
 
 <p>
 <hr><h2>Member Function Documentation</h2>
-<a class="anchor" name="a23"></a><!-- doxytag: member="TiXmlAttribute::Print" ref="a23" args="(FILE *cfile, int depth) const " --><p>
+<a class="anchor" name="a24"></a><!-- doxytag: member="TiXmlAttribute::Print" ref="a24" args="(FILE *cfile, int depth) const " --><p>
 <table class="mdTable" cellpadding="2" cellspacing="0">
   <tr>
     <td class="mdRow">
@@ -139,7 +139,7 @@
 Implements <a class="el" href="classTiXmlBase.html#a2">TiXmlBase</a>.    </td>
   </tr>
 </table>
-<a class="anchor" name="a7"></a><!-- doxytag: member="TiXmlAttribute::QueryIntValue" ref="a7" args="(int *_value) const " --><p>
+<a class="anchor" name="a8"></a><!-- doxytag: member="TiXmlAttribute::QueryIntValue" ref="a8" args="(int *_value) const " --><p>
 <table class="mdTable" cellpadding="2" cellspacing="0">
   <tr>
     <td class="mdRow">
@@ -172,7 +172,7 @@
 </table>
 <hr>The documentation for this class was generated from the following file:<ul>
 <li><a class="el" href="tinyxml_8h-source.html">tinyxml.h</a></ul>
-<hr size="1"><address style="align: right;"><small>Generated on Sat Oct 8 14:15:30 2005 for TinyXml by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Sun Jan 15 23:12:04 2006 for TinyXml by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4 </small></address>
 </body>
diff --git a/docs/classTiXmlBase-members.html b/docs/classTiXmlBase-members.html
index 7786d90..44cb9cb 100644
--- a/docs/classTiXmlBase-members.html
+++ b/docs/classTiXmlBase-members.html
@@ -12,7 +12,7 @@
   <tr class="memlist"><td><a class="el" href="classTiXmlBase.html#a3">Row</a>() const </td><td><a class="el" href="classTiXmlBase.html">TiXmlBase</a></td><td><code> [inline]</code></td></tr>
   <tr class="memlist"><td><a class="el" href="classTiXmlBase.html#e0">SetCondenseWhiteSpace</a>(bool condense)</td><td><a class="el" href="classTiXmlBase.html">TiXmlBase</a></td><td><code> [inline, static]</code></td></tr>
   <tr class="memlist"><td><a class="el" href="classTiXmlBase.html#p1">userData</a></td><td><a class="el" href="classTiXmlBase.html">TiXmlBase</a></td><td><code> [protected]</code></td></tr>
-</table><hr size="1"><address style="align: right;"><small>Generated on Sat Oct 8 14:15:30 2005 for TinyXml by&nbsp;
+</table><hr size="1"><address style="align: right;"><small>Generated on Sun Jan 15 23:12:04 2006 for TinyXml by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4 </small></address>
 </body>
diff --git a/docs/classTiXmlBase.html b/docs/classTiXmlBase.html
index 39c0cd0..c7d3239 100644
--- a/docs/classTiXmlBase.html
+++ b/docs/classTiXmlBase.html
@@ -118,7 +118,7 @@
 This is a formatted print, and will insert tabs and newlines.<p>
 (For an unformatted stream, use the &lt;&lt; operator.)
 <p>
-Implemented in <a class="el" href="classTiXmlAttribute.html#a23">TiXmlAttribute</a>, <a class="el" href="classTiXmlElement.html#a29">TiXmlElement</a>, <a class="el" href="classTiXmlComment.html#a5">TiXmlComment</a>, <a class="el" href="classTiXmlText.html#a5">TiXmlText</a>, <a class="el" href="classTiXmlDeclaration.html#a10">TiXmlDeclaration</a>, <a class="el" href="classTiXmlUnknown.html#a5">TiXmlUnknown</a>, and <a class="el" href="classTiXmlDocument.html#a24">TiXmlDocument</a>.    </td>
+Implemented in <a class="el" href="classTiXmlAttribute.html#a24">TiXmlAttribute</a>, <a class="el" href="classTiXmlElement.html#a29">TiXmlElement</a>, <a class="el" href="classTiXmlComment.html#a5">TiXmlComment</a>, <a class="el" href="classTiXmlText.html#a5">TiXmlText</a>, <a class="el" href="classTiXmlDeclaration.html#a10">TiXmlDeclaration</a>, <a class="el" href="classTiXmlUnknown.html#a5">TiXmlUnknown</a>, and <a class="el" href="classTiXmlDocument.html#a26">TiXmlDocument</a>.    </td>
   </tr>
 </table>
 <a class="anchor" name="a3"></a><!-- doxytag: member="TiXmlBase::Row" ref="a3" args="() const " --><p>
@@ -150,8 +150,8 @@
 The row and column are 1-based. (That is the first row and first column is 1,1). If the returns values are 0 or less, then the parser does not have a row and column value.<p>
 Generally, the row and column value will be set when the TiXmlDocument::Load(), <a class="el" href="classTiXmlDocument.html#a6">TiXmlDocument::LoadFile()</a>, or any TiXmlNode::Parse() is called. It will NOT be set when the DOM was created from operator&gt;&gt;.<p>
 The values reflect the initial load. Once the DOM is modified programmatically (by adding or changing nodes and attributes) the new values will NOT update to reflect changes in the document.<p>
-There is a minor performance cost to computing the row and column. Computation can be disabled if <a class="el" href="classTiXmlDocument.html#a20">TiXmlDocument::SetTabSize()</a> is called with 0 as the value.<p>
-<dl compact><dt><b>See also:</b></dt><dd><a class="el" href="classTiXmlDocument.html#a20">TiXmlDocument::SetTabSize()</a></dd></dl>
+There is a minor performance cost to computing the row and column. Computation can be disabled if <a class="el" href="classTiXmlDocument.html#a22">TiXmlDocument::SetTabSize()</a> is called with 0 as the value.<p>
+<dl compact><dt><b>See also:</b></dt><dd><a class="el" href="classTiXmlDocument.html#a22">TiXmlDocument::SetTabSize()</a></dd></dl>
     </td>
   </tr>
 </table>
@@ -187,7 +187,7 @@
 </table>
 <hr>The documentation for this class was generated from the following file:<ul>
 <li><a class="el" href="tinyxml_8h-source.html">tinyxml.h</a></ul>
-<hr size="1"><address style="align: right;"><small>Generated on Sat Oct 8 14:15:30 2005 for TinyXml by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Sun Jan 15 23:12:04 2006 for TinyXml by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4 </small></address>
 </body>
diff --git a/docs/classTiXmlComment-members.html b/docs/classTiXmlComment-members.html
index f7047b2..65d17cf 100644
--- a/docs/classTiXmlComment-members.html
+++ b/docs/classTiXmlComment-members.html
@@ -58,23 +58,23 @@
   <tr class="memlist"><td><a class="el" href="classTiXmlNode.html#a3">SetValue</a>(const char *_value)</td><td><a class="el" href="classTiXmlNode.html">TiXmlNode</a></td><td><code> [inline]</code></td></tr>
   <tr class="memlist"><td><a class="el" href="classTiXmlNode.html#a4">SetValue</a>(const std::string &amp;_value)</td><td><a class="el" href="classTiXmlNode.html">TiXmlNode</a></td><td><code> [inline]</code></td></tr>
   <tr class="memlist"><td><a class="el" href="classTiXmlComment.html#a0">TiXmlComment</a>()</td><td><a class="el" href="classTiXmlComment.html">TiXmlComment</a></td><td><code> [inline]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classTiXmlNode.html#a62">ToComment</a>() const </td><td><a class="el" href="classTiXmlNode.html">TiXmlNode</a></td><td><code> [inline]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classTiXmlNode.html#a68">ToComment</a>()</td><td><a class="el" href="classTiXmlNode.html">TiXmlNode</a></td><td><code> [inline]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classTiXmlNode.html#a65">ToDeclaration</a>() const </td><td><a class="el" href="classTiXmlNode.html">TiXmlNode</a></td><td><code> [inline]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classTiXmlNode.html#a71">ToDeclaration</a>()</td><td><a class="el" href="classTiXmlNode.html">TiXmlNode</a></td><td><code> [inline]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classTiXmlNode.html#a60">ToDocument</a>() const </td><td><a class="el" href="classTiXmlNode.html">TiXmlNode</a></td><td><code> [inline]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classTiXmlNode.html#a66">ToDocument</a>()</td><td><a class="el" href="classTiXmlNode.html">TiXmlNode</a></td><td><code> [inline]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classTiXmlNode.html#a61">ToElement</a>() const </td><td><a class="el" href="classTiXmlNode.html">TiXmlNode</a></td><td><code> [inline]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classTiXmlNode.html#a67">ToElement</a>()</td><td><a class="el" href="classTiXmlNode.html">TiXmlNode</a></td><td><code> [inline]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classTiXmlNode.html#a64">ToText</a>() const </td><td><a class="el" href="classTiXmlNode.html">TiXmlNode</a></td><td><code> [inline]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classTiXmlNode.html#a70">ToText</a>()</td><td><a class="el" href="classTiXmlNode.html">TiXmlNode</a></td><td><code> [inline]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classTiXmlNode.html#a63">ToUnknown</a>() const </td><td><a class="el" href="classTiXmlNode.html">TiXmlNode</a></td><td><code> [inline]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classTiXmlNode.html#a69">ToUnknown</a>()</td><td><a class="el" href="classTiXmlNode.html">TiXmlNode</a></td><td><code> [inline]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classTiXmlNode.html#a56">Type</a>() const </td><td><a class="el" href="classTiXmlNode.html">TiXmlNode</a></td><td><code> [inline, virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classTiXmlComment.html#a7">ToComment</a>() const </td><td><a class="el" href="classTiXmlComment.html">TiXmlComment</a></td><td><code> [inline, virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classTiXmlComment.html#a8">ToComment</a>()</td><td><a class="el" href="classTiXmlComment.html">TiXmlComment</a></td><td><code> [inline, virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classTiXmlNode.html#a65">ToDeclaration</a>() const </td><td><a class="el" href="classTiXmlNode.html">TiXmlNode</a></td><td><code> [inline, virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classTiXmlNode.html#a71">ToDeclaration</a>()</td><td><a class="el" href="classTiXmlNode.html">TiXmlNode</a></td><td><code> [inline, virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classTiXmlNode.html#a60">ToDocument</a>() const </td><td><a class="el" href="classTiXmlNode.html">TiXmlNode</a></td><td><code> [inline, virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classTiXmlNode.html#a66">ToDocument</a>()</td><td><a class="el" href="classTiXmlNode.html">TiXmlNode</a></td><td><code> [inline, virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classTiXmlNode.html#a61">ToElement</a>() const </td><td><a class="el" href="classTiXmlNode.html">TiXmlNode</a></td><td><code> [inline, virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classTiXmlNode.html#a67">ToElement</a>()</td><td><a class="el" href="classTiXmlNode.html">TiXmlNode</a></td><td><code> [inline, virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classTiXmlNode.html#a64">ToText</a>() const </td><td><a class="el" href="classTiXmlNode.html">TiXmlNode</a></td><td><code> [inline, virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classTiXmlNode.html#a70">ToText</a>()</td><td><a class="el" href="classTiXmlNode.html">TiXmlNode</a></td><td><code> [inline, virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classTiXmlNode.html#a63">ToUnknown</a>() const </td><td><a class="el" href="classTiXmlNode.html">TiXmlNode</a></td><td><code> [inline, virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classTiXmlNode.html#a69">ToUnknown</a>()</td><td><a class="el" href="classTiXmlNode.html">TiXmlNode</a></td><td><code> [inline, virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classTiXmlNode.html#a56">Type</a>() const </td><td><a class="el" href="classTiXmlNode.html">TiXmlNode</a></td><td><code> [inline]</code></td></tr>
   <tr class="memlist"><td><a class="el" href="classTiXmlBase.html#p1">userData</a></td><td><a class="el" href="classTiXmlBase.html">TiXmlBase</a></td><td><code> [protected]</code></td></tr>
   <tr class="memlist"><td><a class="el" href="classTiXmlNode.html#a1">Value</a>() const </td><td><a class="el" href="classTiXmlNode.html">TiXmlNode</a></td><td><code> [inline]</code></td></tr>
   <tr class="memlist"><td><a class="el" href="classTiXmlNode.html#a2">ValueStr</a>() const </td><td><a class="el" href="classTiXmlNode.html">TiXmlNode</a></td><td><code> [inline]</code></td></tr>
-</table><hr size="1"><address style="align: right;"><small>Generated on Sat Oct 8 14:15:30 2005 for TinyXml by&nbsp;
+</table><hr size="1"><address style="align: right;"><small>Generated on Sun Jan 15 23:12:04 2006 for TinyXml by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4 </small></address>
 </body>
diff --git a/docs/classTiXmlComment.html b/docs/classTiXmlComment.html
index 593af9c..d819e5c 100644
--- a/docs/classTiXmlComment.html
+++ b/docs/classTiXmlComment.html
@@ -31,13 +31,21 @@
 virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTiXmlComment.html#a5">Print</a> (FILE *cfile, int depth) const </td></tr>
 
 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Write this Comment to a FILE stream. <br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="a7"></a><!-- doxytag: member="TiXmlComment::ToComment" ref="a7" args="() const " -->
+virtual const <a class="el" href="classTiXmlComment.html">TiXmlComment</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTiXmlComment.html#a7">ToComment</a> () const </td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Cast to a more defined type. Will return null not of the requested type. <br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="a8"></a><!-- doxytag: member="TiXmlComment::ToComment" ref="a8" args="()" -->
+virtual <a class="el" href="classTiXmlComment.html">TiXmlComment</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTiXmlComment.html#a8">ToComment</a> ()</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Cast to a more defined type. Will return null not of the requested type. <br></td></tr>
 </table>
 <hr><a name="_details"></a><h2>Detailed Description</h2>
 An XML comment. 
 <p>
 <hr>The documentation for this class was generated from the following file:<ul>
 <li><a class="el" href="tinyxml_8h-source.html">tinyxml.h</a></ul>
-<hr size="1"><address style="align: right;"><small>Generated on Sat Oct 8 14:15:30 2005 for TinyXml by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Sun Jan 15 23:12:04 2006 for TinyXml by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4 </small></address>
 </body>
diff --git a/docs/classTiXmlDeclaration-members.html b/docs/classTiXmlDeclaration-members.html
index 8bc63cd..e6daeae 100644
--- a/docs/classTiXmlDeclaration-members.html
+++ b/docs/classTiXmlDeclaration-members.html
@@ -62,24 +62,24 @@
   <tr class="memlist"><td><a class="el" href="classTiXmlDeclaration.html#a0">TiXmlDeclaration</a>()</td><td><a class="el" href="classTiXmlDeclaration.html">TiXmlDeclaration</a></td><td><code> [inline]</code></td></tr>
   <tr class="memlist"><td><a class="el" href="classTiXmlDeclaration.html#a1">TiXmlDeclaration</a>(const std::string &amp;_version, const std::string &amp;_encoding, const std::string &amp;_standalone)</td><td><a class="el" href="classTiXmlDeclaration.html">TiXmlDeclaration</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="classTiXmlDeclaration.html#a2">TiXmlDeclaration</a>(const char *_version, const char *_encoding, const char *_standalone)</td><td><a class="el" href="classTiXmlDeclaration.html">TiXmlDeclaration</a></td><td></td></tr>
-  <tr class="memlist"><td><a class="el" href="classTiXmlNode.html#a62">ToComment</a>() const </td><td><a class="el" href="classTiXmlNode.html">TiXmlNode</a></td><td><code> [inline]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classTiXmlNode.html#a68">ToComment</a>()</td><td><a class="el" href="classTiXmlNode.html">TiXmlNode</a></td><td><code> [inline]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classTiXmlNode.html#a65">ToDeclaration</a>() const </td><td><a class="el" href="classTiXmlNode.html">TiXmlNode</a></td><td><code> [inline]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classTiXmlNode.html#a71">ToDeclaration</a>()</td><td><a class="el" href="classTiXmlNode.html">TiXmlNode</a></td><td><code> [inline]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classTiXmlNode.html#a60">ToDocument</a>() const </td><td><a class="el" href="classTiXmlNode.html">TiXmlNode</a></td><td><code> [inline]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classTiXmlNode.html#a66">ToDocument</a>()</td><td><a class="el" href="classTiXmlNode.html">TiXmlNode</a></td><td><code> [inline]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classTiXmlNode.html#a61">ToElement</a>() const </td><td><a class="el" href="classTiXmlNode.html">TiXmlNode</a></td><td><code> [inline]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classTiXmlNode.html#a67">ToElement</a>()</td><td><a class="el" href="classTiXmlNode.html">TiXmlNode</a></td><td><code> [inline]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classTiXmlNode.html#a64">ToText</a>() const </td><td><a class="el" href="classTiXmlNode.html">TiXmlNode</a></td><td><code> [inline]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classTiXmlNode.html#a70">ToText</a>()</td><td><a class="el" href="classTiXmlNode.html">TiXmlNode</a></td><td><code> [inline]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classTiXmlNode.html#a63">ToUnknown</a>() const </td><td><a class="el" href="classTiXmlNode.html">TiXmlNode</a></td><td><code> [inline]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classTiXmlNode.html#a69">ToUnknown</a>()</td><td><a class="el" href="classTiXmlNode.html">TiXmlNode</a></td><td><code> [inline]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classTiXmlNode.html#a56">Type</a>() const </td><td><a class="el" href="classTiXmlNode.html">TiXmlNode</a></td><td><code> [inline, virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classTiXmlNode.html#a62">ToComment</a>() const </td><td><a class="el" href="classTiXmlNode.html">TiXmlNode</a></td><td><code> [inline, virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classTiXmlNode.html#a68">ToComment</a>()</td><td><a class="el" href="classTiXmlNode.html">TiXmlNode</a></td><td><code> [inline, virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classTiXmlDeclaration.html#a12">ToDeclaration</a>() const </td><td><a class="el" href="classTiXmlDeclaration.html">TiXmlDeclaration</a></td><td><code> [inline, virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classTiXmlDeclaration.html#a13">ToDeclaration</a>()</td><td><a class="el" href="classTiXmlDeclaration.html">TiXmlDeclaration</a></td><td><code> [inline, virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classTiXmlNode.html#a60">ToDocument</a>() const </td><td><a class="el" href="classTiXmlNode.html">TiXmlNode</a></td><td><code> [inline, virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classTiXmlNode.html#a66">ToDocument</a>()</td><td><a class="el" href="classTiXmlNode.html">TiXmlNode</a></td><td><code> [inline, virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classTiXmlNode.html#a61">ToElement</a>() const </td><td><a class="el" href="classTiXmlNode.html">TiXmlNode</a></td><td><code> [inline, virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classTiXmlNode.html#a67">ToElement</a>()</td><td><a class="el" href="classTiXmlNode.html">TiXmlNode</a></td><td><code> [inline, virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classTiXmlNode.html#a64">ToText</a>() const </td><td><a class="el" href="classTiXmlNode.html">TiXmlNode</a></td><td><code> [inline, virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classTiXmlNode.html#a70">ToText</a>()</td><td><a class="el" href="classTiXmlNode.html">TiXmlNode</a></td><td><code> [inline, virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classTiXmlNode.html#a63">ToUnknown</a>() const </td><td><a class="el" href="classTiXmlNode.html">TiXmlNode</a></td><td><code> [inline, virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classTiXmlNode.html#a69">ToUnknown</a>()</td><td><a class="el" href="classTiXmlNode.html">TiXmlNode</a></td><td><code> [inline, virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classTiXmlNode.html#a56">Type</a>() const </td><td><a class="el" href="classTiXmlNode.html">TiXmlNode</a></td><td><code> [inline]</code></td></tr>
   <tr class="memlist"><td><a class="el" href="classTiXmlBase.html#p1">userData</a></td><td><a class="el" href="classTiXmlBase.html">TiXmlBase</a></td><td><code> [protected]</code></td></tr>
   <tr class="memlist"><td><a class="el" href="classTiXmlNode.html#a1">Value</a>() const </td><td><a class="el" href="classTiXmlNode.html">TiXmlNode</a></td><td><code> [inline]</code></td></tr>
   <tr class="memlist"><td><a class="el" href="classTiXmlNode.html#a2">ValueStr</a>() const </td><td><a class="el" href="classTiXmlNode.html">TiXmlNode</a></td><td><code> [inline]</code></td></tr>
   <tr class="memlist"><td><a class="el" href="classTiXmlDeclaration.html#a6">Version</a>() const </td><td><a class="el" href="classTiXmlDeclaration.html">TiXmlDeclaration</a></td><td><code> [inline]</code></td></tr>
-</table><hr size="1"><address style="align: right;"><small>Generated on Sat Oct 8 14:15:30 2005 for TinyXml by&nbsp;
+</table><hr size="1"><address style="align: right;"><small>Generated on Sun Jan 15 23:12:04 2006 for TinyXml by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4 </small></address>
 </body>
diff --git a/docs/classTiXmlDeclaration.html b/docs/classTiXmlDeclaration.html
index 2c97e6e..08fa7f4 100644
--- a/docs/classTiXmlDeclaration.html
+++ b/docs/classTiXmlDeclaration.html
@@ -51,6 +51,14 @@
 virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTiXmlDeclaration.html#a10">Print</a> (FILE *cfile, int depth) const </td></tr>
 
 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Print this declaration to a FILE stream. <br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="a12"></a><!-- doxytag: member="TiXmlDeclaration::ToDeclaration" ref="a12" args="() const " -->
+virtual const <a class="el" href="classTiXmlDeclaration.html">TiXmlDeclaration</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTiXmlDeclaration.html#a12">ToDeclaration</a> () const </td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Cast to a more defined type. Will return null not of the requested type. <br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="a13"></a><!-- doxytag: member="TiXmlDeclaration::ToDeclaration" ref="a13" args="()" -->
+virtual <a class="el" href="classTiXmlDeclaration.html">TiXmlDeclaration</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTiXmlDeclaration.html#a13">ToDeclaration</a> ()</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Cast to a more defined type. Will return null not of the requested type. <br></td></tr>
 </table>
 <hr><a name="_details"></a><h2>Detailed Description</h2>
 In correct XML the declaration is the first entry in the file. 
@@ -62,7 +70,7 @@
 <p>
 <hr>The documentation for this class was generated from the following file:<ul>
 <li><a class="el" href="tinyxml_8h-source.html">tinyxml.h</a></ul>
-<hr size="1"><address style="align: right;"><small>Generated on Sat Oct 8 14:15:30 2005 for TinyXml by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Sun Jan 15 23:12:04 2006 for TinyXml by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4 </small></address>
 </body>
diff --git a/docs/classTiXmlDocument-members.html b/docs/classTiXmlDocument-members.html
index c8bf675..d73a17f 100644
--- a/docs/classTiXmlDocument-members.html
+++ b/docs/classTiXmlDocument-members.html
@@ -7,14 +7,14 @@
 <div class="qindex"><a class="qindex" href="index.html">Main&nbsp;Page</a> | <a class="qindex" href="hierarchy.html">Class&nbsp;Hierarchy</a> | <a class="qindex" href="annotated.html">Class&nbsp;List</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="functions.html">Class&nbsp;Members</a></div>
 <h1>TiXmlDocument Member List</h1>This is the complete list of members for <a class="el" href="classTiXmlDocument.html">TiXmlDocument</a>, including all inherited members.<p><table>
   <tr class="memlist"><td><a class="el" href="classTiXmlNode.html#a5">Clear</a>()</td><td><a class="el" href="classTiXmlNode.html">TiXmlNode</a></td><td></td></tr>
-  <tr class="memlist"><td><a class="el" href="classTiXmlDocument.html#a22">ClearError</a>()</td><td><a class="el" href="classTiXmlDocument.html">TiXmlDocument</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classTiXmlDocument.html#a24">ClearError</a>()</td><td><a class="el" href="classTiXmlDocument.html">TiXmlDocument</a></td><td><code> [inline]</code></td></tr>
   <tr class="memlist"><td><a class="el" href="classTiXmlDocument.html#b1">Clone</a>() const </td><td><a class="el" href="classTiXmlDocument.html">TiXmlDocument</a></td><td><code> [protected, virtual]</code></td></tr>
   <tr class="memlist"><td><a class="el" href="classTiXmlBase.html#a4">Column</a>() const </td><td><a class="el" href="classTiXmlBase.html">TiXmlBase</a></td><td><code> [inline]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classTiXmlDocument.html#a15">Error</a>() const </td><td><a class="el" href="classTiXmlDocument.html">TiXmlDocument</a></td><td><code> [inline]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classTiXmlDocument.html#a19">ErrorCol</a>()</td><td><a class="el" href="classTiXmlDocument.html">TiXmlDocument</a></td><td><code> [inline]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classTiXmlDocument.html#a16">ErrorDesc</a>() const </td><td><a class="el" href="classTiXmlDocument.html">TiXmlDocument</a></td><td><code> [inline]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classTiXmlDocument.html#a17">ErrorId</a>() const </td><td><a class="el" href="classTiXmlDocument.html">TiXmlDocument</a></td><td><code> [inline]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classTiXmlDocument.html#a18">ErrorRow</a>()</td><td><a class="el" href="classTiXmlDocument.html">TiXmlDocument</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classTiXmlDocument.html#a17">Error</a>() const </td><td><a class="el" href="classTiXmlDocument.html">TiXmlDocument</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classTiXmlDocument.html#a21">ErrorCol</a>()</td><td><a class="el" href="classTiXmlDocument.html">TiXmlDocument</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classTiXmlDocument.html#a18">ErrorDesc</a>() const </td><td><a class="el" href="classTiXmlDocument.html">TiXmlDocument</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classTiXmlDocument.html#a19">ErrorId</a>() const </td><td><a class="el" href="classTiXmlDocument.html">TiXmlDocument</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classTiXmlDocument.html#a20">ErrorRow</a>()</td><td><a class="el" href="classTiXmlDocument.html">TiXmlDocument</a></td><td><code> [inline]</code></td></tr>
   <tr class="memlist"><td><a class="el" href="classTiXmlNode.html#a8">FirstChild</a>() const </td><td><a class="el" href="classTiXmlNode.html">TiXmlNode</a></td><td><code> [inline]</code></td></tr>
   <tr class="memlist"><td><a class="el" href="classTiXmlNode.html#a10">FirstChild</a>(const char *value) const </td><td><a class="el" href="classTiXmlNode.html">TiXmlNode</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="classTiXmlNode.html#a11">FirstChild</a>(const char *value)</td><td><a class="el" href="classTiXmlNode.html">TiXmlNode</a></td><td></td></tr>
@@ -40,7 +40,8 @@
   <tr class="memlist"><td><a class="el" href="classTiXmlNode.html#a27">LinkEndChild</a>(TiXmlNode *addThis)</td><td><a class="el" href="classTiXmlNode.html">TiXmlNode</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="classTiXmlDocument.html#a6">LoadFile</a>(TiXmlEncoding encoding=TIXML_DEFAULT_ENCODING)</td><td><a class="el" href="classTiXmlDocument.html">TiXmlDocument</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="classTiXmlDocument.html#a8">LoadFile</a>(const char *filename, TiXmlEncoding encoding=TIXML_DEFAULT_ENCODING)</td><td><a class="el" href="classTiXmlDocument.html">TiXmlDocument</a></td><td></td></tr>
-  <tr class="memlist"><td><a class="el" href="classTiXmlDocument.html#a10">LoadFile</a>(const std::string &amp;filename, TiXmlEncoding encoding=TIXML_DEFAULT_ENCODING)</td><td><a class="el" href="classTiXmlDocument.html">TiXmlDocument</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classTiXmlDocument.html#a10">LoadFile</a>(FILE *, TiXmlEncoding encoding=TIXML_DEFAULT_ENCODING)</td><td><a class="el" href="classTiXmlDocument.html">TiXmlDocument</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="classTiXmlDocument.html#a12">LoadFile</a>(const std::string &amp;filename, TiXmlEncoding encoding=TIXML_DEFAULT_ENCODING)</td><td><a class="el" href="classTiXmlDocument.html">TiXmlDocument</a></td><td><code> [inline]</code></td></tr>
   <tr class="memlist"><td><a class="el" href="classTiXmlNode.html#a38">NextSibling</a>(const std::string &amp;_value) const </td><td><a class="el" href="classTiXmlNode.html">TiXmlNode</a></td><td><code> [inline]</code></td></tr>
   <tr class="memlist"><td><a class="el" href="classTiXmlNode.html#a39">NextSibling</a>(const std::string &amp;_value)</td><td><a class="el" href="classTiXmlNode.html">TiXmlNode</a></td><td><code> [inline]</code></td></tr>
   <tr class="memlist"><td><a class="el" href="classTiXmlNode.html#a40">NextSibling</a>() const </td><td><a class="el" href="classTiXmlNode.html">TiXmlNode</a></td><td><code> [inline]</code></td></tr>
@@ -55,44 +56,45 @@
   <tr class="memlist"><td><a class="el" href="classTiXmlNode.html#n4">operator&lt;&lt;</a>(std::string &amp;out, const TiXmlNode &amp;base)</td><td><a class="el" href="classTiXmlNode.html">TiXmlNode</a></td><td><code> [friend]</code></td></tr>
   <tr class="memlist"><td><a class="el" href="classTiXmlNode.html#n2">operator&gt;&gt;</a>(std::istream &amp;in, TiXmlNode &amp;base)</td><td><a class="el" href="classTiXmlNode.html">TiXmlNode</a></td><td><code> [friend]</code></td></tr>
   <tr class="memlist"><td><a class="el" href="classTiXmlNode.html#a6">Parent</a>()</td><td><a class="el" href="classTiXmlNode.html">TiXmlNode</a></td><td><code> [inline]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classTiXmlDocument.html#a12">Parse</a>(const char *p, TiXmlParsingData *data=0, TiXmlEncoding encoding=TIXML_DEFAULT_ENCODING)</td><td><a class="el" href="classTiXmlDocument.html">TiXmlDocument</a></td><td><code> [virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classTiXmlDocument.html#a14">Parse</a>(const char *p, TiXmlParsingData *data=0, TiXmlEncoding encoding=TIXML_DEFAULT_ENCODING)</td><td><a class="el" href="classTiXmlDocument.html">TiXmlDocument</a></td><td><code> [virtual]</code></td></tr>
   <tr class="memlist"><td><a class="el" href="classTiXmlNode.html#a32">PreviousSibling</a>() const </td><td><a class="el" href="classTiXmlNode.html">TiXmlNode</a></td><td><code> [inline]</code></td></tr>
   <tr class="memlist"><td><a class="el" href="classTiXmlNode.html#a34">PreviousSibling</a>(const char *) const </td><td><a class="el" href="classTiXmlNode.html">TiXmlNode</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="classTiXmlNode.html#a36">PreviousSibling</a>(const std::string &amp;_value) const </td><td><a class="el" href="classTiXmlNode.html">TiXmlNode</a></td><td><code> [inline]</code></td></tr>
   <tr class="memlist"><td><a class="el" href="classTiXmlNode.html#a37">PreviousSibling</a>(const std::string &amp;_value)</td><td><a class="el" href="classTiXmlNode.html">TiXmlNode</a></td><td><code> [inline]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classTiXmlDocument.html#a23">Print</a>() const </td><td><a class="el" href="classTiXmlDocument.html">TiXmlDocument</a></td><td><code> [inline]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classTiXmlDocument.html#a24">Print</a>(FILE *cfile, int depth=0) const </td><td><a class="el" href="classTiXmlDocument.html">TiXmlDocument</a></td><td><code> [virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classTiXmlDocument.html#a25">Print</a>() const </td><td><a class="el" href="classTiXmlDocument.html">TiXmlDocument</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classTiXmlDocument.html#a26">Print</a>(FILE *cfile, int depth=0) const </td><td><a class="el" href="classTiXmlDocument.html">TiXmlDocument</a></td><td><code> [virtual]</code></td></tr>
   <tr class="memlist"><td><a class="el" href="classTiXmlNode.html#a31">RemoveChild</a>(TiXmlNode *removeThis)</td><td><a class="el" href="classTiXmlNode.html">TiXmlNode</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="classTiXmlNode.html#a30">ReplaceChild</a>(TiXmlNode *replaceThis, const TiXmlNode &amp;withThis)</td><td><a class="el" href="classTiXmlNode.html">TiXmlNode</a></td><td></td></tr>
-  <tr class="memlist"><td><a class="el" href="classTiXmlDocument.html#a13">RootElement</a>() const </td><td><a class="el" href="classTiXmlDocument.html">TiXmlDocument</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classTiXmlDocument.html#a15">RootElement</a>() const </td><td><a class="el" href="classTiXmlDocument.html">TiXmlDocument</a></td><td><code> [inline]</code></td></tr>
   <tr class="memlist"><td><a class="el" href="classTiXmlBase.html#a3">Row</a>() const </td><td><a class="el" href="classTiXmlBase.html">TiXmlBase</a></td><td><code> [inline]</code></td></tr>
   <tr class="memlist"><td><a class="el" href="classTiXmlDocument.html#a7">SaveFile</a>() const </td><td><a class="el" href="classTiXmlDocument.html">TiXmlDocument</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="classTiXmlDocument.html#a9">SaveFile</a>(const char *filename) const </td><td><a class="el" href="classTiXmlDocument.html">TiXmlDocument</a></td><td></td></tr>
-  <tr class="memlist"><td><a class="el" href="classTiXmlDocument.html#a11">SaveFile</a>(const std::string &amp;filename) const </td><td><a class="el" href="classTiXmlDocument.html">TiXmlDocument</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classTiXmlDocument.html#a11">SaveFile</a>(FILE *) const </td><td><a class="el" href="classTiXmlDocument.html">TiXmlDocument</a></td><td></td></tr>
+  <tr class="memlist"><td><a class="el" href="classTiXmlDocument.html#a13">SaveFile</a>(const std::string &amp;filename) const </td><td><a class="el" href="classTiXmlDocument.html">TiXmlDocument</a></td><td><code> [inline]</code></td></tr>
   <tr class="memlist"><td><a class="el" href="classTiXmlBase.html#e0">SetCondenseWhiteSpace</a>(bool condense)</td><td><a class="el" href="classTiXmlBase.html">TiXmlBase</a></td><td><code> [inline, static]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classTiXmlDocument.html#a20">SetTabSize</a>(int _tabsize)</td><td><a class="el" href="classTiXmlDocument.html">TiXmlDocument</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classTiXmlDocument.html#a22">SetTabSize</a>(int _tabsize)</td><td><a class="el" href="classTiXmlDocument.html">TiXmlDocument</a></td><td><code> [inline]</code></td></tr>
   <tr class="memlist"><td><a class="el" href="classTiXmlNode.html#a3">SetValue</a>(const char *_value)</td><td><a class="el" href="classTiXmlNode.html">TiXmlNode</a></td><td><code> [inline]</code></td></tr>
   <tr class="memlist"><td><a class="el" href="classTiXmlNode.html#a4">SetValue</a>(const std::string &amp;_value)</td><td><a class="el" href="classTiXmlNode.html">TiXmlNode</a></td><td><code> [inline]</code></td></tr>
   <tr class="memlist"><td><a class="el" href="classTiXmlDocument.html#a0">TiXmlDocument</a>()</td><td><a class="el" href="classTiXmlDocument.html">TiXmlDocument</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="classTiXmlDocument.html#a1">TiXmlDocument</a>(const char *documentName)</td><td><a class="el" href="classTiXmlDocument.html">TiXmlDocument</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="classTiXmlDocument.html#a2">TiXmlDocument</a>(const std::string &amp;documentName)</td><td><a class="el" href="classTiXmlDocument.html">TiXmlDocument</a></td><td></td></tr>
-  <tr class="memlist"><td><a class="el" href="classTiXmlNode.html#a62">ToComment</a>() const </td><td><a class="el" href="classTiXmlNode.html">TiXmlNode</a></td><td><code> [inline]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classTiXmlNode.html#a68">ToComment</a>()</td><td><a class="el" href="classTiXmlNode.html">TiXmlNode</a></td><td><code> [inline]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classTiXmlNode.html#a65">ToDeclaration</a>() const </td><td><a class="el" href="classTiXmlNode.html">TiXmlNode</a></td><td><code> [inline]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classTiXmlNode.html#a71">ToDeclaration</a>()</td><td><a class="el" href="classTiXmlNode.html">TiXmlNode</a></td><td><code> [inline]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classTiXmlNode.html#a60">ToDocument</a>() const </td><td><a class="el" href="classTiXmlNode.html">TiXmlNode</a></td><td><code> [inline]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classTiXmlNode.html#a66">ToDocument</a>()</td><td><a class="el" href="classTiXmlNode.html">TiXmlNode</a></td><td><code> [inline]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classTiXmlNode.html#a61">ToElement</a>() const </td><td><a class="el" href="classTiXmlNode.html">TiXmlNode</a></td><td><code> [inline]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classTiXmlNode.html#a67">ToElement</a>()</td><td><a class="el" href="classTiXmlNode.html">TiXmlNode</a></td><td><code> [inline]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classTiXmlNode.html#a64">ToText</a>() const </td><td><a class="el" href="classTiXmlNode.html">TiXmlNode</a></td><td><code> [inline]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classTiXmlNode.html#a70">ToText</a>()</td><td><a class="el" href="classTiXmlNode.html">TiXmlNode</a></td><td><code> [inline]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classTiXmlNode.html#a63">ToUnknown</a>() const </td><td><a class="el" href="classTiXmlNode.html">TiXmlNode</a></td><td><code> [inline]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classTiXmlNode.html#a69">ToUnknown</a>()</td><td><a class="el" href="classTiXmlNode.html">TiXmlNode</a></td><td><code> [inline]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classTiXmlNode.html#a56">Type</a>() const </td><td><a class="el" href="classTiXmlNode.html">TiXmlNode</a></td><td><code> [inline, virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classTiXmlNode.html#a62">ToComment</a>() const </td><td><a class="el" href="classTiXmlNode.html">TiXmlNode</a></td><td><code> [inline, virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classTiXmlNode.html#a68">ToComment</a>()</td><td><a class="el" href="classTiXmlNode.html">TiXmlNode</a></td><td><code> [inline, virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classTiXmlNode.html#a65">ToDeclaration</a>() const </td><td><a class="el" href="classTiXmlNode.html">TiXmlNode</a></td><td><code> [inline, virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classTiXmlNode.html#a71">ToDeclaration</a>()</td><td><a class="el" href="classTiXmlNode.html">TiXmlNode</a></td><td><code> [inline, virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classTiXmlDocument.html#a28">ToDocument</a>() const </td><td><a class="el" href="classTiXmlDocument.html">TiXmlDocument</a></td><td><code> [inline, virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classTiXmlDocument.html#a29">ToDocument</a>()</td><td><a class="el" href="classTiXmlDocument.html">TiXmlDocument</a></td><td><code> [inline, virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classTiXmlNode.html#a61">ToElement</a>() const </td><td><a class="el" href="classTiXmlNode.html">TiXmlNode</a></td><td><code> [inline, virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classTiXmlNode.html#a67">ToElement</a>()</td><td><a class="el" href="classTiXmlNode.html">TiXmlNode</a></td><td><code> [inline, virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classTiXmlNode.html#a64">ToText</a>() const </td><td><a class="el" href="classTiXmlNode.html">TiXmlNode</a></td><td><code> [inline, virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classTiXmlNode.html#a70">ToText</a>()</td><td><a class="el" href="classTiXmlNode.html">TiXmlNode</a></td><td><code> [inline, virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classTiXmlNode.html#a63">ToUnknown</a>() const </td><td><a class="el" href="classTiXmlNode.html">TiXmlNode</a></td><td><code> [inline, virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classTiXmlNode.html#a69">ToUnknown</a>()</td><td><a class="el" href="classTiXmlNode.html">TiXmlNode</a></td><td><code> [inline, virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classTiXmlNode.html#a56">Type</a>() const </td><td><a class="el" href="classTiXmlNode.html">TiXmlNode</a></td><td><code> [inline]</code></td></tr>
   <tr class="memlist"><td><a class="el" href="classTiXmlBase.html#p1">userData</a></td><td><a class="el" href="classTiXmlBase.html">TiXmlBase</a></td><td><code> [protected]</code></td></tr>
   <tr class="memlist"><td><a class="el" href="classTiXmlNode.html#a1">Value</a>() const </td><td><a class="el" href="classTiXmlNode.html">TiXmlNode</a></td><td><code> [inline]</code></td></tr>
   <tr class="memlist"><td><a class="el" href="classTiXmlNode.html#a2">ValueStr</a>() const </td><td><a class="el" href="classTiXmlNode.html">TiXmlNode</a></td><td><code> [inline]</code></td></tr>
-</table><hr size="1"><address style="align: right;"><small>Generated on Sat Oct 8 14:15:30 2005 for TinyXml by&nbsp;
+</table><hr size="1"><address style="align: right;"><small>Generated on Sun Jan 15 23:12:04 2006 for TinyXml by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4 </small></address>
 </body>
diff --git a/docs/classTiXmlDocument.html b/docs/classTiXmlDocument.html
index 542ae2b..63bd212 100644
--- a/docs/classTiXmlDocument.html
+++ b/docs/classTiXmlDocument.html
@@ -46,49 +46,64 @@
 bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTiXmlDocument.html#a9">SaveFile</a> (const char *filename) const </td></tr>
 
 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Save a file using the given filename. Returns true if successful. <br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTiXmlDocument.html#a10">LoadFile</a> (const std::string &amp;filename, TiXmlEncoding encoding=TIXML_DEFAULT_ENCODING)</td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTiXmlDocument.html#a10">LoadFile</a> (FILE *, TiXmlEncoding encoding=TIXML_DEFAULT_ENCODING)</td></tr>
 
-<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="a11"></a><!-- doxytag: member="TiXmlDocument::SaveFile" ref="a11" args="(const std::string &amp;filename) const " -->
-bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTiXmlDocument.html#a11">SaveFile</a> (const std::string &amp;filename) const </td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Load a file using the given FILE*.  <a href="#a10"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="a11"></a><!-- doxytag: member="TiXmlDocument::SaveFile" ref="a11" args="(FILE *) const " -->
+bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTiXmlDocument.html#a11">SaveFile</a> (FILE *) const </td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Save a file using the given FILE*. Returns true if successful. <br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTiXmlDocument.html#a12">LoadFile</a> (const std::string &amp;filename, TiXmlEncoding encoding=TIXML_DEFAULT_ENCODING)</td></tr>
+
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="a13"></a><!-- doxytag: member="TiXmlDocument::SaveFile" ref="a13" args="(const std::string &amp;filename) const " -->
+bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTiXmlDocument.html#a13">SaveFile</a> (const std::string &amp;filename) const </td></tr>
 
 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">&lt; STL std::string version. <br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual const char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTiXmlDocument.html#a12">Parse</a> (const char *p, TiXmlParsingData *data=0, TiXmlEncoding encoding=TIXML_DEFAULT_ENCODING)</td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual const char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTiXmlDocument.html#a14">Parse</a> (const char *p, TiXmlParsingData *data=0, TiXmlEncoding encoding=TIXML_DEFAULT_ENCODING)</td></tr>
 
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Parse the given null terminated block of xml data.  <a href="#a12"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">const <a class="el" href="classTiXmlElement.html">TiXmlElement</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTiXmlDocument.html#a13">RootElement</a> () const </td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Parse the given null terminated block of xml data.  <a href="#a14"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">const <a class="el" href="classTiXmlElement.html">TiXmlElement</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTiXmlDocument.html#a15">RootElement</a> () const </td></tr>
 
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the root element -- the only top level element -- of the document.  <a href="#a13"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTiXmlDocument.html#a15">Error</a> () const </td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get the root element -- the only top level element -- of the document.  <a href="#a15"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTiXmlDocument.html#a17">Error</a> () const </td></tr>
 
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">If an error occurs, Error will be set to true.  <a href="#a15"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="a16"></a><!-- doxytag: member="TiXmlDocument::ErrorDesc" ref="a16" args="() const " -->
-const char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTiXmlDocument.html#a16">ErrorDesc</a> () const </td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">If an error occurs, Error will be set to true.  <a href="#a17"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="a18"></a><!-- doxytag: member="TiXmlDocument::ErrorDesc" ref="a18" args="() const " -->
+const char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTiXmlDocument.html#a18">ErrorDesc</a> () const </td></tr>
 
 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Contains a textual (english) description of the error if one occurs. <br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTiXmlDocument.html#a17">ErrorId</a> () const </td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTiXmlDocument.html#a19">ErrorId</a> () const </td></tr>
 
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Generally, you probably want the error string ( <a class="el" href="classTiXmlDocument.html#a16">ErrorDesc()</a> ).  <a href="#a17"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTiXmlDocument.html#a18">ErrorRow</a> ()</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Generally, you probably want the error string ( <a class="el" href="classTiXmlDocument.html#a18">ErrorDesc()</a> ).  <a href="#a19"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTiXmlDocument.html#a20">ErrorRow</a> ()</td></tr>
 
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the location (if known) of the error.  <a href="#a18"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="a19"></a><!-- doxytag: member="TiXmlDocument::ErrorCol" ref="a19" args="()" -->
-int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTiXmlDocument.html#a19">ErrorCol</a> ()</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns the location (if known) of the error.  <a href="#a20"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="a21"></a><!-- doxytag: member="TiXmlDocument::ErrorCol" ref="a21" args="()" -->
+int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTiXmlDocument.html#a21">ErrorCol</a> ()</td></tr>
 
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The column where the error occured. See <a class="el" href="classTiXmlDocument.html#a18">ErrorRow()</a>. <br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTiXmlDocument.html#a20">SetTabSize</a> (int _tabsize)</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The column where the error occured. See <a class="el" href="classTiXmlDocument.html#a20">ErrorRow()</a>. <br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTiXmlDocument.html#a22">SetTabSize</a> (int _tabsize)</td></tr>
 
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><a class="el" href="classTiXmlDocument.html#a20">SetTabSize()</a> allows the error reporting functions (<a class="el" href="classTiXmlDocument.html#a18">ErrorRow()</a> and <a class="el" href="classTiXmlDocument.html#a19">ErrorCol()</a>) to report the correct values for row and column.  <a href="#a20"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTiXmlDocument.html#a22">ClearError</a> ()</td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><a class="el" href="classTiXmlDocument.html#a22">SetTabSize()</a> allows the error reporting functions (<a class="el" href="classTiXmlDocument.html#a20">ErrorRow()</a> and <a class="el" href="classTiXmlDocument.html#a21">ErrorCol()</a>) to report the correct values for row and column.  <a href="#a22"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTiXmlDocument.html#a24">ClearError</a> ()</td></tr>
 
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">If you have handled the error, it can be reset with this call.  <a href="#a22"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="a23"></a><!-- doxytag: member="TiXmlDocument::Print" ref="a23" args="() const " -->
-void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTiXmlDocument.html#a23">Print</a> () const </td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">If you have handled the error, it can be reset with this call.  <a href="#a24"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="a25"></a><!-- doxytag: member="TiXmlDocument::Print" ref="a25" args="() const " -->
+void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTiXmlDocument.html#a25">Print</a> () const </td></tr>
 
 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Dump the document to standard out. <br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="a24"></a><!-- doxytag: member="TiXmlDocument::Print" ref="a24" args="(FILE *cfile, int depth=0) const " -->
-virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTiXmlDocument.html#a24">Print</a> (FILE *cfile, int depth=0) const </td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="a26"></a><!-- doxytag: member="TiXmlDocument::Print" ref="a26" args="(FILE *cfile, int depth=0) const " -->
+virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTiXmlDocument.html#a26">Print</a> (FILE *cfile, int depth=0) const </td></tr>
 
 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Print this Document to a FILE stream. <br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="a28"></a><!-- doxytag: member="TiXmlDocument::ToDocument" ref="a28" args="() const " -->
+virtual const <a class="el" href="classTiXmlDocument.html">TiXmlDocument</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTiXmlDocument.html#a28">ToDocument</a> () const </td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Cast to a more defined type. Will return null not of the requested type. <br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="a29"></a><!-- doxytag: member="TiXmlDocument::ToDocument" ref="a29" args="()" -->
+virtual <a class="el" href="classTiXmlDocument.html">TiXmlDocument</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTiXmlDocument.html#a29">ToDocument</a> ()</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Cast to a more defined type. Will return null not of the requested type. <br></td></tr>
 <tr><td colspan="2"><br><h2>Protected Member Functions</h2></td></tr>
 <tr><td class="memItemLeft" nowrap align="right" valign="top">virtual <a class="el" href="classTiXmlNode.html">TiXmlNode</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTiXmlDocument.html#b1">Clone</a> () const </td></tr>
 
@@ -100,7 +115,7 @@
 A document binds together all the XML pieces. It can be saved, loaded, and printed to the screen. The 'value' of a document node is the xml file name.
 <p>
 <hr><h2>Member Function Documentation</h2>
-<a class="anchor" name="a22"></a><!-- doxytag: member="TiXmlDocument::ClearError" ref="a22" args="()" --><p>
+<a class="anchor" name="a24"></a><!-- doxytag: member="TiXmlDocument::ClearError" ref="a24" args="()" --><p>
 <table class="mdTable" cellpadding="2" cellspacing="0">
   <tr>
     <td class="mdRow">
@@ -160,7 +175,7 @@
 Implements <a class="el" href="classTiXmlNode.html#a72">TiXmlNode</a>.    </td>
   </tr>
 </table>
-<a class="anchor" name="a15"></a><!-- doxytag: member="TiXmlDocument::Error" ref="a15" args="() const " --><p>
+<a class="anchor" name="a17"></a><!-- doxytag: member="TiXmlDocument::Error" ref="a17" args="() const " --><p>
 <table class="mdTable" cellpadding="2" cellspacing="0">
   <tr>
     <td class="mdRow">
@@ -187,11 +202,11 @@
 If an error occurs, Error will be set to true. 
 <p>
 Also,<ul>
-<li>The <a class="el" href="classTiXmlDocument.html#a17">ErrorId()</a> will contain the integer identifier of the error (not generally useful)</li><li>The <a class="el" href="classTiXmlDocument.html#a16">ErrorDesc()</a> method will return the name of the error. (very useful)</li><li>The <a class="el" href="classTiXmlDocument.html#a18">ErrorRow()</a> and <a class="el" href="classTiXmlDocument.html#a19">ErrorCol()</a> will return the location of the error (if known)</li></ul>
+<li>The <a class="el" href="classTiXmlDocument.html#a19">ErrorId()</a> will contain the integer identifier of the error (not generally useful)</li><li>The <a class="el" href="classTiXmlDocument.html#a18">ErrorDesc()</a> method will return the name of the error. (very useful)</li><li>The <a class="el" href="classTiXmlDocument.html#a20">ErrorRow()</a> and <a class="el" href="classTiXmlDocument.html#a21">ErrorCol()</a> will return the location of the error (if known)</li></ul>
     </td>
   </tr>
 </table>
-<a class="anchor" name="a17"></a><!-- doxytag: member="TiXmlDocument::ErrorId" ref="a17" args="() const " --><p>
+<a class="anchor" name="a19"></a><!-- doxytag: member="TiXmlDocument::ErrorId" ref="a19" args="() const " --><p>
 <table class="mdTable" cellpadding="2" cellspacing="0">
   <tr>
     <td class="mdRow">
@@ -215,12 +230,12 @@
     <td>
 
 <p>
-Generally, you probably want the error string ( <a class="el" href="classTiXmlDocument.html#a16">ErrorDesc()</a> ). 
+Generally, you probably want the error string ( <a class="el" href="classTiXmlDocument.html#a18">ErrorDesc()</a> ). 
 <p>
 But if you prefer the ErrorId, this function will fetch it.    </td>
   </tr>
 </table>
-<a class="anchor" name="a18"></a><!-- doxytag: member="TiXmlDocument::ErrorRow" ref="a18" args="()" --><p>
+<a class="anchor" name="a20"></a><!-- doxytag: member="TiXmlDocument::ErrorRow" ref="a20" args="()" --><p>
 <table class="mdTable" cellpadding="2" cellspacing="0">
   <tr>
     <td class="mdRow">
@@ -247,11 +262,11 @@
 Returns the location (if known) of the error. 
 <p>
 The first column is column 1, and the first row is row 1. A value of 0 means the row and column wasn't applicable (memory errors, for example, have no row/column) or the parser lost the error. (An error in the error reporting, in that case.)<p>
-<dl compact><dt><b>See also:</b></dt><dd><a class="el" href="classTiXmlDocument.html#a20">SetTabSize</a>, <a class="el" href="classTiXmlBase.html#a3">Row</a>, <a class="el" href="classTiXmlBase.html#a4">Column</a></dd></dl>
+<dl compact><dt><b>See also:</b></dt><dd><a class="el" href="classTiXmlDocument.html#a22">SetTabSize</a>, <a class="el" href="classTiXmlBase.html#a3">Row</a>, <a class="el" href="classTiXmlBase.html#a4">Column</a></dd></dl>
     </td>
   </tr>
 </table>
-<a class="anchor" name="a10"></a><!-- doxytag: member="TiXmlDocument::LoadFile" ref="a10" args="(const std::string &amp;filename, TiXmlEncoding encoding=TIXML_DEFAULT_ENCODING)" --><p>
+<a class="anchor" name="a12"></a><!-- doxytag: member="TiXmlDocument::LoadFile" ref="a12" args="(const std::string &amp;filename, TiXmlEncoding encoding=TIXML_DEFAULT_ENCODING)" --><p>
 <table class="mdTable" cellpadding="2" cellspacing="0">
   <tr>
     <td class="mdRow">
@@ -293,6 +308,45 @@
 </dl>    </td>
   </tr>
 </table>
+<a class="anchor" name="a10"></a><!-- doxytag: member="TiXmlDocument::LoadFile" ref="a10" args="(FILE *, TiXmlEncoding encoding=TIXML_DEFAULT_ENCODING)" --><p>
+<table class="mdTable" cellpadding="2" cellspacing="0">
+  <tr>
+    <td class="mdRow">
+      <table cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td class="md" nowrap valign="top">bool TiXmlDocument::LoadFile           </td>
+          <td class="md" valign="top">(&nbsp;</td>
+          <td class="md" nowrap valign="top">FILE *&nbsp;</td>
+          <td class="mdname" nowrap>, </td>
+        </tr>
+        <tr>
+          <td class="md" nowrap align="right"></td>
+          <td class="md"></td>
+          <td class="md" nowrap>TiXmlEncoding&nbsp;</td>
+          <td class="mdname" nowrap> <em>encoding</em> = <code>TIXML_DEFAULT_ENCODING</code></td>
+        </tr>
+        <tr>
+          <td class="md"></td>
+          <td class="md">)&nbsp;</td>
+          <td class="md" colspan="2"></td>
+        </tr>
+      </table>
+    </td>
+  </tr>
+</table>
+<table cellspacing="5" cellpadding="0" border="0">
+  <tr>
+    <td>
+      &nbsp;
+    </td>
+    <td>
+
+<p>
+Load a file using the given FILE*. 
+<p>
+Returns true if successful. Note that this method doesn't stream - the entire object pointed at by the FILE* will be interpreted as an XML file. TinyXML doesn't stream in XML from the current file location. Streaming may be added in the future.    </td>
+  </tr>
+</table>
 <a class="anchor" name="a6"></a><!-- doxytag: member="TiXmlDocument::LoadFile" ref="a6" args="(TiXmlEncoding encoding=TIXML_DEFAULT_ENCODING)" --><p>
 <table class="mdTable" cellpadding="2" cellspacing="0">
   <tr>
@@ -323,7 +377,7 @@
 Returns true if successful. Will delete any existing document data before loading.    </td>
   </tr>
 </table>
-<a class="anchor" name="a12"></a><!-- doxytag: member="TiXmlDocument::Parse" ref="a12" args="(const char *p, TiXmlParsingData *data=0, TiXmlEncoding encoding=TIXML_DEFAULT_ENCODING)" --><p>
+<a class="anchor" name="a14"></a><!-- doxytag: member="TiXmlDocument::Parse" ref="a14" args="(const char *p, TiXmlParsingData *data=0, TiXmlEncoding encoding=TIXML_DEFAULT_ENCODING)" --><p>
 <table class="mdTable" cellpadding="2" cellspacing="0">
   <tr>
     <td class="mdRow">
@@ -370,7 +424,7 @@
 Implements <a class="el" href="classTiXmlBase.html">TiXmlBase</a>.    </td>
   </tr>
 </table>
-<a class="anchor" name="a13"></a><!-- doxytag: member="TiXmlDocument::RootElement" ref="a13" args="() const " --><p>
+<a class="anchor" name="a15"></a><!-- doxytag: member="TiXmlDocument::RootElement" ref="a15" args="() const " --><p>
 <table class="mdTable" cellpadding="2" cellspacing="0">
   <tr>
     <td class="mdRow">
@@ -399,7 +453,7 @@
 In well formed XML, there should only be one. TinyXml is tolerant of multiple elements at the document level.    </td>
   </tr>
 </table>
-<a class="anchor" name="a20"></a><!-- doxytag: member="TiXmlDocument::SetTabSize" ref="a20" args="(int _tabsize)" --><p>
+<a class="anchor" name="a22"></a><!-- doxytag: member="TiXmlDocument::SetTabSize" ref="a22" args="(int _tabsize)" --><p>
 <table class="mdTable" cellpadding="2" cellspacing="0">
   <tr>
     <td class="mdRow">
@@ -424,7 +478,7 @@
     <td>
 
 <p>
-<a class="el" href="classTiXmlDocument.html#a20">SetTabSize()</a> allows the error reporting functions (<a class="el" href="classTiXmlDocument.html#a18">ErrorRow()</a> and <a class="el" href="classTiXmlDocument.html#a19">ErrorCol()</a>) to report the correct values for row and column. 
+<a class="el" href="classTiXmlDocument.html#a22">SetTabSize()</a> allows the error reporting functions (<a class="el" href="classTiXmlDocument.html#a20">ErrorRow()</a> and <a class="el" href="classTiXmlDocument.html#a21">ErrorCol()</a>) to report the correct values for row and column. 
 <p>
 It does not change the output or input in any way.<p>
 By calling this method, with a tab size greater than 0, the row and column of each node and attribute is stored when the file is loaded. Very useful for tracking the DOM back in to the source file.<p>
@@ -440,7 +494,7 @@
 </table>
 <hr>The documentation for this class was generated from the following file:<ul>
 <li><a class="el" href="tinyxml_8h-source.html">tinyxml.h</a></ul>
-<hr size="1"><address style="align: right;"><small>Generated on Sat Oct 8 14:15:30 2005 for TinyXml by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Sun Jan 15 23:12:04 2006 for TinyXml by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4 </small></address>
 </body>
diff --git a/docs/classTiXmlElement-members.html b/docs/classTiXmlElement-members.html
index dfbf1d9..e465dd8 100644
--- a/docs/classTiXmlElement-members.html
+++ b/docs/classTiXmlElement-members.html
@@ -66,7 +66,7 @@
   <tr class="memlist"><td><a class="el" href="classTiXmlNode.html#a30">ReplaceChild</a>(TiXmlNode *replaceThis, const TiXmlNode &amp;withThis)</td><td><a class="el" href="classTiXmlNode.html">TiXmlNode</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="classTiXmlBase.html#a3">Row</a>() const </td><td><a class="el" href="classTiXmlBase.html">TiXmlBase</a></td><td><code> [inline]</code></td></tr>
   <tr class="memlist"><td><a class="el" href="classTiXmlElement.html#a11">SetAttribute</a>(const char *name, const char *_value)</td><td><a class="el" href="classTiXmlElement.html">TiXmlElement</a></td><td></td></tr>
-  <tr class="memlist"><td><a class="el" href="classTiXmlElement.html#a17">SetAttribute</a>(const std::string &amp;name, const std::string &amp;_value)</td><td><a class="el" href="classTiXmlElement.html">TiXmlElement</a></td><td><code> [inline]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classTiXmlElement.html#a17">SetAttribute</a>(const std::string &amp;name, const std::string &amp;_value)</td><td><a class="el" href="classTiXmlElement.html">TiXmlElement</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="classTiXmlElement.html#a19">SetAttribute</a>(const char *name, int value)</td><td><a class="el" href="classTiXmlElement.html">TiXmlElement</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="classTiXmlBase.html#e0">SetCondenseWhiteSpace</a>(bool condense)</td><td><a class="el" href="classTiXmlBase.html">TiXmlBase</a></td><td><code> [inline, static]</code></td></tr>
   <tr class="memlist"><td><a class="el" href="classTiXmlElement.html#a20">SetDoubleAttribute</a>(const char *name, double value)</td><td><a class="el" href="classTiXmlElement.html">TiXmlElement</a></td><td></td></tr>
@@ -74,23 +74,23 @@
   <tr class="memlist"><td><a class="el" href="classTiXmlNode.html#a4">SetValue</a>(const std::string &amp;_value)</td><td><a class="el" href="classTiXmlNode.html">TiXmlNode</a></td><td><code> [inline]</code></td></tr>
   <tr class="memlist"><td><a class="el" href="classTiXmlElement.html#a0">TiXmlElement</a>(const char *in_value)</td><td><a class="el" href="classTiXmlElement.html">TiXmlElement</a></td><td></td></tr>
   <tr class="memlist"><td><a class="el" href="classTiXmlElement.html#a1">TiXmlElement</a>(const std::string &amp;_value)</td><td><a class="el" href="classTiXmlElement.html">TiXmlElement</a></td><td></td></tr>
-  <tr class="memlist"><td><a class="el" href="classTiXmlNode.html#a62">ToComment</a>() const </td><td><a class="el" href="classTiXmlNode.html">TiXmlNode</a></td><td><code> [inline]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classTiXmlNode.html#a68">ToComment</a>()</td><td><a class="el" href="classTiXmlNode.html">TiXmlNode</a></td><td><code> [inline]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classTiXmlNode.html#a65">ToDeclaration</a>() const </td><td><a class="el" href="classTiXmlNode.html">TiXmlNode</a></td><td><code> [inline]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classTiXmlNode.html#a71">ToDeclaration</a>()</td><td><a class="el" href="classTiXmlNode.html">TiXmlNode</a></td><td><code> [inline]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classTiXmlNode.html#a60">ToDocument</a>() const </td><td><a class="el" href="classTiXmlNode.html">TiXmlNode</a></td><td><code> [inline]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classTiXmlNode.html#a66">ToDocument</a>()</td><td><a class="el" href="classTiXmlNode.html">TiXmlNode</a></td><td><code> [inline]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classTiXmlNode.html#a61">ToElement</a>() const </td><td><a class="el" href="classTiXmlNode.html">TiXmlNode</a></td><td><code> [inline]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classTiXmlNode.html#a67">ToElement</a>()</td><td><a class="el" href="classTiXmlNode.html">TiXmlNode</a></td><td><code> [inline]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classTiXmlNode.html#a64">ToText</a>() const </td><td><a class="el" href="classTiXmlNode.html">TiXmlNode</a></td><td><code> [inline]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classTiXmlNode.html#a70">ToText</a>()</td><td><a class="el" href="classTiXmlNode.html">TiXmlNode</a></td><td><code> [inline]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classTiXmlNode.html#a63">ToUnknown</a>() const </td><td><a class="el" href="classTiXmlNode.html">TiXmlNode</a></td><td><code> [inline]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classTiXmlNode.html#a69">ToUnknown</a>()</td><td><a class="el" href="classTiXmlNode.html">TiXmlNode</a></td><td><code> [inline]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classTiXmlNode.html#a56">Type</a>() const </td><td><a class="el" href="classTiXmlNode.html">TiXmlNode</a></td><td><code> [inline, virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classTiXmlNode.html#a62">ToComment</a>() const </td><td><a class="el" href="classTiXmlNode.html">TiXmlNode</a></td><td><code> [inline, virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classTiXmlNode.html#a68">ToComment</a>()</td><td><a class="el" href="classTiXmlNode.html">TiXmlNode</a></td><td><code> [inline, virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classTiXmlNode.html#a65">ToDeclaration</a>() const </td><td><a class="el" href="classTiXmlNode.html">TiXmlNode</a></td><td><code> [inline, virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classTiXmlNode.html#a71">ToDeclaration</a>()</td><td><a class="el" href="classTiXmlNode.html">TiXmlNode</a></td><td><code> [inline, virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classTiXmlNode.html#a60">ToDocument</a>() const </td><td><a class="el" href="classTiXmlNode.html">TiXmlNode</a></td><td><code> [inline, virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classTiXmlNode.html#a66">ToDocument</a>()</td><td><a class="el" href="classTiXmlNode.html">TiXmlNode</a></td><td><code> [inline, virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classTiXmlElement.html#a31">ToElement</a>() const </td><td><a class="el" href="classTiXmlElement.html">TiXmlElement</a></td><td><code> [inline, virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classTiXmlElement.html#a32">ToElement</a>()</td><td><a class="el" href="classTiXmlElement.html">TiXmlElement</a></td><td><code> [inline, virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classTiXmlNode.html#a64">ToText</a>() const </td><td><a class="el" href="classTiXmlNode.html">TiXmlNode</a></td><td><code> [inline, virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classTiXmlNode.html#a70">ToText</a>()</td><td><a class="el" href="classTiXmlNode.html">TiXmlNode</a></td><td><code> [inline, virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classTiXmlNode.html#a63">ToUnknown</a>() const </td><td><a class="el" href="classTiXmlNode.html">TiXmlNode</a></td><td><code> [inline, virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classTiXmlNode.html#a69">ToUnknown</a>()</td><td><a class="el" href="classTiXmlNode.html">TiXmlNode</a></td><td><code> [inline, virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classTiXmlNode.html#a56">Type</a>() const </td><td><a class="el" href="classTiXmlNode.html">TiXmlNode</a></td><td><code> [inline]</code></td></tr>
   <tr class="memlist"><td><a class="el" href="classTiXmlBase.html#p1">userData</a></td><td><a class="el" href="classTiXmlBase.html">TiXmlBase</a></td><td><code> [protected]</code></td></tr>
   <tr class="memlist"><td><a class="el" href="classTiXmlNode.html#a1">Value</a>() const </td><td><a class="el" href="classTiXmlNode.html">TiXmlNode</a></td><td><code> [inline]</code></td></tr>
   <tr class="memlist"><td><a class="el" href="classTiXmlNode.html#a2">ValueStr</a>() const </td><td><a class="el" href="classTiXmlNode.html">TiXmlNode</a></td><td><code> [inline]</code></td></tr>
-</table><hr size="1"><address style="align: right;"><small>Generated on Sat Oct 8 14:15:30 2005 for TinyXml by&nbsp;
+</table><hr size="1"><address style="align: right;"><small>Generated on Sun Jan 15 23:12:04 2006 for TinyXml by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4 </small></address>
 </body>
diff --git a/docs/classTiXmlElement.html b/docs/classTiXmlElement.html
index 27b4bd9..e8c5605 100644
--- a/docs/classTiXmlElement.html
+++ b/docs/classTiXmlElement.html
@@ -87,6 +87,14 @@
 <tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTiXmlElement.html#a29">Print</a> (FILE *cfile, int depth) const </td></tr>
 
 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">All TinyXml classes can print themselves to a filestream.  <a href="#a29"></a><br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="a31"></a><!-- doxytag: member="TiXmlElement::ToElement" ref="a31" args="() const " -->
+virtual const <a class="el" href="classTiXmlElement.html">TiXmlElement</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTiXmlElement.html#a31">ToElement</a> () const </td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Cast to a more defined type. Will return null not of the requested type. <br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="a32"></a><!-- doxytag: member="TiXmlElement::ToElement" ref="a32" args="()" -->
+virtual <a class="el" href="classTiXmlElement.html">TiXmlElement</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTiXmlElement.html#a32">ToElement</a> ()</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Cast to a more defined type. Will return null not of the requested type. <br></td></tr>
 </table>
 <hr><a name="_details"></a><h2>Detailed Description</h2>
 The element is a container class. 
@@ -199,7 +207,7 @@
 Convenience function for easy access to the text inside an element. 
 <p>
 Although easy and concise, <a class="el" href="classTiXmlElement.html#a27">GetText()</a> is limited compared to getting the <a class="el" href="classTiXmlText.html">TiXmlText</a> child and accessing it directly.<p>
-If the first child of 'this' is a <a class="el" href="classTiXmlText.html">TiXmlText</a>, the <a class="el" href="classTiXmlElement.html#a27">GetText()</a> returs the character string of the Text node, else null is returned.<p>
+If the first child of 'this' is a <a class="el" href="classTiXmlText.html">TiXmlText</a>, the <a class="el" href="classTiXmlElement.html#a27">GetText()</a> returns the character string of the Text node, else null is returned.<p>
 This is a convenient method for getting the text of simple contained text: <div class="fragment"><pre class="fragment">		&lt;foo&gt;This is text&lt;/foo&gt;
 		const char* str = fooElement-&gt;GetText();
 		</pre></div><p>
@@ -411,7 +419,7 @@
 </table>
 <hr>The documentation for this class was generated from the following file:<ul>
 <li><a class="el" href="tinyxml_8h-source.html">tinyxml.h</a></ul>
-<hr size="1"><address style="align: right;"><small>Generated on Sat Oct 8 14:15:30 2005 for TinyXml by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Sun Jan 15 23:12:04 2006 for TinyXml by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4 </small></address>
 </body>
diff --git a/docs/classTiXmlHandle-members.html b/docs/classTiXmlHandle-members.html
index adfaebc..b108e16 100644
--- a/docs/classTiXmlHandle-members.html
+++ b/docs/classTiXmlHandle-members.html
@@ -20,7 +20,7 @@
   <tr class="memlist"><td><a class="el" href="classTiXmlHandle.html#a0">TiXmlHandle</a>(TiXmlNode *_node)</td><td><a class="el" href="classTiXmlHandle.html">TiXmlHandle</a></td><td><code> [inline]</code></td></tr>
   <tr class="memlist"><td><a class="el" href="classTiXmlHandle.html#a1">TiXmlHandle</a>(const TiXmlHandle &amp;ref)</td><td><a class="el" href="classTiXmlHandle.html">TiXmlHandle</a></td><td><code> [inline]</code></td></tr>
   <tr class="memlist"><td><a class="el" href="classTiXmlHandle.html#a18">Unknown</a>() const </td><td><a class="el" href="classTiXmlHandle.html">TiXmlHandle</a></td><td><code> [inline]</code></td></tr>
-</table><hr size="1"><address style="align: right;"><small>Generated on Sat Oct 8 14:15:30 2005 for TinyXml by&nbsp;
+</table><hr size="1"><address style="align: right;"><small>Generated on Sun Jan 15 23:12:05 2006 for TinyXml by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4 </small></address>
 </body>
diff --git a/docs/classTiXmlHandle.html b/docs/classTiXmlHandle.html
index f7af602..7decef7 100644
--- a/docs/classTiXmlHandle.html
+++ b/docs/classTiXmlHandle.html
@@ -263,7 +263,7 @@
 </table>
 <hr>The documentation for this class was generated from the following file:<ul>
 <li><a class="el" href="tinyxml_8h-source.html">tinyxml.h</a></ul>
-<hr size="1"><address style="align: right;"><small>Generated on Sat Oct 8 14:15:30 2005 for TinyXml by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Sun Jan 15 23:12:05 2006 for TinyXml by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4 </small></address>
 </body>
diff --git a/docs/classTiXmlNode-members.html b/docs/classTiXmlNode-members.html
index 25cb802..3e43de1 100644
--- a/docs/classTiXmlNode-members.html
+++ b/docs/classTiXmlNode-members.html
@@ -57,23 +57,23 @@
   <tr class="memlist"><td><a class="el" href="classTiXmlBase.html#e0">SetCondenseWhiteSpace</a>(bool condense)</td><td><a class="el" href="classTiXmlBase.html">TiXmlBase</a></td><td><code> [inline, static]</code></td></tr>
   <tr class="memlist"><td><a class="el" href="classTiXmlNode.html#a3">SetValue</a>(const char *_value)</td><td><a class="el" href="classTiXmlNode.html">TiXmlNode</a></td><td><code> [inline]</code></td></tr>
   <tr class="memlist"><td><a class="el" href="classTiXmlNode.html#a4">SetValue</a>(const std::string &amp;_value)</td><td><a class="el" href="classTiXmlNode.html">TiXmlNode</a></td><td><code> [inline]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classTiXmlNode.html#a62">ToComment</a>() const </td><td><a class="el" href="classTiXmlNode.html">TiXmlNode</a></td><td><code> [inline]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classTiXmlNode.html#a68">ToComment</a>()</td><td><a class="el" href="classTiXmlNode.html">TiXmlNode</a></td><td><code> [inline]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classTiXmlNode.html#a65">ToDeclaration</a>() const </td><td><a class="el" href="classTiXmlNode.html">TiXmlNode</a></td><td><code> [inline]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classTiXmlNode.html#a71">ToDeclaration</a>()</td><td><a class="el" href="classTiXmlNode.html">TiXmlNode</a></td><td><code> [inline]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classTiXmlNode.html#a60">ToDocument</a>() const </td><td><a class="el" href="classTiXmlNode.html">TiXmlNode</a></td><td><code> [inline]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classTiXmlNode.html#a66">ToDocument</a>()</td><td><a class="el" href="classTiXmlNode.html">TiXmlNode</a></td><td><code> [inline]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classTiXmlNode.html#a61">ToElement</a>() const </td><td><a class="el" href="classTiXmlNode.html">TiXmlNode</a></td><td><code> [inline]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classTiXmlNode.html#a67">ToElement</a>()</td><td><a class="el" href="classTiXmlNode.html">TiXmlNode</a></td><td><code> [inline]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classTiXmlNode.html#a64">ToText</a>() const </td><td><a class="el" href="classTiXmlNode.html">TiXmlNode</a></td><td><code> [inline]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classTiXmlNode.html#a70">ToText</a>()</td><td><a class="el" href="classTiXmlNode.html">TiXmlNode</a></td><td><code> [inline]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classTiXmlNode.html#a63">ToUnknown</a>() const </td><td><a class="el" href="classTiXmlNode.html">TiXmlNode</a></td><td><code> [inline]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classTiXmlNode.html#a69">ToUnknown</a>()</td><td><a class="el" href="classTiXmlNode.html">TiXmlNode</a></td><td><code> [inline]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classTiXmlNode.html#a56">Type</a>() const </td><td><a class="el" href="classTiXmlNode.html">TiXmlNode</a></td><td><code> [inline, virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classTiXmlNode.html#a62">ToComment</a>() const </td><td><a class="el" href="classTiXmlNode.html">TiXmlNode</a></td><td><code> [inline, virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classTiXmlNode.html#a68">ToComment</a>()</td><td><a class="el" href="classTiXmlNode.html">TiXmlNode</a></td><td><code> [inline, virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classTiXmlNode.html#a65">ToDeclaration</a>() const </td><td><a class="el" href="classTiXmlNode.html">TiXmlNode</a></td><td><code> [inline, virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classTiXmlNode.html#a71">ToDeclaration</a>()</td><td><a class="el" href="classTiXmlNode.html">TiXmlNode</a></td><td><code> [inline, virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classTiXmlNode.html#a60">ToDocument</a>() const </td><td><a class="el" href="classTiXmlNode.html">TiXmlNode</a></td><td><code> [inline, virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classTiXmlNode.html#a66">ToDocument</a>()</td><td><a class="el" href="classTiXmlNode.html">TiXmlNode</a></td><td><code> [inline, virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classTiXmlNode.html#a61">ToElement</a>() const </td><td><a class="el" href="classTiXmlNode.html">TiXmlNode</a></td><td><code> [inline, virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classTiXmlNode.html#a67">ToElement</a>()</td><td><a class="el" href="classTiXmlNode.html">TiXmlNode</a></td><td><code> [inline, virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classTiXmlNode.html#a64">ToText</a>() const </td><td><a class="el" href="classTiXmlNode.html">TiXmlNode</a></td><td><code> [inline, virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classTiXmlNode.html#a70">ToText</a>()</td><td><a class="el" href="classTiXmlNode.html">TiXmlNode</a></td><td><code> [inline, virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classTiXmlNode.html#a63">ToUnknown</a>() const </td><td><a class="el" href="classTiXmlNode.html">TiXmlNode</a></td><td><code> [inline, virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classTiXmlNode.html#a69">ToUnknown</a>()</td><td><a class="el" href="classTiXmlNode.html">TiXmlNode</a></td><td><code> [inline, virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classTiXmlNode.html#a56">Type</a>() const </td><td><a class="el" href="classTiXmlNode.html">TiXmlNode</a></td><td><code> [inline]</code></td></tr>
   <tr class="memlist"><td><a class="el" href="classTiXmlBase.html#p1">userData</a></td><td><a class="el" href="classTiXmlBase.html">TiXmlBase</a></td><td><code> [protected]</code></td></tr>
   <tr class="memlist"><td><a class="el" href="classTiXmlNode.html#a1">Value</a>() const </td><td><a class="el" href="classTiXmlNode.html">TiXmlNode</a></td><td><code> [inline]</code></td></tr>
   <tr class="memlist"><td><a class="el" href="classTiXmlNode.html#a2">ValueStr</a>() const </td><td><a class="el" href="classTiXmlNode.html">TiXmlNode</a></td><td><code> [inline]</code></td></tr>
-</table><hr size="1"><address style="align: right;"><small>Generated on Sat Oct 8 14:15:30 2005 for TinyXml by&nbsp;
+</table><hr size="1"><address style="align: right;"><small>Generated on Sun Jan 15 23:12:05 2006 for TinyXml by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4 </small></address>
 </body>
diff --git a/docs/classTiXmlNode.html b/docs/classTiXmlNode.html
index dab9950..905b91d 100644
--- a/docs/classTiXmlNode.html
+++ b/docs/classTiXmlNode.html
@@ -181,7 +181,7 @@
 <a class="el" href="classTiXmlElement.html">TiXmlElement</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTiXmlNode.html#a55">FirstChildElement</a> (const std::string &amp;_value)</td></tr>
 
 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">STL std::string form. <br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTiXmlNode.html#a56">Type</a> () const </td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTiXmlNode.html#a56">Type</a> () const </td></tr>
 
 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Query the type (as an enumerated value, above) of this node.  <a href="#a56"></a><br></td></tr>
 <tr><td class="memItemLeft" nowrap align="right" valign="top">const <a class="el" href="classTiXmlDocument.html">TiXmlDocument</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTiXmlNode.html#a57">GetDocument</a> () const </td></tr>
@@ -192,53 +192,53 @@
 
 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Returns true if this node has no children. <br></td></tr>
 <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="a60"></a><!-- doxytag: member="TiXmlNode::ToDocument" ref="a60" args="() const " -->
-const <a class="el" href="classTiXmlDocument.html">TiXmlDocument</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTiXmlNode.html#a60">ToDocument</a> () const </td></tr>
+virtual const <a class="el" href="classTiXmlDocument.html">TiXmlDocument</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTiXmlNode.html#a60">ToDocument</a> () const </td></tr>
 
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Cast to a more defined type. Will return null not of the requested type. <br></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Cast to a more defined type. Will return null if not of the requested type. <br></td></tr>
 <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="a61"></a><!-- doxytag: member="TiXmlNode::ToElement" ref="a61" args="() const " -->
-const <a class="el" href="classTiXmlElement.html">TiXmlElement</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTiXmlNode.html#a61">ToElement</a> () const </td></tr>
+virtual const <a class="el" href="classTiXmlElement.html">TiXmlElement</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTiXmlNode.html#a61">ToElement</a> () const </td></tr>
 
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Cast to a more defined type. Will return null not of the requested type. <br></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Cast to a more defined type. Will return null if not of the requested type. <br></td></tr>
 <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="a62"></a><!-- doxytag: member="TiXmlNode::ToComment" ref="a62" args="() const " -->
-const <a class="el" href="classTiXmlComment.html">TiXmlComment</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTiXmlNode.html#a62">ToComment</a> () const </td></tr>
+virtual const <a class="el" href="classTiXmlComment.html">TiXmlComment</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTiXmlNode.html#a62">ToComment</a> () const </td></tr>
 
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Cast to a more defined type. Will return null not of the requested type. <br></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Cast to a more defined type. Will return null if not of the requested type. <br></td></tr>
 <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="a63"></a><!-- doxytag: member="TiXmlNode::ToUnknown" ref="a63" args="() const " -->
-const <a class="el" href="classTiXmlUnknown.html">TiXmlUnknown</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTiXmlNode.html#a63">ToUnknown</a> () const </td></tr>
+virtual const <a class="el" href="classTiXmlUnknown.html">TiXmlUnknown</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTiXmlNode.html#a63">ToUnknown</a> () const </td></tr>
 
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Cast to a more defined type. Will return null not of the requested type. <br></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Cast to a more defined type. Will return null if not of the requested type. <br></td></tr>
 <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="a64"></a><!-- doxytag: member="TiXmlNode::ToText" ref="a64" args="() const " -->
-const <a class="el" href="classTiXmlText.html">TiXmlText</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTiXmlNode.html#a64">ToText</a> () const </td></tr>
+virtual const <a class="el" href="classTiXmlText.html">TiXmlText</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTiXmlNode.html#a64">ToText</a> () const </td></tr>
 
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Cast to a more defined type. Will return null not of the requested type. <br></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Cast to a more defined type. Will return null if not of the requested type. <br></td></tr>
 <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="a65"></a><!-- doxytag: member="TiXmlNode::ToDeclaration" ref="a65" args="() const " -->
-const <a class="el" href="classTiXmlDeclaration.html">TiXmlDeclaration</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTiXmlNode.html#a65">ToDeclaration</a> () const </td></tr>
+virtual const <a class="el" href="classTiXmlDeclaration.html">TiXmlDeclaration</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTiXmlNode.html#a65">ToDeclaration</a> () const </td></tr>
 
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Cast to a more defined type. Will return null not of the requested type. <br></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Cast to a more defined type. Will return null if not of the requested type. <br></td></tr>
 <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="a66"></a><!-- doxytag: member="TiXmlNode::ToDocument" ref="a66" args="()" -->
-<a class="el" href="classTiXmlDocument.html">TiXmlDocument</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTiXmlNode.html#a66">ToDocument</a> ()</td></tr>
+virtual <a class="el" href="classTiXmlDocument.html">TiXmlDocument</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTiXmlNode.html#a66">ToDocument</a> ()</td></tr>
 
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Cast to a more defined type. Will return null not of the requested type. <br></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Cast to a more defined type. Will return null if not of the requested type. <br></td></tr>
 <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="a67"></a><!-- doxytag: member="TiXmlNode::ToElement" ref="a67" args="()" -->
-<a class="el" href="classTiXmlElement.html">TiXmlElement</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTiXmlNode.html#a67">ToElement</a> ()</td></tr>
+virtual <a class="el" href="classTiXmlElement.html">TiXmlElement</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTiXmlNode.html#a67">ToElement</a> ()</td></tr>
 
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Cast to a more defined type. Will return null not of the requested type. <br></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Cast to a more defined type. Will return null if not of the requested type. <br></td></tr>
 <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="a68"></a><!-- doxytag: member="TiXmlNode::ToComment" ref="a68" args="()" -->
-<a class="el" href="classTiXmlComment.html">TiXmlComment</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTiXmlNode.html#a68">ToComment</a> ()</td></tr>
+virtual <a class="el" href="classTiXmlComment.html">TiXmlComment</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTiXmlNode.html#a68">ToComment</a> ()</td></tr>
 
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Cast to a more defined type. Will return null not of the requested type. <br></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Cast to a more defined type. Will return null if not of the requested type. <br></td></tr>
 <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="a69"></a><!-- doxytag: member="TiXmlNode::ToUnknown" ref="a69" args="()" -->
-<a class="el" href="classTiXmlUnknown.html">TiXmlUnknown</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTiXmlNode.html#a69">ToUnknown</a> ()</td></tr>
+virtual <a class="el" href="classTiXmlUnknown.html">TiXmlUnknown</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTiXmlNode.html#a69">ToUnknown</a> ()</td></tr>
 
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Cast to a more defined type. Will return null not of the requested type. <br></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Cast to a more defined type. Will return null if not of the requested type. <br></td></tr>
 <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="a70"></a><!-- doxytag: member="TiXmlNode::ToText" ref="a70" args="()" -->
-<a class="el" href="classTiXmlText.html">TiXmlText</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTiXmlNode.html#a70">ToText</a> ()</td></tr>
+virtual <a class="el" href="classTiXmlText.html">TiXmlText</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTiXmlNode.html#a70">ToText</a> ()</td></tr>
 
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Cast to a more defined type. Will return null not of the requested type. <br></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Cast to a more defined type. Will return null if not of the requested type. <br></td></tr>
 <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="a71"></a><!-- doxytag: member="TiXmlNode::ToDeclaration" ref="a71" args="()" -->
-<a class="el" href="classTiXmlDeclaration.html">TiXmlDeclaration</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTiXmlNode.html#a71">ToDeclaration</a> ()</td></tr>
+virtual <a class="el" href="classTiXmlDeclaration.html">TiXmlDeclaration</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTiXmlNode.html#a71">ToDeclaration</a> ()</td></tr>
 
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Cast to a more defined type. Will return null not of the requested type. <br></td></tr>
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Cast to a more defined type. Will return null if not of the requested type. <br></td></tr>
 <tr><td class="memItemLeft" nowrap align="right" valign="top">virtual <a class="el" href="classTiXmlNode.html">TiXmlNode</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTiXmlNode.html#a72">Clone</a> () const =0</td></tr>
 
 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Create an exact duplicate of this node and return it.  <a href="#a72"></a><br></td></tr>
@@ -667,11 +667,11 @@
     <td class="mdRow">
       <table cellpadding="0" cellspacing="0" border="0">
         <tr>
-          <td class="md" nowrap valign="top">virtual int TiXmlNode::Type           </td>
+          <td class="md" nowrap valign="top">int TiXmlNode::Type           </td>
           <td class="md" valign="top">(&nbsp;</td>
           <td class="mdname1" valign="top" nowrap>          </td>
           <td class="md" valign="top">&nbsp;)&nbsp;</td>
-          <td class="md" nowrap> const<code> [inline, virtual]</code></td>
+          <td class="md" nowrap> const<code> [inline]</code></td>
         </tr>
       </table>
     </td>
@@ -838,7 +838,7 @@
 </table>
 <hr>The documentation for this class was generated from the following file:<ul>
 <li><a class="el" href="tinyxml_8h-source.html">tinyxml.h</a></ul>
-<hr size="1"><address style="align: right;"><small>Generated on Sat Oct 8 14:15:30 2005 for TinyXml by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Sun Jan 15 23:12:05 2006 for TinyXml by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4 </small></address>
 </body>
diff --git a/docs/classTiXmlText-members.html b/docs/classTiXmlText-members.html
index ce9bc4e..729db42 100644
--- a/docs/classTiXmlText-members.html
+++ b/docs/classTiXmlText-members.html
@@ -61,23 +61,23 @@
   <tr class="memlist"><td><a class="el" href="classTiXmlNode.html#a4">SetValue</a>(const std::string &amp;_value)</td><td><a class="el" href="classTiXmlNode.html">TiXmlNode</a></td><td><code> [inline]</code></td></tr>
   <tr class="memlist"><td><a class="el" href="classTiXmlText.html#a0">TiXmlText</a>(const char *initValue)</td><td><a class="el" href="classTiXmlText.html">TiXmlText</a></td><td><code> [inline]</code></td></tr>
   <tr class="memlist"><td><a class="el" href="classTiXmlText.html#a2">TiXmlText</a>(const std::string &amp;initValue)</td><td><a class="el" href="classTiXmlText.html">TiXmlText</a></td><td><code> [inline]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classTiXmlNode.html#a62">ToComment</a>() const </td><td><a class="el" href="classTiXmlNode.html">TiXmlNode</a></td><td><code> [inline]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classTiXmlNode.html#a68">ToComment</a>()</td><td><a class="el" href="classTiXmlNode.html">TiXmlNode</a></td><td><code> [inline]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classTiXmlNode.html#a65">ToDeclaration</a>() const </td><td><a class="el" href="classTiXmlNode.html">TiXmlNode</a></td><td><code> [inline]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classTiXmlNode.html#a71">ToDeclaration</a>()</td><td><a class="el" href="classTiXmlNode.html">TiXmlNode</a></td><td><code> [inline]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classTiXmlNode.html#a60">ToDocument</a>() const </td><td><a class="el" href="classTiXmlNode.html">TiXmlNode</a></td><td><code> [inline]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classTiXmlNode.html#a66">ToDocument</a>()</td><td><a class="el" href="classTiXmlNode.html">TiXmlNode</a></td><td><code> [inline]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classTiXmlNode.html#a61">ToElement</a>() const </td><td><a class="el" href="classTiXmlNode.html">TiXmlNode</a></td><td><code> [inline]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classTiXmlNode.html#a67">ToElement</a>()</td><td><a class="el" href="classTiXmlNode.html">TiXmlNode</a></td><td><code> [inline]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classTiXmlNode.html#a64">ToText</a>() const </td><td><a class="el" href="classTiXmlNode.html">TiXmlNode</a></td><td><code> [inline]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classTiXmlNode.html#a70">ToText</a>()</td><td><a class="el" href="classTiXmlNode.html">TiXmlNode</a></td><td><code> [inline]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classTiXmlNode.html#a63">ToUnknown</a>() const </td><td><a class="el" href="classTiXmlNode.html">TiXmlNode</a></td><td><code> [inline]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classTiXmlNode.html#a69">ToUnknown</a>()</td><td><a class="el" href="classTiXmlNode.html">TiXmlNode</a></td><td><code> [inline]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classTiXmlNode.html#a56">Type</a>() const </td><td><a class="el" href="classTiXmlNode.html">TiXmlNode</a></td><td><code> [inline, virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classTiXmlNode.html#a62">ToComment</a>() const </td><td><a class="el" href="classTiXmlNode.html">TiXmlNode</a></td><td><code> [inline, virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classTiXmlNode.html#a68">ToComment</a>()</td><td><a class="el" href="classTiXmlNode.html">TiXmlNode</a></td><td><code> [inline, virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classTiXmlNode.html#a65">ToDeclaration</a>() const </td><td><a class="el" href="classTiXmlNode.html">TiXmlNode</a></td><td><code> [inline, virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classTiXmlNode.html#a71">ToDeclaration</a>()</td><td><a class="el" href="classTiXmlNode.html">TiXmlNode</a></td><td><code> [inline, virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classTiXmlNode.html#a60">ToDocument</a>() const </td><td><a class="el" href="classTiXmlNode.html">TiXmlNode</a></td><td><code> [inline, virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classTiXmlNode.html#a66">ToDocument</a>()</td><td><a class="el" href="classTiXmlNode.html">TiXmlNode</a></td><td><code> [inline, virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classTiXmlNode.html#a61">ToElement</a>() const </td><td><a class="el" href="classTiXmlNode.html">TiXmlNode</a></td><td><code> [inline, virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classTiXmlNode.html#a67">ToElement</a>()</td><td><a class="el" href="classTiXmlNode.html">TiXmlNode</a></td><td><code> [inline, virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classTiXmlText.html#a9">ToText</a>() const </td><td><a class="el" href="classTiXmlText.html">TiXmlText</a></td><td><code> [inline, virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classTiXmlText.html#a10">ToText</a>()</td><td><a class="el" href="classTiXmlText.html">TiXmlText</a></td><td><code> [inline, virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classTiXmlNode.html#a63">ToUnknown</a>() const </td><td><a class="el" href="classTiXmlNode.html">TiXmlNode</a></td><td><code> [inline, virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classTiXmlNode.html#a69">ToUnknown</a>()</td><td><a class="el" href="classTiXmlNode.html">TiXmlNode</a></td><td><code> [inline, virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classTiXmlNode.html#a56">Type</a>() const </td><td><a class="el" href="classTiXmlNode.html">TiXmlNode</a></td><td><code> [inline]</code></td></tr>
   <tr class="memlist"><td><a class="el" href="classTiXmlBase.html#p1">userData</a></td><td><a class="el" href="classTiXmlBase.html">TiXmlBase</a></td><td><code> [protected]</code></td></tr>
   <tr class="memlist"><td><a class="el" href="classTiXmlNode.html#a1">Value</a>() const </td><td><a class="el" href="classTiXmlNode.html">TiXmlNode</a></td><td><code> [inline]</code></td></tr>
   <tr class="memlist"><td><a class="el" href="classTiXmlNode.html#a2">ValueStr</a>() const </td><td><a class="el" href="classTiXmlNode.html">TiXmlNode</a></td><td><code> [inline]</code></td></tr>
-</table><hr size="1"><address style="align: right;"><small>Generated on Sat Oct 8 14:15:30 2005 for TinyXml by&nbsp;
+</table><hr size="1"><address style="align: right;"><small>Generated on Sun Jan 15 23:12:05 2006 for TinyXml by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4 </small></address>
 </body>
diff --git a/docs/classTiXmlText.html b/docs/classTiXmlText.html
index d6e3ab5..b95ef78 100644
--- a/docs/classTiXmlText.html
+++ b/docs/classTiXmlText.html
@@ -38,6 +38,14 @@
 void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTiXmlText.html#a7">SetCDATA</a> (bool _cdata)</td></tr>
 
 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Turns on or off a CDATA representation of text. <br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="a9"></a><!-- doxytag: member="TiXmlText::ToText" ref="a9" args="() const " -->
+virtual const <a class="el" href="classTiXmlText.html">TiXmlText</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTiXmlText.html#a9">ToText</a> () const </td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Cast to a more defined type. Will return null not of the requested type. <br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="a10"></a><!-- doxytag: member="TiXmlText::ToText" ref="a10" args="()" -->
+virtual <a class="el" href="classTiXmlText.html">TiXmlText</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTiXmlText.html#a10">ToText</a> ()</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Cast to a more defined type. Will return null not of the requested type. <br></td></tr>
 <tr><td colspan="2"><br><h2>Protected Member Functions</h2></td></tr>
 <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="b0"></a><!-- doxytag: member="TiXmlText::Clone" ref="b0" args="() const " -->
 virtual <a class="el" href="classTiXmlNode.html">TiXmlNode</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTiXmlText.html#b0">Clone</a> () const </td></tr>
@@ -86,7 +94,7 @@
 </table>
 <hr>The documentation for this class was generated from the following file:<ul>
 <li><a class="el" href="tinyxml_8h-source.html">tinyxml.h</a></ul>
-<hr size="1"><address style="align: right;"><small>Generated on Sat Oct 8 14:15:30 2005 for TinyXml by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Sun Jan 15 23:12:05 2006 for TinyXml by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4 </small></address>
 </body>
diff --git a/docs/classTiXmlUnknown-members.html b/docs/classTiXmlUnknown-members.html
index 8d94a04..13287d3 100644
--- a/docs/classTiXmlUnknown-members.html
+++ b/docs/classTiXmlUnknown-members.html
@@ -57,23 +57,23 @@
   <tr class="memlist"><td><a class="el" href="classTiXmlBase.html#e0">SetCondenseWhiteSpace</a>(bool condense)</td><td><a class="el" href="classTiXmlBase.html">TiXmlBase</a></td><td><code> [inline, static]</code></td></tr>
   <tr class="memlist"><td><a class="el" href="classTiXmlNode.html#a3">SetValue</a>(const char *_value)</td><td><a class="el" href="classTiXmlNode.html">TiXmlNode</a></td><td><code> [inline]</code></td></tr>
   <tr class="memlist"><td><a class="el" href="classTiXmlNode.html#a4">SetValue</a>(const std::string &amp;_value)</td><td><a class="el" href="classTiXmlNode.html">TiXmlNode</a></td><td><code> [inline]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classTiXmlNode.html#a62">ToComment</a>() const </td><td><a class="el" href="classTiXmlNode.html">TiXmlNode</a></td><td><code> [inline]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classTiXmlNode.html#a68">ToComment</a>()</td><td><a class="el" href="classTiXmlNode.html">TiXmlNode</a></td><td><code> [inline]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classTiXmlNode.html#a65">ToDeclaration</a>() const </td><td><a class="el" href="classTiXmlNode.html">TiXmlNode</a></td><td><code> [inline]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classTiXmlNode.html#a71">ToDeclaration</a>()</td><td><a class="el" href="classTiXmlNode.html">TiXmlNode</a></td><td><code> [inline]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classTiXmlNode.html#a60">ToDocument</a>() const </td><td><a class="el" href="classTiXmlNode.html">TiXmlNode</a></td><td><code> [inline]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classTiXmlNode.html#a66">ToDocument</a>()</td><td><a class="el" href="classTiXmlNode.html">TiXmlNode</a></td><td><code> [inline]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classTiXmlNode.html#a61">ToElement</a>() const </td><td><a class="el" href="classTiXmlNode.html">TiXmlNode</a></td><td><code> [inline]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classTiXmlNode.html#a67">ToElement</a>()</td><td><a class="el" href="classTiXmlNode.html">TiXmlNode</a></td><td><code> [inline]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classTiXmlNode.html#a64">ToText</a>() const </td><td><a class="el" href="classTiXmlNode.html">TiXmlNode</a></td><td><code> [inline]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classTiXmlNode.html#a70">ToText</a>()</td><td><a class="el" href="classTiXmlNode.html">TiXmlNode</a></td><td><code> [inline]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classTiXmlNode.html#a63">ToUnknown</a>() const </td><td><a class="el" href="classTiXmlNode.html">TiXmlNode</a></td><td><code> [inline]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classTiXmlNode.html#a69">ToUnknown</a>()</td><td><a class="el" href="classTiXmlNode.html">TiXmlNode</a></td><td><code> [inline]</code></td></tr>
-  <tr class="memlist"><td><a class="el" href="classTiXmlNode.html#a56">Type</a>() const </td><td><a class="el" href="classTiXmlNode.html">TiXmlNode</a></td><td><code> [inline, virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classTiXmlNode.html#a62">ToComment</a>() const </td><td><a class="el" href="classTiXmlNode.html">TiXmlNode</a></td><td><code> [inline, virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classTiXmlNode.html#a68">ToComment</a>()</td><td><a class="el" href="classTiXmlNode.html">TiXmlNode</a></td><td><code> [inline, virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classTiXmlNode.html#a65">ToDeclaration</a>() const </td><td><a class="el" href="classTiXmlNode.html">TiXmlNode</a></td><td><code> [inline, virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classTiXmlNode.html#a71">ToDeclaration</a>()</td><td><a class="el" href="classTiXmlNode.html">TiXmlNode</a></td><td><code> [inline, virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classTiXmlNode.html#a60">ToDocument</a>() const </td><td><a class="el" href="classTiXmlNode.html">TiXmlNode</a></td><td><code> [inline, virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classTiXmlNode.html#a66">ToDocument</a>()</td><td><a class="el" href="classTiXmlNode.html">TiXmlNode</a></td><td><code> [inline, virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classTiXmlNode.html#a61">ToElement</a>() const </td><td><a class="el" href="classTiXmlNode.html">TiXmlNode</a></td><td><code> [inline, virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classTiXmlNode.html#a67">ToElement</a>()</td><td><a class="el" href="classTiXmlNode.html">TiXmlNode</a></td><td><code> [inline, virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classTiXmlNode.html#a64">ToText</a>() const </td><td><a class="el" href="classTiXmlNode.html">TiXmlNode</a></td><td><code> [inline, virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classTiXmlNode.html#a70">ToText</a>()</td><td><a class="el" href="classTiXmlNode.html">TiXmlNode</a></td><td><code> [inline, virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classTiXmlUnknown.html#a7">ToUnknown</a>() const </td><td><a class="el" href="classTiXmlUnknown.html">TiXmlUnknown</a></td><td><code> [inline, virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classTiXmlUnknown.html#a8">ToUnknown</a>()</td><td><a class="el" href="classTiXmlUnknown.html">TiXmlUnknown</a></td><td><code> [inline, virtual]</code></td></tr>
+  <tr class="memlist"><td><a class="el" href="classTiXmlNode.html#a56">Type</a>() const </td><td><a class="el" href="classTiXmlNode.html">TiXmlNode</a></td><td><code> [inline]</code></td></tr>
   <tr class="memlist"><td><a class="el" href="classTiXmlBase.html#p1">userData</a></td><td><a class="el" href="classTiXmlBase.html">TiXmlBase</a></td><td><code> [protected]</code></td></tr>
   <tr class="memlist"><td><a class="el" href="classTiXmlNode.html#a1">Value</a>() const </td><td><a class="el" href="classTiXmlNode.html">TiXmlNode</a></td><td><code> [inline]</code></td></tr>
   <tr class="memlist"><td><a class="el" href="classTiXmlNode.html#a2">ValueStr</a>() const </td><td><a class="el" href="classTiXmlNode.html">TiXmlNode</a></td><td><code> [inline]</code></td></tr>
-</table><hr size="1"><address style="align: right;"><small>Generated on Sat Oct 8 14:15:30 2005 for TinyXml by&nbsp;
+</table><hr size="1"><address style="align: right;"><small>Generated on Sun Jan 15 23:12:05 2006 for TinyXml by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4 </small></address>
 </body>
diff --git a/docs/classTiXmlUnknown.html b/docs/classTiXmlUnknown.html
index a6661d3..c37333b 100644
--- a/docs/classTiXmlUnknown.html
+++ b/docs/classTiXmlUnknown.html
@@ -27,6 +27,14 @@
 virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTiXmlUnknown.html#a5">Print</a> (FILE *cfile, int depth) const </td></tr>
 
 <tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Print this Unknown to a FILE stream. <br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="a7"></a><!-- doxytag: member="TiXmlUnknown::ToUnknown" ref="a7" args="() const " -->
+virtual const <a class="el" href="classTiXmlUnknown.html">TiXmlUnknown</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTiXmlUnknown.html#a7">ToUnknown</a> () const </td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Cast to a more defined type. Will return null not of the requested type. <br></td></tr>
+<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="a8"></a><!-- doxytag: member="TiXmlUnknown::ToUnknown" ref="a8" args="()" -->
+virtual <a class="el" href="classTiXmlUnknown.html">TiXmlUnknown</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTiXmlUnknown.html#a8">ToUnknown</a> ()</td></tr>
+
+<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Cast to a more defined type. Will return null not of the requested type. <br></td></tr>
 </table>
 <hr><a name="_details"></a><h2>Detailed Description</h2>
 Any tag that tinyXml doesn't recognize is saved as an unknown. 
@@ -36,7 +44,7 @@
 <p>
 <hr>The documentation for this class was generated from the following file:<ul>
 <li><a class="el" href="tinyxml_8h-source.html">tinyxml.h</a></ul>
-<hr size="1"><address style="align: right;"><small>Generated on Sat Oct 8 14:15:30 2005 for TinyXml by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Sun Jan 15 23:12:05 2006 for TinyXml by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4 </small></address>
 </body>
diff --git a/docs/files.html b/docs/files.html
index e848a1d..9261fc9 100644
--- a/docs/files.html
+++ b/docs/files.html
@@ -9,7 +9,7 @@
   <tr><td class="indexkey"><b>tinystr.h</b> <a href="tinystr_8h-source.html">[code]</a></td><td class="indexvalue"></td></tr>
   <tr><td class="indexkey"><b>tinyxml.h</b> <a href="tinyxml_8h-source.html">[code]</a></td><td class="indexvalue"></td></tr>
 </table>
-<hr size="1"><address style="align: right;"><small>Generated on Sat Oct 8 14:15:30 2005 for TinyXml by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Sun Jan 15 23:12:04 2006 for TinyXml by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4 </small></address>
 </body>
diff --git a/docs/functions.html b/docs/functions.html
index 72741f0..d399687 100644
--- a/docs/functions.html
+++ b/docs/functions.html
@@ -20,7 +20,7 @@
 : <a class="el" href="classTiXmlHandle.html#a8">TiXmlHandle</a><li>ChildElement()
 : <a class="el" href="classTiXmlHandle.html#a10">TiXmlHandle</a><li>Clear()
 : <a class="el" href="classTiXmlNode.html#a5">TiXmlNode</a><li>ClearError()
-: <a class="el" href="classTiXmlDocument.html#a22">TiXmlDocument</a><li>Clone()
+: <a class="el" href="classTiXmlDocument.html#a24">TiXmlDocument</a><li>Clone()
 : <a class="el" href="classTiXmlDocument.html#b1">TiXmlDocument</a>, <a class="el" href="classTiXmlUnknown.html#a4">TiXmlUnknown</a>, <a class="el" href="classTiXmlDeclaration.html#a9">TiXmlDeclaration</a>, <a class="el" href="classTiXmlText.html#b0">TiXmlText</a>, <a class="el" href="classTiXmlComment.html#a4">TiXmlComment</a>, <a class="el" href="classTiXmlElement.html#a28">TiXmlElement</a>, <a class="el" href="classTiXmlNode.html#a72">TiXmlNode</a><li>Column()
 : <a class="el" href="classTiXmlBase.html#a4">TiXmlBase</a></ul>
 <h3><a class="anchor" name="index_d">- d -</a></h3><ul>
@@ -30,11 +30,11 @@
 <li>Element()
 : <a class="el" href="classTiXmlHandle.html#a16">TiXmlHandle</a><li>Encoding()
 : <a class="el" href="classTiXmlDeclaration.html#a7">TiXmlDeclaration</a><li>Error()
-: <a class="el" href="classTiXmlDocument.html#a15">TiXmlDocument</a><li>ErrorCol()
-: <a class="el" href="classTiXmlDocument.html#a19">TiXmlDocument</a><li>ErrorDesc()
-: <a class="el" href="classTiXmlDocument.html#a16">TiXmlDocument</a><li>ErrorId()
-: <a class="el" href="classTiXmlDocument.html#a17">TiXmlDocument</a><li>ErrorRow()
-: <a class="el" href="classTiXmlDocument.html#a18">TiXmlDocument</a></ul>
+: <a class="el" href="classTiXmlDocument.html#a17">TiXmlDocument</a><li>ErrorCol()
+: <a class="el" href="classTiXmlDocument.html#a21">TiXmlDocument</a><li>ErrorDesc()
+: <a class="el" href="classTiXmlDocument.html#a18">TiXmlDocument</a><li>ErrorId()
+: <a class="el" href="classTiXmlDocument.html#a19">TiXmlDocument</a><li>ErrorRow()
+: <a class="el" href="classTiXmlDocument.html#a20">TiXmlDocument</a></ul>
 <h3><a class="anchor" name="index_f">- f -</a></h3><ul>
 <li>FirstAttribute()
 : <a class="el" href="classTiXmlElement.html#a23">TiXmlElement</a><li>FirstChild()
@@ -57,11 +57,11 @@
 : <a class="el" href="classTiXmlElement.html#a25">TiXmlElement</a><li>LastChild()
 : <a class="el" href="classTiXmlNode.html#a19">TiXmlNode</a><li>LinkEndChild()
 : <a class="el" href="classTiXmlNode.html#a27">TiXmlNode</a><li>LoadFile()
-: <a class="el" href="classTiXmlDocument.html#a10">TiXmlDocument</a></ul>
+: <a class="el" href="classTiXmlDocument.html#a12">TiXmlDocument</a></ul>
 <h3><a class="anchor" name="index_n">- n -</a></h3><ul>
 <li>Name()
 : <a class="el" href="classTiXmlAttribute.html#a3">TiXmlAttribute</a><li>Next()
-: <a class="el" href="classTiXmlAttribute.html#a15">TiXmlAttribute</a><li>NextSibling()
+: <a class="el" href="classTiXmlAttribute.html#a16">TiXmlAttribute</a><li>NextSibling()
 : <a class="el" href="classTiXmlNode.html#a42">TiXmlNode</a><li>NextSiblingElement()
 : <a class="el" href="classTiXmlNode.html#a49">TiXmlNode</a><li>NoChildren()
 : <a class="el" href="classTiXmlNode.html#a59">TiXmlNode</a><li>Node()
@@ -74,36 +74,36 @@
 <h3><a class="anchor" name="index_p">- p -</a></h3><ul>
 <li>Parent()
 : <a class="el" href="classTiXmlNode.html#a6">TiXmlNode</a><li>Parse()
-: <a class="el" href="classTiXmlDocument.html#a12">TiXmlDocument</a><li>Previous()
-: <a class="el" href="classTiXmlAttribute.html#a17">TiXmlAttribute</a><li>PreviousSibling()
+: <a class="el" href="classTiXmlDocument.html#a14">TiXmlDocument</a><li>Previous()
+: <a class="el" href="classTiXmlAttribute.html#a18">TiXmlAttribute</a><li>PreviousSibling()
 : <a class="el" href="classTiXmlNode.html#a37">TiXmlNode</a><li>Print()
-: <a class="el" href="classTiXmlDocument.html#a24">TiXmlDocument</a>, <a class="el" href="classTiXmlUnknown.html#a5">TiXmlUnknown</a>, <a class="el" href="classTiXmlDeclaration.html#a10">TiXmlDeclaration</a>, <a class="el" href="classTiXmlText.html#a5">TiXmlText</a>, <a class="el" href="classTiXmlComment.html#a5">TiXmlComment</a>, <a class="el" href="classTiXmlElement.html#a29">TiXmlElement</a>, <a class="el" href="classTiXmlAttribute.html#a23">TiXmlAttribute</a>, <a class="el" href="classTiXmlBase.html#a2">TiXmlBase</a></ul>
+: <a class="el" href="classTiXmlDocument.html#a26">TiXmlDocument</a>, <a class="el" href="classTiXmlUnknown.html#a5">TiXmlUnknown</a>, <a class="el" href="classTiXmlDeclaration.html#a10">TiXmlDeclaration</a>, <a class="el" href="classTiXmlText.html#a5">TiXmlText</a>, <a class="el" href="classTiXmlComment.html#a5">TiXmlComment</a>, <a class="el" href="classTiXmlElement.html#a29">TiXmlElement</a>, <a class="el" href="classTiXmlAttribute.html#a24">TiXmlAttribute</a>, <a class="el" href="classTiXmlBase.html#a2">TiXmlBase</a></ul>
 <h3><a class="anchor" name="index_q">- q -</a></h3><ul>
 <li>QueryDoubleAttribute()
 : <a class="el" href="classTiXmlElement.html#a9">TiXmlElement</a><li>QueryDoubleValue()
-: <a class="el" href="classTiXmlAttribute.html#a8">TiXmlAttribute</a><li>QueryFloatAttribute()
+: <a class="el" href="classTiXmlAttribute.html#a9">TiXmlAttribute</a><li>QueryFloatAttribute()
 : <a class="el" href="classTiXmlElement.html#a10">TiXmlElement</a><li>QueryIntAttribute()
 : <a class="el" href="classTiXmlElement.html#a8">TiXmlElement</a><li>QueryIntValue()
-: <a class="el" href="classTiXmlAttribute.html#a7">TiXmlAttribute</a></ul>
+: <a class="el" href="classTiXmlAttribute.html#a8">TiXmlAttribute</a></ul>
 <h3><a class="anchor" name="index_r">- r -</a></h3><ul>
 <li>RemoveAttribute()
 : <a class="el" href="classTiXmlElement.html#a22">TiXmlElement</a><li>RemoveChild()
 : <a class="el" href="classTiXmlNode.html#a31">TiXmlNode</a><li>ReplaceChild()
 : <a class="el" href="classTiXmlNode.html#a30">TiXmlNode</a><li>RootElement()
-: <a class="el" href="classTiXmlDocument.html#a13">TiXmlDocument</a><li>Row()
+: <a class="el" href="classTiXmlDocument.html#a15">TiXmlDocument</a><li>Row()
 : <a class="el" href="classTiXmlBase.html#a3">TiXmlBase</a></ul>
 <h3><a class="anchor" name="index_s">- s -</a></h3><ul>
 <li>SaveFile()
-: <a class="el" href="classTiXmlDocument.html#a11">TiXmlDocument</a><li>SetAttribute()
+: <a class="el" href="classTiXmlDocument.html#a13">TiXmlDocument</a><li>SetAttribute()
 : <a class="el" href="classTiXmlElement.html#a19">TiXmlElement</a><li>SetCDATA()
 : <a class="el" href="classTiXmlText.html#a7">TiXmlText</a><li>SetCondenseWhiteSpace()
 : <a class="el" href="classTiXmlBase.html#e0">TiXmlBase</a><li>SetDoubleAttribute()
 : <a class="el" href="classTiXmlElement.html#a20">TiXmlElement</a><li>SetDoubleValue()
-: <a class="el" href="classTiXmlAttribute.html#a12">TiXmlAttribute</a><li>SetIntValue()
-: <a class="el" href="classTiXmlAttribute.html#a11">TiXmlAttribute</a><li>SetName()
-: <a class="el" href="classTiXmlAttribute.html#a13">TiXmlAttribute</a><li>SetTabSize()
-: <a class="el" href="classTiXmlDocument.html#a20">TiXmlDocument</a><li>SetValue()
-: <a class="el" href="classTiXmlAttribute.html#a14">TiXmlAttribute</a>, <a class="el" href="classTiXmlNode.html#a4">TiXmlNode</a><li>Standalone()
+: <a class="el" href="classTiXmlAttribute.html#a13">TiXmlAttribute</a><li>SetIntValue()
+: <a class="el" href="classTiXmlAttribute.html#a12">TiXmlAttribute</a><li>SetName()
+: <a class="el" href="classTiXmlAttribute.html#a14">TiXmlAttribute</a><li>SetTabSize()
+: <a class="el" href="classTiXmlDocument.html#a22">TiXmlDocument</a><li>SetValue()
+: <a class="el" href="classTiXmlAttribute.html#a15">TiXmlAttribute</a>, <a class="el" href="classTiXmlNode.html#a4">TiXmlNode</a><li>Standalone()
 : <a class="el" href="classTiXmlDeclaration.html#a8">TiXmlDeclaration</a></ul>
 <h3><a class="anchor" name="index_t">- t -</a></h3><ul>
 <li>Text()
@@ -115,12 +115,12 @@
 : <a class="el" href="classTiXmlElement.html#a1">TiXmlElement</a><li>TiXmlHandle()
 : <a class="el" href="classTiXmlHandle.html#a1">TiXmlHandle</a><li>TiXmlText()
 : <a class="el" href="classTiXmlText.html#a2">TiXmlText</a><li>ToComment()
-: <a class="el" href="classTiXmlNode.html#a68">TiXmlNode</a><li>ToDeclaration()
-: <a class="el" href="classTiXmlNode.html#a71">TiXmlNode</a><li>ToDocument()
-: <a class="el" href="classTiXmlNode.html#a66">TiXmlNode</a><li>ToElement()
-: <a class="el" href="classTiXmlNode.html#a67">TiXmlNode</a><li>ToText()
-: <a class="el" href="classTiXmlNode.html#a70">TiXmlNode</a><li>ToUnknown()
-: <a class="el" href="classTiXmlNode.html#a69">TiXmlNode</a><li>Type()
+: <a class="el" href="classTiXmlComment.html#a8">TiXmlComment</a>, <a class="el" href="classTiXmlNode.html#a68">TiXmlNode</a><li>ToDeclaration()
+: <a class="el" href="classTiXmlDeclaration.html#a13">TiXmlDeclaration</a>, <a class="el" href="classTiXmlNode.html#a71">TiXmlNode</a><li>ToDocument()
+: <a class="el" href="classTiXmlDocument.html#a29">TiXmlDocument</a>, <a class="el" href="classTiXmlNode.html#a66">TiXmlNode</a><li>ToElement()
+: <a class="el" href="classTiXmlElement.html#a32">TiXmlElement</a>, <a class="el" href="classTiXmlNode.html#a67">TiXmlNode</a><li>ToText()
+: <a class="el" href="classTiXmlText.html#a10">TiXmlText</a>, <a class="el" href="classTiXmlNode.html#a70">TiXmlNode</a><li>ToUnknown()
+: <a class="el" href="classTiXmlUnknown.html#a8">TiXmlUnknown</a>, <a class="el" href="classTiXmlNode.html#a69">TiXmlNode</a><li>Type()
 : <a class="el" href="classTiXmlNode.html#a56">TiXmlNode</a></ul>
 <h3><a class="anchor" name="index_u">- u -</a></h3><ul>
 <li>Unknown()
@@ -131,7 +131,7 @@
 : <a class="el" href="classTiXmlAttribute.html#a4">TiXmlAttribute</a>, <a class="el" href="classTiXmlNode.html#a1">TiXmlNode</a><li>ValueStr()
 : <a class="el" href="classTiXmlNode.html#a2">TiXmlNode</a><li>Version()
 : <a class="el" href="classTiXmlDeclaration.html#a6">TiXmlDeclaration</a></ul>
-<hr size="1"><address style="align: right;"><small>Generated on Sat Oct 8 14:15:30 2005 for TinyXml by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Sun Jan 15 23:12:04 2006 for TinyXml by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4 </small></address>
 </body>
diff --git a/docs/functions_enum.html b/docs/functions_enum.html
index a5ee939..0b8c4cd 100644
--- a/docs/functions_enum.html
+++ b/docs/functions_enum.html
@@ -11,7 +11,7 @@
 <ul>
 <li>NodeType
 : <a class="el" href="classTiXmlNode.html#w7">TiXmlNode</a></ul>
-<hr size="1"><address style="align: right;"><small>Generated on Sat Oct 8 14:15:30 2005 for TinyXml by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Sun Jan 15 23:12:04 2006 for TinyXml by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4 </small></address>
 </body>
diff --git a/docs/functions_func.html b/docs/functions_func.html
index 3a7fb0d..bf8380f 100644
--- a/docs/functions_func.html
+++ b/docs/functions_func.html
@@ -20,7 +20,7 @@
 : <a class="el" href="classTiXmlHandle.html#a8">TiXmlHandle</a><li>ChildElement()
 : <a class="el" href="classTiXmlHandle.html#a10">TiXmlHandle</a><li>Clear()
 : <a class="el" href="classTiXmlNode.html#a5">TiXmlNode</a><li>ClearError()
-: <a class="el" href="classTiXmlDocument.html#a22">TiXmlDocument</a><li>Clone()
+: <a class="el" href="classTiXmlDocument.html#a24">TiXmlDocument</a><li>Clone()
 : <a class="el" href="classTiXmlDocument.html#b1">TiXmlDocument</a>, <a class="el" href="classTiXmlUnknown.html#a4">TiXmlUnknown</a>, <a class="el" href="classTiXmlDeclaration.html#a9">TiXmlDeclaration</a>, <a class="el" href="classTiXmlText.html#b0">TiXmlText</a>, <a class="el" href="classTiXmlComment.html#a4">TiXmlComment</a>, <a class="el" href="classTiXmlElement.html#a28">TiXmlElement</a>, <a class="el" href="classTiXmlNode.html#a72">TiXmlNode</a><li>Column()
 : <a class="el" href="classTiXmlBase.html#a4">TiXmlBase</a></ul>
 <h3><a class="anchor" name="index_d">- d -</a></h3><ul>
@@ -30,11 +30,11 @@
 <li>Element()
 : <a class="el" href="classTiXmlHandle.html#a16">TiXmlHandle</a><li>Encoding()
 : <a class="el" href="classTiXmlDeclaration.html#a7">TiXmlDeclaration</a><li>Error()
-: <a class="el" href="classTiXmlDocument.html#a15">TiXmlDocument</a><li>ErrorCol()
-: <a class="el" href="classTiXmlDocument.html#a19">TiXmlDocument</a><li>ErrorDesc()
-: <a class="el" href="classTiXmlDocument.html#a16">TiXmlDocument</a><li>ErrorId()
-: <a class="el" href="classTiXmlDocument.html#a17">TiXmlDocument</a><li>ErrorRow()
-: <a class="el" href="classTiXmlDocument.html#a18">TiXmlDocument</a></ul>
+: <a class="el" href="classTiXmlDocument.html#a17">TiXmlDocument</a><li>ErrorCol()
+: <a class="el" href="classTiXmlDocument.html#a21">TiXmlDocument</a><li>ErrorDesc()
+: <a class="el" href="classTiXmlDocument.html#a18">TiXmlDocument</a><li>ErrorId()
+: <a class="el" href="classTiXmlDocument.html#a19">TiXmlDocument</a><li>ErrorRow()
+: <a class="el" href="classTiXmlDocument.html#a20">TiXmlDocument</a></ul>
 <h3><a class="anchor" name="index_f">- f -</a></h3><ul>
 <li>FirstAttribute()
 : <a class="el" href="classTiXmlElement.html#a23">TiXmlElement</a><li>FirstChild()
@@ -57,11 +57,11 @@
 : <a class="el" href="classTiXmlElement.html#a25">TiXmlElement</a><li>LastChild()
 : <a class="el" href="classTiXmlNode.html#a19">TiXmlNode</a><li>LinkEndChild()
 : <a class="el" href="classTiXmlNode.html#a27">TiXmlNode</a><li>LoadFile()
-: <a class="el" href="classTiXmlDocument.html#a10">TiXmlDocument</a></ul>
+: <a class="el" href="classTiXmlDocument.html#a12">TiXmlDocument</a></ul>
 <h3><a class="anchor" name="index_n">- n -</a></h3><ul>
 <li>Name()
 : <a class="el" href="classTiXmlAttribute.html#a3">TiXmlAttribute</a><li>Next()
-: <a class="el" href="classTiXmlAttribute.html#a15">TiXmlAttribute</a><li>NextSibling()
+: <a class="el" href="classTiXmlAttribute.html#a16">TiXmlAttribute</a><li>NextSibling()
 : <a class="el" href="classTiXmlNode.html#a42">TiXmlNode</a><li>NextSiblingElement()
 : <a class="el" href="classTiXmlNode.html#a49">TiXmlNode</a><li>NoChildren()
 : <a class="el" href="classTiXmlNode.html#a59">TiXmlNode</a><li>Node()
@@ -69,36 +69,36 @@
 <h3><a class="anchor" name="index_p">- p -</a></h3><ul>
 <li>Parent()
 : <a class="el" href="classTiXmlNode.html#a6">TiXmlNode</a><li>Parse()
-: <a class="el" href="classTiXmlDocument.html#a12">TiXmlDocument</a><li>Previous()
-: <a class="el" href="classTiXmlAttribute.html#a17">TiXmlAttribute</a><li>PreviousSibling()
+: <a class="el" href="classTiXmlDocument.html#a14">TiXmlDocument</a><li>Previous()
+: <a class="el" href="classTiXmlAttribute.html#a18">TiXmlAttribute</a><li>PreviousSibling()
 : <a class="el" href="classTiXmlNode.html#a37">TiXmlNode</a><li>Print()
-: <a class="el" href="classTiXmlDocument.html#a24">TiXmlDocument</a>, <a class="el" href="classTiXmlUnknown.html#a5">TiXmlUnknown</a>, <a class="el" href="classTiXmlDeclaration.html#a10">TiXmlDeclaration</a>, <a class="el" href="classTiXmlText.html#a5">TiXmlText</a>, <a class="el" href="classTiXmlComment.html#a5">TiXmlComment</a>, <a class="el" href="classTiXmlElement.html#a29">TiXmlElement</a>, <a class="el" href="classTiXmlAttribute.html#a23">TiXmlAttribute</a>, <a class="el" href="classTiXmlBase.html#a2">TiXmlBase</a></ul>
+: <a class="el" href="classTiXmlDocument.html#a26">TiXmlDocument</a>, <a class="el" href="classTiXmlUnknown.html#a5">TiXmlUnknown</a>, <a class="el" href="classTiXmlDeclaration.html#a10">TiXmlDeclaration</a>, <a class="el" href="classTiXmlText.html#a5">TiXmlText</a>, <a class="el" href="classTiXmlComment.html#a5">TiXmlComment</a>, <a class="el" href="classTiXmlElement.html#a29">TiXmlElement</a>, <a class="el" href="classTiXmlAttribute.html#a24">TiXmlAttribute</a>, <a class="el" href="classTiXmlBase.html#a2">TiXmlBase</a></ul>
 <h3><a class="anchor" name="index_q">- q -</a></h3><ul>
 <li>QueryDoubleAttribute()
 : <a class="el" href="classTiXmlElement.html#a9">TiXmlElement</a><li>QueryDoubleValue()
-: <a class="el" href="classTiXmlAttribute.html#a8">TiXmlAttribute</a><li>QueryFloatAttribute()
+: <a class="el" href="classTiXmlAttribute.html#a9">TiXmlAttribute</a><li>QueryFloatAttribute()
 : <a class="el" href="classTiXmlElement.html#a10">TiXmlElement</a><li>QueryIntAttribute()
 : <a class="el" href="classTiXmlElement.html#a8">TiXmlElement</a><li>QueryIntValue()
-: <a class="el" href="classTiXmlAttribute.html#a7">TiXmlAttribute</a></ul>
+: <a class="el" href="classTiXmlAttribute.html#a8">TiXmlAttribute</a></ul>
 <h3><a class="anchor" name="index_r">- r -</a></h3><ul>
 <li>RemoveAttribute()
 : <a class="el" href="classTiXmlElement.html#a22">TiXmlElement</a><li>RemoveChild()
 : <a class="el" href="classTiXmlNode.html#a31">TiXmlNode</a><li>ReplaceChild()
 : <a class="el" href="classTiXmlNode.html#a30">TiXmlNode</a><li>RootElement()
-: <a class="el" href="classTiXmlDocument.html#a13">TiXmlDocument</a><li>Row()
+: <a class="el" href="classTiXmlDocument.html#a15">TiXmlDocument</a><li>Row()
 : <a class="el" href="classTiXmlBase.html#a3">TiXmlBase</a></ul>
 <h3><a class="anchor" name="index_s">- s -</a></h3><ul>
 <li>SaveFile()
-: <a class="el" href="classTiXmlDocument.html#a11">TiXmlDocument</a><li>SetAttribute()
+: <a class="el" href="classTiXmlDocument.html#a13">TiXmlDocument</a><li>SetAttribute()
 : <a class="el" href="classTiXmlElement.html#a19">TiXmlElement</a><li>SetCDATA()
 : <a class="el" href="classTiXmlText.html#a7">TiXmlText</a><li>SetCondenseWhiteSpace()
 : <a class="el" href="classTiXmlBase.html#e0">TiXmlBase</a><li>SetDoubleAttribute()
 : <a class="el" href="classTiXmlElement.html#a20">TiXmlElement</a><li>SetDoubleValue()
-: <a class="el" href="classTiXmlAttribute.html#a12">TiXmlAttribute</a><li>SetIntValue()
-: <a class="el" href="classTiXmlAttribute.html#a11">TiXmlAttribute</a><li>SetName()
-: <a class="el" href="classTiXmlAttribute.html#a13">TiXmlAttribute</a><li>SetTabSize()
-: <a class="el" href="classTiXmlDocument.html#a20">TiXmlDocument</a><li>SetValue()
-: <a class="el" href="classTiXmlAttribute.html#a14">TiXmlAttribute</a>, <a class="el" href="classTiXmlNode.html#a4">TiXmlNode</a><li>Standalone()
+: <a class="el" href="classTiXmlAttribute.html#a13">TiXmlAttribute</a><li>SetIntValue()
+: <a class="el" href="classTiXmlAttribute.html#a12">TiXmlAttribute</a><li>SetName()
+: <a class="el" href="classTiXmlAttribute.html#a14">TiXmlAttribute</a><li>SetTabSize()
+: <a class="el" href="classTiXmlDocument.html#a22">TiXmlDocument</a><li>SetValue()
+: <a class="el" href="classTiXmlAttribute.html#a15">TiXmlAttribute</a>, <a class="el" href="classTiXmlNode.html#a4">TiXmlNode</a><li>Standalone()
 : <a class="el" href="classTiXmlDeclaration.html#a8">TiXmlDeclaration</a></ul>
 <h3><a class="anchor" name="index_t">- t -</a></h3><ul>
 <li>Text()
@@ -110,12 +110,12 @@
 : <a class="el" href="classTiXmlElement.html#a1">TiXmlElement</a><li>TiXmlHandle()
 : <a class="el" href="classTiXmlHandle.html#a1">TiXmlHandle</a><li>TiXmlText()
 : <a class="el" href="classTiXmlText.html#a2">TiXmlText</a><li>ToComment()
-: <a class="el" href="classTiXmlNode.html#a68">TiXmlNode</a><li>ToDeclaration()
-: <a class="el" href="classTiXmlNode.html#a71">TiXmlNode</a><li>ToDocument()
-: <a class="el" href="classTiXmlNode.html#a66">TiXmlNode</a><li>ToElement()
-: <a class="el" href="classTiXmlNode.html#a67">TiXmlNode</a><li>ToText()
-: <a class="el" href="classTiXmlNode.html#a70">TiXmlNode</a><li>ToUnknown()
-: <a class="el" href="classTiXmlNode.html#a69">TiXmlNode</a><li>Type()
+: <a class="el" href="classTiXmlComment.html#a8">TiXmlComment</a>, <a class="el" href="classTiXmlNode.html#a68">TiXmlNode</a><li>ToDeclaration()
+: <a class="el" href="classTiXmlDeclaration.html#a13">TiXmlDeclaration</a>, <a class="el" href="classTiXmlNode.html#a71">TiXmlNode</a><li>ToDocument()
+: <a class="el" href="classTiXmlDocument.html#a29">TiXmlDocument</a>, <a class="el" href="classTiXmlNode.html#a66">TiXmlNode</a><li>ToElement()
+: <a class="el" href="classTiXmlElement.html#a32">TiXmlElement</a>, <a class="el" href="classTiXmlNode.html#a67">TiXmlNode</a><li>ToText()
+: <a class="el" href="classTiXmlText.html#a10">TiXmlText</a>, <a class="el" href="classTiXmlNode.html#a70">TiXmlNode</a><li>ToUnknown()
+: <a class="el" href="classTiXmlUnknown.html#a8">TiXmlUnknown</a>, <a class="el" href="classTiXmlNode.html#a69">TiXmlNode</a><li>Type()
 : <a class="el" href="classTiXmlNode.html#a56">TiXmlNode</a></ul>
 <h3><a class="anchor" name="index_u">- u -</a></h3><ul>
 <li>Unknown()
@@ -125,7 +125,7 @@
 : <a class="el" href="classTiXmlAttribute.html#a4">TiXmlAttribute</a>, <a class="el" href="classTiXmlNode.html#a1">TiXmlNode</a><li>ValueStr()
 : <a class="el" href="classTiXmlNode.html#a2">TiXmlNode</a><li>Version()
 : <a class="el" href="classTiXmlDeclaration.html#a6">TiXmlDeclaration</a></ul>
-<hr size="1"><address style="align: right;"><small>Generated on Sat Oct 8 14:15:30 2005 for TinyXml by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Sun Jan 15 23:12:04 2006 for TinyXml by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4 </small></address>
 </body>
diff --git a/docs/functions_rela.html b/docs/functions_rela.html
index d83816f..81a0c19 100644
--- a/docs/functions_rela.html
+++ b/docs/functions_rela.html
@@ -12,7 +12,7 @@
 <li>operator&lt;&lt;
 : <a class="el" href="classTiXmlNode.html#n4">TiXmlNode</a><li>operator&gt;&gt;
 : <a class="el" href="classTiXmlNode.html#n2">TiXmlNode</a></ul>
-<hr size="1"><address style="align: right;"><small>Generated on Sat Oct 8 14:15:30 2005 for TinyXml by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Sun Jan 15 23:12:04 2006 for TinyXml by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4 </small></address>
 </body>
diff --git a/docs/functions_vars.html b/docs/functions_vars.html
index 6d3b037..b560b38 100644
--- a/docs/functions_vars.html
+++ b/docs/functions_vars.html
@@ -11,7 +11,7 @@
 <ul>
 <li>userData
 : <a class="el" href="classTiXmlBase.html#p1">TiXmlBase</a></ul>
-<hr size="1"><address style="align: right;"><small>Generated on Sat Oct 8 14:15:30 2005 for TinyXml by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Sun Jan 15 23:12:04 2006 for TinyXml by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4 </small></address>
 </body>
diff --git a/docs/hierarchy.html b/docs/hierarchy.html
index 4404cf2..c58af14 100644
--- a/docs/hierarchy.html
+++ b/docs/hierarchy.html
@@ -21,7 +21,7 @@
 </ul>
 <li><a class="el" href="classTiXmlHandle.html">TiXmlHandle</a>
 </ul>
-<hr size="1"><address style="align: right;"><small>Generated on Sat Oct 8 14:15:30 2005 for TinyXml by&nbsp;
+<hr size="1"><address style="align: right;"><small>Generated on Sun Jan 15 23:12:04 2006 for TinyXml by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4 </small></address>
 </body>
diff --git a/docs/index.html b/docs/index.html
index 95818c6..2291ad6 100644
--- a/docs/index.html
+++ b/docs/index.html
@@ -7,7 +7,7 @@
 <div class="qindex"><a class="qindexHL" href="index.html">Main&nbsp;Page</a> | <a class="qindex" href="hierarchy.html">Class&nbsp;Hierarchy</a> | <a class="qindex" href="annotated.html">Class&nbsp;List</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="functions.html">Class&nbsp;Members</a></div>
 <h1>TinyXml Documentation</h1>
 <p>
-<h3 align="center">2.4.0 </h3><h1>TinyXml </h1>
+<h3 align="center">2.4.3 </h3><h1>TinyXml </h1>
 <p>
 TinyXml is a simple, small, C++ XML parser that can be easily integrating into other programs.<p>
 <h2>What it does. </h2>
@@ -139,7 +139,7 @@
 <h3>Row and Column tracking </h3>
 <p>
 Being able to track nodes and attributes back to their origin location in source files can be very important for some applications. Additionally, knowing where parsing errors occured in the original source can be very time saving.<p>
-TinyXml can tracks the row and column origin of all nodes and attributes in a text file. The <a class="el" href="classTiXmlBase.html#a3">TiXmlBase::Row()</a> and <a class="el" href="classTiXmlBase.html#a4">TiXmlBase::Column()</a> methods return the origin of the node in the source text. The correct tabs can be configured in <a class="el" href="classTiXmlDocument.html#a20">TiXmlDocument::SetTabSize()</a>.<p>
+TinyXml can tracks the row and column origin of all nodes and attributes in a text file. The <a class="el" href="classTiXmlBase.html#a3">TiXmlBase::Row()</a> and <a class="el" href="classTiXmlBase.html#a4">TiXmlBase::Column()</a> methods return the origin of the node in the source text. The correct tabs can be configured in <a class="el" href="classTiXmlDocument.html#a22">TiXmlDocument::SetTabSize()</a>.<p>
 <h2>Using and Installing </h2>
 <p>
 To Compile and Run xmltest:<p>
@@ -232,7 +232,7 @@
 TinyXml was originally written be Lee Thomason. (Often the "I" still in the documenation.) Lee reviews changes and releases new versions, with the help of Yves Berquin and the tinyXml community.<p>
 We appreciate your suggestions, and would love to know if you use TinyXml. Hopefully you will enjoy it and find it useful. Please post questions, comments, file bugs, or contact us at:<p>
 www.sourceforge.net/projects/tinyxml<p>
-Lee Thomason, Yves Berquin <hr size="1"><address style="align: right;"><small>Generated on Sat Oct 8 14:15:30 2005 for TinyXml by&nbsp;
+Lee Thomason, Yves Berquin <hr size="1"><address style="align: right;"><small>Generated on Sun Jan 15 23:12:04 2006 for TinyXml by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4 </small></address>
 </body>
diff --git a/docs/tinystr_8h-source.html b/docs/tinystr_8h-source.html
index d40a3c5..0ef30f5 100644
--- a/docs/tinystr_8h-source.html
+++ b/docs/tinystr_8h-source.html
@@ -49,257 +49,282 @@
 <a name="l00042"></a>00042 <span class="preprocessor">#include &lt;assert.h&gt;</span>
 <a name="l00043"></a>00043 <span class="preprocessor">#include &lt;string.h&gt;</span>
 <a name="l00044"></a>00044 
-<a name="l00045"></a>00045 <span class="comment">/*</span>
-<a name="l00046"></a>00046 <span class="comment">   TiXmlString is an emulation of a subset of the std::string template.</span>
-<a name="l00047"></a>00047 <span class="comment">   Its purpose is to allow compiling TinyXML on compilers with no or poor STL support.</span>
-<a name="l00048"></a>00048 <span class="comment">   Only the member functions relevant to the TinyXML project have been implemented.</span>
-<a name="l00049"></a>00049 <span class="comment">   The buffer allocation is made by a simplistic power of 2 like mechanism : if we increase</span>
-<a name="l00050"></a>00050 <span class="comment">   a string and there's no more room, we allocate a buffer twice as big as we need.</span>
-<a name="l00051"></a>00051 <span class="comment">*/</span>
-<a name="l00052"></a>00052 <span class="keyword">class </span>TiXmlString
-<a name="l00053"></a>00053 {
-<a name="l00054"></a>00054   <span class="keyword">public</span> :
-<a name="l00055"></a>00055     <span class="comment">// The size type used</span>
-<a name="l00056"></a>00056     <span class="keyword">typedef</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> size_type;
-<a name="l00057"></a>00057 
-<a name="l00058"></a>00058     <span class="comment">// Error value for find primitive</span>
-<a name="l00059"></a>00059     <span class="keyword">static</span> <span class="keyword">const</span> size_type npos; <span class="comment">// = -1;</span>
-<a name="l00060"></a>00060 
-<a name="l00061"></a>00061 
-<a name="l00062"></a>00062     <span class="comment">// TiXmlString empty constructor</span>
-<a name="l00063"></a>00063     TiXmlString () : rep_(&amp;nullrep_)
-<a name="l00064"></a>00064     {
-<a name="l00065"></a>00065     }
-<a name="l00066"></a>00066 
-<a name="l00067"></a>00067     <span class="comment">// TiXmlString copy constructor</span>
-<a name="l00068"></a>00068     TiXmlString (<span class="keyword">const</span> TiXmlString &amp; copy)
-<a name="l00069"></a>00069     {
-<a name="l00070"></a>00070         init(copy.length());
-<a name="l00071"></a>00071         memcpy(start(), copy.data(), length());
-<a name="l00072"></a>00072     }
-<a name="l00073"></a>00073 
-<a name="l00074"></a>00074     <span class="comment">// TiXmlString constructor, based on a string</span>
-<a name="l00075"></a>00075     TiXmlString (<span class="keyword">const</span> <span class="keywordtype">char</span> * copy)
-<a name="l00076"></a>00076     {
-<a name="l00077"></a>00077         init( static_cast&lt;size_type&gt;( strlen(copy) ));
-<a name="l00078"></a>00078         memcpy(start(), copy, length());
-<a name="l00079"></a>00079     }
-<a name="l00080"></a>00080 
-<a name="l00081"></a>00081     <span class="comment">// TiXmlString constructor, based on a string</span>
-<a name="l00082"></a>00082     TiXmlString (<span class="keyword">const</span> <span class="keywordtype">char</span> * str, size_type len)
-<a name="l00083"></a>00083     {
-<a name="l00084"></a>00084         init(len);
-<a name="l00085"></a>00085         memcpy(start(), str, len);
-<a name="l00086"></a>00086     }
-<a name="l00087"></a>00087 
-<a name="l00088"></a>00088     <span class="comment">// TiXmlString destructor</span>
-<a name="l00089"></a>00089     ~TiXmlString ()
-<a name="l00090"></a>00090     {
-<a name="l00091"></a>00091         quit();
-<a name="l00092"></a>00092     }
-<a name="l00093"></a>00093 
-<a name="l00094"></a>00094     <span class="comment">// = operator</span>
-<a name="l00095"></a>00095     TiXmlString&amp; operator = (<span class="keyword">const</span> <span class="keywordtype">char</span> * copy)
-<a name="l00096"></a>00096     {
-<a name="l00097"></a>00097         <span class="keywordflow">return</span> assign( copy, (size_type)strlen(copy));
-<a name="l00098"></a>00098     }
-<a name="l00099"></a>00099 
-<a name="l00100"></a>00100     <span class="comment">// = operator</span>
-<a name="l00101"></a>00101     TiXmlString&amp; operator = (<span class="keyword">const</span> TiXmlString &amp; copy)
-<a name="l00102"></a>00102     {
-<a name="l00103"></a>00103         <span class="keywordflow">return</span> assign(copy.start(), copy.length());
-<a name="l00104"></a>00104     }
-<a name="l00105"></a>00105 
-<a name="l00106"></a>00106 
-<a name="l00107"></a>00107     <span class="comment">// += operator. Maps to append</span>
-<a name="l00108"></a>00108     TiXmlString&amp; operator += (<span class="keyword">const</span> <span class="keywordtype">char</span> * suffix)
-<a name="l00109"></a>00109     {
-<a name="l00110"></a>00110         <span class="keywordflow">return</span> append(suffix, static_cast&lt;size_type&gt;( strlen(suffix) ));
-<a name="l00111"></a>00111     }
-<a name="l00112"></a>00112 
-<a name="l00113"></a>00113     <span class="comment">// += operator. Maps to append</span>
-<a name="l00114"></a>00114     TiXmlString&amp; operator += (<span class="keywordtype">char</span> single)
-<a name="l00115"></a>00115     {
-<a name="l00116"></a>00116         <span class="keywordflow">return</span> append(&amp;single, 1);
-<a name="l00117"></a>00117     }
-<a name="l00118"></a>00118 
-<a name="l00119"></a>00119     <span class="comment">// += operator. Maps to append</span>
-<a name="l00120"></a>00120     TiXmlString&amp; operator += (<span class="keyword">const</span> TiXmlString &amp; suffix)
-<a name="l00121"></a>00121     {
-<a name="l00122"></a>00122         <span class="keywordflow">return</span> append(suffix.data(), suffix.length());
-<a name="l00123"></a>00123     }
-<a name="l00124"></a>00124 
-<a name="l00125"></a>00125 
-<a name="l00126"></a>00126     <span class="comment">// Convert a TiXmlString into a null-terminated char *</span>
-<a name="l00127"></a>00127     <span class="keyword">const</span> <span class="keywordtype">char</span> * c_str ()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> rep_-&gt;str; }
-<a name="l00128"></a>00128 
-<a name="l00129"></a>00129     <span class="comment">// Convert a TiXmlString into a char * (need not be null terminated).</span>
-<a name="l00130"></a>00130     <span class="keyword">const</span> <span class="keywordtype">char</span> * data ()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> rep_-&gt;str; }
-<a name="l00131"></a>00131 
-<a name="l00132"></a>00132     <span class="comment">// Return the length of a TiXmlString</span>
-<a name="l00133"></a>00133     size_type length ()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> rep_-&gt;size; }
-<a name="l00134"></a>00134 
-<a name="l00135"></a>00135     <span class="comment">// Alias for length()</span>
-<a name="l00136"></a>00136     size_type size ()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> rep_-&gt;size; }
-<a name="l00137"></a>00137 
-<a name="l00138"></a>00138     <span class="comment">// Checks if a TiXmlString is empty</span>
-<a name="l00139"></a>00139     <span class="keywordtype">bool</span> empty ()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> rep_-&gt;size == 0; }
+<a name="l00045"></a>00045 <span class="comment">/*  The support for explicit isn't that universal, and it isn't really</span>
+<a name="l00046"></a>00046 <span class="comment">    required - it is used to check that the TiXmlString class isn't incorrectly</span>
+<a name="l00047"></a>00047 <span class="comment">    used. Be nice to old compilers and macro it here:</span>
+<a name="l00048"></a>00048 <span class="comment">*/</span>
+<a name="l00049"></a>00049 <span class="preprocessor">#if defined(_MSC_VER) &amp;&amp; (_MSC_VER &gt;= 1200 )</span>
+<a name="l00050"></a>00050 <span class="preprocessor"></span>    <span class="comment">// Microsoft visual studio, version 6 and higher.</span>
+<a name="l00051"></a>00051 <span class="preprocessor">    #define TIXML_EXPLICIT explicit</span>
+<a name="l00052"></a>00052 <span class="preprocessor"></span><span class="preprocessor">#elif defined(__GNUC__) &amp;&amp; (__GNUC__ &gt;= 3 )</span>
+<a name="l00053"></a>00053 <span class="preprocessor"></span>    <span class="comment">// GCC version 3 and higher.s</span>
+<a name="l00054"></a>00054 <span class="preprocessor">    #define TIXML_EXPLICIT explicit</span>
+<a name="l00055"></a>00055 <span class="preprocessor"></span><span class="preprocessor">#else</span>
+<a name="l00056"></a>00056 <span class="preprocessor"></span><span class="preprocessor">    #define TIXML_EXPLICIT</span>
+<a name="l00057"></a>00057 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
+<a name="l00058"></a>00058 <span class="preprocessor"></span>
+<a name="l00059"></a>00059 
+<a name="l00060"></a>00060 <span class="comment">/*</span>
+<a name="l00061"></a>00061 <span class="comment">   TiXmlString is an emulation of a subset of the std::string template.</span>
+<a name="l00062"></a>00062 <span class="comment">   Its purpose is to allow compiling TinyXML on compilers with no or poor STL support.</span>
+<a name="l00063"></a>00063 <span class="comment">   Only the member functions relevant to the TinyXML project have been implemented.</span>
+<a name="l00064"></a>00064 <span class="comment">   The buffer allocation is made by a simplistic power of 2 like mechanism : if we increase</span>
+<a name="l00065"></a>00065 <span class="comment">   a string and there's no more room, we allocate a buffer twice as big as we need.</span>
+<a name="l00066"></a>00066 <span class="comment">*/</span>
+<a name="l00067"></a>00067 <span class="keyword">class </span>TiXmlString
+<a name="l00068"></a>00068 {
+<a name="l00069"></a>00069   <span class="keyword">public</span> :
+<a name="l00070"></a>00070     <span class="comment">// The size type used</span>
+<a name="l00071"></a>00071     <span class="keyword">typedef</span> size_t size_type;
+<a name="l00072"></a>00072 
+<a name="l00073"></a>00073     <span class="comment">// Error value for find primitive</span>
+<a name="l00074"></a>00074     <span class="keyword">static</span> <span class="keyword">const</span> size_type npos; <span class="comment">// = -1;</span>
+<a name="l00075"></a>00075 
+<a name="l00076"></a>00076 
+<a name="l00077"></a>00077     <span class="comment">// TiXmlString empty constructor</span>
+<a name="l00078"></a>00078     TiXmlString () : rep_(&amp;nullrep_)
+<a name="l00079"></a>00079     {
+<a name="l00080"></a>00080     }
+<a name="l00081"></a>00081 
+<a name="l00082"></a>00082     <span class="comment">// TiXmlString copy constructor</span>
+<a name="l00083"></a>00083     TiXmlString ( <span class="keyword">const</span> TiXmlString &amp; copy)
+<a name="l00084"></a>00084     {
+<a name="l00085"></a>00085         init(copy.length());
+<a name="l00086"></a>00086         memcpy(start(), copy.data(), length());
+<a name="l00087"></a>00087     }
+<a name="l00088"></a>00088 
+<a name="l00089"></a>00089     <span class="comment">// TiXmlString constructor, based on a string</span>
+<a name="l00090"></a>00090     TIXML_EXPLICIT TiXmlString ( <span class="keyword">const</span> <span class="keywordtype">char</span> * copy)
+<a name="l00091"></a>00091     {
+<a name="l00092"></a>00092         init( static_cast&lt;size_type&gt;( strlen(copy) ));
+<a name="l00093"></a>00093         memcpy(start(), copy, length());
+<a name="l00094"></a>00094     }
+<a name="l00095"></a>00095 
+<a name="l00096"></a>00096     <span class="comment">// TiXmlString constructor, based on a string</span>
+<a name="l00097"></a>00097     TIXML_EXPLICIT TiXmlString ( <span class="keyword">const</span> <span class="keywordtype">char</span> * str, size_type len)
+<a name="l00098"></a>00098     {
+<a name="l00099"></a>00099         init(len);
+<a name="l00100"></a>00100         memcpy(start(), str, len);
+<a name="l00101"></a>00101     }
+<a name="l00102"></a>00102 
+<a name="l00103"></a>00103     <span class="comment">// TiXmlString destructor</span>
+<a name="l00104"></a>00104     ~TiXmlString ()
+<a name="l00105"></a>00105     {
+<a name="l00106"></a>00106         quit();
+<a name="l00107"></a>00107     }
+<a name="l00108"></a>00108 
+<a name="l00109"></a>00109     <span class="comment">// = operator</span>
+<a name="l00110"></a>00110     TiXmlString&amp; operator = (<span class="keyword">const</span> <span class="keywordtype">char</span> * copy)
+<a name="l00111"></a>00111     {
+<a name="l00112"></a>00112         <span class="keywordflow">return</span> assign( copy, (size_type)strlen(copy));
+<a name="l00113"></a>00113     }
+<a name="l00114"></a>00114 
+<a name="l00115"></a>00115     <span class="comment">// = operator</span>
+<a name="l00116"></a>00116     TiXmlString&amp; operator = (<span class="keyword">const</span> TiXmlString &amp; copy)
+<a name="l00117"></a>00117     {
+<a name="l00118"></a>00118         <span class="keywordflow">return</span> assign(copy.start(), copy.length());
+<a name="l00119"></a>00119     }
+<a name="l00120"></a>00120 
+<a name="l00121"></a>00121 
+<a name="l00122"></a>00122     <span class="comment">// += operator. Maps to append</span>
+<a name="l00123"></a>00123     TiXmlString&amp; operator += (<span class="keyword">const</span> <span class="keywordtype">char</span> * suffix)
+<a name="l00124"></a>00124     {
+<a name="l00125"></a>00125         <span class="keywordflow">return</span> append(suffix, static_cast&lt;size_type&gt;( strlen(suffix) ));
+<a name="l00126"></a>00126     }
+<a name="l00127"></a>00127 
+<a name="l00128"></a>00128     <span class="comment">// += operator. Maps to append</span>
+<a name="l00129"></a>00129     TiXmlString&amp; operator += (<span class="keywordtype">char</span> single)
+<a name="l00130"></a>00130     {
+<a name="l00131"></a>00131         <span class="keywordflow">return</span> append(&amp;single, 1);
+<a name="l00132"></a>00132     }
+<a name="l00133"></a>00133 
+<a name="l00134"></a>00134     <span class="comment">// += operator. Maps to append</span>
+<a name="l00135"></a>00135     TiXmlString&amp; operator += (<span class="keyword">const</span> TiXmlString &amp; suffix)
+<a name="l00136"></a>00136     {
+<a name="l00137"></a>00137         <span class="keywordflow">return</span> append(suffix.data(), suffix.length());
+<a name="l00138"></a>00138     }
+<a name="l00139"></a>00139 
 <a name="l00140"></a>00140 
-<a name="l00141"></a>00141     <span class="comment">// Return capacity of string</span>
-<a name="l00142"></a>00142     size_type capacity ()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> rep_-&gt;capacity; }
+<a name="l00141"></a>00141     <span class="comment">// Convert a TiXmlString into a null-terminated char *</span>
+<a name="l00142"></a>00142     <span class="keyword">const</span> <span class="keywordtype">char</span> * c_str ()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> rep_-&gt;str; }
 <a name="l00143"></a>00143 
-<a name="l00144"></a>00144 
-<a name="l00145"></a>00145     <span class="comment">// single char extraction</span>
-<a name="l00146"></a>00146     <span class="keyword">const</span> <span class="keywordtype">char</span>&amp; at (size_type index)<span class="keyword"> const</span>
-<a name="l00147"></a>00147 <span class="keyword">    </span>{
-<a name="l00148"></a>00148         assert( index &lt; length() );
-<a name="l00149"></a>00149         <span class="keywordflow">return</span> rep_-&gt;str[ index ];
-<a name="l00150"></a>00150     }
-<a name="l00151"></a>00151 
-<a name="l00152"></a>00152     <span class="comment">// [] operator</span>
-<a name="l00153"></a>00153     <span class="keywordtype">char</span>&amp; operator [] (size_type index)<span class="keyword"> const</span>
-<a name="l00154"></a>00154 <span class="keyword">    </span>{
-<a name="l00155"></a>00155         assert( index &lt; length() );
-<a name="l00156"></a>00156         <span class="keywordflow">return</span> rep_-&gt;str[ index ];
-<a name="l00157"></a>00157     }
+<a name="l00144"></a>00144     <span class="comment">// Convert a TiXmlString into a char * (need not be null terminated).</span>
+<a name="l00145"></a>00145     <span class="keyword">const</span> <span class="keywordtype">char</span> * data ()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> rep_-&gt;str; }
+<a name="l00146"></a>00146 
+<a name="l00147"></a>00147     <span class="comment">// Return the length of a TiXmlString</span>
+<a name="l00148"></a>00148     size_type length ()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> rep_-&gt;size; }
+<a name="l00149"></a>00149 
+<a name="l00150"></a>00150     <span class="comment">// Alias for length()</span>
+<a name="l00151"></a>00151     size_type size ()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> rep_-&gt;size; }
+<a name="l00152"></a>00152 
+<a name="l00153"></a>00153     <span class="comment">// Checks if a TiXmlString is empty</span>
+<a name="l00154"></a>00154     <span class="keywordtype">bool</span> empty ()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> rep_-&gt;size == 0; }
+<a name="l00155"></a>00155 
+<a name="l00156"></a>00156     <span class="comment">// Return capacity of string</span>
+<a name="l00157"></a>00157     size_type capacity ()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> rep_-&gt;capacity; }
 <a name="l00158"></a>00158 
-<a name="l00159"></a>00159     <span class="comment">// find a char in a string. Return TiXmlString::npos if not found</span>
-<a name="l00160"></a>00160     size_type find (<span class="keywordtype">char</span> lookup)<span class="keyword"> const</span>
-<a name="l00161"></a>00161 <span class="keyword">    </span>{
-<a name="l00162"></a>00162         <span class="keywordflow">return</span> find(lookup, 0);
-<a name="l00163"></a>00163     }
-<a name="l00164"></a>00164 
-<a name="l00165"></a>00165     <span class="comment">// find a char in a string from an offset. Return TiXmlString::npos if not found</span>
-<a name="l00166"></a>00166     size_type find (<span class="keywordtype">char</span> tofind, size_type offset)<span class="keyword"> const</span>
-<a name="l00167"></a>00167 <span class="keyword">    </span>{
-<a name="l00168"></a>00168         <span class="keywordflow">if</span> (offset &gt;= length()) <span class="keywordflow">return</span> npos;
-<a name="l00169"></a>00169 
-<a name="l00170"></a>00170         <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keywordtype">char</span>* p = c_str() + offset; *p != <span class="charliteral">'\0'</span>; ++p)
-<a name="l00171"></a>00171         {
-<a name="l00172"></a>00172            <span class="keywordflow">if</span> (*p == tofind) <span class="keywordflow">return</span> static_cast&lt; size_type &gt;( p - c_str() );
-<a name="l00173"></a>00173         }
-<a name="l00174"></a>00174         <span class="keywordflow">return</span> npos;
-<a name="l00175"></a>00175     }
-<a name="l00176"></a>00176 
-<a name="l00177"></a>00177     <span class="keywordtype">void</span> clear ()
-<a name="l00178"></a>00178     {
-<a name="l00179"></a>00179         <span class="comment">//Lee:</span>
-<a name="l00180"></a>00180         <span class="comment">//The original was just too strange, though correct:</span>
-<a name="l00181"></a>00181         <span class="comment">//  TiXmlString().swap(*this);</span>
-<a name="l00182"></a>00182         <span class="comment">//Instead use the quit &amp; re-init:</span>
-<a name="l00183"></a>00183         quit();
-<a name="l00184"></a>00184         init(0,0);
-<a name="l00185"></a>00185     }
-<a name="l00186"></a>00186 
-<a name="l00187"></a>00187     <span class="comment">/*  Function to reserve a big amount of data when we know we'll need it. Be aware that this</span>
-<a name="l00188"></a>00188 <span class="comment">        function DOES NOT clear the content of the TiXmlString if any exists.</span>
-<a name="l00189"></a>00189 <span class="comment">    */</span>
-<a name="l00190"></a>00190     <span class="keywordtype">void</span> reserve (size_type cap);
+<a name="l00159"></a>00159 
+<a name="l00160"></a>00160     <span class="comment">// single char extraction</span>
+<a name="l00161"></a>00161     <span class="keyword">const</span> <span class="keywordtype">char</span>&amp; at (size_type index)<span class="keyword"> const</span>
+<a name="l00162"></a>00162 <span class="keyword">    </span>{
+<a name="l00163"></a>00163         assert( index &lt; length() );
+<a name="l00164"></a>00164         <span class="keywordflow">return</span> rep_-&gt;str[ index ];
+<a name="l00165"></a>00165     }
+<a name="l00166"></a>00166 
+<a name="l00167"></a>00167     <span class="comment">// [] operator</span>
+<a name="l00168"></a>00168     <span class="keywordtype">char</span>&amp; operator [] (size_type index)<span class="keyword"> const</span>
+<a name="l00169"></a>00169 <span class="keyword">    </span>{
+<a name="l00170"></a>00170         assert( index &lt; length() );
+<a name="l00171"></a>00171         <span class="keywordflow">return</span> rep_-&gt;str[ index ];
+<a name="l00172"></a>00172     }
+<a name="l00173"></a>00173 
+<a name="l00174"></a>00174     <span class="comment">// find a char in a string. Return TiXmlString::npos if not found</span>
+<a name="l00175"></a>00175     size_type find (<span class="keywordtype">char</span> lookup)<span class="keyword"> const</span>
+<a name="l00176"></a>00176 <span class="keyword">    </span>{
+<a name="l00177"></a>00177         <span class="keywordflow">return</span> find(lookup, 0);
+<a name="l00178"></a>00178     }
+<a name="l00179"></a>00179 
+<a name="l00180"></a>00180     <span class="comment">// find a char in a string from an offset. Return TiXmlString::npos if not found</span>
+<a name="l00181"></a>00181     size_type find (<span class="keywordtype">char</span> tofind, size_type offset)<span class="keyword"> const</span>
+<a name="l00182"></a>00182 <span class="keyword">    </span>{
+<a name="l00183"></a>00183         <span class="keywordflow">if</span> (offset &gt;= length()) <span class="keywordflow">return</span> npos;
+<a name="l00184"></a>00184 
+<a name="l00185"></a>00185         <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keywordtype">char</span>* p = c_str() + offset; *p != <span class="charliteral">'\0'</span>; ++p)
+<a name="l00186"></a>00186         {
+<a name="l00187"></a>00187            <span class="keywordflow">if</span> (*p == tofind) <span class="keywordflow">return</span> static_cast&lt; size_type &gt;( p - c_str() );
+<a name="l00188"></a>00188         }
+<a name="l00189"></a>00189         <span class="keywordflow">return</span> npos;
+<a name="l00190"></a>00190     }
 <a name="l00191"></a>00191 
-<a name="l00192"></a>00192     TiXmlString&amp; assign (<span class="keyword">const</span> <span class="keywordtype">char</span>* str, size_type len);
-<a name="l00193"></a>00193 
-<a name="l00194"></a>00194     TiXmlString&amp; append (<span class="keyword">const</span> <span class="keywordtype">char</span>* str, size_type len);
-<a name="l00195"></a>00195 
-<a name="l00196"></a>00196     <span class="keywordtype">void</span> swap (TiXmlString&amp; other)
-<a name="l00197"></a>00197     {
-<a name="l00198"></a>00198         Rep* r = rep_;
-<a name="l00199"></a>00199         rep_ = other.rep_;
-<a name="l00200"></a>00200         other.rep_ = r;
-<a name="l00201"></a>00201     }
-<a name="l00202"></a>00202 
-<a name="l00203"></a>00203   <span class="keyword">private</span>:
-<a name="l00204"></a>00204 
-<a name="l00205"></a>00205     <span class="keywordtype">void</span> init(size_type sz) { init(sz, sz); }
-<a name="l00206"></a>00206     <span class="keywordtype">void</span> set_size(size_type sz) { rep_-&gt;str[ rep_-&gt;size = sz ] = <span class="charliteral">'\0'</span>; }
-<a name="l00207"></a>00207     <span class="keywordtype">char</span>* start()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> rep_-&gt;str; }
-<a name="l00208"></a>00208     <span class="keywordtype">char</span>* finish()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> rep_-&gt;str + rep_-&gt;size; }
-<a name="l00209"></a>00209 
-<a name="l00210"></a>00210     <span class="keyword">struct </span>Rep
-<a name="l00211"></a>00211     {
-<a name="l00212"></a>00212         size_type size, capacity;
-<a name="l00213"></a>00213         <span class="keywordtype">char</span> str[1];
-<a name="l00214"></a>00214     };
-<a name="l00215"></a>00215 
-<a name="l00216"></a>00216     <span class="keywordtype">void</span> init(size_type sz, size_type cap)
-<a name="l00217"></a>00217     {
-<a name="l00218"></a>00218         <span class="keywordflow">if</span> (cap)
-<a name="l00219"></a>00219         {
-<a name="l00220"></a>00220             rep_ = static_cast&lt;Rep*&gt;(operator new(<span class="keyword">sizeof</span>(Rep) + cap));
-<a name="l00221"></a>00221             rep_-&gt;str[ rep_-&gt;size = sz ] = <span class="charliteral">'\0'</span>;
-<a name="l00222"></a>00222             rep_-&gt;capacity = cap;
-<a name="l00223"></a>00223         }
-<a name="l00224"></a>00224         <span class="keywordflow">else</span>
-<a name="l00225"></a>00225         {
-<a name="l00226"></a>00226             rep_ = &amp;nullrep_;
-<a name="l00227"></a>00227         }
-<a name="l00228"></a>00228     }
-<a name="l00229"></a>00229 
-<a name="l00230"></a>00230     <span class="keywordtype">void</span> quit()
-<a name="l00231"></a>00231     {
-<a name="l00232"></a>00232         <span class="keywordflow">if</span> (rep_ != &amp;nullrep_)
-<a name="l00233"></a>00233         {
-<a name="l00234"></a>00234             operator delete(rep_);
-<a name="l00235"></a>00235         }
-<a name="l00236"></a>00236     }
-<a name="l00237"></a>00237 
-<a name="l00238"></a>00238     Rep * rep_;
-<a name="l00239"></a>00239     <span class="keyword">static</span> Rep nullrep_;
-<a name="l00240"></a>00240 
-<a name="l00241"></a>00241 } ;
-<a name="l00242"></a>00242 
+<a name="l00192"></a>00192     <span class="keywordtype">void</span> clear ()
+<a name="l00193"></a>00193     {
+<a name="l00194"></a>00194         <span class="comment">//Lee:</span>
+<a name="l00195"></a>00195         <span class="comment">//The original was just too strange, though correct:</span>
+<a name="l00196"></a>00196         <span class="comment">//  TiXmlString().swap(*this);</span>
+<a name="l00197"></a>00197         <span class="comment">//Instead use the quit &amp; re-init:</span>
+<a name="l00198"></a>00198         quit();
+<a name="l00199"></a>00199         init(0,0);
+<a name="l00200"></a>00200     }
+<a name="l00201"></a>00201 
+<a name="l00202"></a>00202     <span class="comment">/*  Function to reserve a big amount of data when we know we'll need it. Be aware that this</span>
+<a name="l00203"></a>00203 <span class="comment">        function DOES NOT clear the content of the TiXmlString if any exists.</span>
+<a name="l00204"></a>00204 <span class="comment">    */</span>
+<a name="l00205"></a>00205     <span class="keywordtype">void</span> reserve (size_type cap);
+<a name="l00206"></a>00206 
+<a name="l00207"></a>00207     TiXmlString&amp; assign (<span class="keyword">const</span> <span class="keywordtype">char</span>* str, size_type len);
+<a name="l00208"></a>00208 
+<a name="l00209"></a>00209     TiXmlString&amp; append (<span class="keyword">const</span> <span class="keywordtype">char</span>* str, size_type len);
+<a name="l00210"></a>00210 
+<a name="l00211"></a>00211     <span class="keywordtype">void</span> swap (TiXmlString&amp; other)
+<a name="l00212"></a>00212     {
+<a name="l00213"></a>00213         Rep* r = rep_;
+<a name="l00214"></a>00214         rep_ = other.rep_;
+<a name="l00215"></a>00215         other.rep_ = r;
+<a name="l00216"></a>00216     }
+<a name="l00217"></a>00217 
+<a name="l00218"></a>00218   <span class="keyword">private</span>:
+<a name="l00219"></a>00219 
+<a name="l00220"></a>00220     <span class="keywordtype">void</span> init(size_type sz) { init(sz, sz); }
+<a name="l00221"></a>00221     <span class="keywordtype">void</span> set_size(size_type sz) { rep_-&gt;str[ rep_-&gt;size = sz ] = <span class="charliteral">'\0'</span>; }
+<a name="l00222"></a>00222     <span class="keywordtype">char</span>* start()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> rep_-&gt;str; }
+<a name="l00223"></a>00223     <span class="keywordtype">char</span>* finish()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> rep_-&gt;str + rep_-&gt;size; }
+<a name="l00224"></a>00224 
+<a name="l00225"></a>00225     <span class="keyword">struct </span>Rep
+<a name="l00226"></a>00226     {
+<a name="l00227"></a>00227         size_type size, capacity;
+<a name="l00228"></a>00228         <span class="keywordtype">char</span> str[1];
+<a name="l00229"></a>00229     };
+<a name="l00230"></a>00230 
+<a name="l00231"></a>00231     <span class="keywordtype">void</span> init(size_type sz, size_type cap)
+<a name="l00232"></a>00232     {
+<a name="l00233"></a>00233         <span class="keywordflow">if</span> (cap)
+<a name="l00234"></a>00234         {
+<a name="l00235"></a>00235             <span class="comment">// Lee: the original form:</span>
+<a name="l00236"></a>00236             <span class="comment">//  rep_ = static_cast&lt;Rep*&gt;(operator new(sizeof(Rep) + cap));</span>
+<a name="l00237"></a>00237             <span class="comment">// doesn't work in some cases of new being overloaded. Switching</span>
+<a name="l00238"></a>00238             <span class="comment">// to the normal allocation, although use an 'int' for systems</span>
+<a name="l00239"></a>00239             <span class="comment">// that are overly picky about structure alignment.</span>
+<a name="l00240"></a>00240             <span class="keyword">const</span> size_type bytesNeeded = <span class="keyword">sizeof</span>(Rep) + cap;
+<a name="l00241"></a>00241             <span class="keyword">const</span> size_type intsNeeded = ( bytesNeeded + <span class="keyword">sizeof</span>(int) - 1 ) / <span class="keyword">sizeof</span>( int ); 
+<a name="l00242"></a>00242             rep_ = reinterpret_cast&lt;Rep*&gt;( <span class="keyword">new</span> <span class="keywordtype">int</span>[ intsNeeded ] );
 <a name="l00243"></a>00243 
-<a name="l00244"></a>00244 <span class="keyword">inline</span> <span class="keywordtype">bool</span> operator == (<span class="keyword">const</span> TiXmlString &amp; a, <span class="keyword">const</span> TiXmlString &amp; b)
-<a name="l00245"></a>00245 {
-<a name="l00246"></a>00246     <span class="keywordflow">return</span>    ( a.length() == b.length() )              <span class="comment">// optimization on some platforms</span>
-<a name="l00247"></a>00247            &amp;&amp; ( strcmp(a.c_str(), b.c_str()) == 0 );    <span class="comment">// actual compare</span>
-<a name="l00248"></a>00248 }
-<a name="l00249"></a>00249 <span class="keyword">inline</span> <span class="keywordtype">bool</span> operator &lt; (<span class="keyword">const</span> TiXmlString &amp; a, <span class="keyword">const</span> TiXmlString &amp; b)
-<a name="l00250"></a>00250 {
-<a name="l00251"></a>00251     <span class="keywordflow">return</span> strcmp(a.c_str(), b.c_str()) &lt; 0;
-<a name="l00252"></a>00252 }
-<a name="l00253"></a>00253 
-<a name="l00254"></a>00254 <span class="keyword">inline</span> <span class="keywordtype">bool</span> operator != (<span class="keyword">const</span> TiXmlString &amp; a, <span class="keyword">const</span> TiXmlString &amp; b) { <span class="keywordflow">return</span> !(a == b); }
-<a name="l00255"></a>00255 <span class="keyword">inline</span> <span class="keywordtype">bool</span> operator &gt;  (<span class="keyword">const</span> TiXmlString &amp; a, <span class="keyword">const</span> TiXmlString &amp; b) { <span class="keywordflow">return</span> b &lt; a; }
-<a name="l00256"></a>00256 <span class="keyword">inline</span> <span class="keywordtype">bool</span> operator &lt;= (<span class="keyword">const</span> TiXmlString &amp; a, <span class="keyword">const</span> TiXmlString &amp; b) { <span class="keywordflow">return</span> !(b &lt; a); }
-<a name="l00257"></a>00257 <span class="keyword">inline</span> <span class="keywordtype">bool</span> operator &gt;= (<span class="keyword">const</span> TiXmlString &amp; a, <span class="keyword">const</span> TiXmlString &amp; b) { <span class="keywordflow">return</span> !(a &lt; b); }
-<a name="l00258"></a>00258 
-<a name="l00259"></a>00259 <span class="keyword">inline</span> <span class="keywordtype">bool</span> operator == (<span class="keyword">const</span> TiXmlString &amp; a, <span class="keyword">const</span> <span class="keywordtype">char</span>* b) { <span class="keywordflow">return</span> strcmp(a.c_str(), b) == 0; }
-<a name="l00260"></a>00260 <span class="keyword">inline</span> <span class="keywordtype">bool</span> operator == (<span class="keyword">const</span> <span class="keywordtype">char</span>* a, <span class="keyword">const</span> TiXmlString &amp; b) { <span class="keywordflow">return</span> b == a; }
-<a name="l00261"></a>00261 <span class="keyword">inline</span> <span class="keywordtype">bool</span> operator != (<span class="keyword">const</span> TiXmlString &amp; a, <span class="keyword">const</span> <span class="keywordtype">char</span>* b) { <span class="keywordflow">return</span> !(a == b); }
-<a name="l00262"></a>00262 <span class="keyword">inline</span> <span class="keywordtype">bool</span> operator != (<span class="keyword">const</span> <span class="keywordtype">char</span>* a, <span class="keyword">const</span> TiXmlString &amp; b) { <span class="keywordflow">return</span> !(b == a); }
-<a name="l00263"></a>00263 
-<a name="l00264"></a>00264 TiXmlString operator + (<span class="keyword">const</span> TiXmlString &amp; a, <span class="keyword">const</span> TiXmlString &amp; b);
-<a name="l00265"></a>00265 TiXmlString operator + (<span class="keyword">const</span> TiXmlString &amp; a, <span class="keyword">const</span> <span class="keywordtype">char</span>* b);
-<a name="l00266"></a>00266 TiXmlString operator + (<span class="keyword">const</span> <span class="keywordtype">char</span>* a, <span class="keyword">const</span> TiXmlString &amp; b);
+<a name="l00244"></a>00244             rep_-&gt;str[ rep_-&gt;size = sz ] = <span class="charliteral">'\0'</span>;
+<a name="l00245"></a>00245             rep_-&gt;capacity = cap;
+<a name="l00246"></a>00246         }
+<a name="l00247"></a>00247         <span class="keywordflow">else</span>
+<a name="l00248"></a>00248         {
+<a name="l00249"></a>00249             rep_ = &amp;nullrep_;
+<a name="l00250"></a>00250         }
+<a name="l00251"></a>00251     }
+<a name="l00252"></a>00252 
+<a name="l00253"></a>00253     <span class="keywordtype">void</span> quit()
+<a name="l00254"></a>00254     {
+<a name="l00255"></a>00255         <span class="keywordflow">if</span> (rep_ != &amp;nullrep_)
+<a name="l00256"></a>00256         {
+<a name="l00257"></a>00257             <span class="comment">// The rep_ is really an array of ints. (see the allocator, above).</span>
+<a name="l00258"></a>00258             <span class="comment">// Cast it back before delete, so the compiler won't incorrectly call destructors.</span>
+<a name="l00259"></a>00259             <span class="keyword">delete</span> [] ( reinterpret_cast&lt;int*&gt;( rep_ ) );
+<a name="l00260"></a>00260         }
+<a name="l00261"></a>00261     }
+<a name="l00262"></a>00262 
+<a name="l00263"></a>00263     Rep * rep_;
+<a name="l00264"></a>00264     <span class="keyword">static</span> Rep nullrep_;
+<a name="l00265"></a>00265 
+<a name="l00266"></a>00266 } ;
 <a name="l00267"></a>00267 
 <a name="l00268"></a>00268 
-<a name="l00269"></a>00269 <span class="comment">/*</span>
-<a name="l00270"></a>00270 <span class="comment">   TiXmlOutStream is an emulation of std::ostream. It is based on TiXmlString.</span>
-<a name="l00271"></a>00271 <span class="comment">   Only the operators that we need for TinyXML have been developped.</span>
-<a name="l00272"></a>00272 <span class="comment">*/</span>
-<a name="l00273"></a>00273 <span class="keyword">class </span>TiXmlOutStream : <span class="keyword">public</span> TiXmlString
-<a name="l00274"></a>00274 {
-<a name="l00275"></a>00275 <span class="keyword">public</span> :
-<a name="l00276"></a>00276 
-<a name="l00277"></a>00277     <span class="comment">// TiXmlOutStream &lt;&lt; operator.</span>
-<a name="l00278"></a>00278     TiXmlOutStream &amp; operator &lt;&lt; (<span class="keyword">const</span> TiXmlString &amp; in)
-<a name="l00279"></a>00279     {
-<a name="l00280"></a>00280         *<span class="keyword">this</span> += in;
-<a name="l00281"></a>00281         <span class="keywordflow">return</span> *<span class="keyword">this</span>;
-<a name="l00282"></a>00282     }
+<a name="l00269"></a>00269 <span class="keyword">inline</span> <span class="keywordtype">bool</span> operator == (<span class="keyword">const</span> TiXmlString &amp; a, <span class="keyword">const</span> TiXmlString &amp; b)
+<a name="l00270"></a>00270 {
+<a name="l00271"></a>00271     <span class="keywordflow">return</span>    ( a.length() == b.length() )              <span class="comment">// optimization on some platforms</span>
+<a name="l00272"></a>00272            &amp;&amp; ( strcmp(a.c_str(), b.c_str()) == 0 );    <span class="comment">// actual compare</span>
+<a name="l00273"></a>00273 }
+<a name="l00274"></a>00274 <span class="keyword">inline</span> <span class="keywordtype">bool</span> operator &lt; (<span class="keyword">const</span> TiXmlString &amp; a, <span class="keyword">const</span> TiXmlString &amp; b)
+<a name="l00275"></a>00275 {
+<a name="l00276"></a>00276     <span class="keywordflow">return</span> strcmp(a.c_str(), b.c_str()) &lt; 0;
+<a name="l00277"></a>00277 }
+<a name="l00278"></a>00278 
+<a name="l00279"></a>00279 <span class="keyword">inline</span> <span class="keywordtype">bool</span> operator != (<span class="keyword">const</span> TiXmlString &amp; a, <span class="keyword">const</span> TiXmlString &amp; b) { <span class="keywordflow">return</span> !(a == b); }
+<a name="l00280"></a>00280 <span class="keyword">inline</span> <span class="keywordtype">bool</span> operator &gt;  (<span class="keyword">const</span> TiXmlString &amp; a, <span class="keyword">const</span> TiXmlString &amp; b) { <span class="keywordflow">return</span> b &lt; a; }
+<a name="l00281"></a>00281 <span class="keyword">inline</span> <span class="keywordtype">bool</span> operator &lt;= (<span class="keyword">const</span> TiXmlString &amp; a, <span class="keyword">const</span> TiXmlString &amp; b) { <span class="keywordflow">return</span> !(b &lt; a); }
+<a name="l00282"></a>00282 <span class="keyword">inline</span> <span class="keywordtype">bool</span> operator &gt;= (<span class="keyword">const</span> TiXmlString &amp; a, <span class="keyword">const</span> TiXmlString &amp; b) { <span class="keywordflow">return</span> !(a &lt; b); }
 <a name="l00283"></a>00283 
-<a name="l00284"></a>00284     <span class="comment">// TiXmlOutStream &lt;&lt; operator.</span>
-<a name="l00285"></a>00285     TiXmlOutStream &amp; operator &lt;&lt; (<span class="keyword">const</span> <span class="keywordtype">char</span> * in)
-<a name="l00286"></a>00286     {
-<a name="l00287"></a>00287         *<span class="keyword">this</span> += in;
-<a name="l00288"></a>00288         <span class="keywordflow">return</span> *<span class="keyword">this</span>;
-<a name="l00289"></a>00289     }
-<a name="l00290"></a>00290 
-<a name="l00291"></a>00291 } ;
+<a name="l00284"></a>00284 <span class="keyword">inline</span> <span class="keywordtype">bool</span> operator == (<span class="keyword">const</span> TiXmlString &amp; a, <span class="keyword">const</span> <span class="keywordtype">char</span>* b) { <span class="keywordflow">return</span> strcmp(a.c_str(), b) == 0; }
+<a name="l00285"></a>00285 <span class="keyword">inline</span> <span class="keywordtype">bool</span> operator == (<span class="keyword">const</span> <span class="keywordtype">char</span>* a, <span class="keyword">const</span> TiXmlString &amp; b) { <span class="keywordflow">return</span> b == a; }
+<a name="l00286"></a>00286 <span class="keyword">inline</span> <span class="keywordtype">bool</span> operator != (<span class="keyword">const</span> TiXmlString &amp; a, <span class="keyword">const</span> <span class="keywordtype">char</span>* b) { <span class="keywordflow">return</span> !(a == b); }
+<a name="l00287"></a>00287 <span class="keyword">inline</span> <span class="keywordtype">bool</span> operator != (<span class="keyword">const</span> <span class="keywordtype">char</span>* a, <span class="keyword">const</span> TiXmlString &amp; b) { <span class="keywordflow">return</span> !(b == a); }
+<a name="l00288"></a>00288 
+<a name="l00289"></a>00289 TiXmlString operator + (<span class="keyword">const</span> TiXmlString &amp; a, <span class="keyword">const</span> TiXmlString &amp; b);
+<a name="l00290"></a>00290 TiXmlString operator + (<span class="keyword">const</span> TiXmlString &amp; a, <span class="keyword">const</span> <span class="keywordtype">char</span>* b);
+<a name="l00291"></a>00291 TiXmlString operator + (<span class="keyword">const</span> <span class="keywordtype">char</span>* a, <span class="keyword">const</span> TiXmlString &amp; b);
 <a name="l00292"></a>00292 
-<a name="l00293"></a>00293 <span class="preprocessor">#endif  // TIXML_STRING_INCLUDED</span>
-<a name="l00294"></a>00294 <span class="preprocessor"></span><span class="preprocessor">#endif  // TIXML_USE_STL</span>
-</pre></div><hr size="1"><address style="align: right;"><small>Generated on Sat Oct 8 14:15:30 2005 for TinyXml by&nbsp;
+<a name="l00293"></a>00293 
+<a name="l00294"></a>00294 <span class="comment">/*</span>
+<a name="l00295"></a>00295 <span class="comment">   TiXmlOutStream is an emulation of std::ostream. It is based on TiXmlString.</span>
+<a name="l00296"></a>00296 <span class="comment">   Only the operators that we need for TinyXML have been developped.</span>
+<a name="l00297"></a>00297 <span class="comment">*/</span>
+<a name="l00298"></a>00298 <span class="keyword">class </span>TiXmlOutStream : <span class="keyword">public</span> TiXmlString
+<a name="l00299"></a>00299 {
+<a name="l00300"></a>00300 <span class="keyword">public</span> :
+<a name="l00301"></a>00301 
+<a name="l00302"></a>00302     <span class="comment">// TiXmlOutStream &lt;&lt; operator.</span>
+<a name="l00303"></a>00303     TiXmlOutStream &amp; operator &lt;&lt; (<span class="keyword">const</span> TiXmlString &amp; in)
+<a name="l00304"></a>00304     {
+<a name="l00305"></a>00305         *<span class="keyword">this</span> += in;
+<a name="l00306"></a>00306         <span class="keywordflow">return</span> *<span class="keyword">this</span>;
+<a name="l00307"></a>00307     }
+<a name="l00308"></a>00308 
+<a name="l00309"></a>00309     <span class="comment">// TiXmlOutStream &lt;&lt; operator.</span>
+<a name="l00310"></a>00310     TiXmlOutStream &amp; operator &lt;&lt; (<span class="keyword">const</span> <span class="keywordtype">char</span> * in)
+<a name="l00311"></a>00311     {
+<a name="l00312"></a>00312         *<span class="keyword">this</span> += in;
+<a name="l00313"></a>00313         <span class="keywordflow">return</span> *<span class="keyword">this</span>;
+<a name="l00314"></a>00314     }
+<a name="l00315"></a>00315 
+<a name="l00316"></a>00316 } ;
+<a name="l00317"></a>00317 
+<a name="l00318"></a>00318 <span class="preprocessor">#endif  // TIXML_STRING_INCLUDED</span>
+<a name="l00319"></a>00319 <span class="preprocessor"></span><span class="preprocessor">#endif  // TIXML_USE_STL</span>
+</pre></div><hr size="1"><address style="align: right;"><small>Generated on Sun Jan 15 23:12:04 2006 for TinyXml by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4 </small></address>
 </body>
diff --git a/docs/tinyxml_8h-source.html b/docs/tinyxml_8h-source.html
index 673687b..d6d5d8e 100644
--- a/docs/tinyxml_8h-source.html
+++ b/docs/tinyxml_8h-source.html
@@ -50,987 +50,990 @@
 <a name="l00043"></a>00043 <span class="preprocessor"></span><span class="preprocessor">#define DEBUG</span>
 <a name="l00044"></a>00044 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
 <a name="l00045"></a>00045 <span class="preprocessor"></span>
-<a name="l00046"></a>00046 <span class="preprocessor">#if defined( DEBUG ) &amp;&amp; defined( _MSC_VER )</span>
-<a name="l00047"></a>00047 <span class="preprocessor"></span><span class="preprocessor">#include &lt;windows.h&gt;</span>
-<a name="l00048"></a>00048 <span class="preprocessor">#define TIXML_LOG OutputDebugString</span>
-<a name="l00049"></a>00049 <span class="preprocessor"></span><span class="preprocessor">#else</span>
-<a name="l00050"></a>00050 <span class="preprocessor"></span><span class="preprocessor">#define TIXML_LOG printf</span>
-<a name="l00051"></a>00051 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
-<a name="l00052"></a>00052 <span class="preprocessor"></span>
-<a name="l00053"></a>00053 <span class="preprocessor">#ifdef TIXML_USE_STL</span>
-<a name="l00054"></a>00054 <span class="preprocessor"></span><span class="preprocessor">    #include &lt;string&gt;</span>
-<a name="l00055"></a>00055 <span class="preprocessor">    #include &lt;iostream&gt;</span>
-<a name="l00056"></a>00056 <span class="preprocessor">    #define TIXML_STRING    std::string</span>
-<a name="l00057"></a>00057 <span class="preprocessor"></span><span class="preprocessor">    #define TIXML_ISTREAM   std::istream</span>
-<a name="l00058"></a>00058 <span class="preprocessor"></span><span class="preprocessor">    #define TIXML_OSTREAM   std::ostream</span>
-<a name="l00059"></a>00059 <span class="preprocessor"></span><span class="preprocessor">#else</span>
-<a name="l00060"></a>00060 <span class="preprocessor"></span><span class="preprocessor">    #include "tinystr.h"</span>
-<a name="l00061"></a>00061 <span class="preprocessor">    #define TIXML_STRING    TiXmlString</span>
-<a name="l00062"></a>00062 <span class="preprocessor"></span><span class="preprocessor">    #define TIXML_OSTREAM   TiXmlOutStream</span>
-<a name="l00063"></a>00063 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
-<a name="l00064"></a>00064 <span class="preprocessor"></span>
-<a name="l00065"></a>00065 <span class="comment">// Deprecated library function hell. Compilers want to use the</span>
-<a name="l00066"></a>00066 <span class="comment">// new safe versions. This probably doesn't fully address the problem,</span>
-<a name="l00067"></a>00067 <span class="comment">// but it gets closer. There are too many compilers for me to fully</span>
-<a name="l00068"></a>00068 <span class="comment">// test. If you get compilation troubles, undefine TIXML_SAFE</span>
-<a name="l00069"></a>00069 
-<a name="l00070"></a>00070 <span class="preprocessor">#define TIXML_SAFE      // TinyXml isn't fully buffer overrun protected, safe code. This is work in progress.</span>
-<a name="l00071"></a>00071 <span class="preprocessor"></span><span class="preprocessor">#ifdef TIXML_SAFE</span>
-<a name="l00072"></a>00072 <span class="preprocessor"></span><span class="preprocessor">    #if defined(_MSC_VER) &amp;&amp; (_MSC_VER &gt;= 1200 )</span>
-<a name="l00073"></a>00073 <span class="preprocessor"></span>        <span class="comment">// Microsoft visual studio, version 6 and higher.</span>
-<a name="l00074"></a>00074         <span class="comment">//#pragma message( "Using _sn* functions." )</span>
-<a name="l00075"></a>00075 <span class="preprocessor">        #define TIXML_SNPRINTF _snprintf</span>
-<a name="l00076"></a>00076 <span class="preprocessor"></span><span class="preprocessor">        #define TIXML_SNSCANF  _snscanf</span>
-<a name="l00077"></a>00077 <span class="preprocessor"></span><span class="preprocessor">    #elif defined(__GNUC__) &amp;&amp; (__GNUC__ &gt;= 3 )</span>
-<a name="l00078"></a>00078 <span class="preprocessor"></span>        <span class="comment">// GCC version 3 and higher.s</span>
-<a name="l00079"></a>00079         <span class="comment">//#warning( "Using sn* functions." )</span>
-<a name="l00080"></a>00080 <span class="preprocessor">        #define TIXML_SNPRINTF snprintf</span>
-<a name="l00081"></a>00081 <span class="preprocessor"></span><span class="preprocessor">        #define TIXML_SNSCANF  snscanf</span>
-<a name="l00082"></a>00082 <span class="preprocessor"></span><span class="preprocessor">    #endif</span>
-<a name="l00083"></a>00083 <span class="preprocessor"></span><span class="preprocessor">#endif  </span>
-<a name="l00084"></a>00084 <span class="preprocessor"></span>
-<a name="l00085"></a>00085 <span class="keyword">class </span><a class="code" href="classTiXmlDocument.html">TiXmlDocument</a>;
-<a name="l00086"></a>00086 <span class="keyword">class </span><a class="code" href="classTiXmlElement.html">TiXmlElement</a>;
-<a name="l00087"></a>00087 <span class="keyword">class </span><a class="code" href="classTiXmlComment.html">TiXmlComment</a>;
-<a name="l00088"></a>00088 <span class="keyword">class </span><a class="code" href="classTiXmlUnknown.html">TiXmlUnknown</a>;
-<a name="l00089"></a>00089 <span class="keyword">class </span><a class="code" href="classTiXmlAttribute.html">TiXmlAttribute</a>;
-<a name="l00090"></a>00090 <span class="keyword">class </span><a class="code" href="classTiXmlText.html">TiXmlText</a>;
-<a name="l00091"></a>00091 <span class="keyword">class </span><a class="code" href="classTiXmlDeclaration.html">TiXmlDeclaration</a>;
-<a name="l00092"></a>00092 <span class="keyword">class </span>TiXmlParsingData;
-<a name="l00093"></a>00093 
-<a name="l00094"></a>00094 <span class="keyword">const</span> <span class="keywordtype">int</span> TIXML_MAJOR_VERSION = 2;
-<a name="l00095"></a>00095 <span class="keyword">const</span> <span class="keywordtype">int</span> TIXML_MINOR_VERSION = 4;
-<a name="l00096"></a>00096 <span class="keyword">const</span> <span class="keywordtype">int</span> TIXML_PATCH_VERSION = 0;
-<a name="l00097"></a>00097 
-<a name="l00098"></a>00098 <span class="comment">/*  Internal structure for tracking location of items </span>
-<a name="l00099"></a>00099 <span class="comment">    in the XML file.</span>
-<a name="l00100"></a>00100 <span class="comment">*/</span>
-<a name="l00101"></a>00101 <span class="keyword">struct </span>TiXmlCursor
-<a name="l00102"></a>00102 {
-<a name="l00103"></a>00103     TiXmlCursor()       { Clear(); }
-<a name="l00104"></a>00104     <span class="keywordtype">void</span> Clear()        { row = col = -1; }
-<a name="l00105"></a>00105 
-<a name="l00106"></a>00106     <span class="keywordtype">int</span> row;    <span class="comment">// 0 based.</span>
-<a name="l00107"></a>00107     <span class="keywordtype">int</span> col;    <span class="comment">// 0 based.</span>
-<a name="l00108"></a>00108 };
-<a name="l00109"></a>00109 
-<a name="l00110"></a>00110 
-<a name="l00111"></a>00111 <span class="comment">// Only used by Attribute::Query functions</span>
-<a name="l00112"></a>00112 <span class="keyword">enum</span> 
-<a name="l00113"></a>00113 { 
-<a name="l00114"></a>00114     TIXML_SUCCESS,
-<a name="l00115"></a>00115     TIXML_NO_ATTRIBUTE,
-<a name="l00116"></a>00116     TIXML_WRONG_TYPE
-<a name="l00117"></a>00117 };
-<a name="l00118"></a>00118 
-<a name="l00119"></a>00119 
-<a name="l00120"></a>00120 <span class="comment">// Used by the parsing routines.</span>
-<a name="l00121"></a>00121 <span class="keyword">enum</span> TiXmlEncoding
-<a name="l00122"></a>00122 {
-<a name="l00123"></a>00123     TIXML_ENCODING_UNKNOWN,
-<a name="l00124"></a>00124     TIXML_ENCODING_UTF8,
-<a name="l00125"></a>00125     TIXML_ENCODING_LEGACY
-<a name="l00126"></a>00126 };
-<a name="l00127"></a>00127 
-<a name="l00128"></a>00128 <span class="keyword">const</span> TiXmlEncoding TIXML_DEFAULT_ENCODING = TIXML_ENCODING_UNKNOWN;
-<a name="l00129"></a>00129 
-<a name="l00152"></a><a class="code" href="classTiXmlBase.html">00152</a> <span class="keyword">class </span><a class="code" href="classTiXmlBase.html">TiXmlBase</a>
-<a name="l00153"></a>00153 {
-<a name="l00154"></a>00154     <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classTiXmlNode.html">TiXmlNode</a>;
-<a name="l00155"></a>00155     <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classTiXmlElement.html">TiXmlElement</a>;
-<a name="l00156"></a>00156     <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classTiXmlDocument.html">TiXmlDocument</a>;
-<a name="l00157"></a>00157 
-<a name="l00158"></a>00158 <span class="keyword">public</span>:
-<a name="l00159"></a>00159     <a class="code" href="classTiXmlBase.html">TiXmlBase</a>() :   <a class="code" href="classTiXmlBase.html#p1">userData</a>(0) {}
-<a name="l00160"></a>00160     <span class="keyword">virtual</span> ~<a class="code" href="classTiXmlBase.html">TiXmlBase</a>()                    {}
-<a name="l00161"></a>00161 
-<a name="l00167"></a>00167     <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classTiXmlBase.html#a2">Print</a>( FILE* cfile, <span class="keywordtype">int</span> depth ) <span class="keyword">const </span>= 0;
-<a name="l00168"></a>00168 
-<a name="l00175"></a><a class="code" href="classTiXmlBase.html#e0">00175</a>     <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="classTiXmlBase.html#e0">SetCondenseWhiteSpace</a>( <span class="keywordtype">bool</span> condense )      { condenseWhiteSpace = condense; }
+<a name="l00046"></a>00046 <span class="preprocessor">#ifdef TIXML_USE_STL</span>
+<a name="l00047"></a>00047 <span class="preprocessor"></span><span class="preprocessor">    #include &lt;string&gt;</span>
+<a name="l00048"></a>00048 <span class="preprocessor">    #include &lt;iostream&gt;</span>
+<a name="l00049"></a>00049 <span class="preprocessor">    #define TIXML_STRING    std::string</span>
+<a name="l00050"></a>00050 <span class="preprocessor"></span><span class="preprocessor">    #define TIXML_ISTREAM   std::istream</span>
+<a name="l00051"></a>00051 <span class="preprocessor"></span><span class="preprocessor">    #define TIXML_OSTREAM   std::ostream</span>
+<a name="l00052"></a>00052 <span class="preprocessor"></span><span class="preprocessor">#else</span>
+<a name="l00053"></a>00053 <span class="preprocessor"></span><span class="preprocessor">    #include "tinystr.h"</span>
+<a name="l00054"></a>00054 <span class="preprocessor">    #define TIXML_STRING    TiXmlString</span>
+<a name="l00055"></a>00055 <span class="preprocessor"></span><span class="preprocessor">    #define TIXML_OSTREAM   TiXmlOutStream</span>
+<a name="l00056"></a>00056 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
+<a name="l00057"></a>00057 <span class="preprocessor"></span>
+<a name="l00058"></a>00058 <span class="comment">// Deprecated library function hell. Compilers want to use the</span>
+<a name="l00059"></a>00059 <span class="comment">// new safe versions. This probably doesn't fully address the problem,</span>
+<a name="l00060"></a>00060 <span class="comment">// but it gets closer. There are too many compilers for me to fully</span>
+<a name="l00061"></a>00061 <span class="comment">// test. If you get compilation troubles, undefine TIXML_SAFE</span>
+<a name="l00062"></a>00062 
+<a name="l00063"></a>00063 <span class="preprocessor">#define TIXML_SAFE      // TinyXml isn't fully buffer overrun protected, safe code. This is work in progress.</span>
+<a name="l00064"></a>00064 <span class="preprocessor"></span><span class="preprocessor">#ifdef TIXML_SAFE</span>
+<a name="l00065"></a>00065 <span class="preprocessor"></span><span class="preprocessor">    #if defined(_MSC_VER) &amp;&amp; (_MSC_VER &gt;= 1400 )</span>
+<a name="l00066"></a>00066 <span class="preprocessor"></span>        <span class="comment">// Microsoft visual studio, version 2005 and higher.</span>
+<a name="l00067"></a>00067 <span class="preprocessor">        #define TIXML_SNPRINTF _snprintf_s</span>
+<a name="l00068"></a>00068 <span class="preprocessor"></span><span class="preprocessor">        #define TIXML_SNSCANF  _snscanf_s</span>
+<a name="l00069"></a>00069 <span class="preprocessor"></span><span class="preprocessor">    #elif defined(_MSC_VER) &amp;&amp; (_MSC_VER &gt;= 1200 )</span>
+<a name="l00070"></a>00070 <span class="preprocessor"></span>        <span class="comment">// Microsoft visual studio, version 6 and higher.</span>
+<a name="l00071"></a>00071         <span class="comment">//#pragma message( "Using _sn* functions." )</span>
+<a name="l00072"></a>00072 <span class="preprocessor">        #define TIXML_SNPRINTF _snprintf</span>
+<a name="l00073"></a>00073 <span class="preprocessor"></span><span class="preprocessor">        #define TIXML_SNSCANF  _snscanf</span>
+<a name="l00074"></a>00074 <span class="preprocessor"></span><span class="preprocessor">    #elif defined(__GNUC__) &amp;&amp; (__GNUC__ &gt;= 3 )</span>
+<a name="l00075"></a>00075 <span class="preprocessor"></span>        <span class="comment">// GCC version 3 and higher.s</span>
+<a name="l00076"></a>00076         <span class="comment">//#warning( "Using sn* functions." )</span>
+<a name="l00077"></a>00077 <span class="preprocessor">        #define TIXML_SNPRINTF snprintf</span>
+<a name="l00078"></a>00078 <span class="preprocessor"></span><span class="preprocessor">        #define TIXML_SNSCANF  snscanf</span>
+<a name="l00079"></a>00079 <span class="preprocessor"></span><span class="preprocessor">    #endif</span>
+<a name="l00080"></a>00080 <span class="preprocessor"></span><span class="preprocessor">#endif  </span>
+<a name="l00081"></a>00081 <span class="preprocessor"></span>
+<a name="l00082"></a>00082 <span class="keyword">class </span><a class="code" href="classTiXmlDocument.html">TiXmlDocument</a>;
+<a name="l00083"></a>00083 <span class="keyword">class </span><a class="code" href="classTiXmlElement.html">TiXmlElement</a>;
+<a name="l00084"></a>00084 <span class="keyword">class </span><a class="code" href="classTiXmlComment.html">TiXmlComment</a>;
+<a name="l00085"></a>00085 <span class="keyword">class </span><a class="code" href="classTiXmlUnknown.html">TiXmlUnknown</a>;
+<a name="l00086"></a>00086 <span class="keyword">class </span><a class="code" href="classTiXmlAttribute.html">TiXmlAttribute</a>;
+<a name="l00087"></a>00087 <span class="keyword">class </span><a class="code" href="classTiXmlText.html">TiXmlText</a>;
+<a name="l00088"></a>00088 <span class="keyword">class </span><a class="code" href="classTiXmlDeclaration.html">TiXmlDeclaration</a>;
+<a name="l00089"></a>00089 <span class="keyword">class </span>TiXmlParsingData;
+<a name="l00090"></a>00090 
+<a name="l00091"></a>00091 <span class="keyword">const</span> <span class="keywordtype">int</span> TIXML_MAJOR_VERSION = 2;
+<a name="l00092"></a>00092 <span class="keyword">const</span> <span class="keywordtype">int</span> TIXML_MINOR_VERSION = 4;
+<a name="l00093"></a>00093 <span class="keyword">const</span> <span class="keywordtype">int</span> TIXML_PATCH_VERSION = 3;
+<a name="l00094"></a>00094 
+<a name="l00095"></a>00095 <span class="comment">/*  Internal structure for tracking location of items </span>
+<a name="l00096"></a>00096 <span class="comment">    in the XML file.</span>
+<a name="l00097"></a>00097 <span class="comment">*/</span>
+<a name="l00098"></a>00098 <span class="keyword">struct </span>TiXmlCursor
+<a name="l00099"></a>00099 {
+<a name="l00100"></a>00100     TiXmlCursor()       { Clear(); }
+<a name="l00101"></a>00101     <span class="keywordtype">void</span> Clear()        { row = col = -1; }
+<a name="l00102"></a>00102 
+<a name="l00103"></a>00103     <span class="keywordtype">int</span> row;    <span class="comment">// 0 based.</span>
+<a name="l00104"></a>00104     <span class="keywordtype">int</span> col;    <span class="comment">// 0 based.</span>
+<a name="l00105"></a>00105 };
+<a name="l00106"></a>00106 
+<a name="l00107"></a>00107 
+<a name="l00108"></a>00108 <span class="comment">// Only used by Attribute::Query functions</span>
+<a name="l00109"></a>00109 <span class="keyword">enum</span> 
+<a name="l00110"></a>00110 { 
+<a name="l00111"></a>00111     TIXML_SUCCESS,
+<a name="l00112"></a>00112     TIXML_NO_ATTRIBUTE,
+<a name="l00113"></a>00113     TIXML_WRONG_TYPE
+<a name="l00114"></a>00114 };
+<a name="l00115"></a>00115 
+<a name="l00116"></a>00116 
+<a name="l00117"></a>00117 <span class="comment">// Used by the parsing routines.</span>
+<a name="l00118"></a>00118 <span class="keyword">enum</span> TiXmlEncoding
+<a name="l00119"></a>00119 {
+<a name="l00120"></a>00120     TIXML_ENCODING_UNKNOWN,
+<a name="l00121"></a>00121     TIXML_ENCODING_UTF8,
+<a name="l00122"></a>00122     TIXML_ENCODING_LEGACY
+<a name="l00123"></a>00123 };
+<a name="l00124"></a>00124 
+<a name="l00125"></a>00125 <span class="keyword">const</span> TiXmlEncoding TIXML_DEFAULT_ENCODING = TIXML_ENCODING_UNKNOWN;
+<a name="l00126"></a>00126 
+<a name="l00149"></a><a class="code" href="classTiXmlBase.html">00149</a> <span class="keyword">class </span><a class="code" href="classTiXmlBase.html">TiXmlBase</a>
+<a name="l00150"></a>00150 {
+<a name="l00151"></a>00151     <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classTiXmlNode.html">TiXmlNode</a>;
+<a name="l00152"></a>00152     <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classTiXmlElement.html">TiXmlElement</a>;
+<a name="l00153"></a>00153     <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classTiXmlDocument.html">TiXmlDocument</a>;
+<a name="l00154"></a>00154 
+<a name="l00155"></a>00155 <span class="keyword">public</span>:
+<a name="l00156"></a>00156     <a class="code" href="classTiXmlBase.html">TiXmlBase</a>() :   <a class="code" href="classTiXmlBase.html#p1">userData</a>(0) {}
+<a name="l00157"></a>00157     <span class="keyword">virtual</span> ~<a class="code" href="classTiXmlBase.html">TiXmlBase</a>()                    {}
+<a name="l00158"></a>00158 
+<a name="l00164"></a>00164     <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classTiXmlBase.html#a2">Print</a>( FILE* cfile, <span class="keywordtype">int</span> depth ) <span class="keyword">const </span>= 0;
+<a name="l00165"></a>00165 
+<a name="l00172"></a><a class="code" href="classTiXmlBase.html#e0">00172</a>     <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="classTiXmlBase.html#e0">SetCondenseWhiteSpace</a>( <span class="keywordtype">bool</span> condense )      { condenseWhiteSpace = condense; }
+<a name="l00173"></a>00173 
+<a name="l00175"></a><a class="code" href="classTiXmlBase.html#e1">00175</a>     <span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code" href="classTiXmlBase.html#e1">IsWhiteSpaceCondensed</a>()                     { <span class="keywordflow">return</span> condenseWhiteSpace; }
 <a name="l00176"></a>00176 
-<a name="l00178"></a><a class="code" href="classTiXmlBase.html#e1">00178</a>     <span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code" href="classTiXmlBase.html#e1">IsWhiteSpaceCondensed</a>()                     { <span class="keywordflow">return</span> condenseWhiteSpace; }
-<a name="l00179"></a>00179 
-<a name="l00198"></a><a class="code" href="classTiXmlBase.html#a3">00198</a>     <span class="keywordtype">int</span> <a class="code" href="classTiXmlBase.html#a3">Row</a>()<span class="keyword"> const         </span>{ <span class="keywordflow">return</span> location.row + 1; }
-<a name="l00199"></a><a class="code" href="classTiXmlBase.html#a4">00199</a>     <span class="keywordtype">int</span> <a class="code" href="classTiXmlBase.html#a4">Column</a>()<span class="keyword"> const      </span>{ <span class="keywordflow">return</span> location.col + 1; }    
+<a name="l00195"></a><a class="code" href="classTiXmlBase.html#a3">00195</a>     <span class="keywordtype">int</span> <a class="code" href="classTiXmlBase.html#a3">Row</a>()<span class="keyword"> const         </span>{ <span class="keywordflow">return</span> location.row + 1; }
+<a name="l00196"></a><a class="code" href="classTiXmlBase.html#a4">00196</a>     <span class="keywordtype">int</span> <a class="code" href="classTiXmlBase.html#a4">Column</a>()<span class="keyword"> const      </span>{ <span class="keywordflow">return</span> location.col + 1; }    
+<a name="l00197"></a>00197 
+<a name="l00198"></a>00198     <span class="keywordtype">void</span>  SetUserData( <span class="keywordtype">void</span>* user )         { <a class="code" href="classTiXmlBase.html#p1">userData</a> = user; }
+<a name="l00199"></a>00199     <span class="keywordtype">void</span>* GetUserData()                     { <span class="keywordflow">return</span> <a class="code" href="classTiXmlBase.html#p1">userData</a>; }
 <a name="l00200"></a>00200 
-<a name="l00201"></a>00201     <span class="keywordtype">void</span>  SetUserData( <span class="keywordtype">void</span>* user )         { <a class="code" href="classTiXmlBase.html#p1">userData</a> = user; }
-<a name="l00202"></a>00202     <span class="keywordtype">void</span>* GetUserData()                     { <span class="keywordflow">return</span> <a class="code" href="classTiXmlBase.html#p1">userData</a>; }
-<a name="l00203"></a>00203 
-<a name="l00204"></a>00204     <span class="comment">// Table that returs, for a given lead byte, the total number of bytes</span>
-<a name="l00205"></a>00205     <span class="comment">// in the UTF-8 sequence.</span>
-<a name="l00206"></a>00206     <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">int</span> utf8ByteTable[256];
-<a name="l00207"></a>00207 
-<a name="l00208"></a>00208     <span class="keyword">virtual</span> <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="classTiXmlDocument.html#a12">Parse</a>(  <span class="keyword">const</span> <span class="keywordtype">char</span>* p, 
-<a name="l00209"></a>00209                                 TiXmlParsingData* data, 
-<a name="l00210"></a>00210                                 TiXmlEncoding encoding <span class="comment">/*= TIXML_ENCODING_UNKNOWN */</span> ) = 0;
-<a name="l00211"></a>00211 
-<a name="l00212"></a>00212     <span class="keyword">enum</span>
-<a name="l00213"></a>00213     {
-<a name="l00214"></a>00214         TIXML_NO_ERROR = 0,
-<a name="l00215"></a>00215         TIXML_ERROR,
-<a name="l00216"></a>00216         TIXML_ERROR_OPENING_FILE,
-<a name="l00217"></a>00217         TIXML_ERROR_OUT_OF_MEMORY,
-<a name="l00218"></a>00218         TIXML_ERROR_PARSING_ELEMENT,
-<a name="l00219"></a>00219         TIXML_ERROR_FAILED_TO_READ_ELEMENT_NAME,
-<a name="l00220"></a>00220         TIXML_ERROR_READING_ELEMENT_VALUE,
-<a name="l00221"></a>00221         TIXML_ERROR_READING_ATTRIBUTES,
-<a name="l00222"></a>00222         TIXML_ERROR_PARSING_EMPTY,
-<a name="l00223"></a>00223         TIXML_ERROR_READING_END_TAG,
-<a name="l00224"></a>00224         TIXML_ERROR_PARSING_UNKNOWN,
-<a name="l00225"></a>00225         TIXML_ERROR_PARSING_COMMENT,
-<a name="l00226"></a>00226         TIXML_ERROR_PARSING_DECLARATION,
-<a name="l00227"></a>00227         TIXML_ERROR_DOCUMENT_EMPTY,
-<a name="l00228"></a>00228         TIXML_ERROR_EMBEDDED_NULL,
-<a name="l00229"></a>00229         TIXML_ERROR_PARSING_CDATA,
+<a name="l00201"></a>00201     <span class="comment">// Table that returs, for a given lead byte, the total number of bytes</span>
+<a name="l00202"></a>00202     <span class="comment">// in the UTF-8 sequence.</span>
+<a name="l00203"></a>00203     <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">int</span> utf8ByteTable[256];
+<a name="l00204"></a>00204 
+<a name="l00205"></a>00205     <span class="keyword">virtual</span> <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="classTiXmlDocument.html#a14">Parse</a>(  <span class="keyword">const</span> <span class="keywordtype">char</span>* p, 
+<a name="l00206"></a>00206                                 TiXmlParsingData* data, 
+<a name="l00207"></a>00207                                 TiXmlEncoding encoding <span class="comment">/*= TIXML_ENCODING_UNKNOWN */</span> ) = 0;
+<a name="l00208"></a>00208 
+<a name="l00209"></a>00209     <span class="keyword">enum</span>
+<a name="l00210"></a>00210     {
+<a name="l00211"></a>00211         TIXML_NO_ERROR = 0,
+<a name="l00212"></a>00212         TIXML_ERROR,
+<a name="l00213"></a>00213         TIXML_ERROR_OPENING_FILE,
+<a name="l00214"></a>00214         TIXML_ERROR_OUT_OF_MEMORY,
+<a name="l00215"></a>00215         TIXML_ERROR_PARSING_ELEMENT,
+<a name="l00216"></a>00216         TIXML_ERROR_FAILED_TO_READ_ELEMENT_NAME,
+<a name="l00217"></a>00217         TIXML_ERROR_READING_ELEMENT_VALUE,
+<a name="l00218"></a>00218         TIXML_ERROR_READING_ATTRIBUTES,
+<a name="l00219"></a>00219         TIXML_ERROR_PARSING_EMPTY,
+<a name="l00220"></a>00220         TIXML_ERROR_READING_END_TAG,
+<a name="l00221"></a>00221         TIXML_ERROR_PARSING_UNKNOWN,
+<a name="l00222"></a>00222         TIXML_ERROR_PARSING_COMMENT,
+<a name="l00223"></a>00223         TIXML_ERROR_PARSING_DECLARATION,
+<a name="l00224"></a>00224         TIXML_ERROR_DOCUMENT_EMPTY,
+<a name="l00225"></a>00225         TIXML_ERROR_EMBEDDED_NULL,
+<a name="l00226"></a>00226         TIXML_ERROR_PARSING_CDATA,
+<a name="l00227"></a>00227 
+<a name="l00228"></a>00228         TIXML_ERROR_STRING_COUNT
+<a name="l00229"></a>00229     };
 <a name="l00230"></a>00230 
-<a name="l00231"></a>00231         TIXML_ERROR_STRING_COUNT
-<a name="l00232"></a>00232     };
-<a name="l00233"></a>00233 
-<a name="l00234"></a>00234 <span class="keyword">protected</span>:
-<a name="l00235"></a>00235 
-<a name="l00236"></a>00236     <span class="comment">// See STL_STRING_BUG</span>
-<a name="l00237"></a>00237     <span class="comment">// Utility class to overcome a bug.</span>
-<a name="l00238"></a>00238     <span class="keyword">class </span>StringToBuffer
-<a name="l00239"></a>00239     {
-<a name="l00240"></a>00240       <span class="keyword">public</span>:
-<a name="l00241"></a>00241         StringToBuffer( <span class="keyword">const</span> TIXML_STRING&amp; str );
-<a name="l00242"></a>00242         ~StringToBuffer();
-<a name="l00243"></a>00243         <span class="keywordtype">char</span>* buffer;
-<a name="l00244"></a>00244     };
-<a name="l00245"></a>00245 
-<a name="l00246"></a>00246     <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">char</span>*  SkipWhiteSpace( <span class="keyword">const</span> <span class="keywordtype">char</span>*, TiXmlEncoding encoding );
-<a name="l00247"></a>00247     <span class="keyword">inline</span> <span class="keyword">static</span> <span class="keywordtype">bool</span>  IsWhiteSpace( <span class="keywordtype">char</span> c )      
-<a name="l00248"></a>00248     { 
-<a name="l00249"></a>00249         <span class="keywordflow">return</span> ( isspace( (<span class="keywordtype">unsigned</span> <span class="keywordtype">char</span>) c ) || c == <span class="charliteral">'\n'</span> || c == <span class="charliteral">'\r'</span> ); 
-<a name="l00250"></a>00250     }
-<a name="l00251"></a>00251 
-<a name="l00252"></a>00252     <span class="keyword">virtual</span> <span class="keywordtype">void</span> StreamOut (TIXML_OSTREAM *) <span class="keyword">const </span>= 0;
-<a name="l00253"></a>00253 
-<a name="l00254"></a>00254 <span class="preprocessor">    #ifdef TIXML_USE_STL</span>
-<a name="l00255"></a>00255 <span class="preprocessor"></span>        <span class="keyword">static</span> <span class="keywordtype">bool</span> StreamWhiteSpace( TIXML_ISTREAM * in, TIXML_STRING * tag );
-<a name="l00256"></a>00256         <span class="keyword">static</span> <span class="keywordtype">bool</span> StreamTo( TIXML_ISTREAM * in, <span class="keywordtype">int</span> character, TIXML_STRING * tag );
-<a name="l00257"></a>00257 <span class="preprocessor">    #endif</span>
-<a name="l00258"></a>00258 <span class="preprocessor"></span>
-<a name="l00259"></a>00259     <span class="comment">/*  Reads an XML name into the string provided. Returns</span>
-<a name="l00260"></a>00260 <span class="comment">        a pointer just past the last character of the name,</span>
-<a name="l00261"></a>00261 <span class="comment">        or 0 if the function has an error.</span>
-<a name="l00262"></a>00262 <span class="comment">    */</span>
-<a name="l00263"></a>00263     <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">char</span>* ReadName( <span class="keyword">const</span> <span class="keywordtype">char</span>* p, TIXML_STRING* name, TiXmlEncoding encoding );
-<a name="l00264"></a>00264 
-<a name="l00265"></a>00265     <span class="comment">/*  Reads text. Returns a pointer past the given end tag.</span>
-<a name="l00266"></a>00266 <span class="comment">        Wickedly complex options, but it keeps the (sensitive) code in one place.</span>
-<a name="l00267"></a>00267 <span class="comment">    */</span>
-<a name="l00268"></a>00268     <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">char</span>* ReadText(    <span class="keyword">const</span> <span class="keywordtype">char</span>* in,             <span class="comment">// where to start</span>
-<a name="l00269"></a>00269                                     TIXML_STRING* text,         <span class="comment">// the string read</span>
-<a name="l00270"></a>00270                                     <span class="keywordtype">bool</span> ignoreWhiteSpace,      <span class="comment">// whether to keep the white space</span>
-<a name="l00271"></a>00271                                     <span class="keyword">const</span> <span class="keywordtype">char</span>* endTag,         <span class="comment">// what ends this text</span>
-<a name="l00272"></a>00272                                     <span class="keywordtype">bool</span> ignoreCase,            <span class="comment">// whether to ignore case in the end tag</span>
-<a name="l00273"></a>00273                                     TiXmlEncoding encoding );   <span class="comment">// the current encoding</span>
-<a name="l00274"></a>00274 
-<a name="l00275"></a>00275     <span class="comment">// If an entity has been found, transform it into a character.</span>
-<a name="l00276"></a>00276     <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">char</span>* GetEntity( <span class="keyword">const</span> <span class="keywordtype">char</span>* in, <span class="keywordtype">char</span>* value, <span class="keywordtype">int</span>* length, TiXmlEncoding encoding );
+<a name="l00231"></a>00231 <span class="keyword">protected</span>:
+<a name="l00232"></a>00232 
+<a name="l00233"></a>00233     <span class="comment">// See STL_STRING_BUG</span>
+<a name="l00234"></a>00234     <span class="comment">// Utility class to overcome a bug.</span>
+<a name="l00235"></a>00235     <span class="keyword">class </span>StringToBuffer
+<a name="l00236"></a>00236     {
+<a name="l00237"></a>00237       <span class="keyword">public</span>:
+<a name="l00238"></a>00238         StringToBuffer( <span class="keyword">const</span> TIXML_STRING&amp; str );
+<a name="l00239"></a>00239         ~StringToBuffer();
+<a name="l00240"></a>00240         <span class="keywordtype">char</span>* buffer;
+<a name="l00241"></a>00241     };
+<a name="l00242"></a>00242 
+<a name="l00243"></a>00243     <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">char</span>*  SkipWhiteSpace( <span class="keyword">const</span> <span class="keywordtype">char</span>*, TiXmlEncoding encoding );
+<a name="l00244"></a>00244     <span class="keyword">inline</span> <span class="keyword">static</span> <span class="keywordtype">bool</span>  IsWhiteSpace( <span class="keywordtype">char</span> c )      
+<a name="l00245"></a>00245     { 
+<a name="l00246"></a>00246         <span class="keywordflow">return</span> ( isspace( (<span class="keywordtype">unsigned</span> <span class="keywordtype">char</span>) c ) || c == <span class="charliteral">'\n'</span> || c == <span class="charliteral">'\r'</span> ); 
+<a name="l00247"></a>00247     }
+<a name="l00248"></a>00248     <span class="keyword">inline</span> <span class="keyword">static</span> <span class="keywordtype">bool</span>  IsWhiteSpace( <span class="keywordtype">int</span> c )
+<a name="l00249"></a>00249     {
+<a name="l00250"></a>00250         <span class="keywordflow">if</span> ( c &lt; 256 )
+<a name="l00251"></a>00251             <span class="keywordflow">return</span> IsWhiteSpace( (<span class="keywordtype">char</span>) c );
+<a name="l00252"></a>00252         <span class="keywordflow">return</span> <span class="keyword">false</span>;   <span class="comment">// Again, only truly correct for English/Latin...but usually works.</span>
+<a name="l00253"></a>00253     }
+<a name="l00254"></a>00254 
+<a name="l00255"></a>00255     <span class="keyword">virtual</span> <span class="keywordtype">void</span> StreamOut (TIXML_OSTREAM *) <span class="keyword">const </span>= 0;
+<a name="l00256"></a>00256 
+<a name="l00257"></a>00257 <span class="preprocessor">    #ifdef TIXML_USE_STL</span>
+<a name="l00258"></a>00258 <span class="preprocessor"></span>        <span class="keyword">static</span> <span class="keywordtype">bool</span> StreamWhiteSpace( TIXML_ISTREAM * in, TIXML_STRING * tag );
+<a name="l00259"></a>00259         <span class="keyword">static</span> <span class="keywordtype">bool</span> StreamTo( TIXML_ISTREAM * in, <span class="keywordtype">int</span> character, TIXML_STRING * tag );
+<a name="l00260"></a>00260 <span class="preprocessor">    #endif</span>
+<a name="l00261"></a>00261 <span class="preprocessor"></span>
+<a name="l00262"></a>00262     <span class="comment">/*  Reads an XML name into the string provided. Returns</span>
+<a name="l00263"></a>00263 <span class="comment">        a pointer just past the last character of the name,</span>
+<a name="l00264"></a>00264 <span class="comment">        or 0 if the function has an error.</span>
+<a name="l00265"></a>00265 <span class="comment">    */</span>
+<a name="l00266"></a>00266     <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">char</span>* ReadName( <span class="keyword">const</span> <span class="keywordtype">char</span>* p, TIXML_STRING* name, TiXmlEncoding encoding );
+<a name="l00267"></a>00267 
+<a name="l00268"></a>00268     <span class="comment">/*  Reads text. Returns a pointer past the given end tag.</span>
+<a name="l00269"></a>00269 <span class="comment">        Wickedly complex options, but it keeps the (sensitive) code in one place.</span>
+<a name="l00270"></a>00270 <span class="comment">    */</span>
+<a name="l00271"></a>00271     <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">char</span>* ReadText(    <span class="keyword">const</span> <span class="keywordtype">char</span>* in,             <span class="comment">// where to start</span>
+<a name="l00272"></a>00272                                     TIXML_STRING* text,         <span class="comment">// the string read</span>
+<a name="l00273"></a>00273                                     <span class="keywordtype">bool</span> ignoreWhiteSpace,      <span class="comment">// whether to keep the white space</span>
+<a name="l00274"></a>00274                                     <span class="keyword">const</span> <span class="keywordtype">char</span>* endTag,         <span class="comment">// what ends this text</span>
+<a name="l00275"></a>00275                                     <span class="keywordtype">bool</span> ignoreCase,            <span class="comment">// whether to ignore case in the end tag</span>
+<a name="l00276"></a>00276                                     TiXmlEncoding encoding );   <span class="comment">// the current encoding</span>
 <a name="l00277"></a>00277 
-<a name="l00278"></a>00278     <span class="comment">// Get a character, while interpreting entities.</span>
-<a name="l00279"></a>00279     <span class="comment">// The length can be from 0 to 4 bytes.</span>
-<a name="l00280"></a>00280     <span class="keyword">inline</span> <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">char</span>* GetChar( <span class="keyword">const</span> <span class="keywordtype">char</span>* p, <span class="keywordtype">char</span>* _value, <span class="keywordtype">int</span>* length, TiXmlEncoding encoding )
-<a name="l00281"></a>00281     {
-<a name="l00282"></a>00282         assert( p );
-<a name="l00283"></a>00283         <span class="keywordflow">if</span> ( encoding == TIXML_ENCODING_UTF8 )
-<a name="l00284"></a>00284         {
-<a name="l00285"></a>00285             *length = utf8ByteTable[ *((<span class="keywordtype">unsigned</span> <span class="keywordtype">char</span>*)p) ];
-<a name="l00286"></a>00286             assert( *length &gt;= 0 &amp;&amp; *length &lt; 5 );
-<a name="l00287"></a>00287         }
-<a name="l00288"></a>00288         <span class="keywordflow">else</span>
-<a name="l00289"></a>00289         {
-<a name="l00290"></a>00290             *length = 1;
-<a name="l00291"></a>00291         }
-<a name="l00292"></a>00292 
-<a name="l00293"></a>00293         <span class="keywordflow">if</span> ( *length == 1 )
-<a name="l00294"></a>00294         {
-<a name="l00295"></a>00295             <span class="keywordflow">if</span> ( *p == <span class="charliteral">'&amp;'</span> )
-<a name="l00296"></a>00296                 <span class="keywordflow">return</span> GetEntity( p, _value, length, encoding );
-<a name="l00297"></a>00297             *_value = *p;
-<a name="l00298"></a>00298             <span class="keywordflow">return</span> p+1;
-<a name="l00299"></a>00299         }
-<a name="l00300"></a>00300         <span class="keywordflow">else</span> <span class="keywordflow">if</span> ( *length )
-<a name="l00301"></a>00301         {
-<a name="l00302"></a>00302             <span class="comment">//strncpy( _value, p, *length );    // lots of compilers don't like this function (unsafe),</span>
-<a name="l00303"></a>00303                                                 <span class="comment">// and the null terminator isn't needed</span>
-<a name="l00304"></a>00304             <span class="keywordflow">for</span>( <span class="keywordtype">int</span> i=0; p[i] &amp;&amp; i&lt;*length; ++i ) {
-<a name="l00305"></a>00305                 _value[i] = p[i];
-<a name="l00306"></a>00306             }
-<a name="l00307"></a>00307             <span class="keywordflow">return</span> p + (*length);
-<a name="l00308"></a>00308         }
-<a name="l00309"></a>00309         <span class="keywordflow">else</span>
-<a name="l00310"></a>00310         {
-<a name="l00311"></a>00311             <span class="comment">// Not valid text.</span>
-<a name="l00312"></a>00312             <span class="keywordflow">return</span> 0;
-<a name="l00313"></a>00313         }
-<a name="l00314"></a>00314     }
-<a name="l00315"></a>00315 
-<a name="l00316"></a>00316     <span class="comment">// Puts a string to a stream, expanding entities as it goes.</span>
-<a name="l00317"></a>00317     <span class="comment">// Note this should not contian the '&lt;', '&gt;', etc, or they will be transformed into entities!</span>
-<a name="l00318"></a>00318     <span class="keyword">static</span> <span class="keywordtype">void</span> PutString( <span class="keyword">const</span> TIXML_STRING&amp; str, TIXML_OSTREAM* out );
-<a name="l00319"></a>00319 
-<a name="l00320"></a>00320     <span class="keyword">static</span> <span class="keywordtype">void</span> PutString( <span class="keyword">const</span> TIXML_STRING&amp; str, TIXML_STRING* out );
-<a name="l00321"></a>00321 
-<a name="l00322"></a>00322     <span class="comment">// Return true if the next characters in the stream are any of the endTag sequences.</span>
-<a name="l00323"></a>00323     <span class="comment">// Ignore case only works for english, and should only be relied on when comparing</span>
-<a name="l00324"></a>00324     <span class="comment">// to English words: StringEqual( p, "version", true ) is fine.</span>
-<a name="l00325"></a>00325     <span class="keyword">static</span> <span class="keywordtype">bool</span> StringEqual(    <span class="keyword">const</span> <span class="keywordtype">char</span>* p,
-<a name="l00326"></a>00326                                 <span class="keyword">const</span> <span class="keywordtype">char</span>* endTag,
-<a name="l00327"></a>00327                                 <span class="keywordtype">bool</span> ignoreCase,
-<a name="l00328"></a>00328                                 TiXmlEncoding encoding );
-<a name="l00329"></a>00329 
-<a name="l00330"></a>00330     <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">char</span>* errorString[ TIXML_ERROR_STRING_COUNT ];
-<a name="l00331"></a>00331 
-<a name="l00332"></a>00332     TiXmlCursor location;
-<a name="l00333"></a>00333 
-<a name="l00335"></a><a class="code" href="classTiXmlBase.html#p1">00335</a>     <span class="keywordtype">void</span>*           <a class="code" href="classTiXmlBase.html#p1">userData</a>;
-<a name="l00336"></a>00336     
-<a name="l00337"></a>00337     <span class="comment">// None of these methods are reliable for any language except English.</span>
-<a name="l00338"></a>00338     <span class="comment">// Good for approximation, not great for accuracy.</span>
-<a name="l00339"></a>00339     <span class="keyword">static</span> <span class="keywordtype">int</span> IsAlpha( <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> anyByte, TiXmlEncoding encoding );
-<a name="l00340"></a>00340     <span class="keyword">static</span> <span class="keywordtype">int</span> IsAlphaNum( <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> anyByte, TiXmlEncoding encoding );
-<a name="l00341"></a>00341     <span class="keyword">inline</span> <span class="keyword">static</span> <span class="keywordtype">int</span> ToLower( <span class="keywordtype">int</span> v, TiXmlEncoding encoding )
-<a name="l00342"></a>00342     {
-<a name="l00343"></a>00343         <span class="keywordflow">if</span> ( encoding == TIXML_ENCODING_UTF8 )
-<a name="l00344"></a>00344         {
-<a name="l00345"></a>00345             <span class="keywordflow">if</span> ( v &lt; 128 ) <span class="keywordflow">return</span> tolower( v );
-<a name="l00346"></a>00346             <span class="keywordflow">return</span> v;
-<a name="l00347"></a>00347         }
-<a name="l00348"></a>00348         <span class="keywordflow">else</span>
-<a name="l00349"></a>00349         {
-<a name="l00350"></a>00350             <span class="keywordflow">return</span> tolower( v );
-<a name="l00351"></a>00351         }
-<a name="l00352"></a>00352     }
-<a name="l00353"></a>00353     <span class="keyword">static</span> <span class="keywordtype">void</span> ConvertUTF32ToUTF8( <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> input, <span class="keywordtype">char</span>* output, <span class="keywordtype">int</span>* length );
-<a name="l00354"></a>00354 
-<a name="l00355"></a>00355 <span class="keyword">private</span>:
-<a name="l00356"></a>00356     <a class="code" href="classTiXmlBase.html">TiXmlBase</a>( <span class="keyword">const</span> <a class="code" href="classTiXmlBase.html">TiXmlBase</a>&amp; );              <span class="comment">// not implemented.</span>
-<a name="l00357"></a>00357     <span class="keywordtype">void</span> operator=( <span class="keyword">const</span> <a class="code" href="classTiXmlBase.html">TiXmlBase</a>&amp; base );    <span class="comment">// not allowed.</span>
-<a name="l00358"></a>00358 
-<a name="l00359"></a>00359     <span class="keyword">struct </span>Entity
-<a name="l00360"></a>00360     {
-<a name="l00361"></a>00361         <span class="keyword">const</span> <span class="keywordtype">char</span>*     str;
-<a name="l00362"></a>00362         <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span>    strLength;
-<a name="l00363"></a>00363         <span class="keywordtype">char</span>            chr;
-<a name="l00364"></a>00364     };
-<a name="l00365"></a>00365     <span class="keyword">enum</span>
-<a name="l00366"></a>00366     {
-<a name="l00367"></a>00367         NUM_ENTITY = 5,
-<a name="l00368"></a>00368         MAX_ENTITY_LENGTH = 6
-<a name="l00369"></a>00369 
-<a name="l00370"></a>00370     };
-<a name="l00371"></a>00371     <span class="keyword">static</span> Entity entity[ NUM_ENTITY ];
-<a name="l00372"></a>00372     <span class="keyword">static</span> <span class="keywordtype">bool</span> condenseWhiteSpace;
-<a name="l00373"></a>00373 };
-<a name="l00374"></a>00374 
-<a name="l00375"></a>00375 
-<a name="l00382"></a><a class="code" href="classTiXmlNode.html">00382</a> <span class="keyword">class </span><a class="code" href="classTiXmlNode.html">TiXmlNode</a> : <span class="keyword">public</span> <a class="code" href="classTiXmlBase.html">TiXmlBase</a>
-<a name="l00383"></a>00383 {
-<a name="l00384"></a>00384     <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classTiXmlDocument.html">TiXmlDocument</a>;
-<a name="l00385"></a>00385     <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classTiXmlElement.html">TiXmlElement</a>;
-<a name="l00386"></a>00386 
-<a name="l00387"></a>00387 <span class="keyword">public</span>:
-<a name="l00388"></a>00388 <span class="preprocessor">    #ifdef TIXML_USE_STL    </span>
-<a name="l00389"></a>00389 <span class="preprocessor"></span>
-<a name="l00393"></a>00393         <span class="keyword">friend</span> std::istream&amp; <a class="code" href="classTiXmlNode.html#n2">operator &gt;&gt; </a>(std::istream&amp; in, <a class="code" href="classTiXmlNode.html">TiXmlNode</a>&amp; base);
-<a name="l00394"></a>00394 
-<a name="l00411"></a>00411         <span class="keyword">friend</span> std::ostream&amp; <a class="code" href="classTiXmlNode.html#n3">operator&lt;&lt; </a>(std::ostream&amp; out, <span class="keyword">const</span> <a class="code" href="classTiXmlNode.html">TiXmlNode</a>&amp; base);
-<a name="l00412"></a>00412 
-<a name="l00414"></a>00414         <span class="keyword">friend</span> std::string&amp; <a class="code" href="classTiXmlNode.html#n3">operator&lt;&lt; </a>(std::string&amp; out, <span class="keyword">const</span> <a class="code" href="classTiXmlNode.html">TiXmlNode</a>&amp; base );
+<a name="l00278"></a>00278     <span class="comment">// If an entity has been found, transform it into a character.</span>
+<a name="l00279"></a>00279     <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">char</span>* GetEntity( <span class="keyword">const</span> <span class="keywordtype">char</span>* in, <span class="keywordtype">char</span>* value, <span class="keywordtype">int</span>* length, TiXmlEncoding encoding );
+<a name="l00280"></a>00280 
+<a name="l00281"></a>00281     <span class="comment">// Get a character, while interpreting entities.</span>
+<a name="l00282"></a>00282     <span class="comment">// The length can be from 0 to 4 bytes.</span>
+<a name="l00283"></a>00283     <span class="keyword">inline</span> <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">char</span>* GetChar( <span class="keyword">const</span> <span class="keywordtype">char</span>* p, <span class="keywordtype">char</span>* _value, <span class="keywordtype">int</span>* length, TiXmlEncoding encoding )
+<a name="l00284"></a>00284     {
+<a name="l00285"></a>00285         assert( p );
+<a name="l00286"></a>00286         <span class="keywordflow">if</span> ( encoding == TIXML_ENCODING_UTF8 )
+<a name="l00287"></a>00287         {
+<a name="l00288"></a>00288             *length = utf8ByteTable[ *((<span class="keywordtype">unsigned</span> <span class="keywordtype">char</span>*)p) ];
+<a name="l00289"></a>00289             assert( *length &gt;= 0 &amp;&amp; *length &lt; 5 );
+<a name="l00290"></a>00290         }
+<a name="l00291"></a>00291         <span class="keywordflow">else</span>
+<a name="l00292"></a>00292         {
+<a name="l00293"></a>00293             *length = 1;
+<a name="l00294"></a>00294         }
+<a name="l00295"></a>00295 
+<a name="l00296"></a>00296         <span class="keywordflow">if</span> ( *length == 1 )
+<a name="l00297"></a>00297         {
+<a name="l00298"></a>00298             <span class="keywordflow">if</span> ( *p == <span class="charliteral">'&amp;'</span> )
+<a name="l00299"></a>00299                 <span class="keywordflow">return</span> GetEntity( p, _value, length, encoding );
+<a name="l00300"></a>00300             *_value = *p;
+<a name="l00301"></a>00301             <span class="keywordflow">return</span> p+1;
+<a name="l00302"></a>00302         }
+<a name="l00303"></a>00303         <span class="keywordflow">else</span> <span class="keywordflow">if</span> ( *length )
+<a name="l00304"></a>00304         {
+<a name="l00305"></a>00305             <span class="comment">//strncpy( _value, p, *length );    // lots of compilers don't like this function (unsafe),</span>
+<a name="l00306"></a>00306                                                 <span class="comment">// and the null terminator isn't needed</span>
+<a name="l00307"></a>00307             <span class="keywordflow">for</span>( <span class="keywordtype">int</span> i=0; p[i] &amp;&amp; i&lt;*length; ++i ) {
+<a name="l00308"></a>00308                 _value[i] = p[i];
+<a name="l00309"></a>00309             }
+<a name="l00310"></a>00310             <span class="keywordflow">return</span> p + (*length);
+<a name="l00311"></a>00311         }
+<a name="l00312"></a>00312         <span class="keywordflow">else</span>
+<a name="l00313"></a>00313         {
+<a name="l00314"></a>00314             <span class="comment">// Not valid text.</span>
+<a name="l00315"></a>00315             <span class="keywordflow">return</span> 0;
+<a name="l00316"></a>00316         }
+<a name="l00317"></a>00317     }
+<a name="l00318"></a>00318 
+<a name="l00319"></a>00319     <span class="comment">// Puts a string to a stream, expanding entities as it goes.</span>
+<a name="l00320"></a>00320     <span class="comment">// Note this should not contian the '&lt;', '&gt;', etc, or they will be transformed into entities!</span>
+<a name="l00321"></a>00321     <span class="keyword">static</span> <span class="keywordtype">void</span> PutString( <span class="keyword">const</span> TIXML_STRING&amp; str, TIXML_OSTREAM* out );
+<a name="l00322"></a>00322 
+<a name="l00323"></a>00323     <span class="keyword">static</span> <span class="keywordtype">void</span> PutString( <span class="keyword">const</span> TIXML_STRING&amp; str, TIXML_STRING* out );
+<a name="l00324"></a>00324 
+<a name="l00325"></a>00325     <span class="comment">// Return true if the next characters in the stream are any of the endTag sequences.</span>
+<a name="l00326"></a>00326     <span class="comment">// Ignore case only works for english, and should only be relied on when comparing</span>
+<a name="l00327"></a>00327     <span class="comment">// to English words: StringEqual( p, "version", true ) is fine.</span>
+<a name="l00328"></a>00328     <span class="keyword">static</span> <span class="keywordtype">bool</span> StringEqual(    <span class="keyword">const</span> <span class="keywordtype">char</span>* p,
+<a name="l00329"></a>00329                                 <span class="keyword">const</span> <span class="keywordtype">char</span>* endTag,
+<a name="l00330"></a>00330                                 <span class="keywordtype">bool</span> ignoreCase,
+<a name="l00331"></a>00331                                 TiXmlEncoding encoding );
+<a name="l00332"></a>00332 
+<a name="l00333"></a>00333     <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">char</span>* errorString[ TIXML_ERROR_STRING_COUNT ];
+<a name="l00334"></a>00334 
+<a name="l00335"></a>00335     TiXmlCursor location;
+<a name="l00336"></a>00336 
+<a name="l00338"></a><a class="code" href="classTiXmlBase.html#p1">00338</a>     <span class="keywordtype">void</span>*           <a class="code" href="classTiXmlBase.html#p1">userData</a>;
+<a name="l00339"></a>00339     
+<a name="l00340"></a>00340     <span class="comment">// None of these methods are reliable for any language except English.</span>
+<a name="l00341"></a>00341     <span class="comment">// Good for approximation, not great for accuracy.</span>
+<a name="l00342"></a>00342     <span class="keyword">static</span> <span class="keywordtype">int</span> IsAlpha( <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> anyByte, TiXmlEncoding encoding );
+<a name="l00343"></a>00343     <span class="keyword">static</span> <span class="keywordtype">int</span> IsAlphaNum( <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> anyByte, TiXmlEncoding encoding );
+<a name="l00344"></a>00344     <span class="keyword">inline</span> <span class="keyword">static</span> <span class="keywordtype">int</span> ToLower( <span class="keywordtype">int</span> v, TiXmlEncoding encoding )
+<a name="l00345"></a>00345     {
+<a name="l00346"></a>00346         <span class="keywordflow">if</span> ( encoding == TIXML_ENCODING_UTF8 )
+<a name="l00347"></a>00347         {
+<a name="l00348"></a>00348             <span class="keywordflow">if</span> ( v &lt; 128 ) <span class="keywordflow">return</span> tolower( v );
+<a name="l00349"></a>00349             <span class="keywordflow">return</span> v;
+<a name="l00350"></a>00350         }
+<a name="l00351"></a>00351         <span class="keywordflow">else</span>
+<a name="l00352"></a>00352         {
+<a name="l00353"></a>00353             <span class="keywordflow">return</span> tolower( v );
+<a name="l00354"></a>00354         }
+<a name="l00355"></a>00355     }
+<a name="l00356"></a>00356     <span class="keyword">static</span> <span class="keywordtype">void</span> ConvertUTF32ToUTF8( <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> input, <span class="keywordtype">char</span>* output, <span class="keywordtype">int</span>* length );
+<a name="l00357"></a>00357 
+<a name="l00358"></a>00358 <span class="keyword">private</span>:
+<a name="l00359"></a>00359     <a class="code" href="classTiXmlBase.html">TiXmlBase</a>( <span class="keyword">const</span> <a class="code" href="classTiXmlBase.html">TiXmlBase</a>&amp; );              <span class="comment">// not implemented.</span>
+<a name="l00360"></a>00360     <span class="keywordtype">void</span> operator=( <span class="keyword">const</span> <a class="code" href="classTiXmlBase.html">TiXmlBase</a>&amp; base );    <span class="comment">// not allowed.</span>
+<a name="l00361"></a>00361 
+<a name="l00362"></a>00362     <span class="keyword">struct </span>Entity
+<a name="l00363"></a>00363     {
+<a name="l00364"></a>00364         <span class="keyword">const</span> <span class="keywordtype">char</span>*     str;
+<a name="l00365"></a>00365         <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span>    strLength;
+<a name="l00366"></a>00366         <span class="keywordtype">char</span>            chr;
+<a name="l00367"></a>00367     };
+<a name="l00368"></a>00368     <span class="keyword">enum</span>
+<a name="l00369"></a>00369     {
+<a name="l00370"></a>00370         NUM_ENTITY = 5,
+<a name="l00371"></a>00371         MAX_ENTITY_LENGTH = 6
+<a name="l00372"></a>00372 
+<a name="l00373"></a>00373     };
+<a name="l00374"></a>00374     <span class="keyword">static</span> Entity entity[ NUM_ENTITY ];
+<a name="l00375"></a>00375     <span class="keyword">static</span> <span class="keywordtype">bool</span> condenseWhiteSpace;
+<a name="l00376"></a>00376 };
+<a name="l00377"></a>00377 
+<a name="l00378"></a>00378 
+<a name="l00385"></a><a class="code" href="classTiXmlNode.html">00385</a> <span class="keyword">class </span><a class="code" href="classTiXmlNode.html">TiXmlNode</a> : <span class="keyword">public</span> <a class="code" href="classTiXmlBase.html">TiXmlBase</a>
+<a name="l00386"></a>00386 {
+<a name="l00387"></a>00387     <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classTiXmlDocument.html">TiXmlDocument</a>;
+<a name="l00388"></a>00388     <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classTiXmlElement.html">TiXmlElement</a>;
+<a name="l00389"></a>00389 
+<a name="l00390"></a>00390 <span class="keyword">public</span>:
+<a name="l00391"></a>00391 <span class="preprocessor">    #ifdef TIXML_USE_STL    </span>
+<a name="l00392"></a>00392 <span class="preprocessor"></span>
+<a name="l00396"></a>00396         <span class="keyword">friend</span> std::istream&amp; <a class="code" href="classTiXmlNode.html#n2">operator &gt;&gt; </a>(std::istream&amp; in, <a class="code" href="classTiXmlNode.html">TiXmlNode</a>&amp; base);
+<a name="l00397"></a>00397 
+<a name="l00414"></a>00414         <span class="keyword">friend</span> std::ostream&amp; <a class="code" href="classTiXmlNode.html#n3">operator&lt;&lt; </a>(std::ostream&amp; out, <span class="keyword">const</span> <a class="code" href="classTiXmlNode.html">TiXmlNode</a>&amp; base);
 <a name="l00415"></a>00415 
-<a name="l00416"></a>00416 <span class="preprocessor">    #else</span>
-<a name="l00417"></a>00417 <span class="preprocessor"></span>        <span class="comment">// Used internally, not part of the public API.</span>
-<a name="l00418"></a>00418         <span class="keyword">friend</span> TIXML_OSTREAM&amp; <a class="code" href="classTiXmlNode.html#n3">operator&lt;&lt; </a>(TIXML_OSTREAM&amp; out, <span class="keyword">const</span> <a class="code" href="classTiXmlNode.html">TiXmlNode</a>&amp; base);
-<a name="l00419"></a>00419 <span class="preprocessor">    #endif</span>
-<a name="l00420"></a>00420 <span class="preprocessor"></span>
-<a name="l00424"></a><a class="code" href="classTiXmlNode.html#w7">00424</a>     <span class="keyword">enum</span> <a class="code" href="classTiXmlNode.html#w7">NodeType</a>
-<a name="l00425"></a>00425     {
-<a name="l00426"></a>00426         DOCUMENT,
-<a name="l00427"></a>00427         ELEMENT,
-<a name="l00428"></a>00428         COMMENT,
-<a name="l00429"></a>00429         UNKNOWN,
-<a name="l00430"></a>00430         TEXT,
-<a name="l00431"></a>00431         DECLARATION,
-<a name="l00432"></a>00432         TYPECOUNT
-<a name="l00433"></a>00433     };
-<a name="l00434"></a>00434 
-<a name="l00435"></a>00435     <span class="keyword">virtual</span> ~<a class="code" href="classTiXmlNode.html">TiXmlNode</a>();
-<a name="l00436"></a>00436 
-<a name="l00449"></a><a class="code" href="classTiXmlNode.html#a1">00449</a>     <span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="classTiXmlNode.html#a1">Value</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> value.c_str (); }
-<a name="l00450"></a>00450 
-<a name="l00451"></a>00451 <span class="preprocessor">    #ifdef TIXML_USE_STL</span>
-<a name="l00452"></a>00452 <span class="preprocessor"></span>
-<a name="l00456"></a><a class="code" href="classTiXmlNode.html#a2">00456</a>     <span class="keyword">const</span> std::string&amp; <a class="code" href="classTiXmlNode.html#a2">ValueStr</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> value; }
-<a name="l00457"></a>00457 <span class="preprocessor">    #endif</span>
-<a name="l00458"></a>00458 <span class="preprocessor"></span>
-<a name="l00468"></a><a class="code" href="classTiXmlNode.html#a3">00468</a>     <span class="keywordtype">void</span> <a class="code" href="classTiXmlNode.html#a3">SetValue</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> * _value) { value = _value;}
-<a name="l00469"></a>00469 
-<a name="l00470"></a>00470 <span class="preprocessor">    #ifdef TIXML_USE_STL</span>
-<a name="l00471"></a>00471 <span class="preprocessor"></span>
-<a name="l00472"></a><a class="code" href="classTiXmlNode.html#a4">00472</a>     <span class="keywordtype">void</span> <a class="code" href="classTiXmlNode.html#a3">SetValue</a>( <span class="keyword">const</span> std::string&amp; _value )    
-<a name="l00473"></a>00473     {     
-<a name="l00474"></a>00474         StringToBuffer buf( _value );
-<a name="l00475"></a>00475         <a class="code" href="classTiXmlNode.html#a3">SetValue</a>( buf.buffer ? buf.buffer : <span class="stringliteral">""</span> );       
-<a name="l00476"></a>00476     }   
-<a name="l00477"></a>00477 <span class="preprocessor">    #endif</span>
-<a name="l00478"></a>00478 <span class="preprocessor"></span>
-<a name="l00480"></a>00480     <span class="keywordtype">void</span> <a class="code" href="classTiXmlNode.html#a5">Clear</a>();
-<a name="l00481"></a>00481 
-<a name="l00483"></a><a class="code" href="classTiXmlNode.html#a6">00483</a>     <a class="code" href="classTiXmlNode.html">TiXmlNode</a>* <a class="code" href="classTiXmlNode.html#a6">Parent</a>()                         { <span class="keywordflow">return</span> parent; }
-<a name="l00484"></a>00484     <span class="keyword">const</span> <a class="code" href="classTiXmlNode.html">TiXmlNode</a>* <a class="code" href="classTiXmlNode.html#a6">Parent</a>()<span class="keyword"> const             </span>{ <span class="keywordflow">return</span> parent; }
-<a name="l00485"></a>00485 
-<a name="l00486"></a><a class="code" href="classTiXmlNode.html#a8">00486</a>     <span class="keyword">const</span> <a class="code" href="classTiXmlNode.html">TiXmlNode</a>* <a class="code" href="classTiXmlNode.html#a8">FirstChild</a>()<span class="keyword">   const   </span>{ <span class="keywordflow">return</span> firstChild; }      
-<a name="l00487"></a>00487     <a class="code" href="classTiXmlNode.html">TiXmlNode</a>* <a class="code" href="classTiXmlNode.html#a8">FirstChild</a>()                 { <span class="keywordflow">return</span> firstChild; }
-<a name="l00488"></a>00488     <span class="keyword">const</span> <a class="code" href="classTiXmlNode.html">TiXmlNode</a>* <a class="code" href="classTiXmlNode.html#a8">FirstChild</a>( <span class="keyword">const</span> <span class="keywordtype">char</span> * value ) <span class="keyword">const</span>;            
-<a name="l00489"></a>00489     <a class="code" href="classTiXmlNode.html">TiXmlNode</a>* <a class="code" href="classTiXmlNode.html#a8">FirstChild</a>( <span class="keyword">const</span> <span class="keywordtype">char</span> * value );                        
-<a name="l00490"></a>00490 
-<a name="l00491"></a>00491     <span class="keyword">const</span> <a class="code" href="classTiXmlNode.html">TiXmlNode</a>* LastChild()<span class="keyword"> const  </span>{ <span class="keywordflow">return</span> lastChild; }       
-<a name="l00492"></a><a class="code" href="classTiXmlNode.html#a13">00492</a>     <a class="code" href="classTiXmlNode.html">TiXmlNode</a>* LastChild()  { <span class="keywordflow">return</span> lastChild; }
-<a name="l00493"></a>00493     <span class="keyword">const</span> <a class="code" href="classTiXmlNode.html">TiXmlNode</a>* LastChild( <span class="keyword">const</span> <span class="keywordtype">char</span> * value ) <span class="keyword">const</span>;         
-<a name="l00494"></a>00494     <a class="code" href="classTiXmlNode.html">TiXmlNode</a>* LastChild( <span class="keyword">const</span> <span class="keywordtype">char</span> * value ); 
-<a name="l00495"></a>00495 
-<a name="l00496"></a>00496 <span class="preprocessor">    #ifdef TIXML_USE_STL</span>
-<a name="l00497"></a><a class="code" href="classTiXmlNode.html#a16">00497</a> <span class="preprocessor"></span>    <span class="keyword">const</span> <a class="code" href="classTiXmlNode.html">TiXmlNode</a>* <a class="code" href="classTiXmlNode.html#a8">FirstChild</a>( <span class="keyword">const</span> std::string&amp; _value )<span class="keyword"> const  </span>{   <span class="keywordflow">return</span> <a class="code" href="classTiXmlNode.html#a8">FirstChild</a> (_value.c_str ());    }   
-<a name="l00498"></a><a class="code" href="classTiXmlNode.html#a17">00498</a>     <a class="code" href="classTiXmlNode.html">TiXmlNode</a>* <a class="code" href="classTiXmlNode.html#a8">FirstChild</a>( <span class="keyword">const</span> std::string&amp; _value )              {   <span class="keywordflow">return</span> <a class="code" href="classTiXmlNode.html#a8">FirstChild</a> (_value.c_str ());    }   
-<a name="l00499"></a><a class="code" href="classTiXmlNode.html#a18">00499</a>     <span class="keyword">const</span> <a class="code" href="classTiXmlNode.html">TiXmlNode</a>* LastChild( <span class="keyword">const</span> std::string&amp; _value )<span class="keyword"> const   </span>{   <span class="keywordflow">return</span> LastChild (_value.c_str ()); }   
-<a name="l00500"></a><a class="code" href="classTiXmlNode.html#a19">00500</a>     <a class="code" href="classTiXmlNode.html">TiXmlNode</a>* LastChild( <span class="keyword">const</span> std::string&amp; _value )               {   <span class="keywordflow">return</span> LastChild (_value.c_str ()); }   
-<a name="l00501"></a>00501 <span class="preprocessor">    #endif</span>
-<a name="l00502"></a>00502 <span class="preprocessor"></span>
-<a name="l00519"></a>00519     <span class="keyword">const</span> <a class="code" href="classTiXmlNode.html">TiXmlNode</a>* <a class="code" href="classTiXmlNode.html#a20">IterateChildren</a>( <span class="keyword">const</span> <a class="code" href="classTiXmlNode.html">TiXmlNode</a>* previous ) <span class="keyword">const</span>;
-<a name="l00520"></a>00520     <a class="code" href="classTiXmlNode.html">TiXmlNode</a>* <a class="code" href="classTiXmlNode.html#a20">IterateChildren</a>( <a class="code" href="classTiXmlNode.html">TiXmlNode</a>* previous );
-<a name="l00521"></a>00521 
-<a name="l00523"></a>00523     <span class="keyword">const</span> <a class="code" href="classTiXmlNode.html">TiXmlNode</a>* <a class="code" href="classTiXmlNode.html#a20">IterateChildren</a>( <span class="keyword">const</span> <span class="keywordtype">char</span> * value, <span class="keyword">const</span> <a class="code" href="classTiXmlNode.html">TiXmlNode</a>* previous ) <span class="keyword">const</span>;
-<a name="l00524"></a>00524     <a class="code" href="classTiXmlNode.html">TiXmlNode</a>* <a class="code" href="classTiXmlNode.html#a20">IterateChildren</a>( <span class="keyword">const</span> <span class="keywordtype">char</span> * value, <a class="code" href="classTiXmlNode.html">TiXmlNode</a>* previous );
-<a name="l00525"></a>00525 
-<a name="l00526"></a>00526 <span class="preprocessor">    #ifdef TIXML_USE_STL</span>
-<a name="l00527"></a><a class="code" href="classTiXmlNode.html#a24">00527</a> <span class="preprocessor"></span>    <span class="keyword">const</span> <a class="code" href="classTiXmlNode.html">TiXmlNode</a>* <a class="code" href="classTiXmlNode.html#a20">IterateChildren</a>( <span class="keyword">const</span> std::string&amp; _value, <span class="keyword">const</span> <a class="code" href="classTiXmlNode.html">TiXmlNode</a>* previous )<span class="keyword"> const  </span>{   <span class="keywordflow">return</span> <a class="code" href="classTiXmlNode.html#a20">IterateChildren</a> (_value.c_str (), previous); }   
-<a name="l00528"></a><a class="code" href="classTiXmlNode.html#a25">00528</a>     <a class="code" href="classTiXmlNode.html">TiXmlNode</a>* <a class="code" href="classTiXmlNode.html#a20">IterateChildren</a>( <span class="keyword">const</span> std::string&amp; _value, <a class="code" href="classTiXmlNode.html">TiXmlNode</a>* previous ) {  <span class="keywordflow">return</span> <a class="code" href="classTiXmlNode.html#a20">IterateChildren</a> (_value.c_str (), previous); }   
-<a name="l00529"></a>00529 <span class="preprocessor">    #endif</span>
-<a name="l00530"></a>00530 <span class="preprocessor"></span>
-<a name="l00534"></a>00534     <a class="code" href="classTiXmlNode.html">TiXmlNode</a>* <a class="code" href="classTiXmlNode.html#a26">InsertEndChild</a>( <span class="keyword">const</span> <a class="code" href="classTiXmlNode.html">TiXmlNode</a>&amp; addThis );
+<a name="l00417"></a>00417         <span class="keyword">friend</span> std::string&amp; <a class="code" href="classTiXmlNode.html#n3">operator&lt;&lt; </a>(std::string&amp; out, <span class="keyword">const</span> <a class="code" href="classTiXmlNode.html">TiXmlNode</a>&amp; base );
+<a name="l00418"></a>00418 
+<a name="l00419"></a>00419 <span class="preprocessor">    #else</span>
+<a name="l00420"></a>00420 <span class="preprocessor"></span>        <span class="comment">// Used internally, not part of the public API.</span>
+<a name="l00421"></a>00421         <span class="keyword">friend</span> TIXML_OSTREAM&amp; <a class="code" href="classTiXmlNode.html#n3">operator&lt;&lt; </a>(TIXML_OSTREAM&amp; out, <span class="keyword">const</span> <a class="code" href="classTiXmlNode.html">TiXmlNode</a>&amp; base);
+<a name="l00422"></a>00422 <span class="preprocessor">    #endif</span>
+<a name="l00423"></a>00423 <span class="preprocessor"></span>
+<a name="l00427"></a><a class="code" href="classTiXmlNode.html#w7">00427</a>     <span class="keyword">enum</span> <a class="code" href="classTiXmlNode.html#w7">NodeType</a>
+<a name="l00428"></a>00428     {
+<a name="l00429"></a>00429         DOCUMENT,
+<a name="l00430"></a>00430         ELEMENT,
+<a name="l00431"></a>00431         COMMENT,
+<a name="l00432"></a>00432         UNKNOWN,
+<a name="l00433"></a>00433         TEXT,
+<a name="l00434"></a>00434         DECLARATION,
+<a name="l00435"></a>00435         TYPECOUNT
+<a name="l00436"></a>00436     };
+<a name="l00437"></a>00437 
+<a name="l00438"></a>00438     <span class="keyword">virtual</span> ~<a class="code" href="classTiXmlNode.html">TiXmlNode</a>();
+<a name="l00439"></a>00439 
+<a name="l00452"></a><a class="code" href="classTiXmlNode.html#a1">00452</a>     <span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="classTiXmlNode.html#a1">Value</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> value.c_str (); }
+<a name="l00453"></a>00453 
+<a name="l00454"></a>00454 <span class="preprocessor">    #ifdef TIXML_USE_STL</span>
+<a name="l00455"></a>00455 <span class="preprocessor"></span>
+<a name="l00459"></a><a class="code" href="classTiXmlNode.html#a2">00459</a>     <span class="keyword">const</span> std::string&amp; <a class="code" href="classTiXmlNode.html#a2">ValueStr</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> value; }
+<a name="l00460"></a>00460 <span class="preprocessor">    #endif</span>
+<a name="l00461"></a>00461 <span class="preprocessor"></span>
+<a name="l00471"></a><a class="code" href="classTiXmlNode.html#a3">00471</a>     <span class="keywordtype">void</span> <a class="code" href="classTiXmlNode.html#a3">SetValue</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> * _value) { value = _value;}
+<a name="l00472"></a>00472 
+<a name="l00473"></a>00473 <span class="preprocessor">    #ifdef TIXML_USE_STL</span>
+<a name="l00474"></a>00474 <span class="preprocessor"></span>
+<a name="l00475"></a><a class="code" href="classTiXmlNode.html#a4">00475</a>     <span class="keywordtype">void</span> <a class="code" href="classTiXmlNode.html#a3">SetValue</a>( <span class="keyword">const</span> std::string&amp; _value )  { value = _value; }
+<a name="l00476"></a>00476 <span class="preprocessor">    #endif</span>
+<a name="l00477"></a>00477 <span class="preprocessor"></span>
+<a name="l00479"></a>00479     <span class="keywordtype">void</span> <a class="code" href="classTiXmlNode.html#a5">Clear</a>();
+<a name="l00480"></a>00480 
+<a name="l00482"></a><a class="code" href="classTiXmlNode.html#a6">00482</a>     <a class="code" href="classTiXmlNode.html">TiXmlNode</a>* <a class="code" href="classTiXmlNode.html#a6">Parent</a>()                         { <span class="keywordflow">return</span> parent; }
+<a name="l00483"></a>00483     <span class="keyword">const</span> <a class="code" href="classTiXmlNode.html">TiXmlNode</a>* <a class="code" href="classTiXmlNode.html#a6">Parent</a>()<span class="keyword"> const             </span>{ <span class="keywordflow">return</span> parent; }
+<a name="l00484"></a>00484 
+<a name="l00485"></a><a class="code" href="classTiXmlNode.html#a8">00485</a>     <span class="keyword">const</span> <a class="code" href="classTiXmlNode.html">TiXmlNode</a>* <a class="code" href="classTiXmlNode.html#a8">FirstChild</a>()<span class="keyword">   const   </span>{ <span class="keywordflow">return</span> firstChild; }      
+<a name="l00486"></a>00486     <a class="code" href="classTiXmlNode.html">TiXmlNode</a>* <a class="code" href="classTiXmlNode.html#a8">FirstChild</a>()                 { <span class="keywordflow">return</span> firstChild; }
+<a name="l00487"></a>00487     <span class="keyword">const</span> <a class="code" href="classTiXmlNode.html">TiXmlNode</a>* <a class="code" href="classTiXmlNode.html#a8">FirstChild</a>( <span class="keyword">const</span> <span class="keywordtype">char</span> * value ) <span class="keyword">const</span>;            
+<a name="l00488"></a>00488     <a class="code" href="classTiXmlNode.html">TiXmlNode</a>* <a class="code" href="classTiXmlNode.html#a8">FirstChild</a>( <span class="keyword">const</span> <span class="keywordtype">char</span> * value );                        
+<a name="l00489"></a>00489 
+<a name="l00490"></a>00490     <span class="keyword">const</span> <a class="code" href="classTiXmlNode.html">TiXmlNode</a>* LastChild()<span class="keyword"> const  </span>{ <span class="keywordflow">return</span> lastChild; }       
+<a name="l00491"></a><a class="code" href="classTiXmlNode.html#a13">00491</a>     <a class="code" href="classTiXmlNode.html">TiXmlNode</a>* LastChild()  { <span class="keywordflow">return</span> lastChild; }
+<a name="l00492"></a>00492     <span class="keyword">const</span> <a class="code" href="classTiXmlNode.html">TiXmlNode</a>* LastChild( <span class="keyword">const</span> <span class="keywordtype">char</span> * value ) <span class="keyword">const</span>;         
+<a name="l00493"></a>00493     <a class="code" href="classTiXmlNode.html">TiXmlNode</a>* LastChild( <span class="keyword">const</span> <span class="keywordtype">char</span> * value ); 
+<a name="l00494"></a>00494 
+<a name="l00495"></a>00495 <span class="preprocessor">    #ifdef TIXML_USE_STL</span>
+<a name="l00496"></a><a class="code" href="classTiXmlNode.html#a16">00496</a> <span class="preprocessor"></span>    <span class="keyword">const</span> <a class="code" href="classTiXmlNode.html">TiXmlNode</a>* <a class="code" href="classTiXmlNode.html#a8">FirstChild</a>( <span class="keyword">const</span> std::string&amp; _value )<span class="keyword"> const  </span>{   <span class="keywordflow">return</span> <a class="code" href="classTiXmlNode.html#a8">FirstChild</a> (_value.c_str ());    }   
+<a name="l00497"></a><a class="code" href="classTiXmlNode.html#a17">00497</a>     <a class="code" href="classTiXmlNode.html">TiXmlNode</a>* <a class="code" href="classTiXmlNode.html#a8">FirstChild</a>( <span class="keyword">const</span> std::string&amp; _value )              {   <span class="keywordflow">return</span> <a class="code" href="classTiXmlNode.html#a8">FirstChild</a> (_value.c_str ());    }   
+<a name="l00498"></a><a class="code" href="classTiXmlNode.html#a18">00498</a>     <span class="keyword">const</span> <a class="code" href="classTiXmlNode.html">TiXmlNode</a>* LastChild( <span class="keyword">const</span> std::string&amp; _value )<span class="keyword"> const   </span>{   <span class="keywordflow">return</span> LastChild (_value.c_str ()); }   
+<a name="l00499"></a><a class="code" href="classTiXmlNode.html#a19">00499</a>     <a class="code" href="classTiXmlNode.html">TiXmlNode</a>* LastChild( <span class="keyword">const</span> std::string&amp; _value )               {   <span class="keywordflow">return</span> LastChild (_value.c_str ()); }   
+<a name="l00500"></a>00500 <span class="preprocessor">    #endif</span>
+<a name="l00501"></a>00501 <span class="preprocessor"></span>
+<a name="l00518"></a>00518     <span class="keyword">const</span> <a class="code" href="classTiXmlNode.html">TiXmlNode</a>* <a class="code" href="classTiXmlNode.html#a20">IterateChildren</a>( <span class="keyword">const</span> <a class="code" href="classTiXmlNode.html">TiXmlNode</a>* previous ) <span class="keyword">const</span>;
+<a name="l00519"></a>00519     <a class="code" href="classTiXmlNode.html">TiXmlNode</a>* <a class="code" href="classTiXmlNode.html#a20">IterateChildren</a>( <a class="code" href="classTiXmlNode.html">TiXmlNode</a>* previous );
+<a name="l00520"></a>00520 
+<a name="l00522"></a>00522     <span class="keyword">const</span> <a class="code" href="classTiXmlNode.html">TiXmlNode</a>* <a class="code" href="classTiXmlNode.html#a20">IterateChildren</a>( <span class="keyword">const</span> <span class="keywordtype">char</span> * value, <span class="keyword">const</span> <a class="code" href="classTiXmlNode.html">TiXmlNode</a>* previous ) <span class="keyword">const</span>;
+<a name="l00523"></a>00523     <a class="code" href="classTiXmlNode.html">TiXmlNode</a>* <a class="code" href="classTiXmlNode.html#a20">IterateChildren</a>( <span class="keyword">const</span> <span class="keywordtype">char</span> * value, <a class="code" href="classTiXmlNode.html">TiXmlNode</a>* previous );
+<a name="l00524"></a>00524 
+<a name="l00525"></a>00525 <span class="preprocessor">    #ifdef TIXML_USE_STL</span>
+<a name="l00526"></a><a class="code" href="classTiXmlNode.html#a24">00526</a> <span class="preprocessor"></span>    <span class="keyword">const</span> <a class="code" href="classTiXmlNode.html">TiXmlNode</a>* <a class="code" href="classTiXmlNode.html#a20">IterateChildren</a>( <span class="keyword">const</span> std::string&amp; _value, <span class="keyword">const</span> <a class="code" href="classTiXmlNode.html">TiXmlNode</a>* previous )<span class="keyword"> const  </span>{   <span class="keywordflow">return</span> <a class="code" href="classTiXmlNode.html#a20">IterateChildren</a> (_value.c_str (), previous); }   
+<a name="l00527"></a><a class="code" href="classTiXmlNode.html#a25">00527</a>     <a class="code" href="classTiXmlNode.html">TiXmlNode</a>* <a class="code" href="classTiXmlNode.html#a20">IterateChildren</a>( <span class="keyword">const</span> std::string&amp; _value, <a class="code" href="classTiXmlNode.html">TiXmlNode</a>* previous ) {  <span class="keywordflow">return</span> <a class="code" href="classTiXmlNode.html#a20">IterateChildren</a> (_value.c_str (), previous); }   
+<a name="l00528"></a>00528 <span class="preprocessor">    #endif</span>
+<a name="l00529"></a>00529 <span class="preprocessor"></span>
+<a name="l00533"></a>00533     <a class="code" href="classTiXmlNode.html">TiXmlNode</a>* <a class="code" href="classTiXmlNode.html#a26">InsertEndChild</a>( <span class="keyword">const</span> <a class="code" href="classTiXmlNode.html">TiXmlNode</a>&amp; addThis );
+<a name="l00534"></a>00534 
 <a name="l00535"></a>00535 
-<a name="l00536"></a>00536 
-<a name="l00546"></a>00546     <a class="code" href="classTiXmlNode.html">TiXmlNode</a>* <a class="code" href="classTiXmlNode.html#a27">LinkEndChild</a>( <a class="code" href="classTiXmlNode.html">TiXmlNode</a>* addThis );
-<a name="l00547"></a>00547 
-<a name="l00551"></a>00551     <a class="code" href="classTiXmlNode.html">TiXmlNode</a>* <a class="code" href="classTiXmlNode.html#a28">InsertBeforeChild</a>( <a class="code" href="classTiXmlNode.html">TiXmlNode</a>* beforeThis, <span class="keyword">const</span> <a class="code" href="classTiXmlNode.html">TiXmlNode</a>&amp; addThis );
-<a name="l00552"></a>00552 
-<a name="l00556"></a>00556     <a class="code" href="classTiXmlNode.html">TiXmlNode</a>* <a class="code" href="classTiXmlNode.html#a29">InsertAfterChild</a>(  <a class="code" href="classTiXmlNode.html">TiXmlNode</a>* afterThis, <span class="keyword">const</span> <a class="code" href="classTiXmlNode.html">TiXmlNode</a>&amp; addThis );
-<a name="l00557"></a>00557 
-<a name="l00561"></a>00561     <a class="code" href="classTiXmlNode.html">TiXmlNode</a>* <a class="code" href="classTiXmlNode.html#a30">ReplaceChild</a>( <a class="code" href="classTiXmlNode.html">TiXmlNode</a>* replaceThis, <span class="keyword">const</span> <a class="code" href="classTiXmlNode.html">TiXmlNode</a>&amp; withThis );
-<a name="l00562"></a>00562 
-<a name="l00564"></a>00564     <span class="keywordtype">bool</span> <a class="code" href="classTiXmlNode.html#a31">RemoveChild</a>( <a class="code" href="classTiXmlNode.html">TiXmlNode</a>* removeThis );
-<a name="l00565"></a>00565 
-<a name="l00567"></a><a class="code" href="classTiXmlNode.html#a32">00567</a>     <span class="keyword">const</span> <a class="code" href="classTiXmlNode.html">TiXmlNode</a>* <a class="code" href="classTiXmlNode.html#a32">PreviousSibling</a>()<span class="keyword"> const            </span>{ <span class="keywordflow">return</span> prev; }
-<a name="l00568"></a>00568     <a class="code" href="classTiXmlNode.html">TiXmlNode</a>* <a class="code" href="classTiXmlNode.html#a32">PreviousSibling</a>()                        { <span class="keywordflow">return</span> prev; }
-<a name="l00569"></a>00569 
-<a name="l00571"></a>00571     <span class="keyword">const</span> <a class="code" href="classTiXmlNode.html">TiXmlNode</a>* <a class="code" href="classTiXmlNode.html#a32">PreviousSibling</a>( <span class="keyword">const</span> <span class="keywordtype">char</span> * ) <span class="keyword">const</span>;
-<a name="l00572"></a>00572     <a class="code" href="classTiXmlNode.html">TiXmlNode</a>* <a class="code" href="classTiXmlNode.html#a32">PreviousSibling</a>( <span class="keyword">const</span> <span class="keywordtype">char</span> * );
-<a name="l00573"></a>00573 
-<a name="l00574"></a>00574 <span class="preprocessor">    #ifdef TIXML_USE_STL</span>
-<a name="l00575"></a><a class="code" href="classTiXmlNode.html#a36">00575</a> <span class="preprocessor"></span>    <span class="keyword">const</span> <a class="code" href="classTiXmlNode.html">TiXmlNode</a>* <a class="code" href="classTiXmlNode.html#a32">PreviousSibling</a>( <span class="keyword">const</span> std::string&amp; _value )<span class="keyword"> const </span>{   <span class="keywordflow">return</span> <a class="code" href="classTiXmlNode.html#a32">PreviousSibling</a> (_value.c_str ());   }   
-<a name="l00576"></a><a class="code" href="classTiXmlNode.html#a37">00576</a>     <a class="code" href="classTiXmlNode.html">TiXmlNode</a>* <a class="code" href="classTiXmlNode.html#a32">PreviousSibling</a>( <span class="keyword">const</span> std::string&amp; _value )             {   <span class="keywordflow">return</span> <a class="code" href="classTiXmlNode.html#a32">PreviousSibling</a> (_value.c_str ());   }   
-<a name="l00577"></a><a class="code" href="classTiXmlNode.html#a38">00577</a>     <span class="keyword">const</span> <a class="code" href="classTiXmlNode.html">TiXmlNode</a>* <a class="code" href="classTiXmlNode.html#a40">NextSibling</a>( <span class="keyword">const</span> std::string&amp; _value)<span class="keyword"> const      </span>{   <span class="keywordflow">return</span> <a class="code" href="classTiXmlNode.html#a40">NextSibling</a> (_value.c_str ());   }   
-<a name="l00578"></a><a class="code" href="classTiXmlNode.html#a39">00578</a>     <a class="code" href="classTiXmlNode.html">TiXmlNode</a>* <a class="code" href="classTiXmlNode.html#a40">NextSibling</a>( <span class="keyword">const</span> std::string&amp; _value)                  {   <span class="keywordflow">return</span> <a class="code" href="classTiXmlNode.html#a40">NextSibling</a> (_value.c_str ());   }   
-<a name="l00579"></a>00579 <span class="preprocessor">    #endif</span>
-<a name="l00580"></a>00580 <span class="preprocessor"></span>
-<a name="l00582"></a><a class="code" href="classTiXmlNode.html#a40">00582</a>     <span class="keyword">const</span> <a class="code" href="classTiXmlNode.html">TiXmlNode</a>* <a class="code" href="classTiXmlNode.html#a40">NextSibling</a>()<span class="keyword"> const                </span>{ <span class="keywordflow">return</span> next; }
-<a name="l00583"></a>00583     <a class="code" href="classTiXmlNode.html">TiXmlNode</a>* <a class="code" href="classTiXmlNode.html#a40">NextSibling</a>()                            { <span class="keywordflow">return</span> next; }
-<a name="l00584"></a>00584 
-<a name="l00586"></a>00586     <span class="keyword">const</span> <a class="code" href="classTiXmlNode.html">TiXmlNode</a>* <a class="code" href="classTiXmlNode.html#a40">NextSibling</a>( <span class="keyword">const</span> <span class="keywordtype">char</span> * ) <span class="keyword">const</span>;
-<a name="l00587"></a>00587     <a class="code" href="classTiXmlNode.html">TiXmlNode</a>* <a class="code" href="classTiXmlNode.html#a40">NextSibling</a>( <span class="keyword">const</span> <span class="keywordtype">char</span> * );
-<a name="l00588"></a>00588 
-<a name="l00593"></a>00593     <span class="keyword">const</span> <a class="code" href="classTiXmlElement.html">TiXmlElement</a>* <a class="code" href="classTiXmlNode.html#a44">NextSiblingElement</a>() <span class="keyword">const</span>;
-<a name="l00594"></a>00594     <a class="code" href="classTiXmlElement.html">TiXmlElement</a>* <a class="code" href="classTiXmlNode.html#a44">NextSiblingElement</a>();
-<a name="l00595"></a>00595 
-<a name="l00600"></a>00600     <span class="keyword">const</span> <a class="code" href="classTiXmlElement.html">TiXmlElement</a>* <a class="code" href="classTiXmlNode.html#a44">NextSiblingElement</a>( <span class="keyword">const</span> <span class="keywordtype">char</span> * ) <span class="keyword">const</span>;
-<a name="l00601"></a>00601     <a class="code" href="classTiXmlElement.html">TiXmlElement</a>* <a class="code" href="classTiXmlNode.html#a44">NextSiblingElement</a>( <span class="keyword">const</span> <span class="keywordtype">char</span> * );
-<a name="l00602"></a>00602 
-<a name="l00603"></a>00603 <span class="preprocessor">    #ifdef TIXML_USE_STL</span>
-<a name="l00604"></a><a class="code" href="classTiXmlNode.html#a48">00604</a> <span class="preprocessor"></span>    <span class="keyword">const</span> <a class="code" href="classTiXmlElement.html">TiXmlElement</a>* <a class="code" href="classTiXmlNode.html#a44">NextSiblingElement</a>( <span class="keyword">const</span> std::string&amp; _value)<span class="keyword"> const    </span>{   <span class="keywordflow">return</span> <a class="code" href="classTiXmlNode.html#a44">NextSiblingElement</a> (_value.c_str ());    }   
-<a name="l00605"></a><a class="code" href="classTiXmlNode.html#a49">00605</a>     <a class="code" href="classTiXmlElement.html">TiXmlElement</a>* <a class="code" href="classTiXmlNode.html#a44">NextSiblingElement</a>( <span class="keyword">const</span> std::string&amp; _value)                {   <span class="keywordflow">return</span> <a class="code" href="classTiXmlNode.html#a44">NextSiblingElement</a> (_value.c_str ());    }   
-<a name="l00606"></a>00606 <span class="preprocessor">    #endif</span>
-<a name="l00607"></a>00607 <span class="preprocessor"></span>
-<a name="l00609"></a>00609     <span class="keyword">const</span> <a class="code" href="classTiXmlElement.html">TiXmlElement</a>* <a class="code" href="classTiXmlNode.html#a50">FirstChildElement</a>() <span class="keyword">const</span>;
-<a name="l00610"></a>00610     <a class="code" href="classTiXmlElement.html">TiXmlElement</a>* <a class="code" href="classTiXmlNode.html#a50">FirstChildElement</a>();
-<a name="l00611"></a>00611 
-<a name="l00613"></a>00613     <span class="keyword">const</span> <a class="code" href="classTiXmlElement.html">TiXmlElement</a>* <a class="code" href="classTiXmlNode.html#a50">FirstChildElement</a>( <span class="keyword">const</span> <span class="keywordtype">char</span> * value ) <span class="keyword">const</span>;
-<a name="l00614"></a>00614     <a class="code" href="classTiXmlElement.html">TiXmlElement</a>* <a class="code" href="classTiXmlNode.html#a50">FirstChildElement</a>( <span class="keyword">const</span> <span class="keywordtype">char</span> * value );
-<a name="l00615"></a>00615 
-<a name="l00616"></a>00616 <span class="preprocessor">    #ifdef TIXML_USE_STL</span>
-<a name="l00617"></a><a class="code" href="classTiXmlNode.html#a54">00617</a> <span class="preprocessor"></span>    <span class="keyword">const</span> <a class="code" href="classTiXmlElement.html">TiXmlElement</a>* <a class="code" href="classTiXmlNode.html#a50">FirstChildElement</a>( <span class="keyword">const</span> std::string&amp; _value )<span class="keyword"> const    </span>{   <span class="keywordflow">return</span> <a class="code" href="classTiXmlNode.html#a50">FirstChildElement</a> (_value.c_str ()); }   
-<a name="l00618"></a><a class="code" href="classTiXmlNode.html#a55">00618</a>     <a class="code" href="classTiXmlElement.html">TiXmlElement</a>* <a class="code" href="classTiXmlNode.html#a50">FirstChildElement</a>( <span class="keyword">const</span> std::string&amp; _value )                {   <span class="keywordflow">return</span> <a class="code" href="classTiXmlNode.html#a50">FirstChildElement</a> (_value.c_str ()); }   
-<a name="l00619"></a>00619 <span class="preprocessor">    #endif</span>
-<a name="l00620"></a>00620 <span class="preprocessor"></span>
-<a name="l00625"></a><a class="code" href="classTiXmlNode.html#a56">00625</a>     <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code" href="classTiXmlNode.html#a56">Type</a>()<span class="keyword"> const    </span>{ <span class="keywordflow">return</span> type; }
-<a name="l00626"></a>00626 
-<a name="l00630"></a>00630     <span class="keyword">const</span> <a class="code" href="classTiXmlDocument.html">TiXmlDocument</a>* <a class="code" href="classTiXmlNode.html#a57">GetDocument</a>() <span class="keyword">const</span>;
-<a name="l00631"></a>00631     <a class="code" href="classTiXmlDocument.html">TiXmlDocument</a>* <a class="code" href="classTiXmlNode.html#a57">GetDocument</a>();
-<a name="l00632"></a>00632 
-<a name="l00634"></a><a class="code" href="classTiXmlNode.html#a59">00634</a>     <span class="keywordtype">bool</span> <a class="code" href="classTiXmlNode.html#a59">NoChildren</a>()<span class="keyword"> const                     </span>{ <span class="keywordflow">return</span> !firstChild; }
-<a name="l00635"></a>00635 
-<a name="l00636"></a><a class="code" href="classTiXmlNode.html#a60">00636</a>     <span class="keyword">const</span> <a class="code" href="classTiXmlDocument.html">TiXmlDocument</a>* <a class="code" href="classTiXmlNode.html#a60">ToDocument</a>()<span class="keyword">   const       </span>{ <span class="keywordflow">return</span> ( <span class="keyword">this</span> &amp;&amp; type == DOCUMENT ) ? (<span class="keyword">const</span> <a class="code" href="classTiXmlDocument.html">TiXmlDocument</a>*) <span class="keyword">this</span> : 0; } 
-<a name="l00637"></a><a class="code" href="classTiXmlNode.html#a61">00637</a>     <span class="keyword">const</span> <a class="code" href="classTiXmlElement.html">TiXmlElement</a>*  <a class="code" href="classTiXmlNode.html#a61">ToElement</a>()<span class="keyword"> const          </span>{ <span class="keywordflow">return</span> ( <span class="keyword">this</span> &amp;&amp; type == ELEMENT  ) ? (<span class="keyword">const</span> <a class="code" href="classTiXmlElement.html">TiXmlElement</a>*)  <span class="keyword">this</span> : 0; } 
-<a name="l00638"></a><a class="code" href="classTiXmlNode.html#a62">00638</a>     <span class="keyword">const</span> <a class="code" href="classTiXmlComment.html">TiXmlComment</a>*  <a class="code" href="classTiXmlNode.html#a62">ToComment</a>()<span class="keyword"> const          </span>{ <span class="keywordflow">return</span> ( <span class="keyword">this</span> &amp;&amp; type == COMMENT  ) ? (<span class="keyword">const</span> <a class="code" href="classTiXmlComment.html">TiXmlComment</a>*)  <span class="keyword">this</span> : 0; } 
-<a name="l00639"></a><a class="code" href="classTiXmlNode.html#a63">00639</a>     <span class="keyword">const</span> <a class="code" href="classTiXmlUnknown.html">TiXmlUnknown</a>*  <a class="code" href="classTiXmlNode.html#a63">ToUnknown</a>()<span class="keyword"> const          </span>{ <span class="keywordflow">return</span> ( <span class="keyword">this</span> &amp;&amp; type == UNKNOWN  ) ? (<span class="keyword">const</span> <a class="code" href="classTiXmlUnknown.html">TiXmlUnknown</a>*)  <span class="keyword">this</span> : 0; } 
-<a name="l00640"></a><a class="code" href="classTiXmlNode.html#a64">00640</a>     <span class="keyword">const</span> <a class="code" href="classTiXmlText.html">TiXmlText</a>*       <a class="code" href="classTiXmlNode.html#a64">ToText</a>()<span class="keyword">    const        </span>{ <span class="keywordflow">return</span> ( <span class="keyword">this</span> &amp;&amp; type == TEXT     ) ? (<span class="keyword">const</span> <a class="code" href="classTiXmlText.html">TiXmlText</a>*)     <span class="keyword">this</span> : 0; } 
-<a name="l00641"></a><a class="code" href="classTiXmlNode.html#a65">00641</a>     <span class="keyword">const</span> <a class="code" href="classTiXmlDeclaration.html">TiXmlDeclaration</a>* <a class="code" href="classTiXmlNode.html#a65">ToDeclaration</a>()<span class="keyword"> const   </span>{ <span class="keywordflow">return</span> ( <span class="keyword">this</span> &amp;&amp; type == DECLARATION ) ? (<span class="keyword">const</span> <a class="code" href="classTiXmlDeclaration.html">TiXmlDeclaration</a>*) <span class="keyword">this</span> : 0; } 
-<a name="l00642"></a>00642 
-<a name="l00643"></a><a class="code" href="classTiXmlNode.html#a66">00643</a>     <a class="code" href="classTiXmlDocument.html">TiXmlDocument</a>* <a class="code" href="classTiXmlNode.html#a60">ToDocument</a>()         { <span class="keywordflow">return</span> ( <span class="keyword">this</span> &amp;&amp; type == DOCUMENT ) ? (<a class="code" href="classTiXmlDocument.html">TiXmlDocument</a>*) <span class="keyword">this</span> : 0; } 
-<a name="l00644"></a><a class="code" href="classTiXmlNode.html#a67">00644</a>     <a class="code" href="classTiXmlElement.html">TiXmlElement</a>*  <a class="code" href="classTiXmlNode.html#a61">ToElement</a>()          { <span class="keywordflow">return</span> ( <span class="keyword">this</span> &amp;&amp; type == ELEMENT  ) ? (<a class="code" href="classTiXmlElement.html">TiXmlElement</a>*)  <span class="keyword">this</span> : 0; } 
-<a name="l00645"></a><a class="code" href="classTiXmlNode.html#a68">00645</a>     <a class="code" href="classTiXmlComment.html">TiXmlComment</a>*  <a class="code" href="classTiXmlNode.html#a62">ToComment</a>()          { <span class="keywordflow">return</span> ( <span class="keyword">this</span> &amp;&amp; type == COMMENT  ) ? (<a class="code" href="classTiXmlComment.html">TiXmlComment</a>*)  <span class="keyword">this</span> : 0; } 
-<a name="l00646"></a><a class="code" href="classTiXmlNode.html#a69">00646</a>     <a class="code" href="classTiXmlUnknown.html">TiXmlUnknown</a>*  <a class="code" href="classTiXmlNode.html#a63">ToUnknown</a>()          { <span class="keywordflow">return</span> ( <span class="keyword">this</span> &amp;&amp; type == UNKNOWN  ) ? (<a class="code" href="classTiXmlUnknown.html">TiXmlUnknown</a>*)  <span class="keyword">this</span> : 0; } 
-<a name="l00647"></a><a class="code" href="classTiXmlNode.html#a70">00647</a>     <a class="code" href="classTiXmlText.html">TiXmlText</a>*     <a class="code" href="classTiXmlNode.html#a64">ToText</a>()             { <span class="keywordflow">return</span> ( <span class="keyword">this</span> &amp;&amp; type == TEXT     ) ? (<a class="code" href="classTiXmlText.html">TiXmlText</a>*)     <span class="keyword">this</span> : 0; } 
-<a name="l00648"></a><a class="code" href="classTiXmlNode.html#a71">00648</a>     <a class="code" href="classTiXmlDeclaration.html">TiXmlDeclaration</a>* <a class="code" href="classTiXmlNode.html#a65">ToDeclaration</a>()   { <span class="keywordflow">return</span> ( <span class="keyword">this</span> &amp;&amp; type == DECLARATION ) ? (<a class="code" href="classTiXmlDeclaration.html">TiXmlDeclaration</a>*) <span class="keyword">this</span> : 0; } 
-<a name="l00649"></a>00649 
-<a name="l00653"></a>00653     <span class="keyword">virtual</span> <a class="code" href="classTiXmlNode.html">TiXmlNode</a>* <a class="code" href="classTiXmlNode.html#a72">Clone</a>() <span class="keyword">const </span>= 0;
-<a name="l00654"></a>00654 
-<a name="l00655"></a>00655 <span class="keyword">protected</span>:
-<a name="l00656"></a>00656     <a class="code" href="classTiXmlNode.html">TiXmlNode</a>( <a class="code" href="classTiXmlNode.html#w7">NodeType</a> _type );
-<a name="l00657"></a>00657 
-<a name="l00658"></a>00658     <span class="comment">// Copy to the allocated object. Shared functionality between Clone, Copy constructor,</span>
-<a name="l00659"></a>00659     <span class="comment">// and the assignment operator.</span>
-<a name="l00660"></a>00660     <span class="keywordtype">void</span> CopyTo( <a class="code" href="classTiXmlNode.html">TiXmlNode</a>* target ) <span class="keyword">const</span>;
-<a name="l00661"></a>00661 
-<a name="l00662"></a>00662 <span class="preprocessor">    #ifdef TIXML_USE_STL</span>
-<a name="l00663"></a>00663 <span class="preprocessor"></span>        <span class="comment">// The real work of the input operator.</span>
-<a name="l00664"></a>00664         <span class="keyword">virtual</span> <span class="keywordtype">void</span> StreamIn( TIXML_ISTREAM* in, TIXML_STRING* tag ) = 0;
-<a name="l00665"></a>00665 <span class="preprocessor">    #endif</span>
-<a name="l00666"></a>00666 <span class="preprocessor"></span>
-<a name="l00667"></a>00667     <span class="comment">// Figure out what is at *p, and parse it. Returns null if it is not an xml node.</span>
-<a name="l00668"></a>00668     <a class="code" href="classTiXmlNode.html">TiXmlNode</a>* Identify( <span class="keyword">const</span> <span class="keywordtype">char</span>* start, TiXmlEncoding encoding );
-<a name="l00669"></a>00669 
-<a name="l00670"></a>00670     <a class="code" href="classTiXmlNode.html">TiXmlNode</a>*      parent;
-<a name="l00671"></a>00671     <a class="code" href="classTiXmlNode.html#w7">NodeType</a>        type;
-<a name="l00672"></a>00672 
-<a name="l00673"></a>00673     <a class="code" href="classTiXmlNode.html">TiXmlNode</a>*      firstChild;
-<a name="l00674"></a>00674     <a class="code" href="classTiXmlNode.html">TiXmlNode</a>*      lastChild;
-<a name="l00675"></a>00675 
-<a name="l00676"></a>00676     TIXML_STRING    value;
-<a name="l00677"></a>00677 
-<a name="l00678"></a>00678     <a class="code" href="classTiXmlNode.html">TiXmlNode</a>*      prev;
-<a name="l00679"></a>00679     <a class="code" href="classTiXmlNode.html">TiXmlNode</a>*      next;
-<a name="l00680"></a>00680 
-<a name="l00681"></a>00681 <span class="keyword">private</span>:
-<a name="l00682"></a>00682     <a class="code" href="classTiXmlNode.html">TiXmlNode</a>( <span class="keyword">const</span> <a class="code" href="classTiXmlNode.html">TiXmlNode</a>&amp; );              <span class="comment">// not implemented.</span>
-<a name="l00683"></a>00683     <span class="keywordtype">void</span> operator=( <span class="keyword">const</span> <a class="code" href="classTiXmlNode.html">TiXmlNode</a>&amp; base );    <span class="comment">// not allowed.</span>
-<a name="l00684"></a>00684 };
+<a name="l00545"></a>00545     <a class="code" href="classTiXmlNode.html">TiXmlNode</a>* <a class="code" href="classTiXmlNode.html#a27">LinkEndChild</a>( <a class="code" href="classTiXmlNode.html">TiXmlNode</a>* addThis );
+<a name="l00546"></a>00546 
+<a name="l00550"></a>00550     <a class="code" href="classTiXmlNode.html">TiXmlNode</a>* <a class="code" href="classTiXmlNode.html#a28">InsertBeforeChild</a>( <a class="code" href="classTiXmlNode.html">TiXmlNode</a>* beforeThis, <span class="keyword">const</span> <a class="code" href="classTiXmlNode.html">TiXmlNode</a>&amp; addThis );
+<a name="l00551"></a>00551 
+<a name="l00555"></a>00555     <a class="code" href="classTiXmlNode.html">TiXmlNode</a>* <a class="code" href="classTiXmlNode.html#a29">InsertAfterChild</a>(  <a class="code" href="classTiXmlNode.html">TiXmlNode</a>* afterThis, <span class="keyword">const</span> <a class="code" href="classTiXmlNode.html">TiXmlNode</a>&amp; addThis );
+<a name="l00556"></a>00556 
+<a name="l00560"></a>00560     <a class="code" href="classTiXmlNode.html">TiXmlNode</a>* <a class="code" href="classTiXmlNode.html#a30">ReplaceChild</a>( <a class="code" href="classTiXmlNode.html">TiXmlNode</a>* replaceThis, <span class="keyword">const</span> <a class="code" href="classTiXmlNode.html">TiXmlNode</a>&amp; withThis );
+<a name="l00561"></a>00561 
+<a name="l00563"></a>00563     <span class="keywordtype">bool</span> <a class="code" href="classTiXmlNode.html#a31">RemoveChild</a>( <a class="code" href="classTiXmlNode.html">TiXmlNode</a>* removeThis );
+<a name="l00564"></a>00564 
+<a name="l00566"></a><a class="code" href="classTiXmlNode.html#a32">00566</a>     <span class="keyword">const</span> <a class="code" href="classTiXmlNode.html">TiXmlNode</a>* <a class="code" href="classTiXmlNode.html#a32">PreviousSibling</a>()<span class="keyword"> const            </span>{ <span class="keywordflow">return</span> prev; }
+<a name="l00567"></a>00567     <a class="code" href="classTiXmlNode.html">TiXmlNode</a>* <a class="code" href="classTiXmlNode.html#a32">PreviousSibling</a>()                        { <span class="keywordflow">return</span> prev; }
+<a name="l00568"></a>00568 
+<a name="l00570"></a>00570     <span class="keyword">const</span> <a class="code" href="classTiXmlNode.html">TiXmlNode</a>* <a class="code" href="classTiXmlNode.html#a32">PreviousSibling</a>( <span class="keyword">const</span> <span class="keywordtype">char</span> * ) <span class="keyword">const</span>;
+<a name="l00571"></a>00571     <a class="code" href="classTiXmlNode.html">TiXmlNode</a>* <a class="code" href="classTiXmlNode.html#a32">PreviousSibling</a>( <span class="keyword">const</span> <span class="keywordtype">char</span> * );
+<a name="l00572"></a>00572 
+<a name="l00573"></a>00573 <span class="preprocessor">    #ifdef TIXML_USE_STL</span>
+<a name="l00574"></a><a class="code" href="classTiXmlNode.html#a36">00574</a> <span class="preprocessor"></span>    <span class="keyword">const</span> <a class="code" href="classTiXmlNode.html">TiXmlNode</a>* <a class="code" href="classTiXmlNode.html#a32">PreviousSibling</a>( <span class="keyword">const</span> std::string&amp; _value )<span class="keyword"> const </span>{   <span class="keywordflow">return</span> <a class="code" href="classTiXmlNode.html#a32">PreviousSibling</a> (_value.c_str ());   }   
+<a name="l00575"></a><a class="code" href="classTiXmlNode.html#a37">00575</a>     <a class="code" href="classTiXmlNode.html">TiXmlNode</a>* <a class="code" href="classTiXmlNode.html#a32">PreviousSibling</a>( <span class="keyword">const</span> std::string&amp; _value )             {   <span class="keywordflow">return</span> <a class="code" href="classTiXmlNode.html#a32">PreviousSibling</a> (_value.c_str ());   }   
+<a name="l00576"></a><a class="code" href="classTiXmlNode.html#a38">00576</a>     <span class="keyword">const</span> <a class="code" href="classTiXmlNode.html">TiXmlNode</a>* <a class="code" href="classTiXmlNode.html#a40">NextSibling</a>( <span class="keyword">const</span> std::string&amp; _value)<span class="keyword"> const      </span>{   <span class="keywordflow">return</span> <a class="code" href="classTiXmlNode.html#a40">NextSibling</a> (_value.c_str ());   }   
+<a name="l00577"></a><a class="code" href="classTiXmlNode.html#a39">00577</a>     <a class="code" href="classTiXmlNode.html">TiXmlNode</a>* <a class="code" href="classTiXmlNode.html#a40">NextSibling</a>( <span class="keyword">const</span> std::string&amp; _value)                  {   <span class="keywordflow">return</span> <a class="code" href="classTiXmlNode.html#a40">NextSibling</a> (_value.c_str ());   }   
+<a name="l00578"></a>00578 <span class="preprocessor">    #endif</span>
+<a name="l00579"></a>00579 <span class="preprocessor"></span>
+<a name="l00581"></a><a class="code" href="classTiXmlNode.html#a40">00581</a>     <span class="keyword">const</span> <a class="code" href="classTiXmlNode.html">TiXmlNode</a>* <a class="code" href="classTiXmlNode.html#a40">NextSibling</a>()<span class="keyword"> const                </span>{ <span class="keywordflow">return</span> next; }
+<a name="l00582"></a>00582     <a class="code" href="classTiXmlNode.html">TiXmlNode</a>* <a class="code" href="classTiXmlNode.html#a40">NextSibling</a>()                            { <span class="keywordflow">return</span> next; }
+<a name="l00583"></a>00583 
+<a name="l00585"></a>00585     <span class="keyword">const</span> <a class="code" href="classTiXmlNode.html">TiXmlNode</a>* <a class="code" href="classTiXmlNode.html#a40">NextSibling</a>( <span class="keyword">const</span> <span class="keywordtype">char</span> * ) <span class="keyword">const</span>;
+<a name="l00586"></a>00586     <a class="code" href="classTiXmlNode.html">TiXmlNode</a>* <a class="code" href="classTiXmlNode.html#a40">NextSibling</a>( <span class="keyword">const</span> <span class="keywordtype">char</span> * );
+<a name="l00587"></a>00587 
+<a name="l00592"></a>00592     <span class="keyword">const</span> <a class="code" href="classTiXmlElement.html">TiXmlElement</a>* <a class="code" href="classTiXmlNode.html#a44">NextSiblingElement</a>() <span class="keyword">const</span>;
+<a name="l00593"></a>00593     <a class="code" href="classTiXmlElement.html">TiXmlElement</a>* <a class="code" href="classTiXmlNode.html#a44">NextSiblingElement</a>();
+<a name="l00594"></a>00594 
+<a name="l00599"></a>00599     <span class="keyword">const</span> <a class="code" href="classTiXmlElement.html">TiXmlElement</a>* <a class="code" href="classTiXmlNode.html#a44">NextSiblingElement</a>( <span class="keyword">const</span> <span class="keywordtype">char</span> * ) <span class="keyword">const</span>;
+<a name="l00600"></a>00600     <a class="code" href="classTiXmlElement.html">TiXmlElement</a>* <a class="code" href="classTiXmlNode.html#a44">NextSiblingElement</a>( <span class="keyword">const</span> <span class="keywordtype">char</span> * );
+<a name="l00601"></a>00601 
+<a name="l00602"></a>00602 <span class="preprocessor">    #ifdef TIXML_USE_STL</span>
+<a name="l00603"></a><a class="code" href="classTiXmlNode.html#a48">00603</a> <span class="preprocessor"></span>    <span class="keyword">const</span> <a class="code" href="classTiXmlElement.html">TiXmlElement</a>* <a class="code" href="classTiXmlNode.html#a44">NextSiblingElement</a>( <span class="keyword">const</span> std::string&amp; _value)<span class="keyword"> const    </span>{   <span class="keywordflow">return</span> <a class="code" href="classTiXmlNode.html#a44">NextSiblingElement</a> (_value.c_str ());    }   
+<a name="l00604"></a><a class="code" href="classTiXmlNode.html#a49">00604</a>     <a class="code" href="classTiXmlElement.html">TiXmlElement</a>* <a class="code" href="classTiXmlNode.html#a44">NextSiblingElement</a>( <span class="keyword">const</span> std::string&amp; _value)                {   <span class="keywordflow">return</span> <a class="code" href="classTiXmlNode.html#a44">NextSiblingElement</a> (_value.c_str ());    }   
+<a name="l00605"></a>00605 <span class="preprocessor">    #endif</span>
+<a name="l00606"></a>00606 <span class="preprocessor"></span>
+<a name="l00608"></a>00608     <span class="keyword">const</span> <a class="code" href="classTiXmlElement.html">TiXmlElement</a>* <a class="code" href="classTiXmlNode.html#a50">FirstChildElement</a>() <span class="keyword">const</span>;
+<a name="l00609"></a>00609     <a class="code" href="classTiXmlElement.html">TiXmlElement</a>* <a class="code" href="classTiXmlNode.html#a50">FirstChildElement</a>();
+<a name="l00610"></a>00610 
+<a name="l00612"></a>00612     <span class="keyword">const</span> <a class="code" href="classTiXmlElement.html">TiXmlElement</a>* <a class="code" href="classTiXmlNode.html#a50">FirstChildElement</a>( <span class="keyword">const</span> <span class="keywordtype">char</span> * value ) <span class="keyword">const</span>;
+<a name="l00613"></a>00613     <a class="code" href="classTiXmlElement.html">TiXmlElement</a>* <a class="code" href="classTiXmlNode.html#a50">FirstChildElement</a>( <span class="keyword">const</span> <span class="keywordtype">char</span> * value );
+<a name="l00614"></a>00614 
+<a name="l00615"></a>00615 <span class="preprocessor">    #ifdef TIXML_USE_STL</span>
+<a name="l00616"></a><a class="code" href="classTiXmlNode.html#a54">00616</a> <span class="preprocessor"></span>    <span class="keyword">const</span> <a class="code" href="classTiXmlElement.html">TiXmlElement</a>* <a class="code" href="classTiXmlNode.html#a50">FirstChildElement</a>( <span class="keyword">const</span> std::string&amp; _value )<span class="keyword"> const    </span>{   <span class="keywordflow">return</span> <a class="code" href="classTiXmlNode.html#a50">FirstChildElement</a> (_value.c_str ()); }   
+<a name="l00617"></a><a class="code" href="classTiXmlNode.html#a55">00617</a>     <a class="code" href="classTiXmlElement.html">TiXmlElement</a>* <a class="code" href="classTiXmlNode.html#a50">FirstChildElement</a>( <span class="keyword">const</span> std::string&amp; _value )                {   <span class="keywordflow">return</span> <a class="code" href="classTiXmlNode.html#a50">FirstChildElement</a> (_value.c_str ()); }   
+<a name="l00618"></a>00618 <span class="preprocessor">    #endif</span>
+<a name="l00619"></a>00619 <span class="preprocessor"></span>
+<a name="l00624"></a><a class="code" href="classTiXmlNode.html#a56">00624</a>     <span class="keywordtype">int</span> <a class="code" href="classTiXmlNode.html#a56">Type</a>()<span class="keyword"> const    </span>{ <span class="keywordflow">return</span> type; }
+<a name="l00625"></a>00625 
+<a name="l00629"></a>00629     <span class="keyword">const</span> <a class="code" href="classTiXmlDocument.html">TiXmlDocument</a>* <a class="code" href="classTiXmlNode.html#a57">GetDocument</a>() <span class="keyword">const</span>;
+<a name="l00630"></a>00630     <a class="code" href="classTiXmlDocument.html">TiXmlDocument</a>* <a class="code" href="classTiXmlNode.html#a57">GetDocument</a>();
+<a name="l00631"></a>00631 
+<a name="l00633"></a><a class="code" href="classTiXmlNode.html#a59">00633</a>     <span class="keywordtype">bool</span> <a class="code" href="classTiXmlNode.html#a59">NoChildren</a>()<span class="keyword"> const                     </span>{ <span class="keywordflow">return</span> !firstChild; }
+<a name="l00634"></a>00634 
+<a name="l00635"></a><a class="code" href="classTiXmlNode.html#a60">00635</a>     <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="classTiXmlDocument.html">TiXmlDocument</a>*    <a class="code" href="classTiXmlNode.html#a60">ToDocument</a>()<span class="keyword">    const </span>{ <span class="keywordflow">return</span> 0; } 
+<a name="l00636"></a><a class="code" href="classTiXmlNode.html#a61">00636</a>     <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="classTiXmlElement.html">TiXmlElement</a>*     <a class="code" href="classTiXmlNode.html#a61">ToElement</a>()<span class="keyword">     const </span>{ <span class="keywordflow">return</span> 0; } 
+<a name="l00637"></a><a class="code" href="classTiXmlNode.html#a62">00637</a>     <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="classTiXmlComment.html">TiXmlComment</a>*     <a class="code" href="classTiXmlNode.html#a62">ToComment</a>()<span class="keyword">     const </span>{ <span class="keywordflow">return</span> 0; } 
+<a name="l00638"></a><a class="code" href="classTiXmlNode.html#a63">00638</a>     <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="classTiXmlUnknown.html">TiXmlUnknown</a>*     <a class="code" href="classTiXmlNode.html#a63">ToUnknown</a>()<span class="keyword">     const </span>{ <span class="keywordflow">return</span> 0; } 
+<a name="l00639"></a><a class="code" href="classTiXmlNode.html#a64">00639</a>     <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="classTiXmlText.html">TiXmlText</a>*        <a class="code" href="classTiXmlNode.html#a64">ToText</a>()<span class="keyword">        const </span>{ <span class="keywordflow">return</span> 0; } 
+<a name="l00640"></a><a class="code" href="classTiXmlNode.html#a65">00640</a>     <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="classTiXmlDeclaration.html">TiXmlDeclaration</a>* <a class="code" href="classTiXmlNode.html#a65">ToDeclaration</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> 0; } 
+<a name="l00641"></a>00641 
+<a name="l00642"></a><a class="code" href="classTiXmlNode.html#a66">00642</a>     <span class="keyword">virtual</span> <a class="code" href="classTiXmlDocument.html">TiXmlDocument</a>*          <a class="code" href="classTiXmlNode.html#a60">ToDocument</a>()    { <span class="keywordflow">return</span> 0; } 
+<a name="l00643"></a><a class="code" href="classTiXmlNode.html#a67">00643</a>     <span class="keyword">virtual</span> <a class="code" href="classTiXmlElement.html">TiXmlElement</a>*           <a class="code" href="classTiXmlNode.html#a61">ToElement</a>()     { <span class="keywordflow">return</span> 0; } 
+<a name="l00644"></a><a class="code" href="classTiXmlNode.html#a68">00644</a>     <span class="keyword">virtual</span> <a class="code" href="classTiXmlComment.html">TiXmlComment</a>*           <a class="code" href="classTiXmlNode.html#a62">ToComment</a>()     { <span class="keywordflow">return</span> 0; } 
+<a name="l00645"></a><a class="code" href="classTiXmlNode.html#a69">00645</a>     <span class="keyword">virtual</span> <a class="code" href="classTiXmlUnknown.html">TiXmlUnknown</a>*           <a class="code" href="classTiXmlNode.html#a63">ToUnknown</a>()     { <span class="keywordflow">return</span> 0; } 
+<a name="l00646"></a><a class="code" href="classTiXmlNode.html#a70">00646</a>     <span class="keyword">virtual</span> <a class="code" href="classTiXmlText.html">TiXmlText</a>*              <a class="code" href="classTiXmlNode.html#a64">ToText</a>()        { <span class="keywordflow">return</span> 0; } 
+<a name="l00647"></a><a class="code" href="classTiXmlNode.html#a71">00647</a>     <span class="keyword">virtual</span> <a class="code" href="classTiXmlDeclaration.html">TiXmlDeclaration</a>*       <a class="code" href="classTiXmlNode.html#a65">ToDeclaration</a>() { <span class="keywordflow">return</span> 0; } 
+<a name="l00648"></a>00648 
+<a name="l00652"></a>00652     <span class="keyword">virtual</span> <a class="code" href="classTiXmlNode.html">TiXmlNode</a>* <a class="code" href="classTiXmlNode.html#a72">Clone</a>() <span class="keyword">const </span>= 0;
+<a name="l00653"></a>00653 
+<a name="l00654"></a>00654 <span class="keyword">protected</span>:
+<a name="l00655"></a>00655     <a class="code" href="classTiXmlNode.html">TiXmlNode</a>( <a class="code" href="classTiXmlNode.html#w7">NodeType</a> _type );
+<a name="l00656"></a>00656 
+<a name="l00657"></a>00657     <span class="comment">// Copy to the allocated object. Shared functionality between Clone, Copy constructor,</span>
+<a name="l00658"></a>00658     <span class="comment">// and the assignment operator.</span>
+<a name="l00659"></a>00659     <span class="keywordtype">void</span> CopyTo( <a class="code" href="classTiXmlNode.html">TiXmlNode</a>* target ) <span class="keyword">const</span>;
+<a name="l00660"></a>00660 
+<a name="l00661"></a>00661 <span class="preprocessor">    #ifdef TIXML_USE_STL</span>
+<a name="l00662"></a>00662 <span class="preprocessor"></span>        <span class="comment">// The real work of the input operator.</span>
+<a name="l00663"></a>00663         <span class="keyword">virtual</span> <span class="keywordtype">void</span> StreamIn( TIXML_ISTREAM* in, TIXML_STRING* tag ) = 0;
+<a name="l00664"></a>00664 <span class="preprocessor">    #endif</span>
+<a name="l00665"></a>00665 <span class="preprocessor"></span>
+<a name="l00666"></a>00666     <span class="comment">// Figure out what is at *p, and parse it. Returns null if it is not an xml node.</span>
+<a name="l00667"></a>00667     <a class="code" href="classTiXmlNode.html">TiXmlNode</a>* Identify( <span class="keyword">const</span> <span class="keywordtype">char</span>* start, TiXmlEncoding encoding );
+<a name="l00668"></a>00668 
+<a name="l00669"></a>00669     <a class="code" href="classTiXmlNode.html">TiXmlNode</a>*      parent;
+<a name="l00670"></a>00670     <a class="code" href="classTiXmlNode.html#w7">NodeType</a>        type;
+<a name="l00671"></a>00671 
+<a name="l00672"></a>00672     <a class="code" href="classTiXmlNode.html">TiXmlNode</a>*      firstChild;
+<a name="l00673"></a>00673     <a class="code" href="classTiXmlNode.html">TiXmlNode</a>*      lastChild;
+<a name="l00674"></a>00674 
+<a name="l00675"></a>00675     TIXML_STRING    value;
+<a name="l00676"></a>00676 
+<a name="l00677"></a>00677     <a class="code" href="classTiXmlNode.html">TiXmlNode</a>*      prev;
+<a name="l00678"></a>00678     <a class="code" href="classTiXmlNode.html">TiXmlNode</a>*      next;
+<a name="l00679"></a>00679 
+<a name="l00680"></a>00680 <span class="keyword">private</span>:
+<a name="l00681"></a>00681     <a class="code" href="classTiXmlNode.html">TiXmlNode</a>( <span class="keyword">const</span> <a class="code" href="classTiXmlNode.html">TiXmlNode</a>&amp; );              <span class="comment">// not implemented.</span>
+<a name="l00682"></a>00682     <span class="keywordtype">void</span> operator=( <span class="keyword">const</span> <a class="code" href="classTiXmlNode.html">TiXmlNode</a>&amp; base );    <span class="comment">// not allowed.</span>
+<a name="l00683"></a>00683 };
+<a name="l00684"></a>00684 
 <a name="l00685"></a>00685 
-<a name="l00686"></a>00686 
-<a name="l00694"></a><a class="code" href="classTiXmlAttribute.html">00694</a> <span class="keyword">class </span><a class="code" href="classTiXmlAttribute.html">TiXmlAttribute</a> : <span class="keyword">public</span> <a class="code" href="classTiXmlBase.html">TiXmlBase</a>
-<a name="l00695"></a>00695 {
-<a name="l00696"></a>00696     <span class="keyword">friend</span> <span class="keyword">class </span>TiXmlAttributeSet;
-<a name="l00697"></a>00697 
-<a name="l00698"></a>00698 <span class="keyword">public</span>:
-<a name="l00700"></a><a class="code" href="classTiXmlAttribute.html#a0">00700</a>     <a class="code" href="classTiXmlAttribute.html#a0">TiXmlAttribute</a>() : <a class="code" href="classTiXmlBase.html">TiXmlBase</a>()
-<a name="l00701"></a>00701     {
-<a name="l00702"></a>00702         document = 0;
-<a name="l00703"></a>00703         prev = next = 0;
-<a name="l00704"></a>00704     }
-<a name="l00705"></a>00705 
-<a name="l00706"></a>00706 <span class="preprocessor">    #ifdef TIXML_USE_STL</span>
-<a name="l00707"></a>00707 <span class="preprocessor"></span>
-<a name="l00708"></a><a class="code" href="classTiXmlAttribute.html#a1">00708</a>     <a class="code" href="classTiXmlAttribute.html#a0">TiXmlAttribute</a>( <span class="keyword">const</span> std::string&amp; _name, <span class="keyword">const</span> std::string&amp; _value )
-<a name="l00709"></a>00709     {
-<a name="l00710"></a>00710         name = _name;
-<a name="l00711"></a>00711         value = _value;
-<a name="l00712"></a>00712         document = 0;
-<a name="l00713"></a>00713         prev = next = 0;
-<a name="l00714"></a>00714     }
-<a name="l00715"></a>00715 <span class="preprocessor">    #endif</span>
-<a name="l00716"></a>00716 <span class="preprocessor"></span>
-<a name="l00718"></a><a class="code" href="classTiXmlAttribute.html#a2">00718</a>     <a class="code" href="classTiXmlAttribute.html#a0">TiXmlAttribute</a>( <span class="keyword">const</span> <span class="keywordtype">char</span> * _name, <span class="keyword">const</span> <span class="keywordtype">char</span> * _value )
-<a name="l00719"></a>00719     {
-<a name="l00720"></a>00720         name = _name;
-<a name="l00721"></a>00721         value = _value;
-<a name="l00722"></a>00722         document = 0;
-<a name="l00723"></a>00723         prev = next = 0;
-<a name="l00724"></a>00724     }
-<a name="l00725"></a>00725 
-<a name="l00726"></a><a class="code" href="classTiXmlAttribute.html#a3">00726</a>     <span class="keyword">const</span> <span class="keywordtype">char</span>*     <a class="code" href="classTiXmlAttribute.html#a3">Name</a>()<span class="keyword">  const       </span>{ <span class="keywordflow">return</span> name.c_str (); }       
-<a name="l00727"></a><a class="code" href="classTiXmlAttribute.html#a4">00727</a>     <span class="keyword">const</span> <span class="keywordtype">char</span>*     <a class="code" href="classTiXmlAttribute.html#a4">Value</a>()<span class="keyword"> const       </span>{ <span class="keywordflow">return</span> value.c_str (); }      
-<a name="l00728"></a>00728     <span class="keywordtype">int</span>             <a class="code" href="classTiXmlAttribute.html#a5">IntValue</a>() <span class="keyword">const</span>;                                   
-<a name="l00729"></a>00729     <span class="keywordtype">double</span>          <a class="code" href="classTiXmlAttribute.html#a6">DoubleValue</a>() <span class="keyword">const</span>;                                
-<a name="l00730"></a>00730 
-<a name="l00740"></a>00740     <span class="keywordtype">int</span> <a class="code" href="classTiXmlAttribute.html#a7">QueryIntValue</a>( <span class="keywordtype">int</span>* _value ) <span class="keyword">const</span>;
-<a name="l00742"></a>00742     <span class="keywordtype">int</span> <a class="code" href="classTiXmlAttribute.html#a8">QueryDoubleValue</a>( <span class="keywordtype">double</span>* _value ) <span class="keyword">const</span>;
-<a name="l00743"></a>00743 
-<a name="l00744"></a><a class="code" href="classTiXmlAttribute.html#a9">00744</a>     <span class="keywordtype">void</span> <a class="code" href="classTiXmlAttribute.html#a9">SetName</a>( <span class="keyword">const</span> <span class="keywordtype">char</span>* _name )   { name = _name; }               
-<a name="l00745"></a><a class="code" href="classTiXmlAttribute.html#a10">00745</a>     <span class="keywordtype">void</span> <a class="code" href="classTiXmlAttribute.html#a10">SetValue</a>( <span class="keyword">const</span> <span class="keywordtype">char</span>* _value ) { value = _value; }             
-<a name="l00746"></a>00746 
-<a name="l00747"></a>00747     <span class="keywordtype">void</span> <a class="code" href="classTiXmlAttribute.html#a11">SetIntValue</a>( <span class="keywordtype">int</span> _value );                                     
-<a name="l00748"></a>00748     <span class="keywordtype">void</span> <a class="code" href="classTiXmlAttribute.html#a12">SetDoubleValue</a>( <span class="keywordtype">double</span> _value );                               
-<a name="l00749"></a>00749 
-<a name="l00750"></a>00750 <span class="preprocessor">    #ifdef TIXML_USE_STL</span>
-<a name="l00751"></a>00751 <span class="preprocessor"></span>
-<a name="l00752"></a><a class="code" href="classTiXmlAttribute.html#a13">00752</a>     <span class="keywordtype">void</span> <a class="code" href="classTiXmlAttribute.html#a9">SetName</a>( <span class="keyword">const</span> std::string&amp; _name )    
-<a name="l00753"></a>00753     {   
-<a name="l00754"></a>00754         StringToBuffer buf( _name );
-<a name="l00755"></a>00755         <a class="code" href="classTiXmlAttribute.html#a9">SetName</a> ( buf.buffer ? buf.buffer : <span class="stringliteral">"error"</span> );  
-<a name="l00756"></a>00756     }
-<a name="l00758"></a><a class="code" href="classTiXmlAttribute.html#a14">00758</a>     <span class="keywordtype">void</span> <a class="code" href="classTiXmlAttribute.html#a10">SetValue</a>( <span class="keyword">const</span> std::string&amp; _value )  
-<a name="l00759"></a>00759     {   
-<a name="l00760"></a>00760         StringToBuffer buf( _value );
-<a name="l00761"></a>00761         <a class="code" href="classTiXmlAttribute.html#a10">SetValue</a>( buf.buffer ? buf.buffer : <span class="stringliteral">"error"</span> );  
-<a name="l00762"></a>00762     }
-<a name="l00763"></a>00763 <span class="preprocessor">    #endif</span>
-<a name="l00764"></a>00764 <span class="preprocessor"></span>
-<a name="l00766"></a>00766     <span class="keyword">const</span> <a class="code" href="classTiXmlAttribute.html">TiXmlAttribute</a>* <a class="code" href="classTiXmlAttribute.html#a15">Next</a>() <span class="keyword">const</span>;
-<a name="l00767"></a>00767     <a class="code" href="classTiXmlAttribute.html">TiXmlAttribute</a>* <a class="code" href="classTiXmlAttribute.html#a15">Next</a>();
-<a name="l00769"></a>00769     <span class="keyword">const</span> <a class="code" href="classTiXmlAttribute.html">TiXmlAttribute</a>* <a class="code" href="classTiXmlAttribute.html#a17">Previous</a>() <span class="keyword">const</span>;
-<a name="l00770"></a>00770     <a class="code" href="classTiXmlAttribute.html">TiXmlAttribute</a>* <a class="code" href="classTiXmlAttribute.html#a17">Previous</a>();
-<a name="l00771"></a>00771 
-<a name="l00772"></a>00772     <span class="keywordtype">bool</span> operator==( <span class="keyword">const</span> <a class="code" href="classTiXmlAttribute.html">TiXmlAttribute</a>&amp; rhs )<span class="keyword"> const </span>{ <span class="keywordflow">return</span> rhs.<a class="code" href="classTiXmlAttribute.html#r1">name</a> == name; }
-<a name="l00773"></a>00773     <span class="keywordtype">bool</span> operator&lt;( <span class="keyword">const</span> <a class="code" href="classTiXmlAttribute.html">TiXmlAttribute</a>&amp; rhs )<span class="keyword">  const </span>{ <span class="keywordflow">return</span> name &lt; rhs.<a class="code" href="classTiXmlAttribute.html#r1">name</a>; }
-<a name="l00774"></a>00774     <span class="keywordtype">bool</span> operator&gt;( <span class="keyword">const</span> <a class="code" href="classTiXmlAttribute.html">TiXmlAttribute</a>&amp; rhs )<span class="keyword">  const </span>{ <span class="keywordflow">return</span> name &gt; rhs.<a class="code" href="classTiXmlAttribute.html#r1">name</a>; }
-<a name="l00775"></a>00775 
-<a name="l00776"></a>00776     <span class="comment">/*  Attribute parsing starts: first letter of the name</span>
-<a name="l00777"></a>00777 <span class="comment">                         returns: the next char after the value end quote</span>
-<a name="l00778"></a>00778 <span class="comment">    */</span>
-<a name="l00779"></a>00779     <span class="keyword">virtual</span> <span class="keyword">const</span> <span class="keywordtype">char</span>* Parse( <span class="keyword">const</span> <span class="keywordtype">char</span>* p, TiXmlParsingData* data, TiXmlEncoding encoding );
-<a name="l00780"></a>00780 
-<a name="l00781"></a>00781     <span class="comment">// Prints this Attribute to a FILE stream.</span>
-<a name="l00782"></a>00782     <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classTiXmlAttribute.html#a23">Print</a>( FILE* cfile, <span class="keywordtype">int</span> depth ) <span class="keyword">const</span>;
-<a name="l00783"></a>00783 
-<a name="l00784"></a>00784     <span class="keyword">virtual</span> <span class="keywordtype">void</span> StreamOut( TIXML_OSTREAM * out ) <span class="keyword">const</span>;
-<a name="l00785"></a>00785     <span class="comment">// [internal use]</span>
-<a name="l00786"></a>00786     <span class="comment">// Set the document pointer so the attribute can report errors.</span>
-<a name="l00787"></a>00787     <span class="keywordtype">void</span> SetDocument( <a class="code" href="classTiXmlDocument.html">TiXmlDocument</a>* doc )  { document = doc; }
-<a name="l00788"></a>00788 
-<a name="l00789"></a>00789 <span class="keyword">private</span>:
-<a name="l00790"></a>00790     <a class="code" href="classTiXmlAttribute.html#a0">TiXmlAttribute</a>( <span class="keyword">const</span> <a class="code" href="classTiXmlAttribute.html">TiXmlAttribute</a>&amp; );                <span class="comment">// not implemented.</span>
-<a name="l00791"></a>00791     <span class="keywordtype">void</span> operator=( <span class="keyword">const</span> <a class="code" href="classTiXmlAttribute.html">TiXmlAttribute</a>&amp; base );   <span class="comment">// not allowed.</span>
-<a name="l00792"></a>00792 
-<a name="l00793"></a>00793     <a class="code" href="classTiXmlDocument.html">TiXmlDocument</a>*  document;   <span class="comment">// A pointer back to a document, for error reporting.</span>
-<a name="l00794"></a>00794     TIXML_STRING name;
-<a name="l00795"></a>00795     TIXML_STRING value;
-<a name="l00796"></a>00796     <a class="code" href="classTiXmlAttribute.html">TiXmlAttribute</a>* prev;
-<a name="l00797"></a>00797     <a class="code" href="classTiXmlAttribute.html">TiXmlAttribute</a>* next;
-<a name="l00798"></a>00798 };
-<a name="l00799"></a>00799 
-<a name="l00800"></a>00800 
-<a name="l00801"></a>00801 <span class="comment">/*  A class used to manage a group of attributes.</span>
-<a name="l00802"></a>00802 <span class="comment">    It is only used internally, both by the ELEMENT and the DECLARATION.</span>
-<a name="l00803"></a>00803 <span class="comment">    </span>
-<a name="l00804"></a>00804 <span class="comment">    The set can be changed transparent to the Element and Declaration</span>
-<a name="l00805"></a>00805 <span class="comment">    classes that use it, but NOT transparent to the Attribute</span>
-<a name="l00806"></a>00806 <span class="comment">    which has to implement a next() and previous() method. Which makes</span>
-<a name="l00807"></a>00807 <span class="comment">    it a bit problematic and prevents the use of STL.</span>
-<a name="l00808"></a>00808 <span class="comment"></span>
-<a name="l00809"></a>00809 <span class="comment">    This version is implemented with circular lists because:</span>
-<a name="l00810"></a>00810 <span class="comment">        - I like circular lists</span>
-<a name="l00811"></a>00811 <span class="comment">        - it demonstrates some independence from the (typical) doubly linked list.</span>
-<a name="l00812"></a>00812 <span class="comment">*/</span>
-<a name="l00813"></a>00813 <span class="keyword">class </span>TiXmlAttributeSet
-<a name="l00814"></a>00814 {
-<a name="l00815"></a>00815 <span class="keyword">public</span>:
-<a name="l00816"></a>00816     TiXmlAttributeSet();
-<a name="l00817"></a>00817     ~TiXmlAttributeSet();
-<a name="l00818"></a>00818 
-<a name="l00819"></a>00819     <span class="keywordtype">void</span> Add( <a class="code" href="classTiXmlAttribute.html">TiXmlAttribute</a>* attribute );
-<a name="l00820"></a>00820     <span class="keywordtype">void</span> Remove( <a class="code" href="classTiXmlAttribute.html">TiXmlAttribute</a>* attribute );
-<a name="l00821"></a>00821 
-<a name="l00822"></a>00822     <span class="keyword">const</span> <a class="code" href="classTiXmlAttribute.html">TiXmlAttribute</a>* First()<span class="keyword">   const   </span>{ <span class="keywordflow">return</span> ( sentinel.next == &amp;sentinel ) ? 0 : sentinel.next; }
-<a name="l00823"></a>00823     <a class="code" href="classTiXmlAttribute.html">TiXmlAttribute</a>* First()                 { <span class="keywordflow">return</span> ( sentinel.next == &amp;sentinel ) ? 0 : sentinel.next; }
-<a name="l00824"></a>00824     <span class="keyword">const</span> <a class="code" href="classTiXmlAttribute.html">TiXmlAttribute</a>* Last()<span class="keyword"> const      </span>{ <span class="keywordflow">return</span> ( sentinel.prev == &amp;sentinel ) ? 0 : sentinel.prev; }
-<a name="l00825"></a>00825     <a class="code" href="classTiXmlAttribute.html">TiXmlAttribute</a>* Last()                  { <span class="keywordflow">return</span> ( sentinel.prev == &amp;sentinel ) ? 0 : sentinel.prev; }
-<a name="l00826"></a>00826 
-<a name="l00827"></a>00827     <span class="keyword">const</span> <a class="code" href="classTiXmlAttribute.html">TiXmlAttribute</a>*   Find( <span class="keyword">const</span> <span class="keywordtype">char</span> * name ) <span class="keyword">const</span>;
-<a name="l00828"></a>00828     <a class="code" href="classTiXmlAttribute.html">TiXmlAttribute</a>* Find( <span class="keyword">const</span> <span class="keywordtype">char</span> * name );
+<a name="l00693"></a><a class="code" href="classTiXmlAttribute.html">00693</a> <span class="keyword">class </span><a class="code" href="classTiXmlAttribute.html">TiXmlAttribute</a> : <span class="keyword">public</span> <a class="code" href="classTiXmlBase.html">TiXmlBase</a>
+<a name="l00694"></a>00694 {
+<a name="l00695"></a>00695     <span class="keyword">friend</span> <span class="keyword">class </span>TiXmlAttributeSet;
+<a name="l00696"></a>00696 
+<a name="l00697"></a>00697 <span class="keyword">public</span>:
+<a name="l00699"></a><a class="code" href="classTiXmlAttribute.html#a0">00699</a>     <a class="code" href="classTiXmlAttribute.html#a0">TiXmlAttribute</a>() : <a class="code" href="classTiXmlBase.html">TiXmlBase</a>()
+<a name="l00700"></a>00700     {
+<a name="l00701"></a>00701         document = 0;
+<a name="l00702"></a>00702         prev = next = 0;
+<a name="l00703"></a>00703     }
+<a name="l00704"></a>00704 
+<a name="l00705"></a>00705 <span class="preprocessor">    #ifdef TIXML_USE_STL</span>
+<a name="l00706"></a>00706 <span class="preprocessor"></span>
+<a name="l00707"></a><a class="code" href="classTiXmlAttribute.html#a1">00707</a>     <a class="code" href="classTiXmlAttribute.html#a0">TiXmlAttribute</a>( <span class="keyword">const</span> std::string&amp; _name, <span class="keyword">const</span> std::string&amp; _value )
+<a name="l00708"></a>00708     {
+<a name="l00709"></a>00709         name = _name;
+<a name="l00710"></a>00710         value = _value;
+<a name="l00711"></a>00711         document = 0;
+<a name="l00712"></a>00712         prev = next = 0;
+<a name="l00713"></a>00713     }
+<a name="l00714"></a>00714 <span class="preprocessor">    #endif</span>
+<a name="l00715"></a>00715 <span class="preprocessor"></span>
+<a name="l00717"></a><a class="code" href="classTiXmlAttribute.html#a2">00717</a>     <a class="code" href="classTiXmlAttribute.html#a0">TiXmlAttribute</a>( <span class="keyword">const</span> <span class="keywordtype">char</span> * _name, <span class="keyword">const</span> <span class="keywordtype">char</span> * _value )
+<a name="l00718"></a>00718     {
+<a name="l00719"></a>00719         name = _name;
+<a name="l00720"></a>00720         value = _value;
+<a name="l00721"></a>00721         document = 0;
+<a name="l00722"></a>00722         prev = next = 0;
+<a name="l00723"></a>00723     }
+<a name="l00724"></a>00724 
+<a name="l00725"></a><a class="code" href="classTiXmlAttribute.html#a3">00725</a>     <span class="keyword">const</span> <span class="keywordtype">char</span>*     <a class="code" href="classTiXmlAttribute.html#a3">Name</a>()<span class="keyword">  const       </span>{ <span class="keywordflow">return</span> name.c_str (); }       
+<a name="l00726"></a><a class="code" href="classTiXmlAttribute.html#a4">00726</a>     <span class="keyword">const</span> <span class="keywordtype">char</span>*     <a class="code" href="classTiXmlAttribute.html#a4">Value</a>()<span class="keyword"> const       </span>{ <span class="keywordflow">return</span> value.c_str (); }      
+<a name="l00727"></a>00727     <span class="keywordtype">int</span>             <a class="code" href="classTiXmlAttribute.html#a5">IntValue</a>() <span class="keyword">const</span>;                                   
+<a name="l00728"></a>00728     <span class="keywordtype">double</span>          <a class="code" href="classTiXmlAttribute.html#a6">DoubleValue</a>() <span class="keyword">const</span>;                                
+<a name="l00729"></a>00729 
+<a name="l00730"></a>00730     <span class="comment">// Get the tinyxml string representation</span>
+<a name="l00731"></a>00731     <span class="keyword">const</span> TIXML_STRING&amp; NameTStr()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> name; }
+<a name="l00732"></a>00732 
+<a name="l00742"></a>00742     <span class="keywordtype">int</span> <a class="code" href="classTiXmlAttribute.html#a8">QueryIntValue</a>( <span class="keywordtype">int</span>* _value ) <span class="keyword">const</span>;
+<a name="l00744"></a>00744     <span class="keywordtype">int</span> <a class="code" href="classTiXmlAttribute.html#a9">QueryDoubleValue</a>( <span class="keywordtype">double</span>* _value ) <span class="keyword">const</span>;
+<a name="l00745"></a>00745 
+<a name="l00746"></a><a class="code" href="classTiXmlAttribute.html#a10">00746</a>     <span class="keywordtype">void</span> <a class="code" href="classTiXmlAttribute.html#a10">SetName</a>( <span class="keyword">const</span> <span class="keywordtype">char</span>* _name )   { name = _name; }               
+<a name="l00747"></a><a class="code" href="classTiXmlAttribute.html#a11">00747</a>     <span class="keywordtype">void</span> <a class="code" href="classTiXmlAttribute.html#a11">SetValue</a>( <span class="keyword">const</span> <span class="keywordtype">char</span>* _value ) { value = _value; }             
+<a name="l00748"></a>00748 
+<a name="l00749"></a>00749     <span class="keywordtype">void</span> <a class="code" href="classTiXmlAttribute.html#a12">SetIntValue</a>( <span class="keywordtype">int</span> _value );                                     
+<a name="l00750"></a>00750     <span class="keywordtype">void</span> <a class="code" href="classTiXmlAttribute.html#a13">SetDoubleValue</a>( <span class="keywordtype">double</span> _value );                               
+<a name="l00751"></a>00751 
+<a name="l00752"></a>00752 <span class="preprocessor">    #ifdef TIXML_USE_STL</span>
+<a name="l00753"></a>00753 <span class="preprocessor"></span>
+<a name="l00754"></a><a class="code" href="classTiXmlAttribute.html#a14">00754</a>     <span class="keywordtype">void</span> <a class="code" href="classTiXmlAttribute.html#a10">SetName</a>( <span class="keyword">const</span> std::string&amp; _name )    { name = _name; }   
+<a name="l00756"></a><a class="code" href="classTiXmlAttribute.html#a15">00756</a>     <span class="keywordtype">void</span> <a class="code" href="classTiXmlAttribute.html#a11">SetValue</a>( <span class="keyword">const</span> std::string&amp; _value )  { value = _value; }
+<a name="l00757"></a>00757 <span class="preprocessor">    #endif</span>
+<a name="l00758"></a>00758 <span class="preprocessor"></span>
+<a name="l00760"></a>00760     <span class="keyword">const</span> <a class="code" href="classTiXmlAttribute.html">TiXmlAttribute</a>* <a class="code" href="classTiXmlAttribute.html#a16">Next</a>() <span class="keyword">const</span>;
+<a name="l00761"></a>00761     <a class="code" href="classTiXmlAttribute.html">TiXmlAttribute</a>* <a class="code" href="classTiXmlAttribute.html#a16">Next</a>();
+<a name="l00763"></a>00763     <span class="keyword">const</span> <a class="code" href="classTiXmlAttribute.html">TiXmlAttribute</a>* <a class="code" href="classTiXmlAttribute.html#a18">Previous</a>() <span class="keyword">const</span>;
+<a name="l00764"></a>00764     <a class="code" href="classTiXmlAttribute.html">TiXmlAttribute</a>* <a class="code" href="classTiXmlAttribute.html#a18">Previous</a>();
+<a name="l00765"></a>00765 
+<a name="l00766"></a>00766     <span class="keywordtype">bool</span> operator==( <span class="keyword">const</span> <a class="code" href="classTiXmlAttribute.html">TiXmlAttribute</a>&amp; rhs )<span class="keyword"> const </span>{ <span class="keywordflow">return</span> rhs.<a class="code" href="classTiXmlAttribute.html#r1">name</a> == name; }
+<a name="l00767"></a>00767     <span class="keywordtype">bool</span> operator&lt;( <span class="keyword">const</span> <a class="code" href="classTiXmlAttribute.html">TiXmlAttribute</a>&amp; rhs )<span class="keyword">  const </span>{ <span class="keywordflow">return</span> name &lt; rhs.<a class="code" href="classTiXmlAttribute.html#r1">name</a>; }
+<a name="l00768"></a>00768     <span class="keywordtype">bool</span> operator&gt;( <span class="keyword">const</span> <a class="code" href="classTiXmlAttribute.html">TiXmlAttribute</a>&amp; rhs )<span class="keyword">  const </span>{ <span class="keywordflow">return</span> name &gt; rhs.<a class="code" href="classTiXmlAttribute.html#r1">name</a>; }
+<a name="l00769"></a>00769 
+<a name="l00770"></a>00770     <span class="comment">/*  Attribute parsing starts: first letter of the name</span>
+<a name="l00771"></a>00771 <span class="comment">                         returns: the next char after the value end quote</span>
+<a name="l00772"></a>00772 <span class="comment">    */</span>
+<a name="l00773"></a>00773     <span class="keyword">virtual</span> <span class="keyword">const</span> <span class="keywordtype">char</span>* Parse( <span class="keyword">const</span> <span class="keywordtype">char</span>* p, TiXmlParsingData* data, TiXmlEncoding encoding );
+<a name="l00774"></a>00774 
+<a name="l00775"></a>00775     <span class="comment">// Prints this Attribute to a FILE stream.</span>
+<a name="l00776"></a>00776     <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classTiXmlAttribute.html#a24">Print</a>( FILE* cfile, <span class="keywordtype">int</span> depth ) <span class="keyword">const</span>;
+<a name="l00777"></a>00777 
+<a name="l00778"></a>00778     <span class="keyword">virtual</span> <span class="keywordtype">void</span> StreamOut( TIXML_OSTREAM * out ) <span class="keyword">const</span>;
+<a name="l00779"></a>00779     <span class="comment">// [internal use]</span>
+<a name="l00780"></a>00780     <span class="comment">// Set the document pointer so the attribute can report errors.</span>
+<a name="l00781"></a>00781     <span class="keywordtype">void</span> SetDocument( <a class="code" href="classTiXmlDocument.html">TiXmlDocument</a>* doc )  { document = doc; }
+<a name="l00782"></a>00782 
+<a name="l00783"></a>00783 <span class="keyword">private</span>:
+<a name="l00784"></a>00784     <a class="code" href="classTiXmlAttribute.html#a0">TiXmlAttribute</a>( <span class="keyword">const</span> <a class="code" href="classTiXmlAttribute.html">TiXmlAttribute</a>&amp; );                <span class="comment">// not implemented.</span>
+<a name="l00785"></a>00785     <span class="keywordtype">void</span> operator=( <span class="keyword">const</span> <a class="code" href="classTiXmlAttribute.html">TiXmlAttribute</a>&amp; base );   <span class="comment">// not allowed.</span>
+<a name="l00786"></a>00786 
+<a name="l00787"></a>00787     <a class="code" href="classTiXmlDocument.html">TiXmlDocument</a>*  document;   <span class="comment">// A pointer back to a document, for error reporting.</span>
+<a name="l00788"></a>00788     TIXML_STRING name;
+<a name="l00789"></a>00789     TIXML_STRING value;
+<a name="l00790"></a>00790     <a class="code" href="classTiXmlAttribute.html">TiXmlAttribute</a>* prev;
+<a name="l00791"></a>00791     <a class="code" href="classTiXmlAttribute.html">TiXmlAttribute</a>* next;
+<a name="l00792"></a>00792 };
+<a name="l00793"></a>00793 
+<a name="l00794"></a>00794 
+<a name="l00795"></a>00795 <span class="comment">/*  A class used to manage a group of attributes.</span>
+<a name="l00796"></a>00796 <span class="comment">    It is only used internally, both by the ELEMENT and the DECLARATION.</span>
+<a name="l00797"></a>00797 <span class="comment">    </span>
+<a name="l00798"></a>00798 <span class="comment">    The set can be changed transparent to the Element and Declaration</span>
+<a name="l00799"></a>00799 <span class="comment">    classes that use it, but NOT transparent to the Attribute</span>
+<a name="l00800"></a>00800 <span class="comment">    which has to implement a next() and previous() method. Which makes</span>
+<a name="l00801"></a>00801 <span class="comment">    it a bit problematic and prevents the use of STL.</span>
+<a name="l00802"></a>00802 <span class="comment"></span>
+<a name="l00803"></a>00803 <span class="comment">    This version is implemented with circular lists because:</span>
+<a name="l00804"></a>00804 <span class="comment">        - I like circular lists</span>
+<a name="l00805"></a>00805 <span class="comment">        - it demonstrates some independence from the (typical) doubly linked list.</span>
+<a name="l00806"></a>00806 <span class="comment">*/</span>
+<a name="l00807"></a>00807 <span class="keyword">class </span>TiXmlAttributeSet
+<a name="l00808"></a>00808 {
+<a name="l00809"></a>00809 <span class="keyword">public</span>:
+<a name="l00810"></a>00810     TiXmlAttributeSet();
+<a name="l00811"></a>00811     ~TiXmlAttributeSet();
+<a name="l00812"></a>00812 
+<a name="l00813"></a>00813     <span class="keywordtype">void</span> Add( <a class="code" href="classTiXmlAttribute.html">TiXmlAttribute</a>* attribute );
+<a name="l00814"></a>00814     <span class="keywordtype">void</span> Remove( <a class="code" href="classTiXmlAttribute.html">TiXmlAttribute</a>* attribute );
+<a name="l00815"></a>00815 
+<a name="l00816"></a>00816     <span class="keyword">const</span> <a class="code" href="classTiXmlAttribute.html">TiXmlAttribute</a>* First()<span class="keyword">   const   </span>{ <span class="keywordflow">return</span> ( sentinel.next == &amp;sentinel ) ? 0 : sentinel.next; }
+<a name="l00817"></a>00817     <a class="code" href="classTiXmlAttribute.html">TiXmlAttribute</a>* First()                 { <span class="keywordflow">return</span> ( sentinel.next == &amp;sentinel ) ? 0 : sentinel.next; }
+<a name="l00818"></a>00818     <span class="keyword">const</span> <a class="code" href="classTiXmlAttribute.html">TiXmlAttribute</a>* Last()<span class="keyword"> const      </span>{ <span class="keywordflow">return</span> ( sentinel.prev == &amp;sentinel ) ? 0 : sentinel.prev; }
+<a name="l00819"></a>00819     <a class="code" href="classTiXmlAttribute.html">TiXmlAttribute</a>* Last()                  { <span class="keywordflow">return</span> ( sentinel.prev == &amp;sentinel ) ? 0 : sentinel.prev; }
+<a name="l00820"></a>00820 
+<a name="l00821"></a>00821     <span class="keyword">const</span> <a class="code" href="classTiXmlAttribute.html">TiXmlAttribute</a>*   Find( <span class="keyword">const</span> TIXML_STRING&amp; name ) <span class="keyword">const</span>;
+<a name="l00822"></a>00822     <a class="code" href="classTiXmlAttribute.html">TiXmlAttribute</a>* Find( <span class="keyword">const</span> TIXML_STRING&amp; name );
+<a name="l00823"></a>00823 
+<a name="l00824"></a>00824 <span class="keyword">private</span>:
+<a name="l00825"></a>00825     <span class="comment">//*ME:  Because of hidden/disabled copy-construktor in TiXmlAttribute (sentinel-element),</span>
+<a name="l00826"></a>00826     <span class="comment">//*ME:  this class must be also use a hidden/disabled copy-constructor !!!</span>
+<a name="l00827"></a>00827     TiXmlAttributeSet( <span class="keyword">const</span> TiXmlAttributeSet&amp; );  <span class="comment">// not allowed</span>
+<a name="l00828"></a>00828     <span class="keywordtype">void</span> operator=( <span class="keyword">const</span> TiXmlAttributeSet&amp; ); <span class="comment">// not allowed (as TiXmlAttribute)</span>
 <a name="l00829"></a>00829 
-<a name="l00830"></a>00830 <span class="keyword">private</span>:
-<a name="l00831"></a>00831     <span class="comment">//*ME:  Because of hidden/disabled copy-construktor in TiXmlAttribute (sentinel-element),</span>
-<a name="l00832"></a>00832     <span class="comment">//*ME:  this class must be also use a hidden/disabled copy-constructor !!!</span>
-<a name="l00833"></a>00833     TiXmlAttributeSet( <span class="keyword">const</span> TiXmlAttributeSet&amp; );  <span class="comment">// not allowed</span>
-<a name="l00834"></a>00834     <span class="keywordtype">void</span> operator=( <span class="keyword">const</span> TiXmlAttributeSet&amp; ); <span class="comment">// not allowed (as TiXmlAttribute)</span>
-<a name="l00835"></a>00835 
-<a name="l00836"></a>00836     <a class="code" href="classTiXmlAttribute.html">TiXmlAttribute</a> sentinel;
-<a name="l00837"></a>00837 };
-<a name="l00838"></a>00838 
-<a name="l00839"></a>00839 
-<a name="l00844"></a><a class="code" href="classTiXmlElement.html">00844</a> <span class="keyword">class </span><a class="code" href="classTiXmlElement.html">TiXmlElement</a> : <span class="keyword">public</span> <a class="code" href="classTiXmlNode.html">TiXmlNode</a>
-<a name="l00845"></a>00845 {
-<a name="l00846"></a>00846 <span class="keyword">public</span>:
-<a name="l00848"></a>00848     <a class="code" href="classTiXmlElement.html#a0">TiXmlElement</a> (<span class="keyword">const</span> <span class="keywordtype">char</span> * in_value);
-<a name="l00849"></a>00849 
-<a name="l00850"></a>00850 <span class="preprocessor">    #ifdef TIXML_USE_STL</span>
-<a name="l00851"></a>00851 <span class="preprocessor"></span>
-<a name="l00852"></a>00852     <a class="code" href="classTiXmlElement.html#a0">TiXmlElement</a>( <span class="keyword">const</span> std::string&amp; _value );
-<a name="l00853"></a>00853 <span class="preprocessor">    #endif</span>
-<a name="l00854"></a>00854 <span class="preprocessor"></span>
-<a name="l00855"></a>00855     <a class="code" href="classTiXmlElement.html#a0">TiXmlElement</a>( <span class="keyword">const</span> <a class="code" href="classTiXmlElement.html">TiXmlElement</a>&amp; );
-<a name="l00856"></a>00856 
-<a name="l00857"></a>00857     <span class="keywordtype">void</span> operator=( <span class="keyword">const</span> <a class="code" href="classTiXmlElement.html">TiXmlElement</a>&amp; base );
-<a name="l00858"></a>00858 
-<a name="l00859"></a>00859     <span class="keyword">virtual</span> ~<a class="code" href="classTiXmlElement.html">TiXmlElement</a>();
-<a name="l00860"></a>00860 
-<a name="l00864"></a>00864     <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="classTiXmlElement.html#a5">Attribute</a>( <span class="keyword">const</span> <span class="keywordtype">char</span>* name ) <span class="keyword">const</span>;
-<a name="l00865"></a>00865 
-<a name="l00872"></a>00872     <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="classTiXmlElement.html#a5">Attribute</a>( <span class="keyword">const</span> <span class="keywordtype">char</span>* name, <span class="keywordtype">int</span>* i ) <span class="keyword">const</span>;
-<a name="l00873"></a>00873 
-<a name="l00880"></a>00880     <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="classTiXmlElement.html#a5">Attribute</a>( <span class="keyword">const</span> <span class="keywordtype">char</span>* name, <span class="keywordtype">double</span>* d ) <span class="keyword">const</span>;
-<a name="l00881"></a>00881 
-<a name="l00889"></a>00889     <span class="keywordtype">int</span> <a class="code" href="classTiXmlElement.html#a8">QueryIntAttribute</a>( <span class="keyword">const</span> <span class="keywordtype">char</span>* name, <span class="keywordtype">int</span>* _value ) <span class="keyword">const</span>;
-<a name="l00891"></a>00891     <span class="keywordtype">int</span> <a class="code" href="classTiXmlElement.html#a9">QueryDoubleAttribute</a>( <span class="keyword">const</span> <span class="keywordtype">char</span>* name, <span class="keywordtype">double</span>* _value ) <span class="keyword">const</span>;
-<a name="l00893"></a><a class="code" href="classTiXmlElement.html#a10">00893</a>     <span class="keywordtype">int</span> <a class="code" href="classTiXmlElement.html#a10">QueryFloatAttribute</a>( <span class="keyword">const</span> <span class="keywordtype">char</span>* name, <span class="keywordtype">float</span>* _value )<span class="keyword"> const </span>{
-<a name="l00894"></a>00894         <span class="keywordtype">double</span> d;
-<a name="l00895"></a>00895         <span class="keywordtype">int</span> result = <a class="code" href="classTiXmlElement.html#a9">QueryDoubleAttribute</a>( name, &amp;d );
-<a name="l00896"></a>00896         <span class="keywordflow">if</span> ( result == TIXML_SUCCESS ) {
-<a name="l00897"></a>00897             *_value = (float)d;
-<a name="l00898"></a>00898         }
-<a name="l00899"></a>00899         <span class="keywordflow">return</span> result;
-<a name="l00900"></a>00900     }
-<a name="l00901"></a>00901 
-<a name="l00905"></a>00905     <span class="keywordtype">void</span> <a class="code" href="classTiXmlElement.html#a11">SetAttribute</a>( <span class="keyword">const</span> <span class="keywordtype">char</span>* name, <span class="keyword">const</span> <span class="keywordtype">char</span> * _value );
-<a name="l00906"></a>00906 
-<a name="l00907"></a>00907 <span class="preprocessor">    #ifdef TIXML_USE_STL</span>
-<a name="l00908"></a>00908 <span class="preprocessor"></span>    <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="classTiXmlElement.html#a5">Attribute</a>( <span class="keyword">const</span> std::string&amp; name )<span class="keyword"> const              </span>{ <span class="keywordflow">return</span> <a class="code" href="classTiXmlElement.html#a5">Attribute</a>( name.c_str() ); }
-<a name="l00909"></a>00909     <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="classTiXmlElement.html#a5">Attribute</a>( <span class="keyword">const</span> std::string&amp; name, <span class="keywordtype">int</span>* i )<span class="keyword"> const      </span>{ <span class="keywordflow">return</span> <a class="code" href="classTiXmlElement.html#a5">Attribute</a>( name.c_str(), i ); }
-<a name="l00910"></a>00910     <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="classTiXmlElement.html#a5">Attribute</a>( <span class="keyword">const</span> std::string&amp; name, <span class="keywordtype">double</span>* d )<span class="keyword"> const   </span>{ <span class="keywordflow">return</span> <a class="code" href="classTiXmlElement.html#a5">Attribute</a>( name.c_str(), d ); }
-<a name="l00911"></a>00911     <span class="keywordtype">int</span> <a class="code" href="classTiXmlElement.html#a8">QueryIntAttribute</a>( <span class="keyword">const</span> std::string&amp; name, <span class="keywordtype">int</span>* _value )<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="classTiXmlElement.html#a8">QueryIntAttribute</a>( name.c_str(), _value ); }
-<a name="l00912"></a>00912     <span class="keywordtype">int</span> <a class="code" href="classTiXmlElement.html#a9">QueryDoubleAttribute</a>( <span class="keyword">const</span> std::string&amp; name, <span class="keywordtype">double</span>* _value )<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="classTiXmlElement.html#a9">QueryDoubleAttribute</a>( name.c_str(), _value ); }
-<a name="l00913"></a>00913 
-<a name="l00915"></a><a class="code" href="classTiXmlElement.html#a17">00915</a>     <span class="keywordtype">void</span> <a class="code" href="classTiXmlElement.html#a11">SetAttribute</a>( <span class="keyword">const</span> std::string&amp; name, <span class="keyword">const</span> std::string&amp; _value ) 
-<a name="l00916"></a>00916     {   
-<a name="l00917"></a>00917         StringToBuffer n( name );
-<a name="l00918"></a>00918         StringToBuffer v( _value );
-<a name="l00919"></a>00919         <span class="keywordflow">if</span> ( n.buffer &amp;&amp; v.buffer )
-<a name="l00920"></a>00920             <a class="code" href="classTiXmlElement.html#a11">SetAttribute</a> (n.buffer, v.buffer ); 
-<a name="l00921"></a>00921     }   
-<a name="l00923"></a>00923     <span class="keywordtype">void</span> <a class="code" href="classTiXmlElement.html#a11">SetAttribute</a>( <span class="keyword">const</span> std::string&amp; name, <span class="keywordtype">int</span> _value )    
-<a name="l00924"></a>00924     {   
-<a name="l00925"></a>00925         StringToBuffer n( name );
-<a name="l00926"></a>00926         <span class="keywordflow">if</span> ( n.buffer )
-<a name="l00927"></a>00927             <a class="code" href="classTiXmlElement.html#a11">SetAttribute</a> (n.buffer, _value);    
-<a name="l00928"></a>00928     }   
+<a name="l00830"></a>00830     <a class="code" href="classTiXmlAttribute.html">TiXmlAttribute</a> sentinel;
+<a name="l00831"></a>00831 };
+<a name="l00832"></a>00832 
+<a name="l00833"></a>00833 
+<a name="l00838"></a><a class="code" href="classTiXmlElement.html">00838</a> <span class="keyword">class </span><a class="code" href="classTiXmlElement.html">TiXmlElement</a> : <span class="keyword">public</span> <a class="code" href="classTiXmlNode.html">TiXmlNode</a>
+<a name="l00839"></a>00839 {
+<a name="l00840"></a>00840 <span class="keyword">public</span>:
+<a name="l00842"></a>00842     <a class="code" href="classTiXmlElement.html#a0">TiXmlElement</a> (<span class="keyword">const</span> <span class="keywordtype">char</span> * in_value);
+<a name="l00843"></a>00843 
+<a name="l00844"></a>00844 <span class="preprocessor">    #ifdef TIXML_USE_STL</span>
+<a name="l00845"></a>00845 <span class="preprocessor"></span>
+<a name="l00846"></a>00846     <a class="code" href="classTiXmlElement.html#a0">TiXmlElement</a>( <span class="keyword">const</span> std::string&amp; _value );
+<a name="l00847"></a>00847 <span class="preprocessor">    #endif</span>
+<a name="l00848"></a>00848 <span class="preprocessor"></span>
+<a name="l00849"></a>00849     <a class="code" href="classTiXmlElement.html#a0">TiXmlElement</a>( <span class="keyword">const</span> <a class="code" href="classTiXmlElement.html">TiXmlElement</a>&amp; );
+<a name="l00850"></a>00850 
+<a name="l00851"></a>00851     <span class="keywordtype">void</span> operator=( <span class="keyword">const</span> <a class="code" href="classTiXmlElement.html">TiXmlElement</a>&amp; base );
+<a name="l00852"></a>00852 
+<a name="l00853"></a>00853     <span class="keyword">virtual</span> ~<a class="code" href="classTiXmlElement.html">TiXmlElement</a>();
+<a name="l00854"></a>00854 
+<a name="l00858"></a>00858     <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="classTiXmlElement.html#a5">Attribute</a>( <span class="keyword">const</span> <span class="keywordtype">char</span>* name ) <span class="keyword">const</span>;
+<a name="l00859"></a>00859 
+<a name="l00866"></a>00866     <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="classTiXmlElement.html#a5">Attribute</a>( <span class="keyword">const</span> <span class="keywordtype">char</span>* name, <span class="keywordtype">int</span>* i ) <span class="keyword">const</span>;
+<a name="l00867"></a>00867 
+<a name="l00874"></a>00874     <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="classTiXmlElement.html#a5">Attribute</a>( <span class="keyword">const</span> <span class="keywordtype">char</span>* name, <span class="keywordtype">double</span>* d ) <span class="keyword">const</span>;
+<a name="l00875"></a>00875 
+<a name="l00883"></a>00883     <span class="keywordtype">int</span> <a class="code" href="classTiXmlElement.html#a8">QueryIntAttribute</a>( <span class="keyword">const</span> <span class="keywordtype">char</span>* name, <span class="keywordtype">int</span>* _value ) <span class="keyword">const</span>;
+<a name="l00885"></a>00885     <span class="keywordtype">int</span> <a class="code" href="classTiXmlElement.html#a9">QueryDoubleAttribute</a>( <span class="keyword">const</span> <span class="keywordtype">char</span>* name, <span class="keywordtype">double</span>* _value ) <span class="keyword">const</span>;
+<a name="l00887"></a><a class="code" href="classTiXmlElement.html#a10">00887</a>     <span class="keywordtype">int</span> <a class="code" href="classTiXmlElement.html#a10">QueryFloatAttribute</a>( <span class="keyword">const</span> <span class="keywordtype">char</span>* name, <span class="keywordtype">float</span>* _value )<span class="keyword"> const </span>{
+<a name="l00888"></a>00888         <span class="keywordtype">double</span> d;
+<a name="l00889"></a>00889         <span class="keywordtype">int</span> result = <a class="code" href="classTiXmlElement.html#a9">QueryDoubleAttribute</a>( name, &amp;d );
+<a name="l00890"></a>00890         <span class="keywordflow">if</span> ( result == TIXML_SUCCESS ) {
+<a name="l00891"></a>00891             *_value = (float)d;
+<a name="l00892"></a>00892         }
+<a name="l00893"></a>00893         <span class="keywordflow">return</span> result;
+<a name="l00894"></a>00894     }
+<a name="l00895"></a>00895 
+<a name="l00899"></a>00899     <span class="keywordtype">void</span> <a class="code" href="classTiXmlElement.html#a11">SetAttribute</a>( <span class="keyword">const</span> <span class="keywordtype">char</span>* name, <span class="keyword">const</span> <span class="keywordtype">char</span> * _value );
+<a name="l00900"></a>00900 
+<a name="l00901"></a>00901 <span class="preprocessor">    #ifdef TIXML_USE_STL</span>
+<a name="l00902"></a>00902 <span class="preprocessor"></span>    <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="classTiXmlElement.html#a5">Attribute</a>( <span class="keyword">const</span> std::string&amp; name )<span class="keyword"> const              </span>{ <span class="keywordflow">return</span> <a class="code" href="classTiXmlElement.html#a5">Attribute</a>( name.c_str() ); }
+<a name="l00903"></a>00903     <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="classTiXmlElement.html#a5">Attribute</a>( <span class="keyword">const</span> std::string&amp; name, <span class="keywordtype">int</span>* i )<span class="keyword"> const      </span>{ <span class="keywordflow">return</span> <a class="code" href="classTiXmlElement.html#a5">Attribute</a>( name.c_str(), i ); }
+<a name="l00904"></a>00904     <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="classTiXmlElement.html#a5">Attribute</a>( <span class="keyword">const</span> std::string&amp; name, <span class="keywordtype">double</span>* d )<span class="keyword"> const   </span>{ <span class="keywordflow">return</span> <a class="code" href="classTiXmlElement.html#a5">Attribute</a>( name.c_str(), d ); }
+<a name="l00905"></a>00905     <span class="keywordtype">int</span> <a class="code" href="classTiXmlElement.html#a8">QueryIntAttribute</a>( <span class="keyword">const</span> std::string&amp; name, <span class="keywordtype">int</span>* _value )<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="classTiXmlElement.html#a8">QueryIntAttribute</a>( name.c_str(), _value ); }
+<a name="l00906"></a>00906     <span class="keywordtype">int</span> <a class="code" href="classTiXmlElement.html#a9">QueryDoubleAttribute</a>( <span class="keyword">const</span> std::string&amp; name, <span class="keywordtype">double</span>* _value )<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="classTiXmlElement.html#a9">QueryDoubleAttribute</a>( name.c_str(), _value ); }
+<a name="l00907"></a>00907 
+<a name="l00909"></a>00909     <span class="keywordtype">void</span> <a class="code" href="classTiXmlElement.html#a11">SetAttribute</a>( <span class="keyword">const</span> std::string&amp; name, <span class="keyword">const</span> std::string&amp; _value );
+<a name="l00911"></a>00911     <span class="keywordtype">void</span> <a class="code" href="classTiXmlElement.html#a11">SetAttribute</a>( <span class="keyword">const</span> std::string&amp; name, <span class="keywordtype">int</span> _value );
+<a name="l00912"></a>00912 <span class="preprocessor">    #endif</span>
+<a name="l00913"></a>00913 <span class="preprocessor"></span>
+<a name="l00917"></a>00917     <span class="keywordtype">void</span> <a class="code" href="classTiXmlElement.html#a11">SetAttribute</a>( <span class="keyword">const</span> <span class="keywordtype">char</span> * name, <span class="keywordtype">int</span> value );
+<a name="l00918"></a>00918 
+<a name="l00922"></a>00922     <span class="keywordtype">void</span> <a class="code" href="classTiXmlElement.html#a20">SetDoubleAttribute</a>( <span class="keyword">const</span> <span class="keywordtype">char</span> * name, <span class="keywordtype">double</span> value );
+<a name="l00923"></a>00923 
+<a name="l00926"></a>00926     <span class="keywordtype">void</span> <a class="code" href="classTiXmlElement.html#a21">RemoveAttribute</a>( <span class="keyword">const</span> <span class="keywordtype">char</span> * name );
+<a name="l00927"></a>00927 <span class="preprocessor">    #ifdef TIXML_USE_STL</span>
+<a name="l00928"></a><a class="code" href="classTiXmlElement.html#a22">00928</a> <span class="preprocessor"></span>    <span class="keywordtype">void</span> <a class="code" href="classTiXmlElement.html#a21">RemoveAttribute</a>( <span class="keyword">const</span> std::string&amp; name ) {   <a class="code" href="classTiXmlElement.html#a21">RemoveAttribute</a> (name.c_str ());    }   
 <a name="l00929"></a>00929 <span class="preprocessor">    #endif</span>
 <a name="l00930"></a>00930 <span class="preprocessor"></span>
-<a name="l00934"></a>00934     <span class="keywordtype">void</span> <a class="code" href="classTiXmlElement.html#a11">SetAttribute</a>( <span class="keyword">const</span> <span class="keywordtype">char</span> * name, <span class="keywordtype">int</span> value );
+<a name="l00931"></a><a class="code" href="classTiXmlElement.html#a23">00931</a>     <span class="keyword">const</span> <a class="code" href="classTiXmlAttribute.html">TiXmlAttribute</a>* <a class="code" href="classTiXmlElement.html#a23">FirstAttribute</a>()<span class="keyword"> const    </span>{ <span class="keywordflow">return</span> attributeSet.First(); }        
+<a name="l00932"></a>00932     <a class="code" href="classTiXmlAttribute.html">TiXmlAttribute</a>* <a class="code" href="classTiXmlElement.html#a23">FirstAttribute</a>()                { <span class="keywordflow">return</span> attributeSet.First(); }
+<a name="l00933"></a><a class="code" href="classTiXmlElement.html#a25">00933</a>     <span class="keyword">const</span> <a class="code" href="classTiXmlAttribute.html">TiXmlAttribute</a>* <a class="code" href="classTiXmlElement.html#a25">LastAttribute</a>()<span class="keyword">   const   </span>{ <span class="keywordflow">return</span> attributeSet.Last(); }     
+<a name="l00934"></a>00934     <a class="code" href="classTiXmlAttribute.html">TiXmlAttribute</a>* <a class="code" href="classTiXmlElement.html#a25">LastAttribute</a>()                 { <span class="keywordflow">return</span> attributeSet.Last(); }
 <a name="l00935"></a>00935 
-<a name="l00939"></a>00939     <span class="keywordtype">void</span> <a class="code" href="classTiXmlElement.html#a20">SetDoubleAttribute</a>( <span class="keyword">const</span> <span class="keywordtype">char</span> * name, <span class="keywordtype">double</span> value );
-<a name="l00940"></a>00940 
-<a name="l00943"></a>00943     <span class="keywordtype">void</span> <a class="code" href="classTiXmlElement.html#a21">RemoveAttribute</a>( <span class="keyword">const</span> <span class="keywordtype">char</span> * name );
-<a name="l00944"></a>00944 <span class="preprocessor">    #ifdef TIXML_USE_STL</span>
-<a name="l00945"></a><a class="code" href="classTiXmlElement.html#a22">00945</a> <span class="preprocessor"></span>    <span class="keywordtype">void</span> <a class="code" href="classTiXmlElement.html#a21">RemoveAttribute</a>( <span class="keyword">const</span> std::string&amp; name ) {   <a class="code" href="classTiXmlElement.html#a21">RemoveAttribute</a> (name.c_str ());    }   
-<a name="l00946"></a>00946 <span class="preprocessor">    #endif</span>
-<a name="l00947"></a>00947 <span class="preprocessor"></span>
-<a name="l00948"></a><a class="code" href="classTiXmlElement.html#a23">00948</a>     <span class="keyword">const</span> <a class="code" href="classTiXmlAttribute.html">TiXmlAttribute</a>* <a class="code" href="classTiXmlElement.html#a23">FirstAttribute</a>()<span class="keyword"> const    </span>{ <span class="keywordflow">return</span> attributeSet.First(); }        
-<a name="l00949"></a>00949     <a class="code" href="classTiXmlAttribute.html">TiXmlAttribute</a>* <a class="code" href="classTiXmlElement.html#a23">FirstAttribute</a>()                { <span class="keywordflow">return</span> attributeSet.First(); }
-<a name="l00950"></a><a class="code" href="classTiXmlElement.html#a25">00950</a>     <span class="keyword">const</span> <a class="code" href="classTiXmlAttribute.html">TiXmlAttribute</a>* <a class="code" href="classTiXmlElement.html#a25">LastAttribute</a>()<span class="keyword">   const   </span>{ <span class="keywordflow">return</span> attributeSet.Last(); }     
-<a name="l00951"></a>00951     <a class="code" href="classTiXmlAttribute.html">TiXmlAttribute</a>* <a class="code" href="classTiXmlElement.html#a25">LastAttribute</a>()                 { <span class="keywordflow">return</span> attributeSet.Last(); }
-<a name="l00952"></a>00952 
-<a name="l00985"></a>00985     <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="classTiXmlElement.html#a27">GetText</a>() <span class="keyword">const</span>;
-<a name="l00986"></a>00986 
-<a name="l00988"></a>00988     <span class="keyword">virtual</span> <a class="code" href="classTiXmlNode.html">TiXmlNode</a>* <a class="code" href="classTiXmlElement.html#a28">Clone</a>() <span class="keyword">const</span>;
-<a name="l00989"></a>00989     <span class="comment">// Print the Element to a FILE stream.</span>
-<a name="l00990"></a>00990     <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classTiXmlElement.html#a29">Print</a>( FILE* cfile, <span class="keywordtype">int</span> depth ) <span class="keyword">const</span>;
-<a name="l00991"></a>00991 
-<a name="l00992"></a>00992     <span class="comment">/*  Attribtue parsing starts: next char past '&lt;'</span>
-<a name="l00993"></a>00993 <span class="comment">                         returns: next char past '&gt;'</span>
-<a name="l00994"></a>00994 <span class="comment">    */</span>
-<a name="l00995"></a>00995     <span class="keyword">virtual</span> <span class="keyword">const</span> <span class="keywordtype">char</span>* Parse( <span class="keyword">const</span> <span class="keywordtype">char</span>* p, TiXmlParsingData* data, TiXmlEncoding encoding );
-<a name="l00996"></a>00996 
-<a name="l00997"></a>00997 <span class="keyword">protected</span>:
-<a name="l00998"></a>00998 
-<a name="l00999"></a>00999     <span class="keywordtype">void</span> CopyTo( <a class="code" href="classTiXmlElement.html">TiXmlElement</a>* target ) <span class="keyword">const</span>;
-<a name="l01000"></a>01000     <span class="keywordtype">void</span> ClearThis();   <span class="comment">// like clear, but initializes 'this' object as well</span>
+<a name="l00968"></a>00968     <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="classTiXmlElement.html#a27">GetText</a>() <span class="keyword">const</span>;
+<a name="l00969"></a>00969 
+<a name="l00971"></a>00971     <span class="keyword">virtual</span> <a class="code" href="classTiXmlNode.html">TiXmlNode</a>* <a class="code" href="classTiXmlElement.html#a28">Clone</a>() <span class="keyword">const</span>;
+<a name="l00972"></a>00972     <span class="comment">// Print the Element to a FILE stream.</span>
+<a name="l00973"></a>00973     <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classTiXmlElement.html#a29">Print</a>( FILE* cfile, <span class="keywordtype">int</span> depth ) <span class="keyword">const</span>;
+<a name="l00974"></a>00974 
+<a name="l00975"></a>00975     <span class="comment">/*  Attribtue parsing starts: next char past '&lt;'</span>
+<a name="l00976"></a>00976 <span class="comment">                         returns: next char past '&gt;'</span>
+<a name="l00977"></a>00977 <span class="comment">    */</span>
+<a name="l00978"></a>00978     <span class="keyword">virtual</span> <span class="keyword">const</span> <span class="keywordtype">char</span>* Parse( <span class="keyword">const</span> <span class="keywordtype">char</span>* p, TiXmlParsingData* data, TiXmlEncoding encoding );
+<a name="l00979"></a>00979 
+<a name="l00980"></a><a class="code" href="classTiXmlElement.html#a31">00980</a>     <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="classTiXmlElement.html">TiXmlElement</a>*     <a class="code" href="classTiXmlElement.html#a31">ToElement</a>()<span class="keyword">     const </span>{ <span class="keywordflow">return</span> <span class="keyword">this</span>; } 
+<a name="l00981"></a><a class="code" href="classTiXmlElement.html#a32">00981</a>     <span class="keyword">virtual</span> <a class="code" href="classTiXmlElement.html">TiXmlElement</a>*           <a class="code" href="classTiXmlElement.html#a31">ToElement</a>()           { <span class="keywordflow">return</span> <span class="keyword">this</span>; } 
+<a name="l00982"></a>00982     
+<a name="l00983"></a>00983 <span class="keyword">protected</span>:
+<a name="l00984"></a>00984 
+<a name="l00985"></a>00985     <span class="keywordtype">void</span> CopyTo( <a class="code" href="classTiXmlElement.html">TiXmlElement</a>* target ) <span class="keyword">const</span>;
+<a name="l00986"></a>00986     <span class="keywordtype">void</span> ClearThis();   <span class="comment">// like clear, but initializes 'this' object as well</span>
+<a name="l00987"></a>00987 
+<a name="l00988"></a>00988     <span class="comment">// Used to be public [internal use]</span>
+<a name="l00989"></a>00989 <span class="preprocessor">    #ifdef TIXML_USE_STL</span>
+<a name="l00990"></a>00990 <span class="preprocessor"></span>        <span class="keyword">virtual</span> <span class="keywordtype">void</span> StreamIn( TIXML_ISTREAM * in, TIXML_STRING * tag );
+<a name="l00991"></a>00991 <span class="preprocessor">    #endif</span>
+<a name="l00992"></a>00992 <span class="preprocessor"></span>    <span class="keyword">virtual</span> <span class="keywordtype">void</span> StreamOut( TIXML_OSTREAM * out ) <span class="keyword">const</span>;
+<a name="l00993"></a>00993 
+<a name="l00994"></a>00994     <span class="comment">/*  [internal use]</span>
+<a name="l00995"></a>00995 <span class="comment">        Reads the "value" of the element -- another element, or text.</span>
+<a name="l00996"></a>00996 <span class="comment">        This should terminate with the current end tag.</span>
+<a name="l00997"></a>00997 <span class="comment">    */</span>
+<a name="l00998"></a>00998     <span class="keyword">const</span> <span class="keywordtype">char</span>* ReadValue( <span class="keyword">const</span> <span class="keywordtype">char</span>* in, TiXmlParsingData* prevData, TiXmlEncoding encoding );
+<a name="l00999"></a>00999 
+<a name="l01000"></a>01000 <span class="keyword">private</span>:
 <a name="l01001"></a>01001 
-<a name="l01002"></a>01002     <span class="comment">// Used to be public [internal use]</span>
-<a name="l01003"></a>01003 <span class="preprocessor">    #ifdef TIXML_USE_STL</span>
-<a name="l01004"></a>01004 <span class="preprocessor"></span>        <span class="keyword">virtual</span> <span class="keywordtype">void</span> StreamIn( TIXML_ISTREAM * in, TIXML_STRING * tag );
-<a name="l01005"></a>01005 <span class="preprocessor">    #endif</span>
-<a name="l01006"></a>01006 <span class="preprocessor"></span>    <span class="keyword">virtual</span> <span class="keywordtype">void</span> StreamOut( TIXML_OSTREAM * out ) <span class="keyword">const</span>;
-<a name="l01007"></a>01007 
-<a name="l01008"></a>01008     <span class="comment">/*  [internal use]</span>
-<a name="l01009"></a>01009 <span class="comment">        Reads the "value" of the element -- another element, or text.</span>
-<a name="l01010"></a>01010 <span class="comment">        This should terminate with the current end tag.</span>
-<a name="l01011"></a>01011 <span class="comment">    */</span>
-<a name="l01012"></a>01012     <span class="keyword">const</span> <span class="keywordtype">char</span>* ReadValue( <span class="keyword">const</span> <span class="keywordtype">char</span>* in, TiXmlParsingData* prevData, TiXmlEncoding encoding );
-<a name="l01013"></a>01013 
-<a name="l01014"></a>01014 <span class="keyword">private</span>:
+<a name="l01002"></a>01002     TiXmlAttributeSet attributeSet;
+<a name="l01003"></a>01003 };
+<a name="l01004"></a>01004 
+<a name="l01005"></a>01005 
+<a name="l01008"></a><a class="code" href="classTiXmlComment.html">01008</a> <span class="keyword">class </span><a class="code" href="classTiXmlComment.html">TiXmlComment</a> : <span class="keyword">public</span> <a class="code" href="classTiXmlNode.html">TiXmlNode</a>
+<a name="l01009"></a>01009 {
+<a name="l01010"></a>01010 <span class="keyword">public</span>:
+<a name="l01012"></a><a class="code" href="classTiXmlComment.html#a0">01012</a>     <a class="code" href="classTiXmlComment.html#a0">TiXmlComment</a>() : <a class="code" href="classTiXmlNode.html">TiXmlNode</a>( <a class="code" href="classTiXmlNode.html">TiXmlNode</a>::COMMENT ) {}
+<a name="l01013"></a>01013     <a class="code" href="classTiXmlComment.html#a0">TiXmlComment</a>( <span class="keyword">const</span> <a class="code" href="classTiXmlComment.html">TiXmlComment</a>&amp; );
+<a name="l01014"></a>01014     <span class="keywordtype">void</span> operator=( <span class="keyword">const</span> <a class="code" href="classTiXmlComment.html">TiXmlComment</a>&amp; base );
 <a name="l01015"></a>01015 
-<a name="l01016"></a>01016     TiXmlAttributeSet attributeSet;
-<a name="l01017"></a>01017 };
-<a name="l01018"></a>01018 
-<a name="l01019"></a>01019 
-<a name="l01022"></a><a class="code" href="classTiXmlComment.html">01022</a> <span class="keyword">class </span><a class="code" href="classTiXmlComment.html">TiXmlComment</a> : <span class="keyword">public</span> <a class="code" href="classTiXmlNode.html">TiXmlNode</a>
-<a name="l01023"></a>01023 {
-<a name="l01024"></a>01024 <span class="keyword">public</span>:
-<a name="l01026"></a><a class="code" href="classTiXmlComment.html#a0">01026</a>     <a class="code" href="classTiXmlComment.html#a0">TiXmlComment</a>() : <a class="code" href="classTiXmlNode.html">TiXmlNode</a>( <a class="code" href="classTiXmlNode.html">TiXmlNode</a>::COMMENT ) {}
-<a name="l01027"></a>01027     <a class="code" href="classTiXmlComment.html#a0">TiXmlComment</a>( <span class="keyword">const</span> <a class="code" href="classTiXmlComment.html">TiXmlComment</a>&amp; );
-<a name="l01028"></a>01028     <span class="keywordtype">void</span> operator=( <span class="keyword">const</span> <a class="code" href="classTiXmlComment.html">TiXmlComment</a>&amp; base );
-<a name="l01029"></a>01029 
-<a name="l01030"></a>01030     <span class="keyword">virtual</span> ~<a class="code" href="classTiXmlComment.html">TiXmlComment</a>() {}
-<a name="l01031"></a>01031 
-<a name="l01033"></a>01033     <span class="keyword">virtual</span> <a class="code" href="classTiXmlNode.html">TiXmlNode</a>* <a class="code" href="classTiXmlComment.html#a4">Clone</a>() <span class="keyword">const</span>;
-<a name="l01035"></a>01035     <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classTiXmlComment.html#a5">Print</a>( FILE* cfile, <span class="keywordtype">int</span> depth ) <span class="keyword">const</span>;
-<a name="l01036"></a>01036 
-<a name="l01037"></a>01037     <span class="comment">/*  Attribtue parsing starts: at the ! of the !--</span>
-<a name="l01038"></a>01038 <span class="comment">                         returns: next char past '&gt;'</span>
-<a name="l01039"></a>01039 <span class="comment">    */</span>
-<a name="l01040"></a>01040     <span class="keyword">virtual</span> <span class="keyword">const</span> <span class="keywordtype">char</span>* Parse( <span class="keyword">const</span> <span class="keywordtype">char</span>* p, TiXmlParsingData* data, TiXmlEncoding encoding );
+<a name="l01016"></a>01016     <span class="keyword">virtual</span> ~<a class="code" href="classTiXmlComment.html">TiXmlComment</a>() {}
+<a name="l01017"></a>01017 
+<a name="l01019"></a>01019     <span class="keyword">virtual</span> <a class="code" href="classTiXmlNode.html">TiXmlNode</a>* <a class="code" href="classTiXmlComment.html#a4">Clone</a>() <span class="keyword">const</span>;
+<a name="l01021"></a>01021     <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classTiXmlComment.html#a5">Print</a>( FILE* cfile, <span class="keywordtype">int</span> depth ) <span class="keyword">const</span>;
+<a name="l01022"></a>01022 
+<a name="l01023"></a>01023     <span class="comment">/*  Attribtue parsing starts: at the ! of the !--</span>
+<a name="l01024"></a>01024 <span class="comment">                         returns: next char past '&gt;'</span>
+<a name="l01025"></a>01025 <span class="comment">    */</span>
+<a name="l01026"></a>01026     <span class="keyword">virtual</span> <span class="keyword">const</span> <span class="keywordtype">char</span>* Parse( <span class="keyword">const</span> <span class="keywordtype">char</span>* p, TiXmlParsingData* data, TiXmlEncoding encoding );
+<a name="l01027"></a>01027 
+<a name="l01028"></a><a class="code" href="classTiXmlComment.html#a7">01028</a>     <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="classTiXmlComment.html">TiXmlComment</a>*  <a class="code" href="classTiXmlComment.html#a7">ToComment</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <span class="keyword">this</span>; } 
+<a name="l01029"></a><a class="code" href="classTiXmlComment.html#a8">01029</a>     <span class="keyword">virtual</span> <a class="code" href="classTiXmlComment.html">TiXmlComment</a>*  <a class="code" href="classTiXmlComment.html#a7">ToComment</a>() { <span class="keywordflow">return</span> <span class="keyword">this</span>; } 
+<a name="l01030"></a>01030 
+<a name="l01031"></a>01031 <span class="keyword">protected</span>:
+<a name="l01032"></a>01032     <span class="keywordtype">void</span> CopyTo( <a class="code" href="classTiXmlComment.html">TiXmlComment</a>* target ) <span class="keyword">const</span>;
+<a name="l01033"></a>01033 
+<a name="l01034"></a>01034     <span class="comment">// used to be public</span>
+<a name="l01035"></a>01035 <span class="preprocessor">    #ifdef TIXML_USE_STL</span>
+<a name="l01036"></a>01036 <span class="preprocessor"></span>        <span class="keyword">virtual</span> <span class="keywordtype">void</span> StreamIn( TIXML_ISTREAM * in, TIXML_STRING * tag );
+<a name="l01037"></a>01037 <span class="preprocessor">    #endif</span>
+<a name="l01038"></a>01038 <span class="preprocessor"></span>    <span class="keyword">virtual</span> <span class="keywordtype">void</span> StreamOut( TIXML_OSTREAM * out ) <span class="keyword">const</span>;
+<a name="l01039"></a>01039 
+<a name="l01040"></a>01040 <span class="keyword">private</span>:
 <a name="l01041"></a>01041 
-<a name="l01042"></a>01042 <span class="keyword">protected</span>:
-<a name="l01043"></a>01043     <span class="keywordtype">void</span> CopyTo( <a class="code" href="classTiXmlComment.html">TiXmlComment</a>* target ) <span class="keyword">const</span>;
+<a name="l01042"></a>01042 };
+<a name="l01043"></a>01043 
 <a name="l01044"></a>01044 
-<a name="l01045"></a>01045     <span class="comment">// used to be public</span>
-<a name="l01046"></a>01046 <span class="preprocessor">    #ifdef TIXML_USE_STL</span>
-<a name="l01047"></a>01047 <span class="preprocessor"></span>        <span class="keyword">virtual</span> <span class="keywordtype">void</span> StreamIn( TIXML_ISTREAM * in, TIXML_STRING * tag );
-<a name="l01048"></a>01048 <span class="preprocessor">    #endif</span>
-<a name="l01049"></a>01049 <span class="preprocessor"></span>    <span class="keyword">virtual</span> <span class="keywordtype">void</span> StreamOut( TIXML_OSTREAM * out ) <span class="keyword">const</span>;
-<a name="l01050"></a>01050 
-<a name="l01051"></a>01051 <span class="keyword">private</span>:
-<a name="l01052"></a>01052 
-<a name="l01053"></a>01053 };
-<a name="l01054"></a>01054 
-<a name="l01055"></a>01055 
-<a name="l01061"></a><a class="code" href="classTiXmlText.html">01061</a> <span class="keyword">class </span><a class="code" href="classTiXmlText.html">TiXmlText</a> : <span class="keyword">public</span> <a class="code" href="classTiXmlNode.html">TiXmlNode</a>
-<a name="l01062"></a>01062 {
-<a name="l01063"></a>01063     <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classTiXmlElement.html">TiXmlElement</a>;
-<a name="l01064"></a>01064 <span class="keyword">public</span>:
-<a name="l01069"></a><a class="code" href="classTiXmlText.html#a0">01069</a>     <a class="code" href="classTiXmlText.html#a0">TiXmlText</a> (<span class="keyword">const</span> <span class="keywordtype">char</span> * initValue ) : <a class="code" href="classTiXmlNode.html">TiXmlNode</a> (<a class="code" href="classTiXmlNode.html">TiXmlNode</a>::TEXT)
-<a name="l01070"></a>01070     {
-<a name="l01071"></a>01071         <a class="code" href="classTiXmlNode.html#a3">SetValue</a>( initValue );
-<a name="l01072"></a>01072         cdata = <span class="keyword">false</span>;
-<a name="l01073"></a>01073     }
-<a name="l01074"></a>01074     <span class="keyword">virtual</span> ~<a class="code" href="classTiXmlText.html">TiXmlText</a>() {}
-<a name="l01075"></a>01075 
-<a name="l01076"></a>01076 <span class="preprocessor">    #ifdef TIXML_USE_STL</span>
-<a name="l01077"></a>01077 <span class="preprocessor"></span>
-<a name="l01078"></a><a class="code" href="classTiXmlText.html#a2">01078</a>     <a class="code" href="classTiXmlText.html#a0">TiXmlText</a>( <span class="keyword">const</span> std::string&amp; initValue ) : <a class="code" href="classTiXmlNode.html">TiXmlNode</a> (<a class="code" href="classTiXmlNode.html">TiXmlNode</a>::TEXT)
-<a name="l01079"></a>01079     {
-<a name="l01080"></a>01080         <a class="code" href="classTiXmlNode.html#a3">SetValue</a>( initValue );
-<a name="l01081"></a>01081         cdata = <span class="keyword">false</span>;
-<a name="l01082"></a>01082     }
-<a name="l01083"></a>01083 <span class="preprocessor">    #endif</span>
-<a name="l01084"></a>01084 <span class="preprocessor"></span>
-<a name="l01085"></a>01085     <a class="code" href="classTiXmlText.html#a0">TiXmlText</a>( <span class="keyword">const</span> <a class="code" href="classTiXmlText.html">TiXmlText</a>&amp; copy ) : <a class="code" href="classTiXmlNode.html">TiXmlNode</a>( <a class="code" href="classTiXmlNode.html">TiXmlNode</a>::TEXT )   { copy.<a class="code" href="classTiXmlText.html#b1">CopyTo</a>( <span class="keyword">this</span> ); }
-<a name="l01086"></a>01086     <span class="keywordtype">void</span> operator=( <span class="keyword">const</span> <a class="code" href="classTiXmlText.html">TiXmlText</a>&amp; base )                             { base.<a class="code" href="classTiXmlText.html#b1">CopyTo</a>( <span class="keyword">this</span> ); }
-<a name="l01087"></a>01087 
-<a name="l01089"></a>01089     <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classTiXmlText.html#a5">Print</a>( FILE* cfile, <span class="keywordtype">int</span> depth ) <span class="keyword">const</span>;
-<a name="l01090"></a>01090 
-<a name="l01092"></a><a class="code" href="classTiXmlText.html#a6">01092</a>     <span class="keywordtype">bool</span> <a class="code" href="classTiXmlText.html#a6">CDATA</a>()                    { <span class="keywordflow">return</span> cdata; }
-<a name="l01094"></a><a class="code" href="classTiXmlText.html#a7">01094</a>     <span class="keywordtype">void</span> <a class="code" href="classTiXmlText.html#a7">SetCDATA</a>( <span class="keywordtype">bool</span> _cdata )    { cdata = _cdata; }
-<a name="l01095"></a>01095 
-<a name="l01096"></a>01096     <span class="keyword">virtual</span> <span class="keyword">const</span> <span class="keywordtype">char</span>* Parse( <span class="keyword">const</span> <span class="keywordtype">char</span>* p, TiXmlParsingData* data, TiXmlEncoding encoding );
-<a name="l01097"></a>01097 
-<a name="l01098"></a>01098 <span class="keyword">protected</span> :
-<a name="l01100"></a>01100     <span class="keyword">virtual</span> <a class="code" href="classTiXmlNode.html">TiXmlNode</a>* <a class="code" href="classTiXmlText.html#b0">Clone</a>() <span class="keyword">const</span>;
-<a name="l01101"></a>01101     <span class="keywordtype">void</span> CopyTo( <a class="code" href="classTiXmlText.html">TiXmlText</a>* target ) <span class="keyword">const</span>;
-<a name="l01102"></a>01102 
-<a name="l01103"></a>01103     <span class="keyword">virtual</span> <span class="keywordtype">void</span> StreamOut ( TIXML_OSTREAM * out ) <span class="keyword">const</span>;
-<a name="l01104"></a>01104     <span class="keywordtype">bool</span> Blank() <span class="keyword">const</span>; <span class="comment">// returns true if all white space and new lines</span>
-<a name="l01105"></a>01105     <span class="comment">// [internal use]</span>
-<a name="l01106"></a>01106 <span class="preprocessor">    #ifdef TIXML_USE_STL</span>
-<a name="l01107"></a>01107 <span class="preprocessor"></span>        <span class="keyword">virtual</span> <span class="keywordtype">void</span> StreamIn( TIXML_ISTREAM * in, TIXML_STRING * tag );
-<a name="l01108"></a>01108 <span class="preprocessor">    #endif</span>
-<a name="l01109"></a>01109 <span class="preprocessor"></span>
-<a name="l01110"></a>01110 <span class="keyword">private</span>:
-<a name="l01111"></a>01111     <span class="keywordtype">bool</span> cdata;         <span class="comment">// true if this should be input and output as a CDATA style text element</span>
-<a name="l01112"></a>01112 };
-<a name="l01113"></a>01113 
-<a name="l01114"></a>01114 
-<a name="l01128"></a><a class="code" href="classTiXmlDeclaration.html">01128</a> <span class="keyword">class </span><a class="code" href="classTiXmlDeclaration.html">TiXmlDeclaration</a> : <span class="keyword">public</span> <a class="code" href="classTiXmlNode.html">TiXmlNode</a>
-<a name="l01129"></a>01129 {
-<a name="l01130"></a>01130 <span class="keyword">public</span>:
-<a name="l01132"></a><a class="code" href="classTiXmlDeclaration.html#a0">01132</a>     <a class="code" href="classTiXmlDeclaration.html#a0">TiXmlDeclaration</a>()   : <a class="code" href="classTiXmlNode.html">TiXmlNode</a>( <a class="code" href="classTiXmlNode.html">TiXmlNode</a>::DECLARATION ) {}
-<a name="l01133"></a>01133 
-<a name="l01134"></a>01134 <span class="preprocessor">#ifdef TIXML_USE_STL</span>
-<a name="l01135"></a>01135 <span class="preprocessor"></span>
-<a name="l01136"></a>01136     <a class="code" href="classTiXmlDeclaration.html#a0">TiXmlDeclaration</a>(   <span class="keyword">const</span> std::string&amp; _version,
-<a name="l01137"></a>01137                         <span class="keyword">const</span> std::string&amp; _encoding,
-<a name="l01138"></a>01138                         <span class="keyword">const</span> std::string&amp; _standalone );
-<a name="l01139"></a>01139 <span class="preprocessor">#endif</span>
-<a name="l01140"></a>01140 <span class="preprocessor"></span>
-<a name="l01142"></a>01142     <a class="code" href="classTiXmlDeclaration.html#a0">TiXmlDeclaration</a>(   <span class="keyword">const</span> <span class="keywordtype">char</span>* _version,
-<a name="l01143"></a>01143                         <span class="keyword">const</span> <span class="keywordtype">char</span>* _encoding,
-<a name="l01144"></a>01144                         <span class="keyword">const</span> <span class="keywordtype">char</span>* _standalone );
-<a name="l01145"></a>01145 
-<a name="l01146"></a>01146     <a class="code" href="classTiXmlDeclaration.html#a0">TiXmlDeclaration</a>( <span class="keyword">const</span> <a class="code" href="classTiXmlDeclaration.html">TiXmlDeclaration</a>&amp; copy );
-<a name="l01147"></a>01147     <span class="keywordtype">void</span> operator=( <span class="keyword">const</span> <a class="code" href="classTiXmlDeclaration.html">TiXmlDeclaration</a>&amp; copy );
-<a name="l01148"></a>01148 
-<a name="l01149"></a>01149     <span class="keyword">virtual</span> ~<a class="code" href="classTiXmlDeclaration.html">TiXmlDeclaration</a>() {}
-<a name="l01150"></a>01150 
-<a name="l01152"></a><a class="code" href="classTiXmlDeclaration.html#a6">01152</a>     <span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="classTiXmlDeclaration.html#a6">Version</a>()<span class="keyword"> const         </span>{ <span class="keywordflow">return</span> version.c_str (); }
-<a name="l01154"></a><a class="code" href="classTiXmlDeclaration.html#a7">01154</a>     <span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="classTiXmlDeclaration.html#a7">Encoding</a>()<span class="keyword"> const        </span>{ <span class="keywordflow">return</span> encoding.c_str (); }
-<a name="l01156"></a><a class="code" href="classTiXmlDeclaration.html#a8">01156</a>     <span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="classTiXmlDeclaration.html#a8">Standalone</a>()<span class="keyword"> const      </span>{ <span class="keywordflow">return</span> standalone.c_str (); }
-<a name="l01157"></a>01157 
-<a name="l01159"></a>01159     <span class="keyword">virtual</span> <a class="code" href="classTiXmlNode.html">TiXmlNode</a>* <a class="code" href="classTiXmlDeclaration.html#a9">Clone</a>() <span class="keyword">const</span>;
-<a name="l01161"></a>01161     <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classTiXmlDeclaration.html#a10">Print</a>( FILE* cfile, <span class="keywordtype">int</span> depth ) <span class="keyword">const</span>;
-<a name="l01162"></a>01162 
-<a name="l01163"></a>01163     <span class="keyword">virtual</span> <span class="keyword">const</span> <span class="keywordtype">char</span>* Parse( <span class="keyword">const</span> <span class="keywordtype">char</span>* p, TiXmlParsingData* data, TiXmlEncoding encoding );
-<a name="l01164"></a>01164 
-<a name="l01165"></a>01165 <span class="keyword">protected</span>:
-<a name="l01166"></a>01166     <span class="keywordtype">void</span> CopyTo( <a class="code" href="classTiXmlDeclaration.html">TiXmlDeclaration</a>* target ) <span class="keyword">const</span>;
-<a name="l01167"></a>01167     <span class="comment">// used to be public</span>
-<a name="l01168"></a>01168 <span class="preprocessor">    #ifdef TIXML_USE_STL</span>
-<a name="l01169"></a>01169 <span class="preprocessor"></span>        <span class="keyword">virtual</span> <span class="keywordtype">void</span> StreamIn( TIXML_ISTREAM * in, TIXML_STRING * tag );
-<a name="l01170"></a>01170 <span class="preprocessor">    #endif</span>
-<a name="l01171"></a>01171 <span class="preprocessor"></span>    <span class="keyword">virtual</span> <span class="keywordtype">void</span> StreamOut ( TIXML_OSTREAM * out) <span class="keyword">const</span>;
-<a name="l01172"></a>01172 
-<a name="l01173"></a>01173 <span class="keyword">private</span>:
+<a name="l01050"></a><a class="code" href="classTiXmlText.html">01050</a> <span class="keyword">class </span><a class="code" href="classTiXmlText.html">TiXmlText</a> : <span class="keyword">public</span> <a class="code" href="classTiXmlNode.html">TiXmlNode</a>
+<a name="l01051"></a>01051 {
+<a name="l01052"></a>01052     <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classTiXmlElement.html">TiXmlElement</a>;
+<a name="l01053"></a>01053 <span class="keyword">public</span>:
+<a name="l01058"></a><a class="code" href="classTiXmlText.html#a0">01058</a>     <a class="code" href="classTiXmlText.html#a0">TiXmlText</a> (<span class="keyword">const</span> <span class="keywordtype">char</span> * initValue ) : <a class="code" href="classTiXmlNode.html">TiXmlNode</a> (<a class="code" href="classTiXmlNode.html">TiXmlNode</a>::TEXT)
+<a name="l01059"></a>01059     {
+<a name="l01060"></a>01060         <a class="code" href="classTiXmlNode.html#a3">SetValue</a>( initValue );
+<a name="l01061"></a>01061         cdata = <span class="keyword">false</span>;
+<a name="l01062"></a>01062     }
+<a name="l01063"></a>01063     <span class="keyword">virtual</span> ~<a class="code" href="classTiXmlText.html">TiXmlText</a>() {}
+<a name="l01064"></a>01064 
+<a name="l01065"></a>01065 <span class="preprocessor">    #ifdef TIXML_USE_STL</span>
+<a name="l01066"></a>01066 <span class="preprocessor"></span>
+<a name="l01067"></a><a class="code" href="classTiXmlText.html#a2">01067</a>     <a class="code" href="classTiXmlText.html#a0">TiXmlText</a>( <span class="keyword">const</span> std::string&amp; initValue ) : <a class="code" href="classTiXmlNode.html">TiXmlNode</a> (<a class="code" href="classTiXmlNode.html">TiXmlNode</a>::TEXT)
+<a name="l01068"></a>01068     {
+<a name="l01069"></a>01069         <a class="code" href="classTiXmlNode.html#a3">SetValue</a>( initValue );
+<a name="l01070"></a>01070         cdata = <span class="keyword">false</span>;
+<a name="l01071"></a>01071     }
+<a name="l01072"></a>01072 <span class="preprocessor">    #endif</span>
+<a name="l01073"></a>01073 <span class="preprocessor"></span>
+<a name="l01074"></a>01074     <a class="code" href="classTiXmlText.html#a0">TiXmlText</a>( <span class="keyword">const</span> <a class="code" href="classTiXmlText.html">TiXmlText</a>&amp; copy ) : <a class="code" href="classTiXmlNode.html">TiXmlNode</a>( <a class="code" href="classTiXmlNode.html">TiXmlNode</a>::TEXT )   { copy.<a class="code" href="classTiXmlText.html#b1">CopyTo</a>( <span class="keyword">this</span> ); }
+<a name="l01075"></a>01075     <span class="keywordtype">void</span> operator=( <span class="keyword">const</span> <a class="code" href="classTiXmlText.html">TiXmlText</a>&amp; base )                             { base.<a class="code" href="classTiXmlText.html#b1">CopyTo</a>( <span class="keyword">this</span> ); }
+<a name="l01076"></a>01076 
+<a name="l01078"></a>01078     <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classTiXmlText.html#a5">Print</a>( FILE* cfile, <span class="keywordtype">int</span> depth ) <span class="keyword">const</span>;
+<a name="l01079"></a>01079 
+<a name="l01081"></a><a class="code" href="classTiXmlText.html#a6">01081</a>     <span class="keywordtype">bool</span> <a class="code" href="classTiXmlText.html#a6">CDATA</a>()                    { <span class="keywordflow">return</span> cdata; }
+<a name="l01083"></a><a class="code" href="classTiXmlText.html#a7">01083</a>     <span class="keywordtype">void</span> <a class="code" href="classTiXmlText.html#a7">SetCDATA</a>( <span class="keywordtype">bool</span> _cdata )    { cdata = _cdata; }
+<a name="l01084"></a>01084 
+<a name="l01085"></a>01085     <span class="keyword">virtual</span> <span class="keyword">const</span> <span class="keywordtype">char</span>* Parse( <span class="keyword">const</span> <span class="keywordtype">char</span>* p, TiXmlParsingData* data, TiXmlEncoding encoding );
+<a name="l01086"></a>01086 
+<a name="l01087"></a><a class="code" href="classTiXmlText.html#a9">01087</a>     <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="classTiXmlText.html">TiXmlText</a>* <a class="code" href="classTiXmlText.html#a9">ToText</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <span class="keyword">this</span>; } 
+<a name="l01088"></a><a class="code" href="classTiXmlText.html#a10">01088</a>     <span class="keyword">virtual</span> <a class="code" href="classTiXmlText.html">TiXmlText</a>*       <a class="code" href="classTiXmlText.html#a9">ToText</a>()       { <span class="keywordflow">return</span> <span class="keyword">this</span>; } 
+<a name="l01089"></a>01089 
+<a name="l01090"></a>01090 <span class="keyword">protected</span> :
+<a name="l01092"></a>01092     <span class="keyword">virtual</span> <a class="code" href="classTiXmlNode.html">TiXmlNode</a>* <a class="code" href="classTiXmlText.html#b0">Clone</a>() <span class="keyword">const</span>;
+<a name="l01093"></a>01093     <span class="keywordtype">void</span> CopyTo( <a class="code" href="classTiXmlText.html">TiXmlText</a>* target ) <span class="keyword">const</span>;
+<a name="l01094"></a>01094 
+<a name="l01095"></a>01095     <span class="keyword">virtual</span> <span class="keywordtype">void</span> StreamOut ( TIXML_OSTREAM * out ) <span class="keyword">const</span>;
+<a name="l01096"></a>01096     <span class="keywordtype">bool</span> Blank() <span class="keyword">const</span>; <span class="comment">// returns true if all white space and new lines</span>
+<a name="l01097"></a>01097     <span class="comment">// [internal use]</span>
+<a name="l01098"></a>01098 <span class="preprocessor">    #ifdef TIXML_USE_STL</span>
+<a name="l01099"></a>01099 <span class="preprocessor"></span>        <span class="keyword">virtual</span> <span class="keywordtype">void</span> StreamIn( TIXML_ISTREAM * in, TIXML_STRING * tag );
+<a name="l01100"></a>01100 <span class="preprocessor">    #endif</span>
+<a name="l01101"></a>01101 <span class="preprocessor"></span>
+<a name="l01102"></a>01102 <span class="keyword">private</span>:
+<a name="l01103"></a>01103     <span class="keywordtype">bool</span> cdata;         <span class="comment">// true if this should be input and output as a CDATA style text element</span>
+<a name="l01104"></a>01104 };
+<a name="l01105"></a>01105 
+<a name="l01106"></a>01106 
+<a name="l01120"></a><a class="code" href="classTiXmlDeclaration.html">01120</a> <span class="keyword">class </span><a class="code" href="classTiXmlDeclaration.html">TiXmlDeclaration</a> : <span class="keyword">public</span> <a class="code" href="classTiXmlNode.html">TiXmlNode</a>
+<a name="l01121"></a>01121 {
+<a name="l01122"></a>01122 <span class="keyword">public</span>:
+<a name="l01124"></a><a class="code" href="classTiXmlDeclaration.html#a0">01124</a>     <a class="code" href="classTiXmlDeclaration.html#a0">TiXmlDeclaration</a>()   : <a class="code" href="classTiXmlNode.html">TiXmlNode</a>( <a class="code" href="classTiXmlNode.html">TiXmlNode</a>::DECLARATION ) {}
+<a name="l01125"></a>01125 
+<a name="l01126"></a>01126 <span class="preprocessor">#ifdef TIXML_USE_STL</span>
+<a name="l01127"></a>01127 <span class="preprocessor"></span>
+<a name="l01128"></a>01128     <a class="code" href="classTiXmlDeclaration.html#a0">TiXmlDeclaration</a>(   <span class="keyword">const</span> std::string&amp; _version,
+<a name="l01129"></a>01129                         <span class="keyword">const</span> std::string&amp; _encoding,
+<a name="l01130"></a>01130                         <span class="keyword">const</span> std::string&amp; _standalone );
+<a name="l01131"></a>01131 <span class="preprocessor">#endif</span>
+<a name="l01132"></a>01132 <span class="preprocessor"></span>
+<a name="l01134"></a>01134     <a class="code" href="classTiXmlDeclaration.html#a0">TiXmlDeclaration</a>(   <span class="keyword">const</span> <span class="keywordtype">char</span>* _version,
+<a name="l01135"></a>01135                         <span class="keyword">const</span> <span class="keywordtype">char</span>* _encoding,
+<a name="l01136"></a>01136                         <span class="keyword">const</span> <span class="keywordtype">char</span>* _standalone );
+<a name="l01137"></a>01137 
+<a name="l01138"></a>01138     <a class="code" href="classTiXmlDeclaration.html#a0">TiXmlDeclaration</a>( <span class="keyword">const</span> <a class="code" href="classTiXmlDeclaration.html">TiXmlDeclaration</a>&amp; copy );
+<a name="l01139"></a>01139     <span class="keywordtype">void</span> operator=( <span class="keyword">const</span> <a class="code" href="classTiXmlDeclaration.html">TiXmlDeclaration</a>&amp; copy );
+<a name="l01140"></a>01140 
+<a name="l01141"></a>01141     <span class="keyword">virtual</span> ~<a class="code" href="classTiXmlDeclaration.html">TiXmlDeclaration</a>() {}
+<a name="l01142"></a>01142 
+<a name="l01144"></a><a class="code" href="classTiXmlDeclaration.html#a6">01144</a>     <span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="classTiXmlDeclaration.html#a6">Version</a>()<span class="keyword"> const         </span>{ <span class="keywordflow">return</span> version.c_str (); }
+<a name="l01146"></a><a class="code" href="classTiXmlDeclaration.html#a7">01146</a>     <span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="classTiXmlDeclaration.html#a7">Encoding</a>()<span class="keyword"> const        </span>{ <span class="keywordflow">return</span> encoding.c_str (); }
+<a name="l01148"></a><a class="code" href="classTiXmlDeclaration.html#a8">01148</a>     <span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="classTiXmlDeclaration.html#a8">Standalone</a>()<span class="keyword"> const      </span>{ <span class="keywordflow">return</span> standalone.c_str (); }
+<a name="l01149"></a>01149 
+<a name="l01151"></a>01151     <span class="keyword">virtual</span> <a class="code" href="classTiXmlNode.html">TiXmlNode</a>* <a class="code" href="classTiXmlDeclaration.html#a9">Clone</a>() <span class="keyword">const</span>;
+<a name="l01153"></a>01153     <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classTiXmlDeclaration.html#a10">Print</a>( FILE* cfile, <span class="keywordtype">int</span> depth ) <span class="keyword">const</span>;
+<a name="l01154"></a>01154 
+<a name="l01155"></a>01155     <span class="keyword">virtual</span> <span class="keyword">const</span> <span class="keywordtype">char</span>* Parse( <span class="keyword">const</span> <span class="keywordtype">char</span>* p, TiXmlParsingData* data, TiXmlEncoding encoding );
+<a name="l01156"></a>01156 
+<a name="l01157"></a><a class="code" href="classTiXmlDeclaration.html#a12">01157</a>     <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="classTiXmlDeclaration.html">TiXmlDeclaration</a>* <a class="code" href="classTiXmlDeclaration.html#a12">ToDeclaration</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <span class="keyword">this</span>; } 
+<a name="l01158"></a><a class="code" href="classTiXmlDeclaration.html#a13">01158</a>     <span class="keyword">virtual</span> <a class="code" href="classTiXmlDeclaration.html">TiXmlDeclaration</a>*       <a class="code" href="classTiXmlDeclaration.html#a12">ToDeclaration</a>()       { <span class="keywordflow">return</span> <span class="keyword">this</span>; } 
+<a name="l01159"></a>01159 
+<a name="l01160"></a>01160 <span class="keyword">protected</span>:
+<a name="l01161"></a>01161     <span class="keywordtype">void</span> CopyTo( <a class="code" href="classTiXmlDeclaration.html">TiXmlDeclaration</a>* target ) <span class="keyword">const</span>;
+<a name="l01162"></a>01162     <span class="comment">// used to be public</span>
+<a name="l01163"></a>01163 <span class="preprocessor">    #ifdef TIXML_USE_STL</span>
+<a name="l01164"></a>01164 <span class="preprocessor"></span>        <span class="keyword">virtual</span> <span class="keywordtype">void</span> StreamIn( TIXML_ISTREAM * in, TIXML_STRING * tag );
+<a name="l01165"></a>01165 <span class="preprocessor">    #endif</span>
+<a name="l01166"></a>01166 <span class="preprocessor"></span>    <span class="keyword">virtual</span> <span class="keywordtype">void</span> StreamOut ( TIXML_OSTREAM * out) <span class="keyword">const</span>;
+<a name="l01167"></a>01167 
+<a name="l01168"></a>01168 <span class="keyword">private</span>:
+<a name="l01169"></a>01169 
+<a name="l01170"></a>01170     TIXML_STRING version;
+<a name="l01171"></a>01171     TIXML_STRING encoding;
+<a name="l01172"></a>01172     TIXML_STRING standalone;
+<a name="l01173"></a>01173 };
 <a name="l01174"></a>01174 
-<a name="l01175"></a>01175     TIXML_STRING version;
-<a name="l01176"></a>01176     TIXML_STRING encoding;
-<a name="l01177"></a>01177     TIXML_STRING standalone;
-<a name="l01178"></a>01178 };
-<a name="l01179"></a>01179 
-<a name="l01180"></a>01180 
-<a name="l01188"></a><a class="code" href="classTiXmlUnknown.html">01188</a> <span class="keyword">class </span><a class="code" href="classTiXmlUnknown.html">TiXmlUnknown</a> : <span class="keyword">public</span> <a class="code" href="classTiXmlNode.html">TiXmlNode</a>
-<a name="l01189"></a>01189 {
-<a name="l01190"></a>01190 <span class="keyword">public</span>:
-<a name="l01191"></a>01191     <a class="code" href="classTiXmlUnknown.html">TiXmlUnknown</a>() : <a class="code" href="classTiXmlNode.html">TiXmlNode</a>( TiXmlNode::UNKNOWN )    {}
-<a name="l01192"></a>01192     <span class="keyword">virtual</span> ~<a class="code" href="classTiXmlUnknown.html">TiXmlUnknown</a>() {}
-<a name="l01193"></a>01193 
-<a name="l01194"></a>01194     <a class="code" href="classTiXmlUnknown.html">TiXmlUnknown</a>( <span class="keyword">const</span> <a class="code" href="classTiXmlUnknown.html">TiXmlUnknown</a>&amp; copy ) : <a class="code" href="classTiXmlNode.html">TiXmlNode</a>( TiXmlNode::UNKNOWN )      { copy.<a class="code" href="classTiXmlUnknown.html#b0">CopyTo</a>( <span class="keyword">this</span> ); }
-<a name="l01195"></a>01195     <span class="keywordtype">void</span> operator=( <span class="keyword">const</span> <a class="code" href="classTiXmlUnknown.html">TiXmlUnknown</a>&amp; copy )                                      { copy.<a class="code" href="classTiXmlUnknown.html#b0">CopyTo</a>( <span class="keyword">this</span> ); }
+<a name="l01175"></a>01175 
+<a name="l01183"></a><a class="code" href="classTiXmlUnknown.html">01183</a> <span class="keyword">class </span><a class="code" href="classTiXmlUnknown.html">TiXmlUnknown</a> : <span class="keyword">public</span> <a class="code" href="classTiXmlNode.html">TiXmlNode</a>
+<a name="l01184"></a>01184 {
+<a name="l01185"></a>01185 <span class="keyword">public</span>:
+<a name="l01186"></a>01186     <a class="code" href="classTiXmlUnknown.html">TiXmlUnknown</a>() : <a class="code" href="classTiXmlNode.html">TiXmlNode</a>( TiXmlNode::UNKNOWN )    {}
+<a name="l01187"></a>01187     <span class="keyword">virtual</span> ~<a class="code" href="classTiXmlUnknown.html">TiXmlUnknown</a>() {}
+<a name="l01188"></a>01188 
+<a name="l01189"></a>01189     <a class="code" href="classTiXmlUnknown.html">TiXmlUnknown</a>( <span class="keyword">const</span> <a class="code" href="classTiXmlUnknown.html">TiXmlUnknown</a>&amp; copy ) : <a class="code" href="classTiXmlNode.html">TiXmlNode</a>( TiXmlNode::UNKNOWN )      { copy.<a class="code" href="classTiXmlUnknown.html#b0">CopyTo</a>( <span class="keyword">this</span> ); }
+<a name="l01190"></a>01190     <span class="keywordtype">void</span> operator=( <span class="keyword">const</span> <a class="code" href="classTiXmlUnknown.html">TiXmlUnknown</a>&amp; copy )                                      { copy.<a class="code" href="classTiXmlUnknown.html#b0">CopyTo</a>( <span class="keyword">this</span> ); }
+<a name="l01191"></a>01191 
+<a name="l01193"></a>01193     <span class="keyword">virtual</span> <a class="code" href="classTiXmlNode.html">TiXmlNode</a>* <a class="code" href="classTiXmlUnknown.html#a4">Clone</a>() <span class="keyword">const</span>;
+<a name="l01195"></a>01195     <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classTiXmlUnknown.html#a5">Print</a>( FILE* cfile, <span class="keywordtype">int</span> depth ) <span class="keyword">const</span>;
 <a name="l01196"></a>01196 
-<a name="l01198"></a>01198     <span class="keyword">virtual</span> <a class="code" href="classTiXmlNode.html">TiXmlNode</a>* <a class="code" href="classTiXmlUnknown.html#a4">Clone</a>() <span class="keyword">const</span>;
-<a name="l01200"></a>01200     <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classTiXmlUnknown.html#a5">Print</a>( FILE* cfile, <span class="keywordtype">int</span> depth ) <span class="keyword">const</span>;
+<a name="l01197"></a>01197     <span class="keyword">virtual</span> <span class="keyword">const</span> <span class="keywordtype">char</span>* Parse( <span class="keyword">const</span> <span class="keywordtype">char</span>* p, TiXmlParsingData* data, TiXmlEncoding encoding );
+<a name="l01198"></a>01198 
+<a name="l01199"></a><a class="code" href="classTiXmlUnknown.html#a7">01199</a>     <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="classTiXmlUnknown.html">TiXmlUnknown</a>*     <a class="code" href="classTiXmlUnknown.html#a7">ToUnknown</a>()<span class="keyword">     const </span>{ <span class="keywordflow">return</span> <span class="keyword">this</span>; } 
+<a name="l01200"></a><a class="code" href="classTiXmlUnknown.html#a8">01200</a>     <span class="keyword">virtual</span> <a class="code" href="classTiXmlUnknown.html">TiXmlUnknown</a>*           <a class="code" href="classTiXmlUnknown.html#a7">ToUnknown</a>()     { <span class="keywordflow">return</span> <span class="keyword">this</span>; } 
 <a name="l01201"></a>01201 
-<a name="l01202"></a>01202     <span class="keyword">virtual</span> <span class="keyword">const</span> <span class="keywordtype">char</span>* Parse( <span class="keyword">const</span> <span class="keywordtype">char</span>* p, TiXmlParsingData* data, TiXmlEncoding encoding );
-<a name="l01203"></a>01203 
-<a name="l01204"></a>01204 <span class="keyword">protected</span>:
-<a name="l01205"></a>01205     <span class="keywordtype">void</span> CopyTo( <a class="code" href="classTiXmlUnknown.html">TiXmlUnknown</a>* target ) <span class="keyword">const</span>;
-<a name="l01206"></a>01206 
-<a name="l01207"></a>01207 <span class="preprocessor">    #ifdef TIXML_USE_STL</span>
-<a name="l01208"></a>01208 <span class="preprocessor"></span>        <span class="keyword">virtual</span> <span class="keywordtype">void</span> StreamIn( TIXML_ISTREAM * in, TIXML_STRING * tag );
-<a name="l01209"></a>01209 <span class="preprocessor">    #endif</span>
-<a name="l01210"></a>01210 <span class="preprocessor"></span>    <span class="keyword">virtual</span> <span class="keywordtype">void</span> StreamOut ( TIXML_OSTREAM * out ) <span class="keyword">const</span>;
+<a name="l01202"></a>01202 <span class="keyword">protected</span>:
+<a name="l01203"></a>01203     <span class="keywordtype">void</span> CopyTo( <a class="code" href="classTiXmlUnknown.html">TiXmlUnknown</a>* target ) <span class="keyword">const</span>;
+<a name="l01204"></a>01204 
+<a name="l01205"></a>01205 <span class="preprocessor">    #ifdef TIXML_USE_STL</span>
+<a name="l01206"></a>01206 <span class="preprocessor"></span>        <span class="keyword">virtual</span> <span class="keywordtype">void</span> StreamIn( TIXML_ISTREAM * in, TIXML_STRING * tag );
+<a name="l01207"></a>01207 <span class="preprocessor">    #endif</span>
+<a name="l01208"></a>01208 <span class="preprocessor"></span>    <span class="keyword">virtual</span> <span class="keywordtype">void</span> StreamOut ( TIXML_OSTREAM * out ) <span class="keyword">const</span>;
+<a name="l01209"></a>01209 
+<a name="l01210"></a>01210 <span class="keyword">private</span>:
 <a name="l01211"></a>01211 
-<a name="l01212"></a>01212 <span class="keyword">private</span>:
+<a name="l01212"></a>01212 };
 <a name="l01213"></a>01213 
-<a name="l01214"></a>01214 };
-<a name="l01215"></a>01215 
-<a name="l01216"></a>01216 
-<a name="l01221"></a><a class="code" href="classTiXmlDocument.html">01221</a> <span class="keyword">class </span><a class="code" href="classTiXmlDocument.html">TiXmlDocument</a> : <span class="keyword">public</span> <a class="code" href="classTiXmlNode.html">TiXmlNode</a>
-<a name="l01222"></a>01222 {
-<a name="l01223"></a>01223 <span class="keyword">public</span>:
-<a name="l01225"></a>01225     <a class="code" href="classTiXmlDocument.html#a0">TiXmlDocument</a>();
-<a name="l01227"></a>01227     <a class="code" href="classTiXmlDocument.html#a0">TiXmlDocument</a>( <span class="keyword">const</span> <span class="keywordtype">char</span> * documentName );
-<a name="l01228"></a>01228 
-<a name="l01229"></a>01229 <span class="preprocessor">    #ifdef TIXML_USE_STL</span>
-<a name="l01230"></a>01230 <span class="preprocessor"></span>
-<a name="l01231"></a>01231     <a class="code" href="classTiXmlDocument.html#a0">TiXmlDocument</a>( <span class="keyword">const</span> std::string&amp; documentName );
-<a name="l01232"></a>01232 <span class="preprocessor">    #endif</span>
-<a name="l01233"></a>01233 <span class="preprocessor"></span>
-<a name="l01234"></a>01234     <a class="code" href="classTiXmlDocument.html#a0">TiXmlDocument</a>( <span class="keyword">const</span> <a class="code" href="classTiXmlDocument.html">TiXmlDocument</a>&amp; copy );
-<a name="l01235"></a>01235     <span class="keywordtype">void</span> operator=( <span class="keyword">const</span> <a class="code" href="classTiXmlDocument.html">TiXmlDocument</a>&amp; copy );
+<a name="l01214"></a>01214 
+<a name="l01219"></a><a class="code" href="classTiXmlDocument.html">01219</a> <span class="keyword">class </span><a class="code" href="classTiXmlDocument.html">TiXmlDocument</a> : <span class="keyword">public</span> <a class="code" href="classTiXmlNode.html">TiXmlNode</a>
+<a name="l01220"></a>01220 {
+<a name="l01221"></a>01221 <span class="keyword">public</span>:
+<a name="l01223"></a>01223     <a class="code" href="classTiXmlDocument.html#a0">TiXmlDocument</a>();
+<a name="l01225"></a>01225     <a class="code" href="classTiXmlDocument.html#a0">TiXmlDocument</a>( <span class="keyword">const</span> <span class="keywordtype">char</span> * documentName );
+<a name="l01226"></a>01226 
+<a name="l01227"></a>01227 <span class="preprocessor">    #ifdef TIXML_USE_STL</span>
+<a name="l01228"></a>01228 <span class="preprocessor"></span>
+<a name="l01229"></a>01229     <a class="code" href="classTiXmlDocument.html#a0">TiXmlDocument</a>( <span class="keyword">const</span> std::string&amp; documentName );
+<a name="l01230"></a>01230 <span class="preprocessor">    #endif</span>
+<a name="l01231"></a>01231 <span class="preprocessor"></span>
+<a name="l01232"></a>01232     <a class="code" href="classTiXmlDocument.html#a0">TiXmlDocument</a>( <span class="keyword">const</span> <a class="code" href="classTiXmlDocument.html">TiXmlDocument</a>&amp; copy );
+<a name="l01233"></a>01233     <span class="keywordtype">void</span> operator=( <span class="keyword">const</span> <a class="code" href="classTiXmlDocument.html">TiXmlDocument</a>&amp; copy );
+<a name="l01234"></a>01234 
+<a name="l01235"></a>01235     <span class="keyword">virtual</span> ~<a class="code" href="classTiXmlDocument.html">TiXmlDocument</a>() {}
 <a name="l01236"></a>01236 
-<a name="l01237"></a>01237     <span class="keyword">virtual</span> ~<a class="code" href="classTiXmlDocument.html">TiXmlDocument</a>() {}
-<a name="l01238"></a>01238 
-<a name="l01243"></a>01243     <span class="keywordtype">bool</span> <a class="code" href="classTiXmlDocument.html#a6">LoadFile</a>( TiXmlEncoding encoding = TIXML_DEFAULT_ENCODING );
-<a name="l01245"></a>01245     <span class="keywordtype">bool</span> <a class="code" href="classTiXmlDocument.html#a7">SaveFile</a>() <span class="keyword">const</span>;
-<a name="l01247"></a>01247     <span class="keywordtype">bool</span> <a class="code" href="classTiXmlDocument.html#a6">LoadFile</a>( <span class="keyword">const</span> <span class="keywordtype">char</span> * filename, TiXmlEncoding encoding = TIXML_DEFAULT_ENCODING );
-<a name="l01249"></a>01249     <span class="keywordtype">bool</span> <a class="code" href="classTiXmlDocument.html#a7">SaveFile</a>( <span class="keyword">const</span> <span class="keywordtype">char</span> * filename ) <span class="keyword">const</span>;
-<a name="l01250"></a>01250 
-<a name="l01251"></a>01251 <span class="preprocessor">    #ifdef TIXML_USE_STL</span>
-<a name="l01252"></a><a class="code" href="classTiXmlDocument.html#a10">01252</a> <span class="preprocessor"></span>    <span class="keywordtype">bool</span> <a class="code" href="classTiXmlDocument.html#a6">LoadFile</a>( <span class="keyword">const</span> std::string&amp; filename, TiXmlEncoding encoding = TIXML_DEFAULT_ENCODING )           
-<a name="l01253"></a>01253     {
-<a name="l01254"></a>01254         StringToBuffer f( filename );
-<a name="l01255"></a>01255         <span class="keywordflow">return</span> ( f.buffer &amp;&amp; LoadFile( f.buffer, encoding ));
-<a name="l01256"></a>01256     }
-<a name="l01257"></a><a class="code" href="classTiXmlDocument.html#a11">01257</a>     <span class="keywordtype">bool</span> <a class="code" href="classTiXmlDocument.html#a7">SaveFile</a>( <span class="keyword">const</span> std::string&amp; filename ) <span class="keyword">const</span>      
-<a name="l01258"></a>01258     {
-<a name="l01259"></a>01259         StringToBuffer f( filename );
-<a name="l01260"></a>01260         <span class="keywordflow">return</span> ( f.buffer &amp;&amp; SaveFile( f.buffer ));
-<a name="l01261"></a>01261     }
-<a name="l01262"></a>01262 <span class="preprocessor">    #endif</span>
-<a name="l01263"></a>01263 <span class="preprocessor"></span>
-<a name="l01268"></a>01268     <span class="keyword">virtual</span> <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="classTiXmlDocument.html#a12">Parse</a>( <span class="keyword">const</span> <span class="keywordtype">char</span>* p, TiXmlParsingData* data = 0, TiXmlEncoding encoding = TIXML_DEFAULT_ENCODING );
-<a name="l01269"></a>01269 
-<a name="l01274"></a><a class="code" href="classTiXmlDocument.html#a13">01274</a>     <span class="keyword">const</span> <a class="code" href="classTiXmlElement.html">TiXmlElement</a>* <a class="code" href="classTiXmlDocument.html#a13">RootElement</a>()<span class="keyword"> const     </span>{ <span class="keywordflow">return</span> <a class="code" href="classTiXmlNode.html#a50">FirstChildElement</a>(); }
-<a name="l01275"></a>01275     <a class="code" href="classTiXmlElement.html">TiXmlElement</a>* <a class="code" href="classTiXmlDocument.html#a13">RootElement</a>()                 { <span class="keywordflow">return</span> <a class="code" href="classTiXmlNode.html#a50">FirstChildElement</a>(); }
-<a name="l01276"></a>01276 
-<a name="l01282"></a><a class="code" href="classTiXmlDocument.html#a15">01282</a>     <span class="keywordtype">bool</span> <a class="code" href="classTiXmlDocument.html#a15">Error</a>()<span class="keyword"> const                      </span>{ <span class="keywordflow">return</span> error; }
-<a name="l01283"></a>01283 
-<a name="l01285"></a><a class="code" href="classTiXmlDocument.html#a16">01285</a>     <span class="keyword">const</span> <span class="keywordtype">char</span> * <a class="code" href="classTiXmlDocument.html#a16">ErrorDesc</a>()<span class="keyword"> const  </span>{ <span class="keywordflow">return</span> errorDesc.c_str (); }
-<a name="l01286"></a>01286 
-<a name="l01290"></a><a class="code" href="classTiXmlDocument.html#a17">01290</a>     <span class="keywordtype">int</span> <a class="code" href="classTiXmlDocument.html#a17">ErrorId</a>()<span class="keyword">   const               </span>{ <span class="keywordflow">return</span> errorId; }
-<a name="l01291"></a>01291 
-<a name="l01299"></a><a class="code" href="classTiXmlDocument.html#a18">01299</a>     <span class="keywordtype">int</span> <a class="code" href="classTiXmlDocument.html#a18">ErrorRow</a>()  { <span class="keywordflow">return</span> errorLocation.row+1; }
-<a name="l01300"></a><a class="code" href="classTiXmlDocument.html#a19">01300</a>     <span class="keywordtype">int</span> <a class="code" href="classTiXmlDocument.html#a19">ErrorCol</a>()  { <span class="keywordflow">return</span> errorLocation.col+1; } 
-<a name="l01301"></a>01301 
-<a name="l01326"></a><a class="code" href="classTiXmlDocument.html#a20">01326</a>     <span class="keywordtype">void</span> <a class="code" href="classTiXmlDocument.html#a20">SetTabSize</a>( <span class="keywordtype">int</span> _tabsize )     { tabsize = _tabsize; }
-<a name="l01327"></a>01327 
-<a name="l01328"></a>01328     <span class="keywordtype">int</span> TabSize()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> tabsize; }
-<a name="l01329"></a>01329 
-<a name="l01333"></a><a class="code" href="classTiXmlDocument.html#a22">01333</a>     <span class="keywordtype">void</span> <a class="code" href="classTiXmlDocument.html#a22">ClearError</a>()                       {   error = <span class="keyword">false</span>; 
-<a name="l01334"></a>01334                                                 errorId = 0; 
-<a name="l01335"></a>01335                                                 errorDesc = <span class="stringliteral">""</span>; 
-<a name="l01336"></a>01336                                                 errorLocation.row = errorLocation.col = 0; 
-<a name="l01337"></a>01337                                                 <span class="comment">//errorLocation.last = 0; </span>
-<a name="l01338"></a>01338                                             }
-<a name="l01339"></a>01339 
-<a name="l01341"></a><a class="code" href="classTiXmlDocument.html#a23">01341</a>     <span class="keywordtype">void</span> <a class="code" href="classTiXmlDocument.html#a23">Print</a>()<span class="keyword"> const                      </span>{ <a class="code" href="classTiXmlDocument.html#a23">Print</a>( stdout, 0 ); }
-<a name="l01342"></a>01342 
-<a name="l01344"></a>01344     <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classTiXmlDocument.html#a23">Print</a>( FILE* cfile, <span class="keywordtype">int</span> depth = 0 ) <span class="keyword">const</span>;
-<a name="l01345"></a>01345     <span class="comment">// [internal use]</span>
-<a name="l01346"></a>01346     <span class="keywordtype">void</span> SetError( <span class="keywordtype">int</span> err, <span class="keyword">const</span> <span class="keywordtype">char</span>* errorLocation, TiXmlParsingData* prevData, TiXmlEncoding encoding );
-<a name="l01347"></a>01347 
-<a name="l01348"></a>01348 <span class="keyword">protected</span> :
-<a name="l01349"></a>01349     <span class="keyword">virtual</span> <span class="keywordtype">void</span> StreamOut ( TIXML_OSTREAM * out) <span class="keyword">const</span>;
-<a name="l01350"></a>01350     <span class="comment">// [internal use]</span>
-<a name="l01351"></a>01351     <span class="keyword">virtual</span> <a class="code" href="classTiXmlNode.html">TiXmlNode</a>* <a class="code" href="classTiXmlDocument.html#b1">Clone</a>() <span class="keyword">const</span>;
-<a name="l01352"></a>01352 <span class="preprocessor">    #ifdef TIXML_USE_STL</span>
-<a name="l01353"></a>01353 <span class="preprocessor"></span>        <span class="keyword">virtual</span> <span class="keywordtype">void</span> StreamIn( TIXML_ISTREAM * in, TIXML_STRING * tag );
-<a name="l01354"></a>01354 <span class="preprocessor">    #endif</span>
-<a name="l01355"></a>01355 <span class="preprocessor"></span>
-<a name="l01356"></a>01356 <span class="keyword">private</span>:
-<a name="l01357"></a>01357     <span class="keywordtype">void</span> CopyTo( <a class="code" href="classTiXmlDocument.html">TiXmlDocument</a>* target ) <span class="keyword">const</span>;
-<a name="l01358"></a>01358 
-<a name="l01359"></a>01359     <span class="keywordtype">bool</span> error;
-<a name="l01360"></a>01360     <span class="keywordtype">int</span>  errorId;
-<a name="l01361"></a>01361     TIXML_STRING errorDesc;
-<a name="l01362"></a>01362     <span class="keywordtype">int</span> tabsize;
-<a name="l01363"></a>01363     TiXmlCursor errorLocation;
-<a name="l01364"></a>01364     <span class="keywordtype">bool</span> useMicrosoftBOM;       <span class="comment">// the UTF-8 BOM were found when read. Note this, and try to write.</span>
-<a name="l01365"></a>01365 };
-<a name="l01366"></a>01366 
+<a name="l01241"></a>01241     <span class="keywordtype">bool</span> <a class="code" href="classTiXmlDocument.html#a6">LoadFile</a>( TiXmlEncoding encoding = TIXML_DEFAULT_ENCODING );
+<a name="l01243"></a>01243     <span class="keywordtype">bool</span> <a class="code" href="classTiXmlDocument.html#a7">SaveFile</a>() <span class="keyword">const</span>;
+<a name="l01245"></a>01245     <span class="keywordtype">bool</span> <a class="code" href="classTiXmlDocument.html#a6">LoadFile</a>( <span class="keyword">const</span> <span class="keywordtype">char</span> * filename, TiXmlEncoding encoding = TIXML_DEFAULT_ENCODING );
+<a name="l01247"></a>01247     <span class="keywordtype">bool</span> <a class="code" href="classTiXmlDocument.html#a7">SaveFile</a>( <span class="keyword">const</span> <span class="keywordtype">char</span> * filename ) <span class="keyword">const</span>;
+<a name="l01253"></a>01253     <span class="keywordtype">bool</span> <a class="code" href="classTiXmlDocument.html#a6">LoadFile</a>( FILE*, TiXmlEncoding encoding = TIXML_DEFAULT_ENCODING );
+<a name="l01255"></a>01255     <span class="keywordtype">bool</span> <a class="code" href="classTiXmlDocument.html#a7">SaveFile</a>( FILE* ) <span class="keyword">const</span>;
+<a name="l01256"></a>01256 
+<a name="l01257"></a>01257 <span class="preprocessor">    #ifdef TIXML_USE_STL</span>
+<a name="l01258"></a><a class="code" href="classTiXmlDocument.html#a12">01258</a> <span class="preprocessor"></span>    <span class="keywordtype">bool</span> <a class="code" href="classTiXmlDocument.html#a6">LoadFile</a>( <span class="keyword">const</span> std::string&amp; filename, TiXmlEncoding encoding = TIXML_DEFAULT_ENCODING )           
+<a name="l01259"></a>01259     {
+<a name="l01260"></a>01260         StringToBuffer f( filename );
+<a name="l01261"></a>01261         <span class="keywordflow">return</span> ( f.buffer &amp;&amp; LoadFile( f.buffer, encoding ));
+<a name="l01262"></a>01262     }
+<a name="l01263"></a><a class="code" href="classTiXmlDocument.html#a13">01263</a>     <span class="keywordtype">bool</span> <a class="code" href="classTiXmlDocument.html#a7">SaveFile</a>( <span class="keyword">const</span> std::string&amp; filename ) <span class="keyword">const</span>      
+<a name="l01264"></a>01264     {
+<a name="l01265"></a>01265         StringToBuffer f( filename );
+<a name="l01266"></a>01266         <span class="keywordflow">return</span> ( f.buffer &amp;&amp; SaveFile( f.buffer ));
+<a name="l01267"></a>01267     }
+<a name="l01268"></a>01268 <span class="preprocessor">    #endif</span>
+<a name="l01269"></a>01269 <span class="preprocessor"></span>
+<a name="l01274"></a>01274     <span class="keyword">virtual</span> <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="classTiXmlDocument.html#a14">Parse</a>( <span class="keyword">const</span> <span class="keywordtype">char</span>* p, TiXmlParsingData* data = 0, TiXmlEncoding encoding = TIXML_DEFAULT_ENCODING );
+<a name="l01275"></a>01275 
+<a name="l01280"></a><a class="code" href="classTiXmlDocument.html#a15">01280</a>     <span class="keyword">const</span> <a class="code" href="classTiXmlElement.html">TiXmlElement</a>* <a class="code" href="classTiXmlDocument.html#a15">RootElement</a>()<span class="keyword"> const     </span>{ <span class="keywordflow">return</span> <a class="code" href="classTiXmlNode.html#a50">FirstChildElement</a>(); }
+<a name="l01281"></a>01281     <a class="code" href="classTiXmlElement.html">TiXmlElement</a>* <a class="code" href="classTiXmlDocument.html#a15">RootElement</a>()                 { <span class="keywordflow">return</span> <a class="code" href="classTiXmlNode.html#a50">FirstChildElement</a>(); }
+<a name="l01282"></a>01282 
+<a name="l01288"></a><a class="code" href="classTiXmlDocument.html#a17">01288</a>     <span class="keywordtype">bool</span> <a class="code" href="classTiXmlDocument.html#a17">Error</a>()<span class="keyword"> const                      </span>{ <span class="keywordflow">return</span> error; }
+<a name="l01289"></a>01289 
+<a name="l01291"></a><a class="code" href="classTiXmlDocument.html#a18">01291</a>     <span class="keyword">const</span> <span class="keywordtype">char</span> * <a class="code" href="classTiXmlDocument.html#a18">ErrorDesc</a>()<span class="keyword"> const  </span>{ <span class="keywordflow">return</span> errorDesc.c_str (); }
+<a name="l01292"></a>01292 
+<a name="l01296"></a><a class="code" href="classTiXmlDocument.html#a19">01296</a>     <span class="keywordtype">int</span> <a class="code" href="classTiXmlDocument.html#a19">ErrorId</a>()<span class="keyword">   const               </span>{ <span class="keywordflow">return</span> errorId; }
+<a name="l01297"></a>01297 
+<a name="l01305"></a><a class="code" href="classTiXmlDocument.html#a20">01305</a>     <span class="keywordtype">int</span> <a class="code" href="classTiXmlDocument.html#a20">ErrorRow</a>()  { <span class="keywordflow">return</span> errorLocation.row+1; }
+<a name="l01306"></a><a class="code" href="classTiXmlDocument.html#a21">01306</a>     <span class="keywordtype">int</span> <a class="code" href="classTiXmlDocument.html#a21">ErrorCol</a>()  { <span class="keywordflow">return</span> errorLocation.col+1; } 
+<a name="l01307"></a>01307 
+<a name="l01332"></a><a class="code" href="classTiXmlDocument.html#a22">01332</a>     <span class="keywordtype">void</span> <a class="code" href="classTiXmlDocument.html#a22">SetTabSize</a>( <span class="keywordtype">int</span> _tabsize )     { tabsize = _tabsize; }
+<a name="l01333"></a>01333 
+<a name="l01334"></a>01334     <span class="keywordtype">int</span> TabSize()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> tabsize; }
+<a name="l01335"></a>01335 
+<a name="l01339"></a><a class="code" href="classTiXmlDocument.html#a24">01339</a>     <span class="keywordtype">void</span> <a class="code" href="classTiXmlDocument.html#a24">ClearError</a>()                       {   error = <span class="keyword">false</span>; 
+<a name="l01340"></a>01340                                                 errorId = 0; 
+<a name="l01341"></a>01341                                                 errorDesc = <span class="stringliteral">""</span>; 
+<a name="l01342"></a>01342                                                 errorLocation.row = errorLocation.col = 0; 
+<a name="l01343"></a>01343                                                 <span class="comment">//errorLocation.last = 0; </span>
+<a name="l01344"></a>01344                                             }
+<a name="l01345"></a>01345 
+<a name="l01347"></a><a class="code" href="classTiXmlDocument.html#a25">01347</a>     <span class="keywordtype">void</span> <a class="code" href="classTiXmlDocument.html#a25">Print</a>()<span class="keyword"> const                      </span>{ <a class="code" href="classTiXmlDocument.html#a25">Print</a>( stdout, 0 ); }
+<a name="l01348"></a>01348 
+<a name="l01350"></a>01350     <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classTiXmlDocument.html#a25">Print</a>( FILE* cfile, <span class="keywordtype">int</span> depth = 0 ) <span class="keyword">const</span>;
+<a name="l01351"></a>01351     <span class="comment">// [internal use]</span>
+<a name="l01352"></a>01352     <span class="keywordtype">void</span> SetError( <span class="keywordtype">int</span> err, <span class="keyword">const</span> <span class="keywordtype">char</span>* errorLocation, TiXmlParsingData* prevData, TiXmlEncoding encoding );
+<a name="l01353"></a>01353 
+<a name="l01354"></a><a class="code" href="classTiXmlDocument.html#a28">01354</a>     <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="classTiXmlDocument.html">TiXmlDocument</a>*    <a class="code" href="classTiXmlDocument.html#a28">ToDocument</a>()<span class="keyword">    const </span>{ <span class="keywordflow">return</span> <span class="keyword">this</span>; } 
+<a name="l01355"></a><a class="code" href="classTiXmlDocument.html#a29">01355</a>     <span class="keyword">virtual</span> <a class="code" href="classTiXmlDocument.html">TiXmlDocument</a>*          <a class="code" href="classTiXmlDocument.html#a28">ToDocument</a>()          { <span class="keywordflow">return</span> <span class="keyword">this</span>; } 
+<a name="l01356"></a>01356 
+<a name="l01357"></a>01357 <span class="keyword">protected</span> :
+<a name="l01358"></a>01358     <span class="keyword">virtual</span> <span class="keywordtype">void</span> StreamOut ( TIXML_OSTREAM * out) <span class="keyword">const</span>;
+<a name="l01359"></a>01359     <span class="comment">// [internal use]</span>
+<a name="l01360"></a>01360     <span class="keyword">virtual</span> <a class="code" href="classTiXmlNode.html">TiXmlNode</a>* <a class="code" href="classTiXmlDocument.html#b1">Clone</a>() <span class="keyword">const</span>;
+<a name="l01361"></a>01361 <span class="preprocessor">    #ifdef TIXML_USE_STL</span>
+<a name="l01362"></a>01362 <span class="preprocessor"></span>        <span class="keyword">virtual</span> <span class="keywordtype">void</span> StreamIn( TIXML_ISTREAM * in, TIXML_STRING * tag );
+<a name="l01363"></a>01363 <span class="preprocessor">    #endif</span>
+<a name="l01364"></a>01364 <span class="preprocessor"></span>
+<a name="l01365"></a>01365 <span class="keyword">private</span>:
+<a name="l01366"></a>01366     <span class="keywordtype">void</span> CopyTo( <a class="code" href="classTiXmlDocument.html">TiXmlDocument</a>* target ) <span class="keyword">const</span>;
 <a name="l01367"></a>01367 
-<a name="l01448"></a><a class="code" href="classTiXmlHandle.html">01448</a> <span class="keyword">class </span><a class="code" href="classTiXmlHandle.html">TiXmlHandle</a>
-<a name="l01449"></a>01449 {
-<a name="l01450"></a>01450 <span class="keyword">public</span>:
-<a name="l01452"></a><a class="code" href="classTiXmlHandle.html#a0">01452</a>     <a class="code" href="classTiXmlHandle.html#a0">TiXmlHandle</a>( <a class="code" href="classTiXmlNode.html">TiXmlNode</a>* _node )                 { this-&gt;node = _node; }
-<a name="l01454"></a><a class="code" href="classTiXmlHandle.html#a1">01454</a>     <a class="code" href="classTiXmlHandle.html#a0">TiXmlHandle</a>( <span class="keyword">const</span> <a class="code" href="classTiXmlHandle.html">TiXmlHandle</a>&amp; ref )           { this-&gt;node = ref.<a class="code" href="classTiXmlHandle.html#r0">node</a>; }
-<a name="l01455"></a>01455     <a class="code" href="classTiXmlHandle.html">TiXmlHandle</a> operator=( <span class="keyword">const</span> <a class="code" href="classTiXmlHandle.html">TiXmlHandle</a>&amp; ref ) { this-&gt;node = ref.<a class="code" href="classTiXmlHandle.html#r0">node</a>; <span class="keywordflow">return</span> *<span class="keyword">this</span>; }
-<a name="l01456"></a>01456 
-<a name="l01458"></a>01458     <a class="code" href="classTiXmlHandle.html">TiXmlHandle</a> <a class="code" href="classTiXmlHandle.html#a3">FirstChild</a>() <span class="keyword">const</span>;
-<a name="l01460"></a>01460     <a class="code" href="classTiXmlHandle.html">TiXmlHandle</a> <a class="code" href="classTiXmlHandle.html#a3">FirstChild</a>( <span class="keyword">const</span> <span class="keywordtype">char</span> * value ) <span class="keyword">const</span>;
-<a name="l01462"></a>01462     <a class="code" href="classTiXmlHandle.html">TiXmlHandle</a> <a class="code" href="classTiXmlHandle.html#a5">FirstChildElement</a>() <span class="keyword">const</span>;
-<a name="l01464"></a>01464     <a class="code" href="classTiXmlHandle.html">TiXmlHandle</a> <a class="code" href="classTiXmlHandle.html#a5">FirstChildElement</a>( <span class="keyword">const</span> <span class="keywordtype">char</span> * value ) <span class="keyword">const</span>;
+<a name="l01368"></a>01368     <span class="keywordtype">bool</span> error;
+<a name="l01369"></a>01369     <span class="keywordtype">int</span>  errorId;
+<a name="l01370"></a>01370     TIXML_STRING errorDesc;
+<a name="l01371"></a>01371     <span class="keywordtype">int</span> tabsize;
+<a name="l01372"></a>01372     TiXmlCursor errorLocation;
+<a name="l01373"></a>01373     <span class="keywordtype">bool</span> useMicrosoftBOM;       <span class="comment">// the UTF-8 BOM were found when read. Note this, and try to write.</span>
+<a name="l01374"></a>01374 };
+<a name="l01375"></a>01375 
+<a name="l01376"></a>01376 
+<a name="l01457"></a><a class="code" href="classTiXmlHandle.html">01457</a> <span class="keyword">class </span><a class="code" href="classTiXmlHandle.html">TiXmlHandle</a>
+<a name="l01458"></a>01458 {
+<a name="l01459"></a>01459 <span class="keyword">public</span>:
+<a name="l01461"></a><a class="code" href="classTiXmlHandle.html#a0">01461</a>     <a class="code" href="classTiXmlHandle.html#a0">TiXmlHandle</a>( <a class="code" href="classTiXmlNode.html">TiXmlNode</a>* _node )                 { this-&gt;node = _node; }
+<a name="l01463"></a><a class="code" href="classTiXmlHandle.html#a1">01463</a>     <a class="code" href="classTiXmlHandle.html#a0">TiXmlHandle</a>( <span class="keyword">const</span> <a class="code" href="classTiXmlHandle.html">TiXmlHandle</a>&amp; ref )           { this-&gt;node = ref.<a class="code" href="classTiXmlHandle.html#r0">node</a>; }
+<a name="l01464"></a>01464     <a class="code" href="classTiXmlHandle.html">TiXmlHandle</a> operator=( <span class="keyword">const</span> <a class="code" href="classTiXmlHandle.html">TiXmlHandle</a>&amp; ref ) { this-&gt;node = ref.<a class="code" href="classTiXmlHandle.html#r0">node</a>; <span class="keywordflow">return</span> *<span class="keyword">this</span>; }
 <a name="l01465"></a>01465 
-<a name="l01469"></a>01469     <a class="code" href="classTiXmlHandle.html">TiXmlHandle</a> <a class="code" href="classTiXmlHandle.html#a7">Child</a>( <span class="keyword">const</span> <span class="keywordtype">char</span>* value, <span class="keywordtype">int</span> index ) <span class="keyword">const</span>;
-<a name="l01473"></a>01473     <a class="code" href="classTiXmlHandle.html">TiXmlHandle</a> <a class="code" href="classTiXmlHandle.html#a7">Child</a>( <span class="keywordtype">int</span> index ) <span class="keyword">const</span>;
-<a name="l01478"></a>01478     <a class="code" href="classTiXmlHandle.html">TiXmlHandle</a> <a class="code" href="classTiXmlHandle.html#a9">ChildElement</a>( <span class="keyword">const</span> <span class="keywordtype">char</span>* value, <span class="keywordtype">int</span> index ) <span class="keyword">const</span>;
-<a name="l01483"></a>01483     <a class="code" href="classTiXmlHandle.html">TiXmlHandle</a> <a class="code" href="classTiXmlHandle.html#a9">ChildElement</a>( <span class="keywordtype">int</span> index ) <span class="keyword">const</span>;
-<a name="l01484"></a>01484 
-<a name="l01485"></a>01485 <span class="preprocessor">    #ifdef TIXML_USE_STL</span>
-<a name="l01486"></a>01486 <span class="preprocessor"></span>    <a class="code" href="classTiXmlHandle.html">TiXmlHandle</a> <a class="code" href="classTiXmlHandle.html#a3">FirstChild</a>( <span class="keyword">const</span> std::string&amp; _value )<span class="keyword"> const               </span>{ <span class="keywordflow">return</span> <a class="code" href="classTiXmlHandle.html#a3">FirstChild</a>( _value.c_str() ); }
-<a name="l01487"></a>01487     <a class="code" href="classTiXmlHandle.html">TiXmlHandle</a> <a class="code" href="classTiXmlHandle.html#a5">FirstChildElement</a>( <span class="keyword">const</span> std::string&amp; _value )<span class="keyword"> const        </span>{ <span class="keywordflow">return</span> <a class="code" href="classTiXmlHandle.html#a5">FirstChildElement</a>( _value.c_str() ); }
-<a name="l01488"></a>01488 
-<a name="l01489"></a>01489     <a class="code" href="classTiXmlHandle.html">TiXmlHandle</a> <a class="code" href="classTiXmlHandle.html#a7">Child</a>( <span class="keyword">const</span> std::string&amp; _value, <span class="keywordtype">int</span> index )<span class="keyword"> const         </span>{ <span class="keywordflow">return</span> <a class="code" href="classTiXmlHandle.html#a7">Child</a>( _value.c_str(), index ); }
-<a name="l01490"></a>01490     <a class="code" href="classTiXmlHandle.html">TiXmlHandle</a> <a class="code" href="classTiXmlHandle.html#a9">ChildElement</a>( <span class="keyword">const</span> std::string&amp; _value, <span class="keywordtype">int</span> index )<span class="keyword"> const  </span>{ <span class="keywordflow">return</span> <a class="code" href="classTiXmlHandle.html#a9">ChildElement</a>( _value.c_str(), index ); }
-<a name="l01491"></a>01491 <span class="preprocessor">    #endif</span>
-<a name="l01492"></a>01492 <span class="preprocessor"></span>
-<a name="l01494"></a><a class="code" href="classTiXmlHandle.html#a15">01494</a>     <a class="code" href="classTiXmlNode.html">TiXmlNode</a>* <a class="code" href="classTiXmlHandle.html#a15">Node</a>()<span class="keyword"> const         </span>{ <span class="keywordflow">return</span> node; } 
-<a name="l01496"></a><a class="code" href="classTiXmlHandle.html#a16">01496</a>     <a class="code" href="classTiXmlElement.html">TiXmlElement</a>* <a class="code" href="classTiXmlHandle.html#a16">Element</a>()<span class="keyword"> const   </span>{ <span class="keywordflow">return</span> ( ( node &amp;&amp; node-&gt;<a class="code" href="classTiXmlNode.html#a61">ToElement</a>() ) ? node-&gt;<a class="code" href="classTiXmlNode.html#a61">ToElement</a>() : 0 ); }
-<a name="l01498"></a><a class="code" href="classTiXmlHandle.html#a17">01498</a>     <a class="code" href="classTiXmlText.html">TiXmlText</a>* <a class="code" href="classTiXmlHandle.html#a17">Text</a>()<span class="keyword"> const         </span>{ <span class="keywordflow">return</span> ( ( node &amp;&amp; node-&gt;<a class="code" href="classTiXmlNode.html#a64">ToText</a>() ) ? node-&gt;<a class="code" href="classTiXmlNode.html#a64">ToText</a>() : 0 ); }
-<a name="l01500"></a><a class="code" href="classTiXmlHandle.html#a18">01500</a>     <a class="code" href="classTiXmlUnknown.html">TiXmlUnknown</a>* <a class="code" href="classTiXmlHandle.html#a18">Unknown</a>()<span class="keyword"> const           </span>{ <span class="keywordflow">return</span> ( ( node &amp;&amp; node-&gt;<a class="code" href="classTiXmlNode.html#a63">ToUnknown</a>() ) ? node-&gt;<a class="code" href="classTiXmlNode.html#a63">ToUnknown</a>() : 0 ); }
-<a name="l01501"></a>01501 
-<a name="l01502"></a>01502 <span class="keyword">private</span>:
-<a name="l01503"></a>01503     <a class="code" href="classTiXmlNode.html">TiXmlNode</a>* node;
-<a name="l01504"></a>01504 };
-<a name="l01505"></a>01505 
-<a name="l01506"></a>01506 <span class="preprocessor">#ifdef _MSC_VER</span>
-<a name="l01507"></a>01507 <span class="preprocessor"></span><span class="preprocessor">#pragma warning( pop )</span>
-<a name="l01508"></a>01508 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
-<a name="l01509"></a>01509 <span class="preprocessor"></span>
-<a name="l01510"></a>01510 <span class="preprocessor">#endif</span>
-<a name="l01511"></a>01511 <span class="preprocessor"></span>
-</pre></div><hr size="1"><address style="align: right;"><small>Generated on Sat Oct 8 14:15:30 2005 for TinyXml by&nbsp;
+<a name="l01467"></a>01467     <a class="code" href="classTiXmlHandle.html">TiXmlHandle</a> <a class="code" href="classTiXmlHandle.html#a3">FirstChild</a>() <span class="keyword">const</span>;
+<a name="l01469"></a>01469     <a class="code" href="classTiXmlHandle.html">TiXmlHandle</a> <a class="code" href="classTiXmlHandle.html#a3">FirstChild</a>( <span class="keyword">const</span> <span class="keywordtype">char</span> * value ) <span class="keyword">const</span>;
+<a name="l01471"></a>01471     <a class="code" href="classTiXmlHandle.html">TiXmlHandle</a> <a class="code" href="classTiXmlHandle.html#a5">FirstChildElement</a>() <span class="keyword">const</span>;
+<a name="l01473"></a>01473     <a class="code" href="classTiXmlHandle.html">TiXmlHandle</a> <a class="code" href="classTiXmlHandle.html#a5">FirstChildElement</a>( <span class="keyword">const</span> <span class="keywordtype">char</span> * value ) <span class="keyword">const</span>;
+<a name="l01474"></a>01474 
+<a name="l01478"></a>01478     <a class="code" href="classTiXmlHandle.html">TiXmlHandle</a> <a class="code" href="classTiXmlHandle.html#a7">Child</a>( <span class="keyword">const</span> <span class="keywordtype">char</span>* value, <span class="keywordtype">int</span> index ) <span class="keyword">const</span>;
+<a name="l01482"></a>01482     <a class="code" href="classTiXmlHandle.html">TiXmlHandle</a> <a class="code" href="classTiXmlHandle.html#a7">Child</a>( <span class="keywordtype">int</span> index ) <span class="keyword">const</span>;
+<a name="l01487"></a>01487     <a class="code" href="classTiXmlHandle.html">TiXmlHandle</a> <a class="code" href="classTiXmlHandle.html#a9">ChildElement</a>( <span class="keyword">const</span> <span class="keywordtype">char</span>* value, <span class="keywordtype">int</span> index ) <span class="keyword">const</span>;
+<a name="l01492"></a>01492     <a class="code" href="classTiXmlHandle.html">TiXmlHandle</a> <a class="code" href="classTiXmlHandle.html#a9">ChildElement</a>( <span class="keywordtype">int</span> index ) <span class="keyword">const</span>;
+<a name="l01493"></a>01493 
+<a name="l01494"></a>01494 <span class="preprocessor">    #ifdef TIXML_USE_STL</span>
+<a name="l01495"></a>01495 <span class="preprocessor"></span>    <a class="code" href="classTiXmlHandle.html">TiXmlHandle</a> <a class="code" href="classTiXmlHandle.html#a3">FirstChild</a>( <span class="keyword">const</span> std::string&amp; _value )<span class="keyword"> const               </span>{ <span class="keywordflow">return</span> <a class="code" href="classTiXmlHandle.html#a3">FirstChild</a>( _value.c_str() ); }
+<a name="l01496"></a>01496     <a class="code" href="classTiXmlHandle.html">TiXmlHandle</a> <a class="code" href="classTiXmlHandle.html#a5">FirstChildElement</a>( <span class="keyword">const</span> std::string&amp; _value )<span class="keyword"> const        </span>{ <span class="keywordflow">return</span> <a class="code" href="classTiXmlHandle.html#a5">FirstChildElement</a>( _value.c_str() ); }
+<a name="l01497"></a>01497 
+<a name="l01498"></a>01498     <a class="code" href="classTiXmlHandle.html">TiXmlHandle</a> <a class="code" href="classTiXmlHandle.html#a7">Child</a>( <span class="keyword">const</span> std::string&amp; _value, <span class="keywordtype">int</span> index )<span class="keyword"> const         </span>{ <span class="keywordflow">return</span> <a class="code" href="classTiXmlHandle.html#a7">Child</a>( _value.c_str(), index ); }
+<a name="l01499"></a>01499     <a class="code" href="classTiXmlHandle.html">TiXmlHandle</a> <a class="code" href="classTiXmlHandle.html#a9">ChildElement</a>( <span class="keyword">const</span> std::string&amp; _value, <span class="keywordtype">int</span> index )<span class="keyword"> const  </span>{ <span class="keywordflow">return</span> <a class="code" href="classTiXmlHandle.html#a9">ChildElement</a>( _value.c_str(), index ); }
+<a name="l01500"></a>01500 <span class="preprocessor">    #endif</span>
+<a name="l01501"></a>01501 <span class="preprocessor"></span>
+<a name="l01503"></a><a class="code" href="classTiXmlHandle.html#a15">01503</a>     <a class="code" href="classTiXmlNode.html">TiXmlNode</a>* <a class="code" href="classTiXmlHandle.html#a15">Node</a>()<span class="keyword"> const         </span>{ <span class="keywordflow">return</span> node; } 
+<a name="l01505"></a><a class="code" href="classTiXmlHandle.html#a16">01505</a>     <a class="code" href="classTiXmlElement.html">TiXmlElement</a>* <a class="code" href="classTiXmlHandle.html#a16">Element</a>()<span class="keyword"> const   </span>{ <span class="keywordflow">return</span> ( ( node &amp;&amp; node-&gt;<a class="code" href="classTiXmlNode.html#a61">ToElement</a>() ) ? node-&gt;<a class="code" href="classTiXmlNode.html#a61">ToElement</a>() : 0 ); }
+<a name="l01507"></a><a class="code" href="classTiXmlHandle.html#a17">01507</a>     <a class="code" href="classTiXmlText.html">TiXmlText</a>* <a class="code" href="classTiXmlHandle.html#a17">Text</a>()<span class="keyword"> const         </span>{ <span class="keywordflow">return</span> ( ( node &amp;&amp; node-&gt;<a class="code" href="classTiXmlNode.html#a64">ToText</a>() ) ? node-&gt;<a class="code" href="classTiXmlNode.html#a64">ToText</a>() : 0 ); }
+<a name="l01509"></a><a class="code" href="classTiXmlHandle.html#a18">01509</a>     <a class="code" href="classTiXmlUnknown.html">TiXmlUnknown</a>* <a class="code" href="classTiXmlHandle.html#a18">Unknown</a>()<span class="keyword"> const           </span>{ <span class="keywordflow">return</span> ( ( node &amp;&amp; node-&gt;<a class="code" href="classTiXmlNode.html#a63">ToUnknown</a>() ) ? node-&gt;<a class="code" href="classTiXmlNode.html#a63">ToUnknown</a>() : 0 ); }
+<a name="l01510"></a>01510 
+<a name="l01511"></a>01511 <span class="keyword">private</span>:
+<a name="l01512"></a>01512     <a class="code" href="classTiXmlNode.html">TiXmlNode</a>* node;
+<a name="l01513"></a>01513 };
+<a name="l01514"></a>01514 
+<a name="l01515"></a>01515 <span class="preprocessor">#ifdef _MSC_VER</span>
+<a name="l01516"></a>01516 <span class="preprocessor"></span><span class="preprocessor">#pragma warning( pop )</span>
+<a name="l01517"></a>01517 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
+<a name="l01518"></a>01518 <span class="preprocessor"></span>
+<a name="l01519"></a>01519 <span class="preprocessor">#endif</span>
+<a name="l01520"></a>01520 <span class="preprocessor"></span>
+</pre></div><hr size="1"><address style="align: right;"><small>Generated on Sun Jan 15 23:12:04 2006 for TinyXml by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4 </small></address>
 </body>
diff --git a/docs/tutorial0.html b/docs/tutorial0.html
index 9625d37..924871f 100644
--- a/docs/tutorial0.html
+++ b/docs/tutorial0.html
@@ -7,316 +7,707 @@
 <div class="qindex"><a class="qindex" href="index.html">Main&nbsp;Page</a> | <a class="qindex" href="hierarchy.html">Class&nbsp;Hierarchy</a> | <a class="qindex" href="annotated.html">Class&nbsp;List</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="functions.html">Class&nbsp;Members</a></div>
 <div class="nav">
 <a class="el" href="index.html">index</a></div>
-<h1><a class="anchor" name="tutorial0">TinyXML Tutorial</a></h1><h1>Tutorial Preliminary </h1>
+<h1><a class="anchor" name="tutorial0">TinyXML Tutorial</a></h1><h1>What is this? </h1>
 <p>
-These pages contains a bunch of examples of using TinyXml.<p>
-Each demo is written in a standalone function. If you want to try the code, all you need to do is copy/paste the code into a file, then have a main to call it.<p>
-So if the example has a function:<p>
-<div class="fragment"><pre class="fragment">	void write_simple_doc()
-	{
-		...
-	}
-	</pre></div><p>
-then the *complete* program you need to try it is:<p>
-<div class="fragment"><pre class="fragment">	#include "stdafx.h" // &lt;-- you MIGHT need this
-	#include "tinyxml.h" // &lt;-- you definitely need this ;)
-
-	void write_simple_doc()
-	{
-		...
-	}
-
-	void main( void )
-	{
-		write_simple_doc();
-	}
-	</pre></div><p>
-Two example XML datasets/files will be used. The first looks like this:<p>
-<div class="fragment"><pre class="fragment">	&lt;?xml version="1.0" ?&gt;
-	&lt;Hello&gt;World&lt;/Hello&gt;
-	</pre></div><p>
-The other:<p>
-<div class="fragment"><pre class="fragment">	&lt;?xml version="1.0" ?&gt;
-	&lt;poetry&gt;
-		&lt;verse&gt;
-			Alas
-			  Great Whatever
-				Alas (again)
-		&lt;/verse&gt;
-	&lt;/poetry&gt;
-	</pre></div><p>
+This tutorial has a few tips and suggestions on how to use TinyXML effectively.<p>
+I've also tried to include some C++ tips like how to convert strings to integers and vice versa. This isn't anything to do with TinyXML itself, but it may helpful for your project so I've put it in anyway.<p>
+If you don't know basic C++ concepts this tutorial won't be useful. Likewise if you don't know what a DOM is, look elsewhere first.<p>
+<h1>Before we start </h1>
+<p>
+Some example XML datasets/files will be used.<p>
+example1.xml:<p>
+<div class="fragment"><pre class="fragment">&lt;?xml version="1.0" ?&gt;
+&lt;Hello&gt;World&lt;/Hello&gt;
+</pre></div><p>
+example2.xml:<p>
+<div class="fragment"><pre class="fragment">&lt;?xml version="1.0" ?&gt;
+&lt;poetry&gt;
+	&lt;verse&gt;
+		Alas
+		  Great World
+			Alas (again)
+	&lt;/verse&gt;
+&lt;/poetry&gt;
+</pre></div><p>
+example3.xml:<p>
+<div class="fragment"><pre class="fragment">&lt;?xml version="1.0" ?&gt;
+&lt;shapes&gt;
+	&lt;circle name="int-based" x="20" y="30" r="50" /&gt;
+	&lt;point name="float-based" x="3.5" y="52.1" /&gt;
+&lt;/shapes&gt;
+</pre></div><p>
+example4.xml<p>
+<div class="fragment"><pre class="fragment">&lt;?xml version="1.0" ?&gt;
+&lt;MyApp&gt;
+    &lt;!-- Settings for MyApp --&gt;
+    &lt;Messages&gt;
+        &lt;Welcome&gt;Welcome to MyApp&lt;/Welcome&gt;
+        &lt;Farewell&gt;Thank you for using MyApp&lt;/Farewell&gt;
+    &lt;/Messages&gt;
+    &lt;Windows&gt;
+        &lt;Window name="MainFrame" x="5" y="15" w="400" h="250" /&gt;
+    &lt;/Windows&gt;
+    &lt;Connection ip="192.168.0.1" timeout="123.456000" /&gt;
+&lt;/MyApp&gt;
+</pre></div><p>
 <h1>Getting Started </h1>
 <p>
 <h2>Load XML from a file </h2>
 <p>
-Loading a file is as simple as:<p>
-<div class="fragment"><pre class="fragment">	void load_file( )
+The simplest way to load a file into a TinyXML DOM is:<p>
+<div class="fragment"><pre class="fragment">TiXmlDocument doc( "demo.xml" );
+doc.LoadFile();
+</pre></div><p>
+A more real-world usage is shown below. This will load the file and display the contents to STDOUT:<p>
+<div class="fragment"><pre class="fragment">// load the named file and dump its structure to STDOUT
+void dump_to_stdout(const char* pFilename)
+{
+	TiXmlDocument doc(pFilename);
+	bool loadOkay = doc.LoadFile();
+	if (loadOkay)
 	{
-		TiXmlDocument doc( "demo.xml" );
-		bool loadOkay = doc.LoadFile();
-
-		if ( loadOkay )
-		{
-			// Your document is loaded - do what you like
-			// with it.
-			//
-			// Here we'll dump the structure to STDOUT,
-			// just for example
-			dump_to_stdout( &amp;doc );
-		}
-		else
-		{
-			// load failed
-		}
+		printf("\n%s:\n", pFilename);
+		dump_to_stdout( &amp;doc ); // defined later in the tutorial
 	}
-	</pre></div><p>
-The ``dump_to_stdout`` function is defined in the section `Dump structure of a Document to STDOUT` below. If you run this program with this XML:<p>
-<div class="fragment"><pre class="fragment">	&lt;?xml version="1.0" ?&gt;
-	&lt;Hello&gt;World&lt;/Hello&gt;
-	</pre></div><p>
-You'll see this:<p>
-<div class="fragment"><pre class="fragment">	DOCUMENT
-	+ DECLARATION
-	+ ELEMENT Hello
-	  + TEXT[World]
-	</pre></div><p>
+	else
+	{
+		printf("Failed to load file \"%s\"\n", pFilename);
+	}
+}
+</pre></div><p>
+A simple demonstration of this function is to use a main like this:<p>
+<div class="fragment"><pre class="fragment">int main(void)
+{
+	dump_to_stdout("example1.xml");
+	return 0;
+}
+</pre></div><p>
+Recall that Example 1 XML is:<p>
+<div class="fragment"><pre class="fragment">&lt;?xml version="1.0" ?&gt;
+&lt;Hello&gt;World&lt;/Hello&gt;
+</pre></div><p>
+Running the program with this XML will display this in the console/DOS window:<p>
+<div class="fragment"><pre class="fragment">DOCUMENT
++ DECLARATION
++ ELEMENT Hello
+  + TEXT[World]
+</pre></div><p>
+The ``dump_to_stdout`` function is defined later in this tutorial and is useful if you want to understand recursive traversal of a DOM.<p>
 <h2>Building Documents Programatically </h2>
 <p>
-Example:<p>
-<div class="fragment"><pre class="fragment">	void write_simple_doc( )
-	{
-		// Make xml: &lt;?xml ..&gt;&lt;Hello&gt;World&lt;/Hello&gt;
-		TiXmlDocument doc;
-		TiXmlDeclaration * decl = new TiXmlDeclaration( "1.0", "", "" );
-		TiXmlElement * element = new TiXmlElement( "Hello" );
-		TiXmlText * text = new TiXmlText( "World" );
-		element-&gt;LinkEndChild( text );
-		doc.LinkEndChild( decl );
-		doc.LinkEndChild( element );
-		
-		dump_to_stdout( &amp;doc );
-		doc.SaveFile( "madeByHand.xml" );
-	}
-	</pre></div><p>
-Alternatively:<p>
-<div class="fragment"><pre class="fragment">	void write_simple_doc2( )
-	{
-		// same as write_simple_doc1 but add each node
-		// as early as possible into the tree.
+This is how to build Example 1 pragmatically:<p>
+<div class="fragment"><pre class="fragment">void build_simple_doc( )
+{
+	// Make xml: &lt;?xml ..&gt;&lt;Hello&gt;World&lt;/Hello&gt;
+	TiXmlDocument doc;
+	TiXmlDeclaration * decl = new TiXmlDeclaration( "1.0", "", "" );
+	TiXmlElement * element = new TiXmlElement( "Hello" );
+	TiXmlText * text = new TiXmlText( "World" );
+	element-&gt;LinkEndChild( text );
+	doc.LinkEndChild( decl );
+	doc.LinkEndChild( element );
+	doc.SaveFile( "madeByHand.xml" );
+}
+</pre></div><p>
+This can be loaded and displayed on the console with:<p>
+<div class="fragment"><pre class="fragment">dump_to_stdout("madeByHand.xml"); // this func defined later in the tutorial
+</pre></div><p>
+and you'll see it is identical to Example 1:<p>
+<div class="fragment"><pre class="fragment">madeByHand.xml:
+Document
++ Declaration
++ Element [Hello]
+  + Text: [World]
+</pre></div><p>
+This code produces exactly the same XML DOM but it shows a different ordering to node creation and linking:<p>
+<div class="fragment"><pre class="fragment">void write_simple_doc2( )
+{
+	// same as write_simple_doc1 but add each node
+	// as early as possible into the tree.
+
+	TiXmlDocument doc;
+	TiXmlDeclaration * decl = new TiXmlDeclaration( "1.0", "", "" );
+	doc.LinkEndChild( decl );
 	
-		TiXmlDocument doc;
-		TiXmlDeclaration * decl = new TiXmlDeclaration( "1.0", "", "" );
-		doc.LinkEndChild( decl );
-		
-		TiXmlElement * element = new TiXmlElement( "Hello" );
-		doc.LinkEndChild( element );
-		
-		TiXmlText * text = new TiXmlText( "World" );
-		element-&gt;LinkEndChild( text );
-		
-		dump_to_stdout( &amp;doc );
-		doc.SaveFile( "madeByHand2.xml" );
-	}
-	</pre></div><p>
+	TiXmlElement * element = new TiXmlElement( "Hello" );
+	doc.LinkEndChild( element );
+	
+	TiXmlText * text = new TiXmlText( "World" );
+	element-&gt;LinkEndChild( text );
+	
+	doc.SaveFile( "madeByHand2.xml" );
+}
+</pre></div><p>
 Both of these produce the same XML, namely:<p>
-<div class="fragment"><pre class="fragment">	&lt;?xml version="1.0" ?&gt;
-	&lt;Hello&gt;World&lt;/Hello&gt;
-	</pre></div><p>
+<div class="fragment"><pre class="fragment">&lt;?xml version="1.0" ?&gt;
+&lt;Hello&gt;World&lt;/Hello&gt;
+</pre></div><p>
 Or in structure form:<p>
-<div class="fragment"><pre class="fragment">	DOCUMENT
-	+ DECLARATION
-	+ ELEMENT Hello
-	  + TEXT[World]
-	</pre></div><p>
-<h2>Saving Documents to File </h2>
+<div class="fragment"><pre class="fragment">DOCUMENT
++ DECLARATION
++ ELEMENT Hello
+  + TEXT[World]
+</pre></div><p>
+<h2>Attributes </h2>
 <p>
-This function:<p>
-<div class="fragment"><pre class="fragment">	void write_simple_doc3( )  
-	{  
-		// This example courtesy of polocolege
-	 
-		TiXmlDocument doc;  
-		TiXmlDeclaration * decl = new TiXmlDeclaration( "1.0", "", "" );  
-		doc.LinkEndChild( decl );  
-	 
-		TiXmlElement * element = new TiXmlElement( "Hello" );  
-		doc.LinkEndChild( element );  
-	 
-		TiXmlText * text = new TiXmlText( "Opening a new salutation" );  
-		element-&gt;LinkEndChild( text );  
-	 
-		TiXmlElement * element2 = new TiXmlElement( "Greeting" );  
-		element-&gt;LinkEndChild( element2 );  
-	 
-		TiXmlText * text2 = new TiXmlText( "How are you?" );  
-		element2-&gt;LinkEndChild( text2 );  
-	 
-		TiXmlElement * element3 = new TiXmlElement( "Language" );  
-		element2-&gt;LinkEndChild( element3 );  
-	 
-		TiXmlText * text3 = new TiXmlText( "English" );  
-		element3-&gt;LinkEndChild( text3 );  
-	 
-		TiXmlElement * element4 = new TiXmlElement( "Exclamation" );  
-		element-&gt;LinkEndChild( element4 );  
-	 
-		TiXmlText * text4 = new TiXmlText( "You have children!" );  
-		element4-&gt;LinkEndChild( text4 );  
-	 
-		dump_to_stdout( &amp;doc );
-		doc.SaveFile( "madeByHand3.xml" );  
-	}  
-	</pre></div><p>
-Produces this structure:<p>
-<div class="fragment"><pre class="fragment">	Document
-	+ Declaration
-	+ Element "Hello"
-	  + Text: [Opening a new salutation]
-	  + Element "Greeting"
-		+ Text: [How are you?]
-		+ Element "Language"
-		  + Text: [English]
-	  + Element "Exclamation"
-		+ Text: [You have children!]
-	</pre></div><p>
-The file ``madeByHand3.xml`` looks exactly like this (including indents):<p>
-<div class="fragment"><pre class="fragment">	&lt;?xml version="1.0" ?&gt;
-	&lt;Hello&gt;Opening a new salutation
-	    &lt;Greeting&gt;How are you?
-	        &lt;Language&gt;English&lt;/Language&gt;
-	    &lt;/Greeting&gt;
-	    &lt;Exclamation&gt;You have children!&lt;/Exclamation&gt;
-	&lt;/Hello&gt;
-	</pre></div><p>
+Given an existing node, settings attributes is easy:<p>
+<div class="fragment"><pre class="fragment">window = new TiXmlElement( "Demo" );  
+window-&gt;SetAttribute("name", "Circle");
+window-&gt;SetAttribute("x", 5);
+window-&gt;SetAttribute("y", 15);
+window-&gt;SetDoubleAttribute("radius", 3.14159);
+</pre></div><p>
+You can it also work with the <a class="el" href="classTiXmlAttribute.html">TiXmlAttribute</a> objects if you want.<p>
+The following code shows one way (not the only way) to get all attributes of an element, print the name and string value, and if the value can be converted to an integer or double, print that value too:<p>
+<div class="fragment"><pre class="fragment">// print all attributes of pElement.
+// returns the number of attributes printed
+int dump_attribs_to_stdout(TiXmlElement* pElement, unsigned int indent)
+{
+	if ( !pElement ) return 0;
+
+	TiXmlAttribute* pAttrib=pElement-&gt;FirstAttribute();
+	int i=0;
+	int ival;
+	double dval;
+	const char* pIndent=getIndent(indent);
+	printf("\n");
+	while (pAttrib)
+	{
+		printf( "%s%s: value=[%s]", pIndent, pAttrib-&gt;Name(), pAttrib-&gt;Value());
+
+		if (pAttrib-&gt;QueryIntValue(&amp;ival)==TIXML_SUCCESS)    printf( " int=%d", ival);
+		if (pAttrib-&gt;QueryDoubleValue(&amp;dval)==TIXML_SUCCESS) printf( " d=%1.1f", dval);
+		printf( "\n" );
+		i++;
+		pAttrib=pAttrib-&gt;Next();
+	}
+	return i;
+}
+</pre></div><p>
+<h2>Writing a document to a file </h2>
+<p>
+Writing a pre-built DOM to a file is trivial:<p>
+<div class="fragment"><pre class="fragment">doc.SaveFile( saveFilename );  
+</pre></div><p>
+Recall, for example, example 4:<p>
+<div class="fragment"><pre class="fragment">&lt;?xml version="1.0" ?&gt;
+&lt;MyApp&gt;
+    &lt;!-- Settings for MyApp --&gt;
+    &lt;Messages&gt;
+        &lt;Welcome&gt;Welcome to MyApp&lt;/Welcome&gt;
+        &lt;Farewell&gt;Thank you for using MyApp&lt;/Farewell&gt;
+    &lt;/Messages&gt;
+    &lt;Windows&gt;
+        &lt;Window name="MainFrame" x="5" y="15" w="400" h="250" /&gt;
+    &lt;/Windows&gt;
+    &lt;Connection ip="192.168.0.1" timeout="123.456000" /&gt;
+&lt;/MyApp&gt;
+</pre></div><p>
+The following function builds this DOM and writes the file "appsettings.xml":<p>
+<div class="fragment"><pre class="fragment">void write_app_settings_doc( )  
+{  
+	TiXmlDocument doc;  
+	TiXmlElement* msg;
+ 	TiXmlDeclaration* decl = new TiXmlDeclaration( "1.0", "", "" );  
+	doc.LinkEndChild( decl );  
+ 
+	TiXmlElement * root = new TiXmlElement( "MyApp" );  
+	doc.LinkEndChild( root );  
+
+	TiXmlComment * comment = new TiXmlComment();
+	comment-&gt;SetValue(" Settings for MyApp " );  
+	root-&gt;LinkEndChild( comment );  
+ 
+	TiXmlElement * msgs = new TiXmlElement( "Messages" );  
+	root-&gt;LinkEndChild( msgs );  
+ 
+	msg = new TiXmlElement( "Welcome" );  
+	msg-&gt;LinkEndChild( new TiXmlText( "Welcome to MyApp" ));  
+	msgs-&gt;LinkEndChild( msg );  
+ 
+	msg = new TiXmlElement( "Farewell" );  
+	msg-&gt;LinkEndChild( new TiXmlText( "Thank you for using MyApp" ));  
+	msgs-&gt;LinkEndChild( msg );  
+ 
+	TiXmlElement * windows = new TiXmlElement( "Windows" );  
+	root-&gt;LinkEndChild( windows );  
+
+	TiXmlElement * window;
+	window = new TiXmlElement( "Window" );  
+	windows-&gt;LinkEndChild( window );  
+	window-&gt;SetAttribute("name", "MainFrame");
+	window-&gt;SetAttribute("x", 5);
+	window-&gt;SetAttribute("y", 15);
+	window-&gt;SetAttribute("w", 400);
+	window-&gt;SetAttribute("h", 250);
+
+	TiXmlElement * cxn = new TiXmlElement( "Connection" );  
+	root-&gt;LinkEndChild( cxn );  
+	cxn-&gt;SetAttribute("ip", "192.168.0.1");
+	cxn-&gt;SetDoubleAttribute("timeout", 123.456); // floating point attrib
+	
+	dump_to_stdout( &amp;doc );
+	doc.SaveFile( "appsettings.xml" );  
+} 
+</pre></div><p>
+The dump_to_stdout function will show this structure:<p>
+<div class="fragment"><pre class="fragment">Document
++ Declaration
++ Element [MyApp]
+ (No attributes)
+  + Comment: [ Settings for MyApp ]
+  + Element [Messages]
+ (No attributes)
+    + Element [Welcome]
+ (No attributes)
+      + Text: [Welcome to MyApp]
+    + Element [Farewell]
+ (No attributes)
+      + Text: [Thank you for using MyApp]
+  + Element [Windows]
+ (No attributes)
+    + Element [Window]
+      + name: value=[MainFrame]
+      + x: value=[5] int=5 d=5.0
+      + y: value=[15] int=15 d=15.0
+      + w: value=[400] int=400 d=400.0
+      + h: value=[250] int=250 d=250.0
+      5 attributes
+  + Element [Connection]
+    + ip: value=[192.168.0.1] int=192 d=192.2
+    + timeout: value=[123.456000] int=123 d=123.5
+    2 attributes
+</pre></div><p>
 I was surprised that TinyXml, by default, writes the XML in what other APIs call a "pretty" format - it modifies the whitespace of text of elements that contain other nodes so that writing the tree includes an indication of nesting level.<p>
 I haven't looked yet to see if there is a way to turn off indenting when writing a file - its bound to be easy.<p>
 [Lee: It's easy in STL mode, just use cout &lt;&lt; myDoc. Non-STL mode is always in "pretty" format. Adding a switch would be a nice feature and has been requested.]<p>
-<h1>Iterating Over Documents </h1>
+<h1>XML to/from C++ objects </h1>
 <p>
-<h2>Dump structure of a Document to STDOUT </h2>
+<h2>Intro </h2>
 <p>
-Often when you're starting its helpful and reassuring to know that you're document got loaded as you expect it to.<p>
-Below I've defined a function to walk a document and write contents to STDOUT:<p>
-<div class="fragment"><pre class="fragment">	// a utility function defining a very simple method to indent a line of text
-	const char * getIndent( unsigned int numIndents )
+This example assumes you're loading and saving your app settings in an XML file, e.g. something like example4.xml.<p>
+There are a number of ways to do this. For example, look into the TinyBind project at <a href="http://sourceforge.net/projects/tinybind">http://sourceforge.net/projects/tinybind</a><p>
+This section shows a plain-old approach to loading and saving a basic object structure using XML.<p>
+<h2>Set up your object classes </h2>
+<p>
+Start off with some basic classes like these:<p>
+<div class="fragment"><pre class="fragment">#include &lt;string&gt;
+#include &lt;map&gt;
+using namespace std;
+
+typedef std::map&lt;std::string,std::string&gt; MessageMap;
+
+// a basic window abstraction - demo purposes only
+class WindowSettings
+{
+public:
+	int x,y,w,h;
+	string name;
+
+	WindowSettings()
+		: x(0), y(0), w(100), h(100), name("Untitled")
 	{
-		static const char * pINDENT = "                                      + ";
-		static const unsigned int LENGTH = strlen( pINDENT );
+	}
+
+	WindowSettings(int x, int y, int w, int h, const string&amp; name)
+	{
+		this-&gt;x=x;
+		this-&gt;y=y;
+		this-&gt;w=w;
+		this-&gt;h=h;
+		this-&gt;name=name;
+	}
+};
+
+class ConnectionSettings
+{
+public:
+	string ip;
+	double timeout;
+};
+
+class AppSettings
+{
+public:
+	string m_name;
+	MessageMap m_messages;
+	list&lt;WindowSettings&gt; m_windows;
+	ConnectionSettings m_connection;
+
+	AppSettings() {}
+
+	void save(const char* pFilename);
+	void load(const char* pFilename);
 	
-		if ( numIndents &gt; LENGTH ) numIndents = LENGTH;
+	// just to show how to do it
+	void setDemoValues()
+	{
+		m_name="MyApp";
+		m_messages.clear();
+		m_messages["Welcome"]="Welcome to "+m_name;
+		m_messages["Farewell"]="Thank you for using "+m_name;
+		m_windows.clear();
+		m_windows.push_back(WindowSettings(15,15,400,250,"Main"));
+		m_connection.ip="Unknown";
+		m_connection.timeout=123.456;
+	}
+};
+</pre></div><p>
+This is a basic main() that shows how to create a default settings object tree, save it and load it again:<p>
+<div class="fragment"><pre class="fragment">int main(void)
+{
+	AppSettings settings;
 	
-		return &amp;pINDENT[ LENGTH-numIndents ];
+	settings.save("appsettings2.xml");
+	settings.load("appsettings2.xml");
+	return 0;
+}
+</pre></div><p>
+The following main() shows creation, modification, saving and then loading of a settings structure:<p>
+<div class="fragment"><pre class="fragment">int main(void)
+{
+	// block: customise and save settings
+	{
+		AppSettings settings;
+		settings.m_name="HitchHikerApp";
+		settings.m_messages["Welcome"]="Don't Panic";
+		settings.m_messages["Farewell"]="Thanks for all the fish";
+		settings.m_windows.push_back(WindowSettings(15,25,300,250,"BookFrame"));
+		settings.m_connection.ip="192.168.0.77";
+		settings.m_connection.timeout=42.0;
+
+		settings.save("appsettings2.xml");
 	}
 	
-	void dump_to_stdout( TiXmlNode * pParent, unsigned int indent = 0 )
+	// block: load settings
 	{
-		if ( !pParent ) return;
-	
-		TiXmlText *pText;
-		int t = pParent-&gt;Type();
-		printf( "%s", getIndent( indent));
-	
-		switch ( t )
+		AppSettings settings;
+		settings.load("appsettings2.xml");
+		printf("%s: %s\n", settings.m_name.c_str(), 
+			settings.m_messages["Welcome"].c_str());
+		WindowSettings &amp; w=settings.m_windows.front();
+		printf("%s: Show window '%s' at %d,%d (%d x %d)\n", 
+			settings.m_name.c_str(), w.name.c_str(), w.x, w.y, w.w, w.h);
+		printf("%s: %s\n", settings.m_name.c_str(), settings.m_messages["Farewell"].c_str());
+	}
+	return 0;
+}
+</pre></div><p>
+When the save() and load() are completed (see below), running this main() displays on the console:<p>
+<div class="fragment"><pre class="fragment">HitchHikerApp: Don't Panic
+HitchHikerApp: Show window 'BookFrame' at 15,25 (300 x 100)
+HitchHikerApp: Thanks for all the fish
+</pre></div><p>
+<h2>Encode C++ state as XML </h2>
+<p>
+There are lots of different ways to approach saving this to a file. Here's one:<p>
+<div class="fragment"><pre class="fragment">void AppSettings::save(const char* pFilename)
+{
+	TiXmlDocument doc;  
+	TiXmlElement* msg;
+	TiXmlComment * comment;
+	string s;
+ 	TiXmlDeclaration* decl = new TiXmlDeclaration( "1.0", "", "" );  
+	doc.LinkEndChild( decl ); 
+ 
+	TiXmlElement * root = new TiXmlElement(m_name.c_str());  
+	doc.LinkEndChild( root );  
+
+	comment = new TiXmlComment();
+	s=" Settings for "+m_name+" ";
+	comment-&gt;SetValue(s.c_str());  
+	root-&gt;LinkEndChild( comment );  
+
+	// block: messages
+	{
+		MessageMap::iterator iter;
+
+		TiXmlElement * msgs = new TiXmlElement( "Messages" );  
+		root-&gt;LinkEndChild( msgs );  
+ 
+		for (iter=m_messages.begin(); iter != m_messages.end(); iter++)
 		{
-		case TiXmlNode::DOCUMENT:
-			printf( "Document" );
-			break;
-	
-		case TiXmlNode::ELEMENT:
-			printf( "Element \"%s\"", pParent-&gt;Value() );
-			break;
-	
-		case TiXmlNode::COMMENT:
-			printf( "Comment: \"%s\"", pParent-&gt;Value());
-			break;
-	
-		case TiXmlNode::UNKNOWN:
-			printf( "Unknown" );
-			break;
-	
-		case TiXmlNode::TEXT:
-			pText = pParent-&gt;ToText();
-			printf( "Text: [%s]", pText-&gt;Value() );
-			break;
-	
-		case TiXmlNode::DECLARATION:
-			printf( "Declaration" );
-			break;
-		default:
-			break;
+			const string &amp; key=(*iter).first;
+			const string &amp; value=(*iter).second;
+			msg = new TiXmlElement(key.c_str());  
+			msg-&gt;LinkEndChild( new TiXmlText(value.c_str()));  
+			msgs-&gt;LinkEndChild( msg );  
 		}
+	}
+
+	// block: windows
+	{
+		TiXmlElement * windowsNode = new TiXmlElement( "Windows" );  
+		root-&gt;LinkEndChild( windowsNode );  
+
+		list&lt;WindowSettings&gt;::iterator iter;
+
+		for (iter=m_windows.begin(); iter != m_windows.end(); iter++)
+		{
+			const WindowSettings&amp; w=*iter;
+
+			TiXmlElement * window;
+			window = new TiXmlElement( "Window" );  
+			windowsNode-&gt;LinkEndChild( window );  
+			window-&gt;SetAttribute("name", w.name.c_str());
+			window-&gt;SetAttribute("x", w.x);
+			window-&gt;SetAttribute("y", w.y);
+			window-&gt;SetAttribute("w", w.w);
+			window-&gt;SetAttribute("h", w.h);
+		}
+	}
+
+	// block: connection
+	{
+		TiXmlElement * cxn = new TiXmlElement( "Connection" );  
+		root-&gt;LinkEndChild( cxn );  
+		cxn-&gt;SetAttribute("ip", m_connection.ip.c_str());
+		cxn-&gt;SetDoubleAttribute("timeout", m_connection.timeout); 
+	}
+
+	doc.SaveFile(pFilename);  
+}
+</pre></div><p>
+Running this with the modified main produces this file:<p>
+<div class="fragment"><pre class="fragment">&lt;?xml version="1.0" ?&gt;
+&lt;HitchHikerApp&gt;
+    &lt;!-- Settings for HitchHikerApp --&gt;
+    &lt;Messages&gt;
+        &lt;Farewell&gt;Thanks for all the fish&lt;/Farewell&gt;
+        &lt;Welcome&gt;Don&amp;apos;t Panic&lt;/Welcome&gt;
+    &lt;/Messages&gt;
+    &lt;Windows&gt;
+        &lt;Window name="BookFrame" x="15" y="25" w="300" h="250" /&gt;
+    &lt;/Windows&gt;
+    &lt;Connection ip="192.168.0.77" timeout="42.000000" /&gt;
+&lt;/HitchHikerApp&gt;
+</pre></div><p>
+<h2>Decoding state from XML </h2>
+<p>
+As with encoding objects, there are a number of approaches to decoding XML into your own C++ object structure. The following approach uses TiXmlHandles.<p>
+<div class="fragment"><pre class="fragment">void AppSettings::load(const char* pFilename)
+{
+	TiXmlDocument doc(pFilename);
+	if (!doc.LoadFile()) return;
+
+	TiXmlHandle hDoc(&amp;doc);
+	TiXmlElement* pElem;
+	TiXmlHandle hRoot(0);
+
+	// block: name
+	{
+		pElem=hDoc.FirstChildElement().Element();
+		// should always have a valid root but handle gracefully if it does
+		if (!pElem) return;
+		m_name=pElem-&gt;Value();
+
+		// save this for later
+		hRoot=TiXmlHandle(pElem);
+	}
+
+	// block: string table
+	{
+		m_messages.clear(); // trash existing table
+
+		pElem=hRoot.FirstChild( "Messages" ).FirstChild().Element();
+		for( pElem; pElem; pElem=pElem-&gt;NextSiblingElement())
+		{
+			const char *pKey=pElem-&gt;Value();
+			const char *pText=pElem-&gt;GetText();
+			if (pKey &amp;&amp; pText) 
+			{
+				m_messages[pKey]=pText;
+			}
+		}
+	}
+
+	// block: windows
+	{
+		m_windows.clear(); // trash existing list
+
+		TiXmlElement* pWindowNode=hRoot.FirstChild( "Windows" ).FirstChild().Element();
+		for( pWindowNode; pWindowNode; pWindowNode=pWindowNode-&gt;NextSiblingElement())
+		{
+			WindowSettings w;
+			const char *pName=pWindowNode-&gt;Attribute("name");
+			if (pName) w.name=pName;
+			
+			pWindowNode-&gt;QueryIntAttribute("x", &amp;w.x); // If this fails, original value is left as-is
+			pWindowNode-&gt;QueryIntAttribute("y", &amp;w.y);
+			pWindowNode-&gt;QueryIntAttribute("w", &amp;w.w);
+			pWindowNode-&gt;QueryIntAttribute("hh", &amp;w.h);
+
+			m_windows.push_back(w);
+		}
+	}
+
+	// block: connection
+	{
+		pElem=hRoot.FirstChild("Connection").Element();
+		if (pElem)
+		{
+			m_connection.ip=pElem-&gt;Attribute("ip");
+			pElem-&gt;QueryDoubleAttribute("timeout",&amp;m_connection.timeout);
+		}
+	}
+}
+</pre></div><p>
+<h1>Full listing for dump_to_stdout </h1>
+<p>
+Below is a copy-and-paste demo program for loading arbitrary XML files and dumping the structure to STDOUT using the recursive traversal listed above.<p>
+<div class="fragment"><pre class="fragment">// tutorial demo program
+#include "stdafx.h"
+#include "tinyxml.h"
+
+// ----------------------------------------------------------------------
+// STDOUT dump and indenting utility functions
+// ----------------------------------------------------------------------
+const unsigned int NUM_INDENTS_PER_SPACE=2;
+
+const char * getIndent( unsigned int numIndents )
+{
+	static const char * pINDENT="                                      + ";
+	static const unsigned int LENGTH=strlen( pINDENT );
+	unsigned int n=numIndents*NUM_INDENTS_PER_SPACE;
+	if ( n &gt; LENGTH ) n = LENGTH;
+
+	return &amp;pINDENT[ LENGTH-n ];
+}
+
+// same as getIndent but no "+" at the end
+const char * getIndentAlt( unsigned int numIndents )
+{
+	static const char * pINDENT="                                        ";
+	static const unsigned int LENGTH=strlen( pINDENT );
+	unsigned int n=numIndents*NUM_INDENTS_PER_SPACE;
+	if ( n &gt; LENGTH ) n = LENGTH;
+
+	return &amp;pINDENT[ LENGTH-n ];
+}
+
+int dump_attribs_to_stdout(TiXmlElement* pElement, unsigned int indent)
+{
+	if ( !pElement ) return 0;
+
+	TiXmlAttribute* pAttrib=pElement-&gt;FirstAttribute();
+	int i=0;
+	int ival;
+	double dval;
+	const char* pIndent=getIndent(indent);
+	printf("\n");
+	while (pAttrib)
+	{
+		printf( "%s%s: value=[%s]", pIndent, pAttrib-&gt;Name(), pAttrib-&gt;Value());
+
+		if (pAttrib-&gt;QueryIntValue(&amp;ival)==TIXML_SUCCESS)    printf( " int=%d", ival);
+		if (pAttrib-&gt;QueryDoubleValue(&amp;dval)==TIXML_SUCCESS) printf( " d=%1.1f", dval);
 		printf( "\n" );
-	
-		TiXmlNode * pChild;
-	
-		for ( pChild = pParent-&gt;FirstChild(); pChild != 0; pChild = pChild-&gt;NextSibling()) 
-		{
-			dump_to_stdout( pChild, indent+2 );
-		}
+		i++;
+		pAttrib=pAttrib-&gt;Next();
 	}
-	</pre></div><p>
-To load a file and dump its structure:<p>
-<div class="fragment"><pre class="fragment">	void load_and_display( )
+	return i;	
+}
+
+void dump_to_stdout( TiXmlNode* pParent, unsigned int indent = 0 )
+{
+	if ( !pParent ) return;
+
+	TiXmlNode* pChild;
+	TiXmlText* pText;
+	int t = pParent-&gt;Type();
+	printf( "%s", getIndent(indent));
+	int num;
+
+	switch ( t )
 	{
-		// important for the poetry demo, but you may not need this 
-		// in your own projects
-		TiXmlBase::SetCondenseWhiteSpace( false );
-	
-		TiXmlDocument doc( "demo.xml" );
-		bool loadOkay = doc.LoadFile();
-	
-		if ( loadOkay )
+	case TiXmlNode::DOCUMENT:
+		printf( "Document" );
+		break;
+
+	case TiXmlNode::ELEMENT:
+		printf( "Element [%s]", pParent-&gt;Value() );
+		num=dump_attribs_to_stdout(pParent-&gt;ToElement(), indent+1);
+		switch(num)
 		{
-			dump_to_stdout( &amp;doc );
+			case 0:  printf( " (No attributes)"); break;
+			case 1:  printf( "%s1 attribute", getIndentAlt(indent)); break;
+			default: printf( "%s%d attributes", getIndentAlt(indent), num); break;
 		}
-		else
-		{
-			printf( "Something went wrong\n" );
-		}
+		break;
+
+	case TiXmlNode::COMMENT:
+		printf( "Comment: [%s]", pParent-&gt;Value());
+		break;
+
+	case TiXmlNode::UNKNOWN:
+		printf( "Unknown" );
+		break;
+
+	case TiXmlNode::TEXT:
+		pText = pParent-&gt;ToText();
+		printf( "Text: [%s]", pText-&gt;Value() );
+		break;
+
+	case TiXmlNode::DECLARATION:
+		printf( "Declaration" );
+		break;
+	default:
+		break;
 	}
-	</pre></div><p>
-If you run this with the first XML file you'll see this on STDOUT:<p>
-<div class="fragment"><pre class="fragment">	DOCUMENT
-	+ DECLARATION
-	+ ELEMENT Hello
-	  + TEXT[World]
-	</pre></div><p>
-and on the second XML file:<p>
-<div class="fragment"><pre class="fragment">	DOCUMENT
-	+ DECLARATION
-	+ ELEMENT poetry
-	  + COMMENT:  my great work of art
-	  + ELEMENT verse
-	    + TEXT[
-	Alas
-	  Great Whatever
-	    Alas (again)
-	]
-	</pre></div><p>
-Note that if you call dump_to_stdout like this:<p>
-<div class="fragment"><pre class="fragment">	dump_to_stdout( doc.RootElement());
-	</pre></div><p>
-You'll see this instead:<p>
-<div class="fragment"><pre class="fragment">	ELEMENT Hello
-	+ TEXT[World]
-	</pre></div><p>
-and:<p>
-<div class="fragment"><pre class="fragment">	ELEMENT poetry
-	+ COMMENT:  my great work of art
-	+ ELEMENT verse
-  	+ TEXT[
-	Alas
-	  Great Whatever
-	    Alas (again)
-	] 
-	</pre></div><p>
+	printf( "\n" );
+	for ( pChild = pParent-&gt;FirstChild(); pChild != 0; pChild = pChild-&gt;NextSibling()) 
+	{
+		dump_to_stdout( pChild, indent+1 );
+	}
+}
+
+// load the named file and dump its structure to STDOUT
+void dump_to_stdout(const char* pFilename)
+{
+	TiXmlDocument doc(pFilename);
+	bool loadOkay = doc.LoadFile();
+	if (loadOkay)
+	{
+		printf("\n%s:\n", pFilename);
+		dump_to_stdout( &amp;doc ); // defined later in the tutorial
+	}
+	else
+	{
+		printf("Failed to load file \"%s\"\n", pFilename);
+	}
+}
+
+// ----------------------------------------------------------------------
+// main() for printing files named on the command line
+// ----------------------------------------------------------------------
+int main(int argc, char* argv[])
+{
+	for (int i=1; i&lt;argc; i++)
+	{
+		dump_to_stdout(argv[i]);
+	}
+	return 0;
+}
+</pre></div><p>
+Run this from the command line or a DOS window, e.g.:<p>
+<div class="fragment"><pre class="fragment">C:\dev\tinyxml&gt; Debug\tinyxml_1.exe example1.xml
+
+example1.xml:
+Document
++ Declaration
++ Element [Hello]
+ (No attributes)
+  + Text: [World]
+</pre></div><p>
 <em> Authors and Changes <ul>
 <li>
-Written by Ellers, April 2005  </li>
+Written by Ellers, April, May, June 2005  </li>
 <li>
 Minor edits and integration into doc system, Lee Thomason September 2005  </li>
+<li>
+Updated by Ellers, October 2005  </li>
 </ul>
-</em> <hr size="1"><address style="align: right;"><small>Generated on Sat Oct 8 14:15:30 2005 for TinyXml by&nbsp;
+</em> <hr size="1"><address style="align: right;"><small>Generated on Sun Jan 15 23:12:05 2006 for TinyXml by&nbsp;
 <a href="http://www.doxygen.org/index.html">
 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4 </small></address>
 </body>
diff --git a/tinyXmlTest.dsp b/tinyXmlTest.dsp
index 07262b9..f20a9dd 100644
--- a/tinyXmlTest.dsp
+++ b/tinyXmlTest.dsp
@@ -67,7 +67,7 @@
 # PROP Ignore_Export_Lib 0

 # PROP Target_Dir ""

 # ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c

-# ADD CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /FR /FD /GZ /c

+# ADD CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /D "TUNE" /FR /FD /GZ /c

 # SUBTRACT CPP /YX

 # ADD BASE RSC /l 0x409 /d "_DEBUG"

 # ADD RSC /l 0x409 /d "_DEBUG"

diff --git a/tinyXmlTestSTL.dsp b/tinyXmlTestSTL.dsp
index 7349e06..f262a30 100644
--- a/tinyXmlTestSTL.dsp
+++ b/tinyXmlTestSTL.dsp
@@ -67,7 +67,7 @@
 # PROP Ignore_Export_Lib 0

 # PROP Target_Dir ""

 # ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c

-# ADD CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /D "TIXML_USE_STL" /FR /FD /GZ /c

+# ADD CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /D "TIXML_USE_STL" /D "TUNE" /FR /FD /GZ /c

 # SUBTRACT CPP /YX

 # ADD BASE RSC /l 0x409 /d "_DEBUG"

 # ADD RSC /l 0x409 /d "_DEBUG"

diff --git a/tinystr.h b/tinystr.h
index aedd2f9..6e3b999 100644
--- a/tinystr.h
+++ b/tinystr.h
@@ -42,6 +42,21 @@
 #include <assert.h>
 #include <string.h>
 
+/*	The support for explicit isn't that universal, and it isn't really
+	required - it is used to check that the TiXmlString class isn't incorrectly
+	used. Be nice to old compilers and macro it here:
+*/
+#if defined(_MSC_VER) && (_MSC_VER >= 1200 )
+	// Microsoft visual studio, version 6 and higher.
+	#define TIXML_EXPLICIT explicit
+#elif defined(__GNUC__) && (__GNUC__ >= 3 )
+	// GCC version 3 and higher.s
+	#define TIXML_EXPLICIT explicit
+#else
+	#define TIXML_EXPLICIT
+#endif
+
+
 /*
    TiXmlString is an emulation of a subset of the std::string template.
    Its purpose is to allow compiling TinyXML on compilers with no or poor STL support.
@@ -53,7 +68,7 @@
 {
   public :
 	// The size type used
-  	typedef unsigned int size_type;
+  	typedef size_t size_type;
 
 	// Error value for find primitive
 	static const size_type npos; // = -1;
@@ -65,21 +80,21 @@
 	}
 
 	// TiXmlString copy constructor
-	TiXmlString (const TiXmlString & copy)
+	TiXmlString ( const TiXmlString & copy)
 	{
 		init(copy.length());
 		memcpy(start(), copy.data(), length());
 	}
 
 	// TiXmlString constructor, based on a string
-	TiXmlString (const char * copy)
+	TIXML_EXPLICIT TiXmlString ( const char * copy)
 	{
 		init( static_cast<size_type>( strlen(copy) ));
 		memcpy(start(), copy, length());
 	}
 
 	// TiXmlString constructor, based on a string
-	TiXmlString (const char * str, size_type len)
+	TIXML_EXPLICIT TiXmlString ( const char * str, size_type len)
 	{
 		init(len);
 		memcpy(start(), str, len);
@@ -217,7 +232,15 @@
 	{
 		if (cap)
 		{
-			rep_ = static_cast<Rep*>(operator new(sizeof(Rep) + cap));
+			// Lee: the original form:
+			//	rep_ = static_cast<Rep*>(operator new(sizeof(Rep) + cap));
+			// doesn't work in some cases of new being overloaded. Switching
+			// to the normal allocation, although use an 'int' for systems
+			// that are overly picky about structure alignment.
+			const size_type bytesNeeded = sizeof(Rep) + cap;
+			const size_type intsNeeded = ( bytesNeeded + sizeof(int) - 1 ) / sizeof( int ); 
+			rep_ = reinterpret_cast<Rep*>( new int[ intsNeeded ] );
+
 			rep_->str[ rep_->size = sz ] = '\0';
 			rep_->capacity = cap;
 		}
@@ -231,7 +254,9 @@
 	{
 		if (rep_ != &nullrep_)
 		{
-			operator delete(rep_);
+			// The rep_ is really an array of ints. (see the allocator, above).
+			// Cast it back before delete, so the compiler won't incorrectly call destructors.
+			delete [] ( reinterpret_cast<int*>( rep_ ) );
 		}
 	}
 
diff --git a/tinyxml.cpp b/tinyxml.cpp
index 5f84dec..6a83291 100644
--- a/tinyxml.cpp
+++ b/tinyxml.cpp
@@ -27,6 +27,7 @@
 
 #ifdef TIXML_USE_STL
 #include <sstream>
+#include <iostream>
 #endif
 
 
@@ -192,6 +193,9 @@
 
 TiXmlNode* TiXmlNode::LinkEndChild( TiXmlNode* node )
 {
+	assert( node->parent == 0 || node->parent == this );
+	assert( node->GetDocument() == 0 || node->GetDocument() == this->GetDocument() );
+
 	node->parent = this;
 
 	node->prev = lastChild;
@@ -463,7 +467,8 @@
 
 void TiXmlElement::RemoveAttribute( const char * name )
 {
-	TiXmlAttribute* node = attributeSet.Find( name );
+	TIXML_STRING str( name );
+	TiXmlAttribute* node = attributeSet.Find( str );
 	if ( node )
 	{
 		attributeSet.Remove( node );
@@ -661,7 +666,8 @@
 
 const char * TiXmlElement::Attribute( const char * name ) const
 {
-	const TiXmlAttribute* node = attributeSet.Find( name );
+	TIXML_STRING str( name );
+	const TiXmlAttribute* node = attributeSet.Find( str );
 
 	if ( node )
 		return node->Value();
@@ -700,7 +706,8 @@
 
 int TiXmlElement::QueryIntAttribute( const char* name, int* ival ) const
 {
-	const TiXmlAttribute* node = attributeSet.Find( name );
+	TIXML_STRING str( name );
+	const TiXmlAttribute* node = attributeSet.Find( str );
 	if ( !node )
 		return TIXML_NO_ATTRIBUTE;
 
@@ -710,7 +717,8 @@
 
 int TiXmlElement::QueryDoubleAttribute( const char* name, double* dval ) const
 {
-	const TiXmlAttribute* node = attributeSet.Find( name );
+	TIXML_STRING str( name );
+	const TiXmlAttribute* node = attributeSet.Find( str );
 	if ( !node )
 		return TIXML_NO_ATTRIBUTE;
 
@@ -730,6 +738,16 @@
 }
 
 
+#ifdef TIXML_USE_STL
+void TiXmlElement::SetAttribute( const std::string& name, int val )
+{	
+   std::ostringstream oss;
+   oss << val;
+   SetAttribute( name, oss.str() );
+}
+#endif
+
+
 void TiXmlElement::SetDoubleAttribute( const char * name, double val )
 {	
 	char buf[256];
@@ -742,7 +760,33 @@
 }
 
 
-void TiXmlElement::SetAttribute( const char * name, const char * _value )
+void TiXmlElement::SetAttribute( const char * cname, const char * cvalue )
+{
+	TIXML_STRING _name( cname );
+	TIXML_STRING _value( cvalue );
+
+	TiXmlAttribute* node = attributeSet.Find( _name );
+	if ( node )
+	{
+		node->SetValue( cvalue );
+		return;
+	}
+
+	TiXmlAttribute* attrib = new TiXmlAttribute( cname, cvalue );
+	if ( attrib )
+	{
+		attributeSet.Add( attrib );
+	}
+	else
+	{
+		TiXmlDocument* document = GetDocument();
+		if ( document ) document->SetError( TIXML_ERROR_OUT_OF_MEMORY, 0, 0, TIXML_ENCODING_UNKNOWN );
+	}
+}
+
+
+#ifdef TIXML_USE_STL
+void TiXmlElement::SetAttribute( const std::string& name, const std::string& _value )
 {
 	TiXmlAttribute* node = attributeSet.Find( name );
 	if ( node )
@@ -762,6 +806,8 @@
 		if ( document ) document->SetError( TIXML_ERROR_OUT_OF_MEMORY, 0, 0, TIXML_ENCODING_UNKNOWN );
 	}
 }
+#endif
+
 
 void TiXmlElement::Print( FILE* cfile, int depth ) const
 {
@@ -957,10 +1003,6 @@
 
 bool TiXmlDocument::LoadFile( const char* filename, TiXmlEncoding encoding )
 {
-	// Delete the existing data:
-	Clear();
-	location.Clear();
-
 	// There was a really terrifying little bug here. The code:
 	//		value = filename
 	// in the STL case, cause the assignment method of the std::string to
@@ -976,137 +1018,162 @@
 
 	if ( file )
 	{
-		// Get the file size, so we can pre-allocate the string. HUGE speed impact.
-		long length = 0;
-		fseek( file, 0, SEEK_END );
-		length = ftell( file );
-		fseek( file, 0, SEEK_SET );
-
-		// Strange case, but good to handle up front.
-		if ( length == 0 )
-		{
-			fclose( file );
-			return false;
-		}
-
-		// If we have a file, assume it is all one big XML file, and read it in.
-		// The document parser may decide the document ends sooner than the entire file, however.
-		TIXML_STRING data;
-		data.reserve( length );
-
-		// Subtle bug here. TinyXml did use fgets. But from the XML spec:
-		// 2.11 End-of-Line Handling
-		// <snip>
-		// <quote>
-		// ...the XML processor MUST behave as if it normalized all line breaks in external 
-		// parsed entities (including the document entity) on input, before parsing, by translating 
-		// both the two-character sequence #xD #xA and any #xD that is not followed by #xA to 
-		// a single #xA character.
-		// </quote>
-		//
-		// It is not clear fgets does that, and certainly isn't clear it works cross platform. 
-		// Generally, you expect fgets to translate from the convention of the OS to the c/unix
-		// convention, and not work generally.
-
-		/*
-		while( fgets( buf, sizeof(buf), file ) )
-		{
-			data += buf;
-		}
-		*/
-
-		char* buf = new char[ length+1 ];
-		buf[0] = 0;
-
-		if ( fread( buf, length, 1, file ) != 1 ) {
-		//if ( fread( buf, 1, length, file ) != (size_t)length ) {
-			SetError( TIXML_ERROR_OPENING_FILE, 0, 0, TIXML_ENCODING_UNKNOWN );
-			fclose( file );
-			return false;
-		}
+		bool result = LoadFile( file, encoding );
 		fclose( file );
+		return result;
+	}
+	else
+	{
+		SetError( TIXML_ERROR_OPENING_FILE, 0, 0, TIXML_ENCODING_UNKNOWN );
+		return false;
+	}
+}
 
-		const char* lastPos = buf;
-		const char* p = buf;
+bool TiXmlDocument::LoadFile( FILE* file, TiXmlEncoding encoding )
+{
+	if ( !file ) 
+	{
+		SetError( TIXML_ERROR_OPENING_FILE, 0, 0, TIXML_ENCODING_UNKNOWN );
+		return false;
+	}
 
-		buf[length] = 0;
-		while( *p ) {
-			assert( p < (buf+length) );
-			if ( *p == 0xa ) {
-				// Newline character. No special rules for this. Append all the characters
-				// since the last string, and include the newline.
-				data.append( lastPos, p-lastPos+1 );	// append, include the newline
-				++p;									// move past the newline
-				lastPos = p;							// and point to the new buffer (may be 0)
+	// Delete the existing data:
+	Clear();
+	location.Clear();
+
+	// Get the file size, so we can pre-allocate the string. HUGE speed impact.
+	long length = 0;
+	fseek( file, 0, SEEK_END );
+	length = ftell( file );
+	fseek( file, 0, SEEK_SET );
+
+	// Strange case, but good to handle up front.
+	if ( length == 0 )
+	{
+		SetError( TIXML_ERROR_DOCUMENT_EMPTY, 0, 0, TIXML_ENCODING_UNKNOWN );
+		return false;
+	}
+
+	// If we have a file, assume it is all one big XML file, and read it in.
+	// The document parser may decide the document ends sooner than the entire file, however.
+	TIXML_STRING data;
+	data.reserve( length );
+
+	// Subtle bug here. TinyXml did use fgets. But from the XML spec:
+	// 2.11 End-of-Line Handling
+	// <snip>
+	// <quote>
+	// ...the XML processor MUST behave as if it normalized all line breaks in external 
+	// parsed entities (including the document entity) on input, before parsing, by translating 
+	// both the two-character sequence #xD #xA and any #xD that is not followed by #xA to 
+	// a single #xA character.
+	// </quote>
+	//
+	// It is not clear fgets does that, and certainly isn't clear it works cross platform. 
+	// Generally, you expect fgets to translate from the convention of the OS to the c/unix
+	// convention, and not work generally.
+
+	/*
+	while( fgets( buf, sizeof(buf), file ) )
+	{
+		data += buf;
+	}
+	*/
+
+	char* buf = new char[ length+1 ];
+	buf[0] = 0;
+
+	if ( fread( buf, length, 1, file ) != 1 ) {
+		SetError( TIXML_ERROR_OPENING_FILE, 0, 0, TIXML_ENCODING_UNKNOWN );
+		return false;
+	}
+
+	const char* lastPos = buf;
+	const char* p = buf;
+
+	buf[length] = 0;
+	while( *p ) {
+		assert( p < (buf+length) );
+		if ( *p == 0xa ) {
+			// Newline character. No special rules for this. Append all the characters
+			// since the last string, and include the newline.
+			data.append( lastPos, (p-lastPos+1) );	// append, include the newline
+			++p;									// move past the newline
+			lastPos = p;							// and point to the new buffer (may be 0)
+			assert( p <= (buf+length) );
+		}
+		else if ( *p == 0xd ) {
+			// Carriage return. Append what we have so far, then
+			// handle moving forward in the buffer.
+			if ( (p-lastPos) > 0 ) {
+				data.append( lastPos, p-lastPos );	// do not add the CR
+			}
+			data += (char)0xa;						// a proper newline
+
+			if ( *(p+1) == 0xa ) {
+				// Carriage return - new line sequence
+				p += 2;
+				lastPos = p;
 				assert( p <= (buf+length) );
 			}
-			else if ( *p == 0xd ) {
-				// Carriage return. Append what we have so far, then
-				// handle moving forward in the buffer.
-				if ( (p-lastPos) > 0 ) {
-					data.append( lastPos, p-lastPos );	// do not add the CR
-				}
-				data += (char)0xa;						// a proper newline
-
-				if ( *(p+1) == 0xa ) {
-					// Carriage return - new line sequence
-					p += 2;
-					lastPos = p;
-					assert( p <= (buf+length) );
-				}
-				else {
-					// it was followed by something else...that is presumably characters again.
-					++p;
-					lastPos = p;
-					assert( p <= (buf+length) );
-				}
-			}
 			else {
+				// it was followed by something else...that is presumably characters again.
 				++p;
+				lastPos = p;
+				assert( p <= (buf+length) );
 			}
 		}
-		// Handle any left over characters.
-		if ( p-lastPos ) {
-			data.append( lastPos, p-lastPos );
-		}		
-		delete [] buf;
-		buf = 0;
-
-		Parse( data.c_str(), 0, encoding );
-
-		if (  Error() )
-            return false;
-        else
-			return true;
+		else {
+			++p;
+		}
 	}
-	SetError( TIXML_ERROR_OPENING_FILE, 0, 0, TIXML_ENCODING_UNKNOWN );
-	return false;
+	// Handle any left over characters.
+	if ( p-lastPos ) {
+		data.append( lastPos, p-lastPos );
+	}		
+	delete [] buf;
+	buf = 0;
+
+	Parse( data.c_str(), 0, encoding );
+
+	if (  Error() )
+        return false;
+    else
+		return true;
 }
 
+
 bool TiXmlDocument::SaveFile( const char * filename ) const
 {
 	// The old c stuff lives on...
 	FILE* fp = fopen( filename, "w" );
 	if ( fp )
 	{
-		if ( useMicrosoftBOM ) 
-		{
-			const unsigned char TIXML_UTF_LEAD_0 = 0xefU;
-			const unsigned char TIXML_UTF_LEAD_1 = 0xbbU;
-			const unsigned char TIXML_UTF_LEAD_2 = 0xbfU;
-
-			fputc( TIXML_UTF_LEAD_0, fp );
-			fputc( TIXML_UTF_LEAD_1, fp );
-			fputc( TIXML_UTF_LEAD_2, fp );
-		}
-		Print( fp, 0 );
+		bool result = SaveFile( fp );
 		fclose( fp );
-		return true;
+		return result;
 	}
 	return false;
 }
 
 
+bool TiXmlDocument::SaveFile( FILE* fp ) const
+{
+	if ( useMicrosoftBOM ) 
+	{
+		const unsigned char TIXML_UTF_LEAD_0 = 0xefU;
+		const unsigned char TIXML_UTF_LEAD_1 = 0xbbU;
+		const unsigned char TIXML_UTF_LEAD_2 = 0xbfU;
+
+		fputc( TIXML_UTF_LEAD_0, fp );
+		fputc( TIXML_UTF_LEAD_1, fp );
+		fputc( TIXML_UTF_LEAD_2, fp );
+	}
+	Print( fp, 0 );
+	return true;
+}
+
+
 void TiXmlDocument::CopyTo( TiXmlDocument* target ) const
 {
 	TiXmlNode::CopyTo( target );
@@ -1332,14 +1399,8 @@
 		for ( i=0; i<depth; i++ ) {
 			fprintf( cfile, "    " );
 		}
-		fprintf( cfile, "<![CDATA[\n" );
-
+		fprintf( cfile, "<![CDATA[" );
 		fprintf( cfile, "%s", value.c_str() );	// unformatted output
-
-		fprintf( cfile, "\n" );
-		for ( i=0; i<depth; i++ ) {
-			fprintf( cfile, "    " );
-		}
 		fprintf( cfile, "]]>\n" );
 	}
 	else
@@ -1531,7 +1592,7 @@
 
 void TiXmlAttributeSet::Add( TiXmlAttribute* addMe )
 {
-	assert( !Find( addMe->Name() ) );	// Shouldn't be multiply adding to the set.
+	assert( !Find( TIXML_STRING( addMe->Name() ) ) );	// Shouldn't be multiply adding to the set.
 
 	addMe->next = &sentinel;
 	addMe->prev = sentinel.prev;
@@ -1558,7 +1619,7 @@
 	assert( 0 );		// we tried to remove a non-linked attribute.
 }
 
-const TiXmlAttribute* TiXmlAttributeSet::Find( const char * name ) const
+const TiXmlAttribute* TiXmlAttributeSet::Find( const TIXML_STRING& name ) const
 {
 	const TiXmlAttribute* node;
 
@@ -1570,7 +1631,7 @@
 	return 0;
 }
 
-TiXmlAttribute*	TiXmlAttributeSet::Find( const char * name )
+TiXmlAttribute*	TiXmlAttributeSet::Find( const TIXML_STRING& name )
 {
 	TiXmlAttribute* node;
 
diff --git a/tinyxml.h b/tinyxml.h
index 18cf94f..091575a 100644
--- a/tinyxml.h
+++ b/tinyxml.h
@@ -43,13 +43,6 @@
 #define DEBUG
 #endif
 
-#if defined( DEBUG ) && defined( _MSC_VER )
-#include <windows.h>
-#define TIXML_LOG OutputDebugString
-#else
-#define TIXML_LOG printf
-#endif
-
 #ifdef TIXML_USE_STL
 	#include <string>
  	#include <iostream>
@@ -69,7 +62,11 @@
 
 #define TIXML_SAFE		// TinyXml isn't fully buffer overrun protected, safe code. This is work in progress.
 #ifdef TIXML_SAFE
-	#if defined(_MSC_VER) && (_MSC_VER >= 1200 )
+	#if defined(_MSC_VER) && (_MSC_VER >= 1400 )
+		// Microsoft visual studio, version 2005 and higher.
+		#define TIXML_SNPRINTF _snprintf_s
+		#define TIXML_SNSCANF  _snscanf_s
+	#elif defined(_MSC_VER) && (_MSC_VER >= 1200 )
 		// Microsoft visual studio, version 6 and higher.
 		//#pragma message( "Using _sn* functions." )
 		#define TIXML_SNPRINTF _snprintf
@@ -93,7 +90,7 @@
 
 const int TIXML_MAJOR_VERSION = 2;
 const int TIXML_MINOR_VERSION = 4;
-const int TIXML_PATCH_VERSION = 0;
+const int TIXML_PATCH_VERSION = 3;
 
 /*	Internal structure for tracking location of items 
 	in the XML file.
@@ -248,6 +245,12 @@
 	{ 
 		return ( isspace( (unsigned char) c ) || c == '\n' || c == '\r' ); 
 	}
+	inline static bool	IsWhiteSpace( int c )
+	{
+		if ( c < 256 )
+			return IsWhiteSpace( (char) c );
+		return false;	// Again, only truly correct for English/Latin...but usually works.
+	}
 
 	virtual void StreamOut (TIXML_OSTREAM *) const = 0;
 
@@ -469,11 +472,7 @@
 
     #ifdef TIXML_USE_STL
 	/// STL std::string form.
-	void SetValue( const std::string& _value )    
-	{	  
-		StringToBuffer buf( _value );
-		SetValue( buf.buffer ? buf.buffer : "" );    	
-	}	
+	void SetValue( const std::string& _value )	{ value = _value; }
 	#endif
 
 	/// Delete all the children of this node. Does not affect 'this'.
@@ -622,7 +621,7 @@
 		The possible types are: DOCUMENT, ELEMENT, COMMENT,
 								UNKNOWN, TEXT, and DECLARATION.
 	*/
-	virtual int Type() const	{ return type; }
+	int Type() const	{ return type; }
 
 	/** Return a pointer to the Document this node lives in.
 		Returns null if not in a document.
@@ -633,19 +632,19 @@
 	/// Returns true if this node has no children.
 	bool NoChildren() const						{ return !firstChild; }
 
-	const TiXmlDocument* ToDocument()	const		{ return ( this && type == DOCUMENT ) ? (const TiXmlDocument*) this : 0; } ///< Cast to a more defined type. Will return null not of the requested type.
-	const TiXmlElement*  ToElement() const			{ return ( this && type == ELEMENT  ) ? (const TiXmlElement*)  this : 0; } ///< Cast to a more defined type. Will return null not of the requested type.
-	const TiXmlComment*  ToComment() const			{ return ( this && type == COMMENT  ) ? (const TiXmlComment*)  this : 0; } ///< Cast to a more defined type. Will return null not of the requested type.
-	const TiXmlUnknown*  ToUnknown() const			{ return ( this && type == UNKNOWN  ) ? (const TiXmlUnknown*)  this : 0; } ///< Cast to a more defined type. Will return null not of the requested type.
-	const TiXmlText*	   ToText()    const		{ return ( this && type == TEXT     ) ? (const TiXmlText*)     this : 0; } ///< Cast to a more defined type. Will return null not of the requested type.
-	const TiXmlDeclaration* ToDeclaration() const	{ return ( this && type == DECLARATION ) ? (const TiXmlDeclaration*) this : 0; } ///< Cast to a more defined type. Will return null not of the requested type.
+	virtual const TiXmlDocument*    ToDocument()    const { return 0; } ///< Cast to a more defined type. Will return null if not of the requested type.
+	virtual const TiXmlElement*     ToElement()     const { return 0; } ///< Cast to a more defined type. Will return null if not of the requested type.
+	virtual const TiXmlComment*     ToComment()     const { return 0; } ///< Cast to a more defined type. Will return null if not of the requested type.
+	virtual const TiXmlUnknown*     ToUnknown()     const { return 0; } ///< Cast to a more defined type. Will return null if not of the requested type.
+	virtual const TiXmlText*        ToText()        const { return 0; } ///< Cast to a more defined type. Will return null if not of the requested type.
+	virtual const TiXmlDeclaration* ToDeclaration() const { return 0; } ///< Cast to a more defined type. Will return null if not of the requested type.
 
-	TiXmlDocument* ToDocument()			{ return ( this && type == DOCUMENT ) ? (TiXmlDocument*) this : 0; } ///< Cast to a more defined type. Will return null not of the requested type.
-	TiXmlElement*  ToElement()			{ return ( this && type == ELEMENT  ) ? (TiXmlElement*)  this : 0; } ///< Cast to a more defined type. Will return null not of the requested type.
-	TiXmlComment*  ToComment()			{ return ( this && type == COMMENT  ) ? (TiXmlComment*)  this : 0; } ///< Cast to a more defined type. Will return null not of the requested type.
-	TiXmlUnknown*  ToUnknown()			{ return ( this && type == UNKNOWN  ) ? (TiXmlUnknown*)  this : 0; } ///< Cast to a more defined type. Will return null not of the requested type.
-	TiXmlText*	   ToText()   			{ return ( this && type == TEXT     ) ? (TiXmlText*)     this : 0; } ///< Cast to a more defined type. Will return null not of the requested type.
-	TiXmlDeclaration* ToDeclaration()	{ return ( this && type == DECLARATION ) ? (TiXmlDeclaration*) this : 0; } ///< Cast to a more defined type. Will return null not of the requested type.
+	virtual TiXmlDocument*          ToDocument()    { return 0; } ///< Cast to a more defined type. Will return null if not of the requested type.
+	virtual TiXmlElement*           ToElement()	    { return 0; } ///< Cast to a more defined type. Will return null if not of the requested type.
+	virtual TiXmlComment*           ToComment()     { return 0; } ///< Cast to a more defined type. Will return null if not of the requested type.
+	virtual TiXmlUnknown*           ToUnknown()	    { return 0; } ///< Cast to a more defined type. Will return null if not of the requested type.
+	virtual TiXmlText*	            ToText()        { return 0; } ///< Cast to a more defined type. Will return null if not of the requested type.
+	virtual TiXmlDeclaration*       ToDeclaration() { return 0; } ///< Cast to a more defined type. Will return null if not of the requested type.
 
 	/** Create an exact duplicate of this node and return it. The memory must be deleted
 		by the caller. 
@@ -728,6 +727,9 @@
 	int				IntValue() const;									///< Return the value of this attribute, converted to an integer.
 	double			DoubleValue() const;								///< Return the value of this attribute, converted to a double.
 
+	// Get the tinyxml string representation
+	const TIXML_STRING& NameTStr() const { return name; }
+
 	/** QueryIntValue examines the value string. It is an alternative to the
 		IntValue() method with richer error checking.
 		If the value is an integer, it is stored in 'value' and 
@@ -749,17 +751,9 @@
 
     #ifdef TIXML_USE_STL
 	/// STL std::string form.
-	void SetName( const std::string& _name )	
-	{	
-		StringToBuffer buf( _name );
-		SetName ( buf.buffer ? buf.buffer : "error" );	
-	}
+	void SetName( const std::string& _name )	{ name = _name; }	
 	/// STL std::string form.	
-	void SetValue( const std::string& _value )	
-	{	
-		StringToBuffer buf( _value );
-		SetValue( buf.buffer ? buf.buffer : "error" );	
-	}
+	void SetValue( const std::string& _value )	{ value = _value; }
 	#endif
 
 	/// Get the next sibling attribute in the DOM. Returns null at end.
@@ -824,8 +818,8 @@
 	const TiXmlAttribute* Last() const		{ return ( sentinel.prev == &sentinel ) ? 0 : sentinel.prev; }
 	TiXmlAttribute* Last()					{ return ( sentinel.prev == &sentinel ) ? 0 : sentinel.prev; }
 
-	const TiXmlAttribute*	Find( const char * name ) const;
-	TiXmlAttribute*	Find( const char * name );
+	const TiXmlAttribute*	Find( const TIXML_STRING& name ) const;
+	TiXmlAttribute*	Find( const TIXML_STRING& name );
 
 private:
 	//*ME:	Because of hidden/disabled copy-construktor in TiXmlAttribute (sentinel-element),
@@ -912,20 +906,9 @@
 	int QueryDoubleAttribute( const std::string& name, double* _value ) const { return QueryDoubleAttribute( name.c_str(), _value ); }
 
 	/// STL std::string form.
-	void SetAttribute( const std::string& name, const std::string& _value )	
-	{	
-		StringToBuffer n( name );
-		StringToBuffer v( _value );
-		if ( n.buffer && v.buffer )
-			SetAttribute (n.buffer, v.buffer );	
-	}	
+	void SetAttribute( const std::string& name, const std::string& _value );
 	///< STL std::string form.
-	void SetAttribute( const std::string& name, int _value )	
-	{	
-		StringToBuffer n( name );
-		if ( n.buffer )
-			SetAttribute (n.buffer, _value);	
-	}	
+	void SetAttribute( const std::string& name, int _value );
 	#endif
 
 	/** Sets an attribute of name to a given value. The attribute
@@ -955,7 +938,7 @@
 		and accessing it directly.
 	
 		If the first child of 'this' is a TiXmlText, the GetText()
-		returs the character string of the Text node, else null is returned.
+		returns the character string of the Text node, else null is returned.
 
 		This is a convenient method for getting the text of simple contained text:
 		@verbatim
@@ -994,6 +977,9 @@
 	*/
 	virtual const char* Parse( const char* p, TiXmlParsingData* data, TiXmlEncoding encoding );
 
+	virtual const TiXmlElement*     ToElement()     const { return this; } ///< Cast to a more defined type. Will return null not of the requested type.
+	virtual TiXmlElement*           ToElement()	          { return this; } ///< Cast to a more defined type. Will return null not of the requested type.
+	
 protected:
 
 	void CopyTo( TiXmlElement* target ) const;
@@ -1039,6 +1025,9 @@
 	*/
 	virtual const char* Parse( const char* p, TiXmlParsingData* data, TiXmlEncoding encoding );
 
+	virtual const TiXmlComment*  ToComment() const { return this; } ///< Cast to a more defined type. Will return null not of the requested type.
+	virtual TiXmlComment*  ToComment() { return this; } ///< Cast to a more defined type. Will return null not of the requested type.
+
 protected:
 	void CopyTo( TiXmlComment* target ) const;
 
@@ -1095,6 +1084,9 @@
 
 	virtual const char* Parse( const char* p, TiXmlParsingData* data, TiXmlEncoding encoding );
 
+	virtual const TiXmlText* ToText() const { return this; } ///< Cast to a more defined type. Will return null not of the requested type.
+	virtual TiXmlText*       ToText()       { return this; } ///< Cast to a more defined type. Will return null not of the requested type.
+
 protected :
 	///  [internal use] Creates a new Element and returns it.
 	virtual TiXmlNode* Clone() const;
@@ -1162,6 +1154,9 @@
 
 	virtual const char* Parse( const char* p, TiXmlParsingData* data, TiXmlEncoding encoding );
 
+	virtual const TiXmlDeclaration* ToDeclaration() const { return this; } ///< Cast to a more defined type. Will return null not of the requested type.
+	virtual TiXmlDeclaration*       ToDeclaration()       { return this; } ///< Cast to a more defined type. Will return null not of the requested type.
+
 protected:
 	void CopyTo( TiXmlDeclaration* target ) const;
 	// used to be public
@@ -1201,6 +1196,9 @@
 
 	virtual const char* Parse( const char* p, TiXmlParsingData* data, TiXmlEncoding encoding );
 
+	virtual const TiXmlUnknown*     ToUnknown()     const { return this; } ///< Cast to a more defined type. Will return null not of the requested type.
+	virtual TiXmlUnknown*           ToUnknown()	    { return this; } ///< Cast to a more defined type. Will return null not of the requested type.
+
 protected:
 	void CopyTo( TiXmlUnknown* target ) const;
 
@@ -1247,6 +1245,14 @@
 	bool LoadFile( const char * filename, TiXmlEncoding encoding = TIXML_DEFAULT_ENCODING );
 	/// Save a file using the given filename. Returns true if successful.
 	bool SaveFile( const char * filename ) const;
+	/** Load a file using the given FILE*. Returns true if successful. Note that this method
+		doesn't stream - the entire object pointed at by the FILE*
+		will be interpreted as an XML file. TinyXML doesn't stream in XML from the current
+		file location. Streaming may be added in the future.
+	*/
+	bool LoadFile( FILE*, TiXmlEncoding encoding = TIXML_DEFAULT_ENCODING );
+	/// Save a file using the given FILE*. Returns true if successful.
+	bool SaveFile( FILE* ) const;
 
 	#ifdef TIXML_USE_STL
 	bool LoadFile( const std::string& filename, TiXmlEncoding encoding = TIXML_DEFAULT_ENCODING )			///< STL std::string version.
@@ -1345,6 +1351,9 @@
 	// [internal use]
 	void SetError( int err, const char* errorLocation, TiXmlParsingData* prevData, TiXmlEncoding encoding );
 
+	virtual const TiXmlDocument*    ToDocument()    const { return this; } ///< Cast to a more defined type. Will return null not of the requested type.
+	virtual TiXmlDocument*          ToDocument()          { return this; } ///< Cast to a more defined type. Will return null not of the requested type.
+
 protected :
 	virtual void StreamOut ( TIXML_OSTREAM * out) const;
 	// [internal use]
diff --git a/tinyxmlparser.cpp b/tinyxmlparser.cpp
index 67d0a9e..cfe4eb2 100644
--- a/tinyxmlparser.cpp
+++ b/tinyxmlparser.cpp
@@ -27,6 +27,14 @@
 #include <stddef.h>
 
 //#define DEBUG_PARSER
+#if defined( DEBUG_PARSER )
+#	if defined( DEBUG ) && defined( _MSC_VER )
+#		include <windows.h>
+#		define TIXML_LOG OutputDebugString
+#	else
+#		define TIXML_LOG printf
+#	endif
+#endif
 
 // Note tha "PutString" hardcodes the same list. This
 // is less flexible than it appears. Changing the entries
@@ -265,6 +273,12 @@
 						else
 							{ p +=3; ++col; }	// A normal character.
 					}
+					else
+					{
+						// TIXML_UTF_LEAD_0 (239) is the start character of a 3 byte sequence, so
+						// there is something wrong here. Just advance the pointer to evade infinite loops
+						++p;
+					}
 				}
 				else
 				{
@@ -1116,7 +1130,7 @@
 			}
 
 			// Handle the strange case of double attributes:
-			TiXmlAttribute* node = attributeSet.Find( attrib->Name() );
+			TiXmlAttribute* node = attributeSet.Find( attrib->NameTStr() );
 			if ( node )
 			{
 				node->SetValue( attrib->Value() );
diff --git a/xmltest.cpp b/xmltest.cpp
index 8aa350e..1ec46c1 100644
--- a/xmltest.cpp
+++ b/xmltest.cpp
@@ -14,12 +14,9 @@
 #endif
 
 #if defined( WIN32 ) && defined( TUNE )
-	#include <windows.h>
-	// Apologies to non-windows users! But I need some good timers for
-	// profiling, and these are very platform specific.
-	__int64 start;
-	__int64 end;
-	__int64 freq;
+	#include <crtdbg.h>
+	_CrtMemState startMemState;
+	_CrtMemState endMemState;
 #endif
 
 static int gPass = 0;
@@ -117,7 +114,7 @@
 
 	// The example parses from the character string (above):
 	#if defined( WIN32 ) && defined( TUNE )
-	QueryPerformanceCounter( (LARGE_INTEGER*) (&start) );
+	_CrtMemCheckpoint( &startMemState );
 	#endif	
 
 	{
@@ -588,7 +585,7 @@
 		XmlTest( "Copy/Assign: element copy #2.", "value", elementCopy.Attribute( "name" ) );
 		XmlTest( "Copy/Assign: element assign #1.", "element", elementAssign.Value() );
 		XmlTest( "Copy/Assign: element assign #2.", "value", elementAssign.Attribute( "name" ) );
-		XmlTest( "Copy/Assign: element assign #3.", 0, (int) elementAssign.Attribute( "foo" ) );
+		XmlTest( "Copy/Assign: element assign #3.", true, ( 0 == elementAssign.Attribute( "foo" )) );
 
 		TiXmlComment comment;
 		comment.Parse( "<!--comment-->", 0, TIXML_ENCODING_UNKNOWN );
@@ -648,15 +645,15 @@
 #ifdef TIXML_USE_STL
 	printf ("\n** Parsing, no Condense Whitespace **\n");
 	TiXmlBase::SetCondenseWhiteSpace( false );
+	{
+		istringstream parse1( "<start>This  is    \ntext</start>" );
+		TiXmlElement text1( "text" );
+		parse1 >> text1;
 
-	istringstream parse1( "<start>This  is    \ntext</start>" );
-	TiXmlElement text1( "text" );
-	parse1 >> text1;
-
-	XmlTest ( "Condense white space OFF.", "This  is    \ntext",
-				text1.FirstChild()->Value(),
-				true );
-
+		XmlTest ( "Condense white space OFF.", "This  is    \ntext",
+					text1.FirstChild()->Value(),
+					true );
+	}
 	TiXmlBase::SetCondenseWhiteSpace( true );
 #endif
 
@@ -699,7 +696,7 @@
 							"</xmlElement>";
 		TiXmlDocument doc;
 		doc.Parse( str );
-		//doc.Print();
+		doc.Print();
 
 		XmlTest( "CDATA parse.", doc.FirstChildElement()->FirstChild()->Value(), 
 								 "I am > the rules!\n...since I make symbolic puns",
@@ -1040,9 +1037,12 @@
 	}
 
 	#if defined( WIN32 ) && defined( TUNE )
-	QueryPerformanceCounter( (LARGE_INTEGER*) (&end) );
-	QueryPerformanceFrequency( (LARGE_INTEGER*) (&freq) );
-	printf( "Time for run: %f\n", ( double )( end-start ) / (double) freq );
+	_CrtMemCheckpoint( &endMemState );
+	//_CrtMemDumpStatistics( &endMemState );
+
+	_CrtMemState diffMemState;
+	_CrtMemDifference( &diffMemState, &startMemState, &endMemState );
+	_CrtMemDumpStatistics( &diffMemState );
 	#endif
 
 	printf ("\nPass %d, Fail %d\n", gPass, gFail);