Imported Upstream version 7.0.1 upstream/7.0.1
authorJinWang An <jinwang.an@samsung.com>
Fri, 30 Oct 2020 05:35:16 +0000 (14:35 +0900)
committerJinWang An <jinwang.an@samsung.com>
Fri, 30 Oct 2020 05:35:16 +0000 (14:35 +0900)
43 files changed:
CMakeLists.txt
docs/_example_1.html
docs/_example_2.html
docs/_example_3.html
docs/_example_4.html
docs/annotated.html
docs/classes.html
docs/classtinyxml2_1_1_x_m_l_attribute-members.html
docs/classtinyxml2_1_1_x_m_l_attribute.html
docs/classtinyxml2_1_1_x_m_l_comment-members.html
docs/classtinyxml2_1_1_x_m_l_comment.html
docs/classtinyxml2_1_1_x_m_l_const_handle-members.html
docs/classtinyxml2_1_1_x_m_l_const_handle.html
docs/classtinyxml2_1_1_x_m_l_declaration-members.html
docs/classtinyxml2_1_1_x_m_l_declaration.html
docs/classtinyxml2_1_1_x_m_l_document-members.html
docs/classtinyxml2_1_1_x_m_l_document.html
docs/classtinyxml2_1_1_x_m_l_element-members.html
docs/classtinyxml2_1_1_x_m_l_element.html
docs/classtinyxml2_1_1_x_m_l_handle-members.html
docs/classtinyxml2_1_1_x_m_l_handle.html
docs/classtinyxml2_1_1_x_m_l_node-members.html
docs/classtinyxml2_1_1_x_m_l_node.html
docs/classtinyxml2_1_1_x_m_l_printer-members.html
docs/classtinyxml2_1_1_x_m_l_printer.html
docs/classtinyxml2_1_1_x_m_l_text-members.html
docs/classtinyxml2_1_1_x_m_l_text.html
docs/classtinyxml2_1_1_x_m_l_unknown-members.html
docs/classtinyxml2_1_1_x_m_l_unknown.html
docs/classtinyxml2_1_1_x_m_l_visitor-members.html
docs/classtinyxml2_1_1_x_m_l_visitor.html
docs/files.html
docs/functions.html
docs/functions_func.html
docs/hierarchy.html
docs/index.html
docs/pages.html
docs/search/all_d.js
docs/search/functions_d.js
docs/tinyxml2_8h_source.html
dox
tinyxml2.h
tinyxml2.pc.in

index bd8005eb1c5f59cd8e15cb67b62ffdcb377806a1..378b48a0ce94731f308a92bbc121aed5d4cb3783 100644 (file)
@@ -21,7 +21,7 @@ include(CTest)
 ################################\r
 # set lib version here\r
 \r
-set(GENERIC_LIB_VERSION "7.0.0")\r
+set(GENERIC_LIB_VERSION "7.0.1")\r
 set(GENERIC_LIB_SOVERSION "7")\r
 \r
 ################################\r
index 29362d6e6fa428b64514ba103a8f3130bb85708d..17322ad3faab83389abd266bc7189fe055d7fbad 100644 (file)
@@ -22,7 +22,7 @@
  <tr style="height: 56px;">
   <td id="projectalign" style="padding-left: 0.5em;">
    <div id="projectname">TinyXML-2
-   &#160;<span id="projectnumber">6.0.0</span>
+   &#160;<span id="projectnumber">7.0.0</span>
    </div>
   </td>
  </tr>
@@ -67,7 +67,7 @@ $(function() {
 </div></div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Sun Dec 10 2017 20:04:44 for TinyXML-2 by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Tue Nov 6 2018 09:38:26 for TinyXML-2 by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.13
 </small></address>
index e4fe6c6c87fd4d7adaab9c00e3bc47a0f900ed01..e5c0dd41cf8637983db8e7361df40c53c76f2cee 100644 (file)
@@ -22,7 +22,7 @@
  <tr style="height: 56px;">
   <td id="projectalign" style="padding-left: 0.5em;">
    <div id="projectname">TinyXML-2
-   &#160;<span id="projectnumber">6.0.0</span>
+   &#160;<span id="projectnumber">7.0.0</span>
    </div>
   </td>
  </tr>
@@ -67,7 +67,7 @@ $(function() {
 </div></div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Sun Dec 10 2017 20:04:44 for TinyXML-2 by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Tue Nov 6 2018 09:38:26 for TinyXML-2 by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.13
 </small></address>
index 34551d3f526b1cb209b38424bc9201b479a0e820..31bb54b1e356bfbffe49e31c4dcc5ecbfd7c0947 100644 (file)
@@ -22,7 +22,7 @@
  <tr style="height: 56px;">
   <td id="projectalign" style="padding-left: 0.5em;">
    <div id="projectname">TinyXML-2
-   &#160;<span id="projectnumber">6.0.0</span>
+   &#160;<span id="projectnumber">7.0.0</span>
    </div>
   </td>
  </tr>
@@ -96,7 +96,7 @@ Text "A Midsummer Night's Dream" </li>
 </div></div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Sun Dec 10 2017 20:04:44 for TinyXML-2 by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Tue Nov 6 2018 09:38:26 for TinyXML-2 by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.13
 </small></address>
index ad871b98900be7e7c6e497c5b3178a1720cb5229..e5c1c077d947919012f93ae72533837f470fe29e 100644 (file)
@@ -22,7 +22,7 @@
  <tr style="height: 56px;">
   <td id="projectalign" style="padding-left: 0.5em;">
    <div id="projectname">TinyXML-2
-   &#160;<span id="projectnumber">6.0.0</span>
+   &#160;<span id="projectnumber">7.0.0</span>
    </div>
   </td>
  </tr>
@@ -73,7 +73,7 @@ $(function() {
 </div></div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Sun Dec 10 2017 20:04:44 for TinyXML-2 by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Tue Nov 6 2018 09:38:26 for TinyXML-2 by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.13
 </small></address>
index 795cea1fd62080f819d36fce5ef0e57bb25f6f03..ac85843287815699e6ce3de2302a61dbf08e1a31 100644 (file)
@@ -22,7 +22,7 @@
  <tr style="height: 56px;">
   <td id="projectalign" style="padding-left: 0.5em;">
    <div id="projectname">TinyXML-2
-   &#160;<span id="projectnumber">6.0.0</span>
+   &#160;<span id="projectnumber">7.0.0</span>
    </div>
   </td>
  </tr>
@@ -83,7 +83,7 @@ $(function() {
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Sun Dec 10 2017 20:04:44 for TinyXML-2 by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Tue Nov 6 2018 09:38:26 for TinyXML-2 by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.13
 </small></address>
index e7d20bc0f9e984a52f62678067a3d06abc8bb61c..efaf47a31b1903090e992ae1e9db65986d118721 100644 (file)
@@ -22,7 +22,7 @@
  <tr style="height: 56px;">
   <td id="projectalign" style="padding-left: 0.5em;">
    <div id="projectname">TinyXML-2
-   &#160;<span id="projectnumber">6.0.0</span>
+   &#160;<span id="projectnumber">7.0.0</span>
    </div>
   </td>
  </tr>
@@ -75,7 +75,7 @@ $(function() {
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Sun Dec 10 2017 20:04:44 for TinyXML-2 by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Tue Nov 6 2018 09:38:26 for TinyXML-2 by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.13
 </small></address>
index e25e284fc3305d79f7bc6a89984e31d310bc4d4f..8a9acc3f325ef01bf32e4303b1e46262e11a9940 100644 (file)
@@ -22,7 +22,7 @@
  <tr style="height: 56px;">
   <td id="projectalign" style="padding-left: 0.5em;">
    <div id="projectname">TinyXML-2
-   &#160;<span id="projectnumber">6.0.0</span>
+   &#160;<span id="projectnumber">7.0.0</span>
    </div>
   </td>
  </tr>
@@ -95,7 +95,7 @@ $(function() {
 </table></div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Sun Dec 10 2017 20:04:44 for TinyXML-2 by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Tue Nov 6 2018 09:38:26 for TinyXML-2 by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.13
 </small></address>
index 2e82a104107b74d9325ab7bebc6330b1c11cda18..b3e4f1543796da8a43513b6ce5f6444a143f1d8b 100644 (file)
@@ -22,7 +22,7 @@
  <tr style="height: 56px;">
   <td id="projectalign" style="padding-left: 0.5em;">
    <div id="projectname">TinyXML-2
-   &#160;<span id="projectnumber">6.0.0</span>
+   &#160;<span id="projectnumber">7.0.0</span>
    </div>
   </td>
  </tr>
@@ -215,7 +215,7 @@ void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="clas
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Sun Dec 10 2017 20:04:44 for TinyXML-2 by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Tue Nov 6 2018 09:38:26 for TinyXML-2 by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.13
 </small></address>
index e4e8d8a6ce2edb3670bcfeb9212265e6de0d2fa5..404cd26ec548c4a758b51ae1d9f7c630cad5428e 100644 (file)
@@ -22,7 +22,7 @@
  <tr style="height: 56px;">
   <td id="projectalign" style="padding-left: 0.5em;">
    <div id="projectname">TinyXML-2
-   &#160;<span id="projectnumber">6.0.0</span>
+   &#160;<span id="projectnumber">7.0.0</span>
    </div>
   </td>
  </tr>
@@ -105,7 +105,7 @@ $(function() {
 </table></div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Sun Dec 10 2017 20:04:44 for TinyXML-2 by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Tue Nov 6 2018 09:38:26 for TinyXML-2 by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.13
 </small></address>
index 1c60c121b61eb3870933585deb16a5f8a68a3f57..669db4665e7cba69c73b162e2c913940a20e75dc 100644 (file)
@@ -22,7 +22,7 @@
  <tr style="height: 56px;">
   <td id="projectalign" style="padding-left: 0.5em;">
    <div id="projectname">TinyXML-2
-   &#160;<span id="projectnumber">6.0.0</span>
+   &#160;<span id="projectnumber">7.0.0</span>
    </div>
   </td>
  </tr>
@@ -292,7 +292,7 @@ const char* xmlcstr = printer.CStr();
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Sun Dec 10 2017 20:04:44 for TinyXML-2 by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Tue Nov 6 2018 09:38:26 for TinyXML-2 by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.13
 </small></address>
index 7f02f67a0ec79926318db32b150a5a30cf0a3b4d..50c3c539853c2ac3114420c97dfc6e8012143b2d 100644 (file)
@@ -22,7 +22,7 @@
  <tr style="height: 56px;">
   <td id="projectalign" style="padding-left: 0.5em;">
    <div id="projectname">TinyXML-2
-   &#160;<span id="projectnumber">6.0.0</span>
+   &#160;<span id="projectnumber">7.0.0</span>
    </div>
   </td>
  </tr>
@@ -73,7 +73,7 @@ $(function() {
 </table></div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Sun Dec 10 2017 20:04:44 for TinyXML-2 by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Tue Nov 6 2018 09:38:26 for TinyXML-2 by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.13
 </small></address>
index 4f5b6c5f46d64ef4fd8c0b661ec95d7c049b9f7c..031e2562788ce35c81107213f69487b7c9b74f99 100644 (file)
@@ -22,7 +22,7 @@
  <tr style="height: 56px;">
   <td id="projectalign" style="padding-left: 0.5em;">
    <div id="projectname">TinyXML-2
-   &#160;<span id="projectnumber">6.0.0</span>
+   &#160;<span id="projectnumber">7.0.0</span>
    </div>
   </td>
  </tr>
@@ -79,7 +79,7 @@ $(function() {
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Sun Dec 10 2017 20:04:44 for TinyXML-2 by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Tue Nov 6 2018 09:38:26 for TinyXML-2 by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.13
 </small></address>
index 416c8306425100c4e1baba37146b6ae0ac0c2cbf..2a4e7764817d0a3b09a0a8522744a8f81c93347e 100644 (file)
@@ -22,7 +22,7 @@
  <tr style="height: 56px;">
   <td id="projectalign" style="padding-left: 0.5em;">
    <div id="projectname">TinyXML-2
-   &#160;<span id="projectnumber">6.0.0</span>
+   &#160;<span id="projectnumber">7.0.0</span>
    </div>
   </td>
  </tr>
@@ -105,7 +105,7 @@ $(function() {
 </table></div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Sun Dec 10 2017 20:04:44 for TinyXML-2 by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Tue Nov 6 2018 09:38:26 for TinyXML-2 by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.13
 </small></address>
index a3e5d66e76d698d63631a651acb2637caf9af0c1..f50306ba33a5d09a70bb91c67e0880ccbde12d22 100644 (file)
@@ -22,7 +22,7 @@
  <tr style="height: 56px;">
   <td id="projectalign" style="padding-left: 0.5em;">
    <div id="projectname">TinyXML-2
-   &#160;<span id="projectnumber">6.0.0</span>
+   &#160;<span id="projectnumber">7.0.0</span>
    </div>
   </td>
  </tr>
@@ -294,7 +294,7 @@ const char* xmlcstr = printer.CStr();
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Sun Dec 10 2017 20:04:44 for TinyXML-2 by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Tue Nov 6 2018 09:38:26 for TinyXML-2 by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.13
 </small></address>
index e3d048d3645015b22bcc0402d627186c4fcb46bf..ffac0625ddc055fd49b53e73431e269351c54b84 100644 (file)
@@ -22,7 +22,7 @@
  <tr style="height: 56px;">
   <td id="projectalign" style="padding-left: 0.5em;">
    <div id="projectname">TinyXML-2
-   &#160;<span id="projectnumber">6.0.0</span>
+   &#160;<span id="projectnumber">7.0.0</span>
    </div>
   </td>
  </tr>
@@ -128,7 +128,7 @@ $(function() {
 </table></div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Sun Dec 10 2017 20:04:44 for TinyXML-2 by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Tue Nov 6 2018 09:38:26 for TinyXML-2 by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.13
 </small></address>
index 61d46e1ee93a4ecb3ccc77910d1380edfca05a7d..c3e43c4959afbfba2c0638a835c8b3f661893652 100644 (file)
@@ -22,7 +22,7 @@
  <tr style="height: 56px;">
   <td id="projectalign" style="padding-left: 0.5em;">
    <div id="projectname">TinyXML-2
-   &#160;<span id="projectnumber">6.0.0</span>
+   &#160;<span id="projectnumber">7.0.0</span>
    </div>
   </td>
  </tr>
@@ -140,7 +140,7 @@ void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="clas
 <tr class="separator:a1d033945b42e125d933d6231e4571552"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:a57400f816dbe7799ece33615ead9ab76"><td class="memItemLeft" align="right" valign="top"><a id="a57400f816dbe7799ece33615ead9ab76"></a>
 int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtinyxml2_1_1_x_m_l_document.html#a57400f816dbe7799ece33615ead9ab76">ErrorLineNum</a> () const</td></tr>
-<tr class="memdesc:a57400f816dbe7799ece33615ead9ab76"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the line where the error occured, or zero if unknown. <br /></td></tr>
+<tr class="memdesc:a57400f816dbe7799ece33615ead9ab76"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the line where the error occurred, or zero if unknown. <br /></td></tr>
 <tr class="separator:a57400f816dbe7799ece33615ead9ab76"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:a65656b0b2cbc822708eb351504178aaf"><td class="memItemLeft" align="right" valign="top"><a id="a65656b0b2cbc822708eb351504178aaf"></a>
 void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtinyxml2_1_1_x_m_l_document.html#a65656b0b2cbc822708eb351504178aaf">Clear</a> ()</td></tr>
@@ -734,7 +734,7 @@ doc.Print( &amp;printer );
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Sun Dec 10 2017 20:04:44 for TinyXML-2 by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Tue Nov 6 2018 09:38:26 for TinyXML-2 by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.13
 </small></address>
index 251fbf7f0eba911104b5e40333f7f0064541a9be..b70b08b45703508fe74dad465dd42e29464e02b9 100644 (file)
@@ -22,7 +22,7 @@
  <tr style="height: 56px;">
   <td id="projectalign" style="padding-left: 0.5em;">
    <div id="projectname">TinyXML-2
-   &#160;<span id="projectnumber">6.0.0</span>
+   &#160;<span id="projectnumber">7.0.0</span>
    </div>
   </td>
  </tr>
@@ -106,7 +106,7 @@ $(function() {
   <tr><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_node.html#ae0f62bc186c56c2e0483ebd52dbfbe34">Parent</a>() const</td><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_node.html">tinyxml2::XMLNode</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
   <tr class="even"><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_node.html#aac667c513d445f8b783e1e15ef9d3551">PreviousSibling</a>() const</td><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_node.html">tinyxml2::XMLNode</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
   <tr><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_node.html#a872936cae46fb473eb47fec99129fc70">PreviousSiblingElement</a>(const char *name=0) const</td><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_node.html">tinyxml2::XMLNode</a></td><td class="entry"></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_element.html#a042fc30504347b84a56cf863ad528a4f">QueryAttribute</a>(const char *name, int *value) const</td><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_element.html">tinyxml2::XMLElement</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_element.html#a5b7df3bed2b8954eabf227fa204522eb">QueryAttribute</a>(const char *name, int *value) const</td><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_element.html">tinyxml2::XMLElement</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
   <tr><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_element.html#a14c1bb77c39689838be01838d86ca872">QueryBoolAttribute</a>(const char *name, bool *value) const</td><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_element.html">tinyxml2::XMLElement</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
   <tr class="even"><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_element.html#a3fe5417d59eb8f5c4afe924b7d332736">QueryBoolText</a>(bool *bval) const</td><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_element.html">tinyxml2::XMLElement</a></td><td class="entry"></td></tr>
   <tr><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_element.html#a5f0964e2dbd8e2ee7fce9beab689443c">QueryDoubleAttribute</a>(const char *name, double *value) const</td><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_element.html">tinyxml2::XMLElement</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
@@ -117,40 +117,41 @@ $(function() {
   <tr class="even"><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_element.html#a120c538c8eead169e635dbc70fb226d8">QueryInt64Text</a>(int64_t *uval) const</td><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_element.html">tinyxml2::XMLElement</a></td><td class="entry"></td></tr>
   <tr><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_element.html#a8a78bc1187c1c45ad89f2690eab567b1">QueryIntAttribute</a>(const char *name, int *value) const</td><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_element.html">tinyxml2::XMLElement</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
   <tr class="even"><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_element.html#a926357996bef633cb736e1a558419632">QueryIntText</a>(int *ival) const</td><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_element.html">tinyxml2::XMLElement</a></td><td class="entry"></td></tr>
-  <tr><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_element.html#a26fc84cbfba6769dafcfbf256c05e22f">QueryUnsignedAttribute</a>(const char *name, unsigned int *value) const</td><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_element.html">tinyxml2::XMLElement</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_element.html#a14d38aa4b5e18a46274a27425188a6a1">QueryUnsignedText</a>(unsigned *uval) const</td><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_element.html">tinyxml2::XMLElement</a></td><td class="entry"></td></tr>
-  <tr><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_element.html#a11943abf2d0831548c3790dd5d9f119c">SetAttribute</a>(const char *name, const char *value)</td><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_element.html">tinyxml2::XMLElement</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_element.html#aae6568c64c7f1cc88be8461ba41a79cf">SetAttribute</a>(const char *name, int value)</td><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_element.html">tinyxml2::XMLElement</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_element.html#ae143997e90064ba82326b29a9930ea8f">SetAttribute</a>(const char *name, unsigned value)</td><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_element.html">tinyxml2::XMLElement</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_element.html#aaeefdf9171fec91b13a776b42299b0dd">SetAttribute</a>(const char *name, int64_t value)</td><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_element.html">tinyxml2::XMLElement</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_element.html#aa848b696e6a75e4e545c6da9893b11e1">SetAttribute</a>(const char *name, bool value)</td><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_element.html">tinyxml2::XMLElement</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_element.html#a233397ee81e70eb5d4b814c5f8698533">SetAttribute</a>(const char *name, double value)</td><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_element.html">tinyxml2::XMLElement</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_element.html#a554b70d882e65b28fc084b23df9b9759">SetAttribute</a>(const char *name, float value)</td><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_element.html">tinyxml2::XMLElement</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_element.html#a97712009a530d8cb8a63bf705f02b4f1">SetName</a>(const char *str, bool staticMem=false)</td><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_element.html">tinyxml2::XMLElement</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_element.html#a1f9c2cd61b72af5ae708d37b7ad283ce">SetText</a>(const char *inText)</td><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_element.html">tinyxml2::XMLElement</a></td><td class="entry"></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_element.html#aeae8917b5ea6060b3c08d4e3d8d632d7">SetText</a>(int value)</td><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_element.html">tinyxml2::XMLElement</a></td><td class="entry"></td></tr>
-  <tr><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_element.html#a7bbfcc11d516598bc924a8fba4d08597">SetText</a>(unsigned value)</td><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_element.html">tinyxml2::XMLElement</a></td><td class="entry"></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_element.html#a7b62cd33acdfeff7ea2b1b330d4368e4">SetText</a>(int64_t value)</td><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_element.html">tinyxml2::XMLElement</a></td><td class="entry"></td></tr>
-  <tr><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_element.html#ae4b543d6770de76fb6ab68e541c192a4">SetText</a>(bool value)</td><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_element.html">tinyxml2::XMLElement</a></td><td class="entry"></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_element.html#a67bd77ac9aaeff58ff20b4275a65ba4e">SetText</a>(double value)</td><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_element.html">tinyxml2::XMLElement</a></td><td class="entry"></td></tr>
-  <tr><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_element.html#a51d560da5ae3ad6b75e0ab9ffb2ae42a">SetText</a>(float value)</td><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_element.html">tinyxml2::XMLElement</a></td><td class="entry"></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_node.html#a002978fc889cc011d143185f2377eca2">SetUserData</a>(void *userData)</td><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_node.html">tinyxml2::XMLNode</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_node.html#a09dd68cf9eae137579f6e50f36487513">SetValue</a>(const char *val, bool staticMem=false)</td><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_node.html">tinyxml2::XMLNode</a></td><td class="entry"></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_element.html#ac035742d68b0c50c3f676374e59fe750">ShallowClone</a>(XMLDocument *document) const</td><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_element.html">tinyxml2::XMLElement</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_element.html#ad9ea913a460b48979bd83cf9871c99f6">ShallowEqual</a>(const XMLNode *compare) const</td><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_element.html">tinyxml2::XMLElement</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_node.html#aff47671055aa99840a1c1ebd661e63e3">ToComment</a>()</td><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_node.html">tinyxml2::XMLNode</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_node.html#a174fd4c22c010b58138c1b84a0dfbd51">ToDeclaration</a>()</td><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_node.html">tinyxml2::XMLNode</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_node.html#a836e2966ed736fc3c94f70e12a2a3357">ToDocument</a>()</td><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_node.html">tinyxml2::XMLNode</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_element.html#ad9ff5c2dbc15df36cf664ce1b0ea0a5d">ToElement</a>()</td><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_element.html">tinyxml2::XMLElement</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_node.html#a41c55dab9162d1eb62db2008430e376b">ToText</a>()</td><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_node.html">tinyxml2::XMLNode</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_node.html#a8675a74aa0ada6eccab0c77ef3e5b9bd">ToUnknown</a>()</td><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_node.html">tinyxml2::XMLNode</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_element.html#afea43a1d4aa33e3703ddee5fc9adc26c">UnsignedAttribute</a>(const char *name, unsigned defaultValue=0) const</td><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_element.html">tinyxml2::XMLElement</a></td><td class="entry"></td></tr>
-  <tr><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_element.html#a49bad014ffcc17b0b6119d5b2c97dfb5">UnsignedText</a>(unsigned defaultValue=0) const</td><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_element.html">tinyxml2::XMLElement</a></td><td class="entry"></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_node.html#a66344989a4b436155bcda72bd6b07b82">Value</a>() const</td><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_node.html">tinyxml2::XMLNode</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_element.html#adb8ae765f98d0c5037faec48deea78bc">QueryStringAttribute</a>(const char *name, const char **value) const</td><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_element.html">tinyxml2::XMLElement</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_element.html#a26fc84cbfba6769dafcfbf256c05e22f">QueryUnsignedAttribute</a>(const char *name, unsigned int *value) const</td><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_element.html">tinyxml2::XMLElement</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_element.html#a14d38aa4b5e18a46274a27425188a6a1">QueryUnsignedText</a>(unsigned *uval) const</td><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_element.html">tinyxml2::XMLElement</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_element.html#a11943abf2d0831548c3790dd5d9f119c">SetAttribute</a>(const char *name, const char *value)</td><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_element.html">tinyxml2::XMLElement</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_element.html#aae6568c64c7f1cc88be8461ba41a79cf">SetAttribute</a>(const char *name, int value)</td><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_element.html">tinyxml2::XMLElement</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_element.html#ae143997e90064ba82326b29a9930ea8f">SetAttribute</a>(const char *name, unsigned value)</td><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_element.html">tinyxml2::XMLElement</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_element.html#aaeefdf9171fec91b13a776b42299b0dd">SetAttribute</a>(const char *name, int64_t value)</td><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_element.html">tinyxml2::XMLElement</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_element.html#aa848b696e6a75e4e545c6da9893b11e1">SetAttribute</a>(const char *name, bool value)</td><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_element.html">tinyxml2::XMLElement</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_element.html#a233397ee81e70eb5d4b814c5f8698533">SetAttribute</a>(const char *name, double value)</td><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_element.html">tinyxml2::XMLElement</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_element.html#a554b70d882e65b28fc084b23df9b9759">SetAttribute</a>(const char *name, float value)</td><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_element.html">tinyxml2::XMLElement</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_element.html#a97712009a530d8cb8a63bf705f02b4f1">SetName</a>(const char *str, bool staticMem=false)</td><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_element.html">tinyxml2::XMLElement</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_element.html#a1f9c2cd61b72af5ae708d37b7ad283ce">SetText</a>(const char *inText)</td><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_element.html">tinyxml2::XMLElement</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_element.html#aeae8917b5ea6060b3c08d4e3d8d632d7">SetText</a>(int value)</td><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_element.html">tinyxml2::XMLElement</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_element.html#a7bbfcc11d516598bc924a8fba4d08597">SetText</a>(unsigned value)</td><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_element.html">tinyxml2::XMLElement</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_element.html#a7b62cd33acdfeff7ea2b1b330d4368e4">SetText</a>(int64_t value)</td><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_element.html">tinyxml2::XMLElement</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_element.html#ae4b543d6770de76fb6ab68e541c192a4">SetText</a>(bool value)</td><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_element.html">tinyxml2::XMLElement</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_element.html#a67bd77ac9aaeff58ff20b4275a65ba4e">SetText</a>(double value)</td><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_element.html">tinyxml2::XMLElement</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_element.html#a51d560da5ae3ad6b75e0ab9ffb2ae42a">SetText</a>(float value)</td><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_element.html">tinyxml2::XMLElement</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_node.html#a002978fc889cc011d143185f2377eca2">SetUserData</a>(void *userData)</td><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_node.html">tinyxml2::XMLNode</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_node.html#a09dd68cf9eae137579f6e50f36487513">SetValue</a>(const char *val, bool staticMem=false)</td><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_node.html">tinyxml2::XMLNode</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_element.html#ac035742d68b0c50c3f676374e59fe750">ShallowClone</a>(XMLDocument *document) const</td><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_element.html">tinyxml2::XMLElement</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_element.html#ad9ea913a460b48979bd83cf9871c99f6">ShallowEqual</a>(const XMLNode *compare) const</td><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_element.html">tinyxml2::XMLElement</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_node.html#aff47671055aa99840a1c1ebd661e63e3">ToComment</a>()</td><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_node.html">tinyxml2::XMLNode</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_node.html#a174fd4c22c010b58138c1b84a0dfbd51">ToDeclaration</a>()</td><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_node.html">tinyxml2::XMLNode</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_node.html#a836e2966ed736fc3c94f70e12a2a3357">ToDocument</a>()</td><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_node.html">tinyxml2::XMLNode</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_element.html#ad9ff5c2dbc15df36cf664ce1b0ea0a5d">ToElement</a>()</td><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_element.html">tinyxml2::XMLElement</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_node.html#a41c55dab9162d1eb62db2008430e376b">ToText</a>()</td><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_node.html">tinyxml2::XMLNode</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_node.html#a8675a74aa0ada6eccab0c77ef3e5b9bd">ToUnknown</a>()</td><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_node.html">tinyxml2::XMLNode</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_element.html#afea43a1d4aa33e3703ddee5fc9adc26c">UnsignedAttribute</a>(const char *name, unsigned defaultValue=0) const</td><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_element.html">tinyxml2::XMLElement</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_element.html#a49bad014ffcc17b0b6119d5b2c97dfb5">UnsignedText</a>(unsigned defaultValue=0) const</td><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_element.html">tinyxml2::XMLElement</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_node.html#a66344989a4b436155bcda72bd6b07b82">Value</a>() const</td><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_node.html">tinyxml2::XMLNode</a></td><td class="entry"></td></tr>
 </table></div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Sun Dec 10 2017 20:04:44 for TinyXML-2 by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Tue Nov 6 2018 09:38:26 for TinyXML-2 by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.13
 </small></address>
index 1b4af4ebce33aa684177aed148fbbf2118053013..4d1d9c2af46dafdeab47c5d683ea553c2312ff63 100644 (file)
@@ -22,7 +22,7 @@
  <tr style="height: 56px;">
   <td id="projectalign" style="padding-left: 0.5em;">
    <div id="projectname">TinyXML-2
-   &#160;<span id="projectnumber">6.0.0</span>
+   &#160;<span id="projectnumber">7.0.0</span>
    </div>
   </td>
  </tr>
@@ -144,8 +144,12 @@ XMLError&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="
 XMLError&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtinyxml2_1_1_x_m_l_element.html#acd5eeddf6002ef90806af794b9d9a5a5">QueryFloatAttribute</a> (const char *name, float *value) const</td></tr>
 <tr class="memdesc:acd5eeddf6002ef90806af794b9d9a5a5"><td class="mdescLeft">&#160;</td><td class="mdescRight">See <a class="el" href="classtinyxml2_1_1_x_m_l_element.html#a8a78bc1187c1c45ad89f2690eab567b1">QueryIntAttribute()</a> <br /></td></tr>
 <tr class="separator:acd5eeddf6002ef90806af794b9d9a5a5"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a042fc30504347b84a56cf863ad528a4f"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtinyxml2_1_1_x_m_l_element.html#a042fc30504347b84a56cf863ad528a4f">QueryAttribute</a> (const char *name, int *value) const</td></tr>
-<tr class="separator:a042fc30504347b84a56cf863ad528a4f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:adb8ae765f98d0c5037faec48deea78bc"><td class="memItemLeft" align="right" valign="top"><a id="adb8ae765f98d0c5037faec48deea78bc"></a>
+XMLError&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtinyxml2_1_1_x_m_l_element.html#adb8ae765f98d0c5037faec48deea78bc">QueryStringAttribute</a> (const char *name, const char **value) const</td></tr>
+<tr class="memdesc:adb8ae765f98d0c5037faec48deea78bc"><td class="mdescLeft">&#160;</td><td class="mdescRight">See <a class="el" href="classtinyxml2_1_1_x_m_l_element.html#a8a78bc1187c1c45ad89f2690eab567b1">QueryIntAttribute()</a> <br /></td></tr>
+<tr class="separator:adb8ae765f98d0c5037faec48deea78bc"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a5b7df3bed2b8954eabf227fa204522eb"><td class="memItemLeft" align="right" valign="top">XMLError&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtinyxml2_1_1_x_m_l_element.html#a5b7df3bed2b8954eabf227fa204522eb">QueryAttribute</a> (const char *name, int *value) const</td></tr>
+<tr class="separator:a5b7df3bed2b8954eabf227fa204522eb"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:a11943abf2d0831548c3790dd5d9f119c"><td class="memItemLeft" align="right" valign="top"><a id="a11943abf2d0831548c3790dd5d9f119c"></a>
 void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtinyxml2_1_1_x_m_l_element.html#a11943abf2d0831548c3790dd5d9f119c">SetAttribute</a> (const char *name, const char *value)</td></tr>
 <tr class="memdesc:a11943abf2d0831548c3790dd5d9f119c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets the named attribute to value. <br /></td></tr>
@@ -498,8 +502,8 @@ const char* xmlcstr = printer.CStr();
 
 </div>
 </div>
-<a id="a042fc30504347b84a56cf863ad528a4f"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a042fc30504347b84a56cf863ad528a4f">&#9670;&nbsp;</a></span>QueryAttribute()</h2>
+<a id="a5b7df3bed2b8954eabf227fa204522eb"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a5b7df3bed2b8954eabf227fa204522eb">&#9670;&nbsp;</a></span>QueryAttribute()</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -508,7 +512,7 @@ const char* xmlcstr = printer.CStr();
   <td class="mlabels-left">
       <table class="memname">
         <tr>
-          <td class="memname">int tinyxml2::XMLElement::QueryAttribute </td>
+          <td class="memname">XMLError tinyxml2::XMLElement::QueryAttribute </td>
           <td>(</td>
           <td class="paramtype">const char *&#160;</td>
           <td class="paramname"><em>name</em>, </td>
@@ -531,7 +535,7 @@ const char* xmlcstr = printer.CStr();
   </tr>
 </table>
 </div><div class="memdoc">
-<p>Given an attribute name, <a class="el" href="classtinyxml2_1_1_x_m_l_element.html#a042fc30504347b84a56cf863ad528a4f">QueryAttribute()</a> returns XML_SUCCESS, XML_WRONG_ATTRIBUTE_TYPE if the conversion can't be performed, or XML_NO_ATTRIBUTE if the attribute doesn't exist. It is overloaded for the primitive types, and is a generally more convenient replacement of <a class="el" href="classtinyxml2_1_1_x_m_l_element.html#a8a78bc1187c1c45ad89f2690eab567b1">QueryIntAttribute()</a> and related functions.</p>
+<p>Given an attribute name, <a class="el" href="classtinyxml2_1_1_x_m_l_element.html#a5b7df3bed2b8954eabf227fa204522eb">QueryAttribute()</a> returns XML_SUCCESS, XML_WRONG_ATTRIBUTE_TYPE if the conversion can't be performed, or XML_NO_ATTRIBUTE if the attribute doesn't exist. It is overloaded for the primitive types, and is a generally more convenient replacement of <a class="el" href="classtinyxml2_1_1_x_m_l_element.html#a8a78bc1187c1c45ad89f2690eab567b1">QueryIntAttribute()</a> and related functions.</p>
 <p>If successful, the result of the conversion will be written to 'value'. If not successful, nothing will be written to 'value'. This allows you to provide default value:</p>
 <pre class="fragment">int value = 10;
 QueryAttribute( "foo", &amp;value );        // if "foo" isn't found, value will still be 10
@@ -700,7 +704,7 @@ QueryIntAttribute( "foo", &amp;value );     // if "foo" isn't found, value will
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Sun Dec 10 2017 20:04:44 for TinyXML-2 by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Tue Nov 6 2018 09:38:26 for TinyXML-2 by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.13
 </small></address>
index ee29d711ae41f5ae92f76b716f1c9210702238ba..6b952a51549cb0420bbc6040c4ce22d7794970cf 100644 (file)
@@ -22,7 +22,7 @@
  <tr style="height: 56px;">
   <td id="projectalign" style="padding-left: 0.5em;">
    <div id="projectname">TinyXML-2
-   &#160;<span id="projectnumber">6.0.0</span>
+   &#160;<span id="projectnumber">7.0.0</span>
    </div>
   </td>
  </tr>
@@ -84,13 +84,13 @@ $(function() {
   <tr><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_handle.html#a03ea6ec970a021b71bf1219a0f6717df">ToNode</a>()</td><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_handle.html">tinyxml2::XMLHandle</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
   <tr class="even"><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_handle.html#a6ab9e8cbfb41417246e5657e3842c62a">ToText</a>()</td><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_handle.html">tinyxml2::XMLHandle</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
   <tr><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_handle.html#aa387368a1ad8d843a9f12df863d298de">ToUnknown</a>()</td><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_handle.html">tinyxml2::XMLHandle</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_handle.html#a9c240a35c18f053509b4b97ddccd9793">XMLHandle</a>(XMLNode *node)</td><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_handle.html">tinyxml2::XMLHandle</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_handle.html#aa2edbc1c0d3e3e8259bd98de7f1cf500">XMLHandle</a>(XMLNode &amp;node)</td><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_handle.html">tinyxml2::XMLHandle</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_handle.html#a9c240a35c18f053509b4b97ddccd9793">XMLHandle</a>(XMLNode *node)</td><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_handle.html">tinyxml2::XMLHandle</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">explicit</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_handle.html#aa2edbc1c0d3e3e8259bd98de7f1cf500">XMLHandle</a>(XMLNode &amp;node)</td><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_handle.html">tinyxml2::XMLHandle</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">explicit</span></td></tr>
   <tr class="even"><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_handle.html#afd8e01e6018c07347b8e6d80272466aa">XMLHandle</a>(const XMLHandle &amp;ref)</td><td class="entry"><a class="el" href="classtinyxml2_1_1_x_m_l_handle.html">tinyxml2::XMLHandle</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
 </table></div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Sun Dec 10 2017 20:04:44 for TinyXML-2 by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Tue Nov 6 2018 09:38:26 for TinyXML-2 by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.13
 </small></address>
index c97e671bb5dd38f1ba647a471707b5b93a9815dc..6a5cc424cff12c3879b39e1b67ee58f35aa5b93b 100644 (file)
@@ -22,7 +22,7 @@
  <tr style="height: 56px;">
   <td id="projectalign" style="padding-left: 0.5em;">
    <div id="projectname">TinyXML-2
-   &#160;<span id="projectnumber">6.0.0</span>
+   &#160;<span id="projectnumber">7.0.0</span>
    </div>
   </td>
  </tr>
@@ -181,7 +181,7 @@ if ( child2 )
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Sun Dec 10 2017 20:04:44 for TinyXML-2 by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Tue Nov 6 2018 09:38:26 for TinyXML-2 by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.13
 </small></address>
index b50e2487977957e115f255a88cd4d1a5b77faa6f..aa898623ce6716f6cc80c096e0ee302e6ef5b2a2 100644 (file)
@@ -22,7 +22,7 @@
  <tr style="height: 56px;">
   <td id="projectalign" style="padding-left: 0.5em;">
    <div id="projectname">TinyXML-2
-   &#160;<span id="projectnumber">6.0.0</span>
+   &#160;<span id="projectnumber">7.0.0</span>
    </div>
   </td>
  </tr>
@@ -105,7 +105,7 @@ $(function() {
 </table></div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Sun Dec 10 2017 20:04:44 for TinyXML-2 by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Tue Nov 6 2018 09:38:26 for TinyXML-2 by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.13
 </small></address>
index 7ef3181b53f5f17ddd05c2c00a129bf642b4aab3..185b4adb8239639a691355fd433d76e4cee7808b 100644 (file)
@@ -22,7 +22,7 @@
  <tr style="height: 56px;">
   <td id="projectalign" style="padding-left: 0.5em;">
    <div id="projectname">TinyXML-2
-   &#160;<span id="projectnumber">6.0.0</span>
+   &#160;<span id="projectnumber">7.0.0</span>
    </div>
   </td>
  </tr>
@@ -573,7 +573,7 @@ Text:       the text string
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Sun Dec 10 2017 20:04:44 for TinyXML-2 by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Tue Nov 6 2018 09:38:26 for TinyXML-2 by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.13
 </small></address>
index cad8dc2c8dc6434f6d081ae6fb11fe98d44c5ffd..bbf8420efd3432f7a1aa78f4887c7d1b21732281 100644 (file)
@@ -22,7 +22,7 @@
  <tr style="height: 56px;">
   <td id="projectalign" style="padding-left: 0.5em;">
    <div id="projectname">TinyXML-2
-   &#160;<span id="projectnumber">6.0.0</span>
+   &#160;<span id="projectnumber">7.0.0</span>
    </div>
   </td>
  </tr>
@@ -98,7 +98,7 @@ $(function() {
 </table></div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Sun Dec 10 2017 20:04:44 for TinyXML-2 by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Tue Nov 6 2018 09:38:26 for TinyXML-2 by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.13
 </small></address>
index 76237b2e75fd6b10abc1731c8c422dd2d4b31d66..c71df85581d363e159cf6e26554e9f698936b3a4 100644 (file)
@@ -22,7 +22,7 @@
  <tr style="height: 56px;">
   <td id="projectalign" style="padding-left: 0.5em;">
    <div id="projectname">TinyXML-2
-   &#160;<span id="projectnumber">6.0.0</span>
+   &#160;<span id="projectnumber">7.0.0</span>
    </div>
   </td>
  </tr>
@@ -402,7 +402,7 @@ printer.CloseElement();
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Sun Dec 10 2017 20:04:44 for TinyXML-2 by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Tue Nov 6 2018 09:38:26 for TinyXML-2 by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.13
 </small></address>
index ce0f317cf0aa049bd5f469f17cdfed512ee0d233..f3b5dd2c80316f88df1f235eded48940de692b15 100644 (file)
@@ -22,7 +22,7 @@
  <tr style="height: 56px;">
   <td id="projectalign" style="padding-left: 0.5em;">
    <div id="projectname">TinyXML-2
-   &#160;<span id="projectnumber">6.0.0</span>
+   &#160;<span id="projectnumber">7.0.0</span>
    </div>
   </td>
  </tr>
@@ -107,7 +107,7 @@ $(function() {
 </table></div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Sun Dec 10 2017 20:04:44 for TinyXML-2 by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Tue Nov 6 2018 09:38:26 for TinyXML-2 by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.13
 </small></address>
index 0a3b095dda26daf38c64013bc2dbab2060f79e45..7218f3f0e148f12ed48f3043b60be08d52037dc0 100644 (file)
@@ -22,7 +22,7 @@
  <tr style="height: 56px;">
   <td id="projectalign" style="padding-left: 0.5em;">
    <div id="projectname">TinyXML-2
-   &#160;<span id="projectnumber">6.0.0</span>
+   &#160;<span id="projectnumber">7.0.0</span>
    </div>
   </td>
  </tr>
@@ -302,7 +302,7 @@ const char* xmlcstr = printer.CStr();
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Sun Dec 10 2017 20:04:44 for TinyXML-2 by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Tue Nov 6 2018 09:38:26 for TinyXML-2 by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.13
 </small></address>
index e00b2e47c3294498777c80bb0638730e9e497813..f4f1fe4a16471d72c024bf17d4b3a3a67ddc238e 100644 (file)
@@ -22,7 +22,7 @@
  <tr style="height: 56px;">
   <td id="projectalign" style="padding-left: 0.5em;">
    <div id="projectname">TinyXML-2
-   &#160;<span id="projectnumber">6.0.0</span>
+   &#160;<span id="projectnumber">7.0.0</span>
    </div>
   </td>
  </tr>
@@ -105,7 +105,7 @@ $(function() {
 </table></div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Sun Dec 10 2017 20:04:44 for TinyXML-2 by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Tue Nov 6 2018 09:38:26 for TinyXML-2 by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.13
 </small></address>
index 52235fca9175a3a1db1ed7b7f8a08d05d3cb4ea2..e875a51c9a8171b321d5d52ef54fd71740b5a478 100644 (file)
@@ -22,7 +22,7 @@
  <tr style="height: 56px;">
   <td id="projectalign" style="padding-left: 0.5em;">
    <div id="projectname">TinyXML-2
-   &#160;<span id="projectnumber">6.0.0</span>
+   &#160;<span id="projectnumber">7.0.0</span>
    </div>
   </td>
  </tr>
@@ -293,7 +293,7 @@ const char* xmlcstr = printer.CStr();
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Sun Dec 10 2017 20:04:44 for TinyXML-2 by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Tue Nov 6 2018 09:38:26 for TinyXML-2 by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.13
 </small></address>
index dc040791556ab0a5138ec8456dc8cc71abeb005c..d7ab5096b0d4dd449c2febc1379d0cd2c95101e3 100644 (file)
@@ -22,7 +22,7 @@
  <tr style="height: 56px;">
   <td id="projectalign" style="padding-left: 0.5em;">
    <div id="projectname">TinyXML-2
-   &#160;<span id="projectnumber">6.0.0</span>
+   &#160;<span id="projectnumber">7.0.0</span>
    </div>
   </td>
  </tr>
@@ -81,7 +81,7 @@ $(function() {
 </table></div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Sun Dec 10 2017 20:04:44 for TinyXML-2 by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Tue Nov 6 2018 09:38:26 for TinyXML-2 by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.13
 </small></address>
index 5333aec9e9b7571c21cdcd27307c419a2a9ca7d5..c8c0f6badd590b89307796380376ecc45e0d6548 100644 (file)
@@ -22,7 +22,7 @@
  <tr style="height: 56px;">
   <td id="projectalign" style="padding-left: 0.5em;">
    <div id="projectname">TinyXML-2
-   &#160;<span id="projectnumber">6.0.0</span>
+   &#160;<span id="projectnumber">7.0.0</span>
    </div>
   </td>
  </tr>
@@ -130,7 +130,7 @@ virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" hr
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Sun Dec 10 2017 20:04:44 for TinyXML-2 by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Tue Nov 6 2018 09:38:26 for TinyXML-2 by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.13
 </small></address>
index 3569d82153095ae589a2355d6047871da3b3557e..b7dcae3cc5780204bdfa4c27ee89eb628640ab22 100644 (file)
@@ -22,7 +22,7 @@
  <tr style="height: 56px;">
   <td id="projectalign" style="padding-left: 0.5em;">
    <div id="projectname">TinyXML-2
-   &#160;<span id="projectnumber">6.0.0</span>
+   &#160;<span id="projectnumber">7.0.0</span>
    </div>
   </td>
  </tr>
@@ -71,7 +71,7 @@ $(function() {
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Sun Dec 10 2017 20:04:44 for TinyXML-2 by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Tue Nov 6 2018 09:38:27 for TinyXML-2 by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.13
 </small></address>
index 14c899662af3a535df12a28fb34bf7693303a494..0a3f3ea189ae2a7249e9896c4931826ab9fe8965 100644 (file)
@@ -22,7 +22,7 @@
  <tr style="height: 56px;">
   <td id="projectalign" style="padding-left: 0.5em;">
    <div id="projectname">TinyXML-2
-   &#160;<span id="projectnumber">6.0.0</span>
+   &#160;<span id="projectnumber">7.0.0</span>
    </div>
   </td>
  </tr>
@@ -338,7 +338,7 @@ $(function() {
 
 <h3><a id="index_q"></a>- q -</h3><ul>
 <li>QueryAttribute()
-: <a class="el" href="classtinyxml2_1_1_x_m_l_element.html#a042fc30504347b84a56cf863ad528a4f">tinyxml2::XMLElement</a>
+: <a class="el" href="classtinyxml2_1_1_x_m_l_element.html#a5b7df3bed2b8954eabf227fa204522eb">tinyxml2::XMLElement</a>
 </li>
 <li>QueryBoolAttribute()
 : <a class="el" href="classtinyxml2_1_1_x_m_l_element.html#a14c1bb77c39689838be01838d86ca872">tinyxml2::XMLElement</a>
@@ -385,6 +385,9 @@ $(function() {
 <li>QueryIntValue()
 : <a class="el" href="classtinyxml2_1_1_x_m_l_attribute.html#a6d5176260db00ea301c01af8457cd993">tinyxml2::XMLAttribute</a>
 </li>
+<li>QueryStringAttribute()
+: <a class="el" href="classtinyxml2_1_1_x_m_l_element.html#adb8ae765f98d0c5037faec48deea78bc">tinyxml2::XMLElement</a>
+</li>
 <li>QueryUnsignedAttribute()
 : <a class="el" href="classtinyxml2_1_1_x_m_l_element.html#a26fc84cbfba6769dafcfbf256c05e22f">tinyxml2::XMLElement</a>
 </li>
@@ -533,7 +536,7 @@ $(function() {
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Sun Dec 10 2017 20:04:44 for TinyXML-2 by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Tue Nov 6 2018 09:38:26 for TinyXML-2 by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.13
 </small></address>
index bfc9182387cef556359759c4b2b429801faa2cb2..3d8cb617010d08c6c2aaf66de8687e96650d85e0 100644 (file)
@@ -22,7 +22,7 @@
  <tr style="height: 56px;">
   <td id="projectalign" style="padding-left: 0.5em;">
    <div id="projectname">TinyXML-2
-   &#160;<span id="projectnumber">6.0.0</span>
+   &#160;<span id="projectnumber">7.0.0</span>
    </div>
   </td>
  </tr>
@@ -338,7 +338,7 @@ $(function() {
 
 <h3><a id="index_q"></a>- q -</h3><ul>
 <li>QueryAttribute()
-: <a class="el" href="classtinyxml2_1_1_x_m_l_element.html#a042fc30504347b84a56cf863ad528a4f">tinyxml2::XMLElement</a>
+: <a class="el" href="classtinyxml2_1_1_x_m_l_element.html#a5b7df3bed2b8954eabf227fa204522eb">tinyxml2::XMLElement</a>
 </li>
 <li>QueryBoolAttribute()
 : <a class="el" href="classtinyxml2_1_1_x_m_l_element.html#a14c1bb77c39689838be01838d86ca872">tinyxml2::XMLElement</a>
@@ -385,6 +385,9 @@ $(function() {
 <li>QueryIntValue()
 : <a class="el" href="classtinyxml2_1_1_x_m_l_attribute.html#a6d5176260db00ea301c01af8457cd993">tinyxml2::XMLAttribute</a>
 </li>
+<li>QueryStringAttribute()
+: <a class="el" href="classtinyxml2_1_1_x_m_l_element.html#adb8ae765f98d0c5037faec48deea78bc">tinyxml2::XMLElement</a>
+</li>
 <li>QueryUnsignedAttribute()
 : <a class="el" href="classtinyxml2_1_1_x_m_l_element.html#a26fc84cbfba6769dafcfbf256c05e22f">tinyxml2::XMLElement</a>
 </li>
@@ -533,7 +536,7 @@ $(function() {
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Sun Dec 10 2017 20:04:44 for TinyXML-2 by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Tue Nov 6 2018 09:38:27 for TinyXML-2 by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.13
 </small></address>
index 5c9166a116d040641e25e4e1fdc8c05a9fb3f996..5d26b2521d69384f2c91106d0bda0021c2120562 100644 (file)
@@ -22,7 +22,7 @@
  <tr style="height: 56px;">
   <td id="projectalign" style="padding-left: 0.5em;">
    <div id="projectname">TinyXML-2
-   &#160;<span id="projectnumber">6.0.0</span>
+   &#160;<span id="projectnumber">7.0.0</span>
    </div>
   </td>
  </tr>
@@ -82,7 +82,7 @@ $(function() {
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Sun Dec 10 2017 20:04:44 for TinyXML-2 by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Tue Nov 6 2018 09:38:26 for TinyXML-2 by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.13
 </small></address>
index e5171f871ce50f301e984353c21c8dffba065db9..4f257f3702ecac1e65ad70b019fcbed3d815f8af 100644 (file)
@@ -22,7 +22,7 @@
  <tr style="height: 56px;">
   <td id="projectalign" style="padding-left: 0.5em;">
    <div id="projectname">TinyXML-2
-   &#160;<span id="projectnumber">6.0.0</span>
+   &#160;<span id="projectnumber">7.0.0</span>
    </div>
   </td>
  </tr>
@@ -82,29 +82,13 @@ $(function() {
 <h2>What it doesn't do. </h2>
 <p>TinyXML-2 doesn't parse or use DTDs (Document Type Definitions) or XSLs (eXtensible Stylesheet Language.) There are other parsers out there that are much more fully featured. But they are also much bigger, take longer to set up in your project, have a higher learning curve, and often have a more restrictive license. If you are working with browsers or have more complete XML needs, TinyXML-2 is not the parser for you.</p>
 <h2>TinyXML-1 vs. TinyXML-2 </h2>
-<p>TinyXML-2 is now the focus of all development, well tested, and your best choice unless you have a requirement to maintain TinyXML-1 code.</p>
+<p>TinyXML-2 is now the focus of all development, well tested, and your best choice between the two APIs. At this point, unless you are maintaining legacy code, you should choose TinyXML-2.</p>
 <p>TinyXML-2 uses a similar API to TinyXML-1 and the same rich test cases. But the implementation of the parser is completely re-written to make it more appropriate for use in a game. It uses less memory, is faster, and uses far fewer memory allocations.</p>
-<p>TinyXML-2 has no requirement for STL, but has also dropped all STL support. All strings are query and set as 'const char*'. This allows the use of internal allocators, and keeps the code much simpler.</p>
-<p>Both parsers:</p>
-<ol type="1">
-<li>Simple to use with similar APIs.</li>
-<li>DOM based parser.</li>
-<li>UTF-8 Unicode support. <a href="http://en.wikipedia.org/wiki/UTF-8">http://en.wikipedia.org/wiki/UTF-8</a></li>
-</ol>
-<p>Advantages of TinyXML-2</p>
-<ol type="1">
-<li>The focus of all future dev.</li>
-<li>Many fewer memory allocation (1/10th to 1/100th), uses less memory (about 40% of TinyXML-1), and faster.</li>
-<li>No STL requirement.</li>
-<li>More modern C++, including a proper namespace.</li>
-<li>Proper and useful handling of whitespace</li>
-</ol>
-<p>Advantages of TinyXML-1</p>
-<ol type="1">
-<li>Support for some C++ STL conventions: streams and strings</li>
-<li>Very mature and well debugged code base.</li>
-</ol>
+<p>TinyXML-2 has no requirement or support for STL. By returning <code>const char*</code> TinyXML-2 can be much more efficient with memory usage. (TinyXML-1 did support and use STL, but consumed much more memory for the DOM representation.)</p>
 <h2>Features </h2>
+<h3>Code Page</h3>
+<p>TinyXML-2 uses UTF-8 exclusively when interpreting XML. All XML is assumed to be UTF-8.</p>
+<p>Filenames for loading / saving are passed unchanged to the underlying OS.</p>
 <h3>Memory Model</h3>
 <p>An XMLDocument is a C++ object like any other, that can be on the stack, or new'd and deleted on the heap.</p>
 <p>However, any sub-node of the Document, XMLElement, XMLText, etc, can only be created by calling the appropriate XMLDocument::NewElement, NewText, etc. method. Although you have pointers to these objects, they are still owned by the Document. When the Document is deleted, so are all the nodes it contains.</p>
@@ -114,7 +98,7 @@ $(function() {
 <p>By default, TinyXML-2 preserves white space in a (hopefully) sane way that is almost compliant with the spec. (TinyXML-1 used a completely different model, much more similar to 'collapse', below.)</p>
 <p>As a first step, all newlines / carriage-returns / line-feeds are normalized to a line-feed character, as required by the XML spec.</p>
 <p>White space in text is preserved. For example: </p><pre class="fragment">&lt;element&gt; Hello,  World&lt;/element&gt;
-</pre><p>The leading space before the "Hello" and the double space after the comma are preserved. Line-feeds are preserved, as in this example: </p><pre class="fragment">&lt;element&gt; Hello again,  
+</pre><p>The leading space before the "Hello" and the double space after the comma are preserved. Line-feeds are preserved, as in this example: </p><pre class="fragment">&lt;element&gt; Hello again,
           World&lt;/element&gt;
 </pre><p>However, white space between elements is <b>not</b> preserved. Although not strictly compliant, tracking and reporting inter-element space is awkward, and not normally valuable. TinyXML-2 sees these as the same XML: </p><pre class="fragment">&lt;document&gt;
     &lt;data&gt;1&lt;/data&gt;
@@ -134,7 +118,7 @@ $(function() {
 </ul>
 <p>Note that (currently) there is a performance impact for using COLLAPSE_WHITESPACE. It essentially causes the XML to be parsed twice.</p>
 <h4>Error Reporting</h4>
-<p>TinyXML-2 reports the line number of any errors in an XML document that cannot be parsed correctly. In addition, all nodes (elements, declarations, text, comments etc.) and attributes have a line number recorded as they are parsed. This allows an application that performs additional validation of the parsed XML document (e.g. application-implemented DTD validation) to report line number information in it's errors.</p>
+<p>TinyXML-2 reports the line number of any errors in an XML document that cannot be parsed correctly. In addition, all nodes (elements, declarations, text, comments etc.) and attributes have a line number recorded as they are parsed. This allows an application that performs additional validation of the parsed XML document (e.g. application-implemented DTD validation) to report line number information for error messages.</p>
 <h3>Entities</h3>
 <p>TinyXML-2 recognizes the pre-defined "character entities", meaning special characters. Namely: </p><pre class="fragment">&amp;amp;   &amp;
 &amp;lt;    &lt;
@@ -163,19 +147,19 @@ printer.PushAttribute( "foo", "bar" );
 printer.CloseElement();
 </pre><h2>Examples </h2>
 <h4>Load and parse an XML file.</h4>
-<pre class="fragment">/* ------ Example 1: Load and parse an XML file. ---- */    
+<pre class="fragment">/* ------ Example 1: Load and parse an XML file. ---- */
 {
     XMLDocument doc;
     doc.LoadFile( "dream.xml" );
 }
 </pre><h4>Lookup information.</h4>
-<pre class="fragment">/* ------ Example 2: Lookup information. ---- */    
+<pre class="fragment">/* ------ Example 2: Lookup information. ---- */
 {
     XMLDocument doc;
     doc.LoadFile( "dream.xml" );
 
     // Structure of the XML file:
-    // - Element "PLAY"      the root Element, which is the 
+    // - Element "PLAY"      the root Element, which is the
     //                       FirstChildElement of the Document
     // - - Element "TITLE"   child of the root PLAY Element
     // - - - Text            child of the TITLE Element
@@ -199,7 +183,7 @@ printer.CloseElement();
 <p>And additionally a test file:</p><ul>
 <li>xmltest.cpp</li>
 </ul>
-<p>Simply compile and run. There is a visual studio 2015 project included, a simple Makefile, an Xcode project, a Code::Blocks project, and a cmake CMakeLists.txt included to help you. The top of tinyxml.h even has a simple g++ command line if you are are *nix and don't want to use a build system.</p>
+<p>Simply compile and run. There is a visual studio 2017 project included, a simple Makefile, an Xcode project, a Code::Blocks project, and a cmake CMakeLists.txt included to help you. The top of tinyxml.h even has a simple g++ command line if you are are Unix/Linuk/BSD and don't want to use a build system.</p>
 <h2>Versioning </h2>
 <p>TinyXML-2 uses semantic versioning. <a href="http://semver.org/">http://semver.org/</a> Releases are now tagged in github.</p>
 <p>Note that the major version will (probably) change fairly rapidly. API changes are fairly common.</p>
@@ -222,7 +206,7 @@ printer.CloseElement();
 </div></div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Sun Dec 10 2017 20:04:44 for TinyXML-2 by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Tue Nov 6 2018 09:38:26 for TinyXML-2 by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.13
 </small></address>
index 8673889c28ddda1db0ca9b46a1b0e8b353fbadcd..6433b0b96ddcaabecf978cc25c3e58a8eb9dd062 100644 (file)
@@ -22,7 +22,7 @@
  <tr style="height: 56px;">
   <td id="projectalign" style="padding-left: 0.5em;">
    <div id="projectname">TinyXML-2
-   &#160;<span id="projectnumber">6.0.0</span>
+   &#160;<span id="projectnumber">7.0.0</span>
    </div>
   </td>
  </tr>
@@ -74,7 +74,7 @@ $(function() {
 </div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Sun Dec 10 2017 20:04:44 for TinyXML-2 by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Tue Nov 6 2018 09:38:26 for TinyXML-2 by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.13
 </small></address>
index b78f21844af9a2d298fc587ba058bf7b518a010b..70858afdadc5896c403b4195831f885c972aedde 100644 (file)
@@ -1,6 +1,6 @@
 var searchData=
 [
-  ['queryattribute',['QueryAttribute',['../classtinyxml2_1_1_x_m_l_element.html#a042fc30504347b84a56cf863ad528a4f',1,'tinyxml2::XMLElement']]],
+  ['queryattribute',['QueryAttribute',['../classtinyxml2_1_1_x_m_l_element.html#a5b7df3bed2b8954eabf227fa204522eb',1,'tinyxml2::XMLElement']]],
   ['queryboolattribute',['QueryBoolAttribute',['../classtinyxml2_1_1_x_m_l_element.html#a14c1bb77c39689838be01838d86ca872',1,'tinyxml2::XMLElement']]],
   ['querybooltext',['QueryBoolText',['../classtinyxml2_1_1_x_m_l_element.html#a3fe5417d59eb8f5c4afe924b7d332736',1,'tinyxml2::XMLElement']]],
   ['queryboolvalue',['QueryBoolValue',['../classtinyxml2_1_1_x_m_l_attribute.html#a5f32e038954256f61c21ff20fd13a09c',1,'tinyxml2::XMLAttribute']]],
@@ -16,6 +16,7 @@ var searchData=
   ['queryintattribute',['QueryIntAttribute',['../classtinyxml2_1_1_x_m_l_element.html#a8a78bc1187c1c45ad89f2690eab567b1',1,'tinyxml2::XMLElement']]],
   ['queryinttext',['QueryIntText',['../classtinyxml2_1_1_x_m_l_element.html#a926357996bef633cb736e1a558419632',1,'tinyxml2::XMLElement']]],
   ['queryintvalue',['QueryIntValue',['../classtinyxml2_1_1_x_m_l_attribute.html#a6d5176260db00ea301c01af8457cd993',1,'tinyxml2::XMLAttribute']]],
+  ['querystringattribute',['QueryStringAttribute',['../classtinyxml2_1_1_x_m_l_element.html#adb8ae765f98d0c5037faec48deea78bc',1,'tinyxml2::XMLElement']]],
   ['queryunsignedattribute',['QueryUnsignedAttribute',['../classtinyxml2_1_1_x_m_l_element.html#a26fc84cbfba6769dafcfbf256c05e22f',1,'tinyxml2::XMLElement']]],
   ['queryunsignedtext',['QueryUnsignedText',['../classtinyxml2_1_1_x_m_l_element.html#a14d38aa4b5e18a46274a27425188a6a1',1,'tinyxml2::XMLElement']]],
   ['queryunsignedvalue',['QueryUnsignedValue',['../classtinyxml2_1_1_x_m_l_attribute.html#a48a7f3496f1415832e451bd8d09c9cb9',1,'tinyxml2::XMLAttribute']]]
index b78f21844af9a2d298fc587ba058bf7b518a010b..70858afdadc5896c403b4195831f885c972aedde 100644 (file)
@@ -1,6 +1,6 @@
 var searchData=
 [
-  ['queryattribute',['QueryAttribute',['../classtinyxml2_1_1_x_m_l_element.html#a042fc30504347b84a56cf863ad528a4f',1,'tinyxml2::XMLElement']]],
+  ['queryattribute',['QueryAttribute',['../classtinyxml2_1_1_x_m_l_element.html#a5b7df3bed2b8954eabf227fa204522eb',1,'tinyxml2::XMLElement']]],
   ['queryboolattribute',['QueryBoolAttribute',['../classtinyxml2_1_1_x_m_l_element.html#a14c1bb77c39689838be01838d86ca872',1,'tinyxml2::XMLElement']]],
   ['querybooltext',['QueryBoolText',['../classtinyxml2_1_1_x_m_l_element.html#a3fe5417d59eb8f5c4afe924b7d332736',1,'tinyxml2::XMLElement']]],
   ['queryboolvalue',['QueryBoolValue',['../classtinyxml2_1_1_x_m_l_attribute.html#a5f32e038954256f61c21ff20fd13a09c',1,'tinyxml2::XMLAttribute']]],
@@ -16,6 +16,7 @@ var searchData=
   ['queryintattribute',['QueryIntAttribute',['../classtinyxml2_1_1_x_m_l_element.html#a8a78bc1187c1c45ad89f2690eab567b1',1,'tinyxml2::XMLElement']]],
   ['queryinttext',['QueryIntText',['../classtinyxml2_1_1_x_m_l_element.html#a926357996bef633cb736e1a558419632',1,'tinyxml2::XMLElement']]],
   ['queryintvalue',['QueryIntValue',['../classtinyxml2_1_1_x_m_l_attribute.html#a6d5176260db00ea301c01af8457cd993',1,'tinyxml2::XMLAttribute']]],
+  ['querystringattribute',['QueryStringAttribute',['../classtinyxml2_1_1_x_m_l_element.html#adb8ae765f98d0c5037faec48deea78bc',1,'tinyxml2::XMLElement']]],
   ['queryunsignedattribute',['QueryUnsignedAttribute',['../classtinyxml2_1_1_x_m_l_element.html#a26fc84cbfba6769dafcfbf256c05e22f',1,'tinyxml2::XMLElement']]],
   ['queryunsignedtext',['QueryUnsignedText',['../classtinyxml2_1_1_x_m_l_element.html#a14d38aa4b5e18a46274a27425188a6a1',1,'tinyxml2::XMLElement']]],
   ['queryunsignedvalue',['QueryUnsignedValue',['../classtinyxml2_1_1_x_m_l_attribute.html#a48a7f3496f1415832e451bd8d09c9cb9',1,'tinyxml2::XMLAttribute']]]
index 30a2f3e7e896ba9398c8217612b0bba1f68d39c4..6bbd727fa6908e13e5b7e2896a3607bc01d8f0db 100644 (file)
@@ -22,7 +22,7 @@
  <tr style="height: 56px;">
   <td id="projectalign" style="padding-left: 0.5em;">
    <div id="projectname">TinyXML-2
-   &#160;<span id="projectnumber">6.0.0</span>
+   &#160;<span id="projectnumber">7.0.0</span>
    </div>
   </td>
  </tr>
@@ -63,116 +63,118 @@ $(function() {
 <div class="title">tinyxml2.h</div>  </div>
 </div><!--header-->
 <div class="contents">
-<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment">Original code by Lee Thomason (www.grinninglizard.com)</span></div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment">This software is provided &#39;as-is&#39;, without any express or implied</span></div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment">warranty. In no event will the authors be held liable for any</span></div><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment">damages arising from the use of this software.</span></div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment">Permission is granted to anyone to use this software for any</span></div><div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment">purpose, including commercial applications, and to alter it and</span></div><div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment">redistribute it freely, subject to the following restrictions:</span></div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="comment">1. The origin of this software must not be misrepresented; you must</span></div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="comment">not claim that you wrote the original software. If you use this</span></div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="comment">software in a product, an acknowledgment in the product documentation</span></div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="comment">would be appreciated but is not required.</span></div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="comment">2. Altered source versions must be plainly marked as such, and</span></div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="comment">must not be misrepresented as being the original software.</span></div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="comment">3. This notice may not be removed or altered from any source</span></div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="comment">distribution.</span></div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;<span class="comment">*/</span></div><div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;</div><div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;<span class="preprocessor">#ifndef TINYXML2_INCLUDED</span></div><div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;<span class="preprocessor">#define TINYXML2_INCLUDED</span></div><div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;</div><div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;<span class="preprocessor">#if defined(ANDROID_NDK) || defined(__BORLANDC__) || defined(__QNXNTO__)</span></div><div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;<span class="preprocessor">#   include &lt;ctype.h&gt;</span></div><div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;<span class="preprocessor">#   include &lt;limits.h&gt;</span></div><div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;<span class="preprocessor">#   include &lt;stdio.h&gt;</span></div><div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;<span class="preprocessor">#   include &lt;stdlib.h&gt;</span></div><div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;<span class="preprocessor">#   include &lt;string.h&gt;</span></div><div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;<span class="preprocessor">#   if defined(__PS3__)</span></div><div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;<span class="preprocessor">#       include &lt;stddef.h&gt;</span></div><div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;<span class="preprocessor">#   endif</span></div><div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160;<span class="preprocessor">#else</span></div><div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;<span class="preprocessor">#   include &lt;cctype&gt;</span></div><div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;<span class="preprocessor">#   include &lt;climits&gt;</span></div><div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160;<span class="preprocessor">#   include &lt;cstdio&gt;</span></div><div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;<span class="preprocessor">#   include &lt;cstdlib&gt;</span></div><div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160;<span class="preprocessor">#   include &lt;cstring&gt;</span></div><div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;<span class="preprocessor">#include &lt;stdint.h&gt;</span></div><div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160;</div><div class="line"><a name="l00045"></a><span class="lineno">   45</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00046"></a><span class="lineno">   46</span>&#160;<span class="comment">   TODO: intern strings instead of allocation.</span></div><div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160;<span class="comment">*/</span></div><div class="line"><a name="l00048"></a><span class="lineno">   48</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160;<span class="comment">    gcc:</span></div><div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160;<span class="comment">        g++ -Wall -DDEBUG tinyxml2.cpp xmltest.cpp -o gccxmltest.exe</span></div><div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00052"></a><span class="lineno">   52</span>&#160;<span class="comment">    Formatting, Artistic Style:</span></div><div class="line"><a name="l00053"></a><span class="lineno">   53</span>&#160;<span class="comment">        AStyle.exe --style=1tbs --indent-switches --break-closing-brackets --indent-preprocessor tinyxml2.cpp tinyxml2.h</span></div><div class="line"><a name="l00054"></a><span class="lineno">   54</span>&#160;<span class="comment">*/</span></div><div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160;</div><div class="line"><a name="l00056"></a><span class="lineno">   56</span>&#160;<span class="preprocessor">#if defined( _DEBUG ) || defined (__DEBUG__)</span></div><div class="line"><a name="l00057"></a><span class="lineno">   57</span>&#160;<span class="preprocessor">#   ifndef DEBUG</span></div><div class="line"><a name="l00058"></a><span class="lineno">   58</span>&#160;<span class="preprocessor">#       define DEBUG</span></div><div class="line"><a name="l00059"></a><span class="lineno">   59</span>&#160;<span class="preprocessor">#   endif</span></div><div class="line"><a name="l00060"></a><span class="lineno">   60</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00061"></a><span class="lineno">   61</span>&#160;</div><div class="line"><a name="l00062"></a><span class="lineno">   62</span>&#160;<span class="preprocessor">#ifdef _MSC_VER</span></div><div class="line"><a name="l00063"></a><span class="lineno">   63</span>&#160;<span class="preprocessor">#   pragma warning(push)</span></div><div class="line"><a name="l00064"></a><span class="lineno">   64</span>&#160;<span class="preprocessor">#   pragma warning(disable: 4251)</span></div><div class="line"><a name="l00065"></a><span class="lineno">   65</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00066"></a><span class="lineno">   66</span>&#160;</div><div class="line"><a name="l00067"></a><span class="lineno">   67</span>&#160;<span class="preprocessor">#ifdef _WIN32</span></div><div class="line"><a name="l00068"></a><span class="lineno">   68</span>&#160;<span class="preprocessor">#   ifdef TINYXML2_EXPORT</span></div><div class="line"><a name="l00069"></a><span class="lineno">   69</span>&#160;<span class="preprocessor">#       define TINYXML2_LIB __declspec(dllexport)</span></div><div class="line"><a name="l00070"></a><span class="lineno">   70</span>&#160;<span class="preprocessor">#   elif defined(TINYXML2_IMPORT)</span></div><div class="line"><a name="l00071"></a><span class="lineno">   71</span>&#160;<span class="preprocessor">#       define TINYXML2_LIB __declspec(dllimport)</span></div><div class="line"><a name="l00072"></a><span class="lineno">   72</span>&#160;<span class="preprocessor">#   else</span></div><div class="line"><a name="l00073"></a><span class="lineno">   73</span>&#160;<span class="preprocessor">#       define TINYXML2_LIB</span></div><div class="line"><a name="l00074"></a><span class="lineno">   74</span>&#160;<span class="preprocessor">#   endif</span></div><div class="line"><a name="l00075"></a><span class="lineno">   75</span>&#160;<span class="preprocessor">#elif __GNUC__ &gt;= 4</span></div><div class="line"><a name="l00076"></a><span class="lineno">   76</span>&#160;<span class="preprocessor">#   define TINYXML2_LIB __attribute__((visibility(&quot;default&quot;)))</span></div><div class="line"><a name="l00077"></a><span class="lineno">   77</span>&#160;<span class="preprocessor">#else</span></div><div class="line"><a name="l00078"></a><span class="lineno">   78</span>&#160;<span class="preprocessor">#   define TINYXML2_LIB</span></div><div class="line"><a name="l00079"></a><span class="lineno">   79</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00080"></a><span class="lineno">   80</span>&#160;</div><div class="line"><a name="l00081"></a><span class="lineno">   81</span>&#160;</div><div class="line"><a name="l00082"></a><span class="lineno">   82</span>&#160;<span class="preprocessor">#if defined(DEBUG)</span></div><div class="line"><a name="l00083"></a><span class="lineno">   83</span>&#160;<span class="preprocessor">#   if defined(_MSC_VER)</span></div><div class="line"><a name="l00084"></a><span class="lineno">   84</span>&#160;<span class="preprocessor">#       // &quot;(void)0,&quot; is for suppressing C4127 warning in &quot;assert(false)&quot;, &quot;assert(true)&quot; and the like</span></div><div class="line"><a name="l00085"></a><span class="lineno">   85</span>&#160;<span class="preprocessor">#       define TIXMLASSERT( x )           if ( !((void)0,(x))) { __debugbreak(); }</span></div><div class="line"><a name="l00086"></a><span class="lineno">   86</span>&#160;<span class="preprocessor">#   elif defined (ANDROID_NDK)</span></div><div class="line"><a name="l00087"></a><span class="lineno">   87</span>&#160;<span class="preprocessor">#       include &lt;android/log.h&gt;</span></div><div class="line"><a name="l00088"></a><span class="lineno">   88</span>&#160;<span class="preprocessor">#       define TIXMLASSERT( x )           if ( !(x)) { __android_log_assert( &quot;assert&quot;, &quot;grinliz&quot;, &quot;ASSERT in &#39;%s&#39; at %d.&quot;, __FILE__, __LINE__ ); }</span></div><div class="line"><a name="l00089"></a><span class="lineno">   89</span>&#160;<span class="preprocessor">#   else</span></div><div class="line"><a name="l00090"></a><span class="lineno">   90</span>&#160;<span class="preprocessor">#       include &lt;assert.h&gt;</span></div><div class="line"><a name="l00091"></a><span class="lineno">   91</span>&#160;<span class="preprocessor">#       define TIXMLASSERT                assert</span></div><div class="line"><a name="l00092"></a><span class="lineno">   92</span>&#160;<span class="preprocessor">#   endif</span></div><div class="line"><a name="l00093"></a><span class="lineno">   93</span>&#160;<span class="preprocessor">#else</span></div><div class="line"><a name="l00094"></a><span class="lineno">   94</span>&#160;<span class="preprocessor">#   define TIXMLASSERT( x )               {}</span></div><div class="line"><a name="l00095"></a><span class="lineno">   95</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00096"></a><span class="lineno">   96</span>&#160;</div><div class="line"><a name="l00097"></a><span class="lineno">   97</span>&#160;</div><div class="line"><a name="l00098"></a><span class="lineno">   98</span>&#160;<span class="comment">/* Versioning, past 1.0.14:</span></div><div class="line"><a name="l00099"></a><span class="lineno">   99</span>&#160;<span class="comment">    http://semver.org/</span></div><div class="line"><a name="l00100"></a><span class="lineno">  100</span>&#160;<span class="comment">*/</span></div><div class="line"><a name="l00101"></a><span class="lineno">  101</span>&#160;<span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">int</span> TIXML2_MAJOR_VERSION = 6;</div><div class="line"><a name="l00102"></a><span class="lineno">  102</span>&#160;<span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">int</span> TIXML2_MINOR_VERSION = 0;</div><div class="line"><a name="l00103"></a><span class="lineno">  103</span>&#160;<span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">int</span> TIXML2_PATCH_VERSION = 0;</div><div class="line"><a name="l00104"></a><span class="lineno">  104</span>&#160;</div><div class="line"><a name="l00105"></a><span class="lineno">  105</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespacetinyxml2.html">tinyxml2</a></div><div class="line"><a name="l00106"></a><span class="lineno">  106</span>&#160;{</div><div class="line"><a name="l00107"></a><span class="lineno">  107</span>&#160;<span class="keyword">class </span>XMLDocument;</div><div class="line"><a name="l00108"></a><span class="lineno">  108</span>&#160;<span class="keyword">class </span>XMLElement;</div><div class="line"><a name="l00109"></a><span class="lineno">  109</span>&#160;<span class="keyword">class </span>XMLAttribute;</div><div class="line"><a name="l00110"></a><span class="lineno">  110</span>&#160;<span class="keyword">class </span>XMLComment;</div><div class="line"><a name="l00111"></a><span class="lineno">  111</span>&#160;<span class="keyword">class </span>XMLText;</div><div class="line"><a name="l00112"></a><span class="lineno">  112</span>&#160;<span class="keyword">class </span>XMLDeclaration;</div><div class="line"><a name="l00113"></a><span class="lineno">  113</span>&#160;<span class="keyword">class </span>XMLUnknown;</div><div class="line"><a name="l00114"></a><span class="lineno">  114</span>&#160;<span class="keyword">class </span>XMLPrinter;</div><div class="line"><a name="l00115"></a><span class="lineno">  115</span>&#160;</div><div class="line"><a name="l00116"></a><span class="lineno">  116</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00117"></a><span class="lineno">  117</span>&#160;<span class="comment">    A class that wraps strings. Normally stores the start and end</span></div><div class="line"><a name="l00118"></a><span class="lineno">  118</span>&#160;<span class="comment">    pointers into the XML file itself, and will apply normalization</span></div><div class="line"><a name="l00119"></a><span class="lineno">  119</span>&#160;<span class="comment">    and entity translation if actually read. Can also store (and memory</span></div><div class="line"><a name="l00120"></a><span class="lineno">  120</span>&#160;<span class="comment">    manage) a traditional char[]</span></div><div class="line"><a name="l00121"></a><span class="lineno">  121</span>&#160;<span class="comment">*/</span></div><div class="line"><a name="l00122"></a><span class="lineno">  122</span>&#160;<span class="keyword">class </span>StrPair</div><div class="line"><a name="l00123"></a><span class="lineno">  123</span>&#160;{</div><div class="line"><a name="l00124"></a><span class="lineno">  124</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00125"></a><span class="lineno">  125</span>&#160;    <span class="keyword">enum</span> {</div><div class="line"><a name="l00126"></a><span class="lineno">  126</span>&#160;        NEEDS_ENTITY_PROCESSING         = 0x01,</div><div class="line"><a name="l00127"></a><span class="lineno">  127</span>&#160;        NEEDS_NEWLINE_NORMALIZATION     = 0x02,</div><div class="line"><a name="l00128"></a><span class="lineno">  128</span>&#160;        NEEDS_WHITESPACE_COLLAPSING     = 0x04,</div><div class="line"><a name="l00129"></a><span class="lineno">  129</span>&#160;</div><div class="line"><a name="l00130"></a><span class="lineno">  130</span>&#160;        TEXT_ELEMENT                    = NEEDS_ENTITY_PROCESSING | NEEDS_NEWLINE_NORMALIZATION,</div><div class="line"><a name="l00131"></a><span class="lineno">  131</span>&#160;        TEXT_ELEMENT_LEAVE_ENTITIES     = NEEDS_NEWLINE_NORMALIZATION,</div><div class="line"><a name="l00132"></a><span class="lineno">  132</span>&#160;        ATTRIBUTE_NAME                  = 0,</div><div class="line"><a name="l00133"></a><span class="lineno">  133</span>&#160;        ATTRIBUTE_VALUE                 = NEEDS_ENTITY_PROCESSING | NEEDS_NEWLINE_NORMALIZATION,</div><div class="line"><a name="l00134"></a><span class="lineno">  134</span>&#160;        ATTRIBUTE_VALUE_LEAVE_ENTITIES  = NEEDS_NEWLINE_NORMALIZATION,</div><div class="line"><a name="l00135"></a><span class="lineno">  135</span>&#160;        COMMENT                         = NEEDS_NEWLINE_NORMALIZATION</div><div class="line"><a name="l00136"></a><span class="lineno">  136</span>&#160;    };</div><div class="line"><a name="l00137"></a><span class="lineno">  137</span>&#160;</div><div class="line"><a name="l00138"></a><span class="lineno">  138</span>&#160;    StrPair() : _flags( 0 ), _start( 0 ), _end( 0 ) {}</div><div class="line"><a name="l00139"></a><span class="lineno">  139</span>&#160;    ~StrPair();</div><div class="line"><a name="l00140"></a><span class="lineno">  140</span>&#160;</div><div class="line"><a name="l00141"></a><span class="lineno">  141</span>&#160;    <span class="keywordtype">void</span> Set( <span class="keywordtype">char</span>* start, <span class="keywordtype">char</span>* end, <span class="keywordtype">int</span> flags ) {</div><div class="line"><a name="l00142"></a><span class="lineno">  142</span>&#160;        TIXMLASSERT( start );</div><div class="line"><a name="l00143"></a><span class="lineno">  143</span>&#160;        TIXMLASSERT( end );</div><div class="line"><a name="l00144"></a><span class="lineno">  144</span>&#160;        Reset();</div><div class="line"><a name="l00145"></a><span class="lineno">  145</span>&#160;        _start  = start;</div><div class="line"><a name="l00146"></a><span class="lineno">  146</span>&#160;        _end    = end;</div><div class="line"><a name="l00147"></a><span class="lineno">  147</span>&#160;        _flags  = flags | NEEDS_FLUSH;</div><div class="line"><a name="l00148"></a><span class="lineno">  148</span>&#160;    }</div><div class="line"><a name="l00149"></a><span class="lineno">  149</span>&#160;</div><div class="line"><a name="l00150"></a><span class="lineno">  150</span>&#160;    <span class="keyword">const</span> <span class="keywordtype">char</span>* GetStr();</div><div class="line"><a name="l00151"></a><span class="lineno">  151</span>&#160;</div><div class="line"><a name="l00152"></a><span class="lineno">  152</span>&#160;    <span class="keywordtype">bool</span> Empty()<span class="keyword"> const </span>{</div><div class="line"><a name="l00153"></a><span class="lineno">  153</span>&#160;        <span class="keywordflow">return</span> _start == _end;</div><div class="line"><a name="l00154"></a><span class="lineno">  154</span>&#160;    }</div><div class="line"><a name="l00155"></a><span class="lineno">  155</span>&#160;</div><div class="line"><a name="l00156"></a><span class="lineno">  156</span>&#160;    <span class="keywordtype">void</span> SetInternedStr( <span class="keyword">const</span> <span class="keywordtype">char</span>* str ) {</div><div class="line"><a name="l00157"></a><span class="lineno">  157</span>&#160;        Reset();</div><div class="line"><a name="l00158"></a><span class="lineno">  158</span>&#160;        _start = <span class="keyword">const_cast&lt;</span><span class="keywordtype">char</span>*<span class="keyword">&gt;</span>(str);</div><div class="line"><a name="l00159"></a><span class="lineno">  159</span>&#160;    }</div><div class="line"><a name="l00160"></a><span class="lineno">  160</span>&#160;</div><div class="line"><a name="l00161"></a><span class="lineno">  161</span>&#160;    <span class="keywordtype">void</span> SetStr( <span class="keyword">const</span> <span class="keywordtype">char</span>* str, <span class="keywordtype">int</span> flags=0 );</div><div class="line"><a name="l00162"></a><span class="lineno">  162</span>&#160;</div><div class="line"><a name="l00163"></a><span class="lineno">  163</span>&#160;    <span class="keywordtype">char</span>* ParseText( <span class="keywordtype">char</span>* in, <span class="keyword">const</span> <span class="keywordtype">char</span>* endTag, <span class="keywordtype">int</span> strFlags, <span class="keywordtype">int</span>* curLineNumPtr );</div><div class="line"><a name="l00164"></a><span class="lineno">  164</span>&#160;    <span class="keywordtype">char</span>* ParseName( <span class="keywordtype">char</span>* in );</div><div class="line"><a name="l00165"></a><span class="lineno">  165</span>&#160;</div><div class="line"><a name="l00166"></a><span class="lineno">  166</span>&#160;    <span class="keywordtype">void</span> TransferTo( StrPair* other );</div><div class="line"><a name="l00167"></a><span class="lineno">  167</span>&#160;    <span class="keywordtype">void</span> Reset();</div><div class="line"><a name="l00168"></a><span class="lineno">  168</span>&#160;</div><div class="line"><a name="l00169"></a><span class="lineno">  169</span>&#160;<span class="keyword">private</span>:</div><div class="line"><a name="l00170"></a><span class="lineno">  170</span>&#160;    <span class="keywordtype">void</span> CollapseWhitespace();</div><div class="line"><a name="l00171"></a><span class="lineno">  171</span>&#160;</div><div class="line"><a name="l00172"></a><span class="lineno">  172</span>&#160;    <span class="keyword">enum</span> {</div><div class="line"><a name="l00173"></a><span class="lineno">  173</span>&#160;        NEEDS_FLUSH = 0x100,</div><div class="line"><a name="l00174"></a><span class="lineno">  174</span>&#160;        NEEDS_DELETE = 0x200</div><div class="line"><a name="l00175"></a><span class="lineno">  175</span>&#160;    };</div><div class="line"><a name="l00176"></a><span class="lineno">  176</span>&#160;</div><div class="line"><a name="l00177"></a><span class="lineno">  177</span>&#160;    <span class="keywordtype">int</span>     _flags;</div><div class="line"><a name="l00178"></a><span class="lineno">  178</span>&#160;    <span class="keywordtype">char</span>*   _start;</div><div class="line"><a name="l00179"></a><span class="lineno">  179</span>&#160;    <span class="keywordtype">char</span>*   _end;</div><div class="line"><a name="l00180"></a><span class="lineno">  180</span>&#160;</div><div class="line"><a name="l00181"></a><span class="lineno">  181</span>&#160;    StrPair( <span class="keyword">const</span> StrPair&amp; other );    <span class="comment">// not supported</span></div><div class="line"><a name="l00182"></a><span class="lineno">  182</span>&#160;    <span class="keywordtype">void</span> operator=( StrPair&amp; other );   <span class="comment">// not supported, use TransferTo()</span></div><div class="line"><a name="l00183"></a><span class="lineno">  183</span>&#160;};</div><div class="line"><a name="l00184"></a><span class="lineno">  184</span>&#160;</div><div class="line"><a name="l00185"></a><span class="lineno">  185</span>&#160;</div><div class="line"><a name="l00186"></a><span class="lineno">  186</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00187"></a><span class="lineno">  187</span>&#160;<span class="comment">    A dynamic array of Plain Old Data. Doesn&#39;t support constructors, etc.</span></div><div class="line"><a name="l00188"></a><span class="lineno">  188</span>&#160;<span class="comment">    Has a small initial memory pool, so that low or no usage will not</span></div><div class="line"><a name="l00189"></a><span class="lineno">  189</span>&#160;<span class="comment">    cause a call to new/delete</span></div><div class="line"><a name="l00190"></a><span class="lineno">  190</span>&#160;<span class="comment">*/</span></div><div class="line"><a name="l00191"></a><span class="lineno">  191</span>&#160;<span class="keyword">template</span> &lt;<span class="keyword">class</span> T, <span class="keywordtype">int</span> INITIAL_SIZE&gt;</div><div class="line"><a name="l00192"></a><span class="lineno">  192</span>&#160;<span class="keyword">class </span>DynArray</div><div class="line"><a name="l00193"></a><span class="lineno">  193</span>&#160;{</div><div class="line"><a name="l00194"></a><span class="lineno">  194</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00195"></a><span class="lineno">  195</span>&#160;    DynArray() :</div><div class="line"><a name="l00196"></a><span class="lineno">  196</span>&#160;        _mem( _pool ),</div><div class="line"><a name="l00197"></a><span class="lineno">  197</span>&#160;        _allocated( INITIAL_SIZE ),</div><div class="line"><a name="l00198"></a><span class="lineno">  198</span>&#160;        _size( 0 )</div><div class="line"><a name="l00199"></a><span class="lineno">  199</span>&#160;    {</div><div class="line"><a name="l00200"></a><span class="lineno">  200</span>&#160;    }</div><div class="line"><a name="l00201"></a><span class="lineno">  201</span>&#160;</div><div class="line"><a name="l00202"></a><span class="lineno">  202</span>&#160;    ~DynArray() {</div><div class="line"><a name="l00203"></a><span class="lineno">  203</span>&#160;        <span class="keywordflow">if</span> ( _mem != _pool ) {</div><div class="line"><a name="l00204"></a><span class="lineno">  204</span>&#160;            <span class="keyword">delete</span> [] _mem;</div><div class="line"><a name="l00205"></a><span class="lineno">  205</span>&#160;        }</div><div class="line"><a name="l00206"></a><span class="lineno">  206</span>&#160;    }</div><div class="line"><a name="l00207"></a><span class="lineno">  207</span>&#160;</div><div class="line"><a name="l00208"></a><span class="lineno">  208</span>&#160;    <span class="keywordtype">void</span> Clear() {</div><div class="line"><a name="l00209"></a><span class="lineno">  209</span>&#160;        _size = 0;</div><div class="line"><a name="l00210"></a><span class="lineno">  210</span>&#160;    }</div><div class="line"><a name="l00211"></a><span class="lineno">  211</span>&#160;</div><div class="line"><a name="l00212"></a><span class="lineno">  212</span>&#160;    <span class="keywordtype">void</span> Push( T t ) {</div><div class="line"><a name="l00213"></a><span class="lineno">  213</span>&#160;        TIXMLASSERT( _size &lt; INT_MAX );</div><div class="line"><a name="l00214"></a><span class="lineno">  214</span>&#160;        EnsureCapacity( _size+1 );</div><div class="line"><a name="l00215"></a><span class="lineno">  215</span>&#160;        _mem[_size] = t;</div><div class="line"><a name="l00216"></a><span class="lineno">  216</span>&#160;        ++_size;</div><div class="line"><a name="l00217"></a><span class="lineno">  217</span>&#160;    }</div><div class="line"><a name="l00218"></a><span class="lineno">  218</span>&#160;</div><div class="line"><a name="l00219"></a><span class="lineno">  219</span>&#160;    T* PushArr( <span class="keywordtype">int</span> count ) {</div><div class="line"><a name="l00220"></a><span class="lineno">  220</span>&#160;        TIXMLASSERT( count &gt;= 0 );</div><div class="line"><a name="l00221"></a><span class="lineno">  221</span>&#160;        TIXMLASSERT( _size &lt;= INT_MAX - count );</div><div class="line"><a name="l00222"></a><span class="lineno">  222</span>&#160;        EnsureCapacity( _size+count );</div><div class="line"><a name="l00223"></a><span class="lineno">  223</span>&#160;        T* ret = &amp;_mem[_size];</div><div class="line"><a name="l00224"></a><span class="lineno">  224</span>&#160;        _size += count;</div><div class="line"><a name="l00225"></a><span class="lineno">  225</span>&#160;        <span class="keywordflow">return</span> ret;</div><div class="line"><a name="l00226"></a><span class="lineno">  226</span>&#160;    }</div><div class="line"><a name="l00227"></a><span class="lineno">  227</span>&#160;</div><div class="line"><a name="l00228"></a><span class="lineno">  228</span>&#160;    T Pop() {</div><div class="line"><a name="l00229"></a><span class="lineno">  229</span>&#160;        TIXMLASSERT( _size &gt; 0 );</div><div class="line"><a name="l00230"></a><span class="lineno">  230</span>&#160;        --_size;</div><div class="line"><a name="l00231"></a><span class="lineno">  231</span>&#160;        <span class="keywordflow">return</span> _mem[_size];</div><div class="line"><a name="l00232"></a><span class="lineno">  232</span>&#160;    }</div><div class="line"><a name="l00233"></a><span class="lineno">  233</span>&#160;</div><div class="line"><a name="l00234"></a><span class="lineno">  234</span>&#160;    <span class="keywordtype">void</span> PopArr( <span class="keywordtype">int</span> count ) {</div><div class="line"><a name="l00235"></a><span class="lineno">  235</span>&#160;        TIXMLASSERT( _size &gt;= count );</div><div class="line"><a name="l00236"></a><span class="lineno">  236</span>&#160;        _size -= count;</div><div class="line"><a name="l00237"></a><span class="lineno">  237</span>&#160;    }</div><div class="line"><a name="l00238"></a><span class="lineno">  238</span>&#160;</div><div class="line"><a name="l00239"></a><span class="lineno">  239</span>&#160;    <span class="keywordtype">bool</span> Empty()<span class="keyword"> const                  </span>{</div><div class="line"><a name="l00240"></a><span class="lineno">  240</span>&#160;        <span class="keywordflow">return</span> _size == 0;</div><div class="line"><a name="l00241"></a><span class="lineno">  241</span>&#160;    }</div><div class="line"><a name="l00242"></a><span class="lineno">  242</span>&#160;</div><div class="line"><a name="l00243"></a><span class="lineno">  243</span>&#160;    T&amp; operator[](<span class="keywordtype">int</span> i)                {</div><div class="line"><a name="l00244"></a><span class="lineno">  244</span>&#160;        TIXMLASSERT( i&gt;= 0 &amp;&amp; i &lt; _size );</div><div class="line"><a name="l00245"></a><span class="lineno">  245</span>&#160;        <span class="keywordflow">return</span> _mem[i];</div><div class="line"><a name="l00246"></a><span class="lineno">  246</span>&#160;    }</div><div class="line"><a name="l00247"></a><span class="lineno">  247</span>&#160;</div><div class="line"><a name="l00248"></a><span class="lineno">  248</span>&#160;    <span class="keyword">const</span> T&amp; operator[](<span class="keywordtype">int</span> i)<span class="keyword"> const    </span>{</div><div class="line"><a name="l00249"></a><span class="lineno">  249</span>&#160;        TIXMLASSERT( i&gt;= 0 &amp;&amp; i &lt; _size );</div><div class="line"><a name="l00250"></a><span class="lineno">  250</span>&#160;        <span class="keywordflow">return</span> _mem[i];</div><div class="line"><a name="l00251"></a><span class="lineno">  251</span>&#160;    }</div><div class="line"><a name="l00252"></a><span class="lineno">  252</span>&#160;</div><div class="line"><a name="l00253"></a><span class="lineno">  253</span>&#160;    <span class="keyword">const</span> T&amp; PeekTop()<span class="keyword"> const            </span>{</div><div class="line"><a name="l00254"></a><span class="lineno">  254</span>&#160;        TIXMLASSERT( _size &gt; 0 );</div><div class="line"><a name="l00255"></a><span class="lineno">  255</span>&#160;        <span class="keywordflow">return</span> _mem[ _size - 1];</div><div class="line"><a name="l00256"></a><span class="lineno">  256</span>&#160;    }</div><div class="line"><a name="l00257"></a><span class="lineno">  257</span>&#160;</div><div class="line"><a name="l00258"></a><span class="lineno">  258</span>&#160;    <span class="keywordtype">int</span> Size()<span class="keyword"> const                    </span>{</div><div class="line"><a name="l00259"></a><span class="lineno">  259</span>&#160;        TIXMLASSERT( _size &gt;= 0 );</div><div class="line"><a name="l00260"></a><span class="lineno">  260</span>&#160;        <span class="keywordflow">return</span> _size;</div><div class="line"><a name="l00261"></a><span class="lineno">  261</span>&#160;    }</div><div class="line"><a name="l00262"></a><span class="lineno">  262</span>&#160;</div><div class="line"><a name="l00263"></a><span class="lineno">  263</span>&#160;    <span class="keywordtype">int</span> Capacity()<span class="keyword"> const                </span>{</div><div class="line"><a name="l00264"></a><span class="lineno">  264</span>&#160;        TIXMLASSERT( _allocated &gt;= INITIAL_SIZE );</div><div class="line"><a name="l00265"></a><span class="lineno">  265</span>&#160;        <span class="keywordflow">return</span> _allocated;</div><div class="line"><a name="l00266"></a><span class="lineno">  266</span>&#160;    }</div><div class="line"><a name="l00267"></a><span class="lineno">  267</span>&#160;</div><div class="line"><a name="l00268"></a><span class="lineno">  268</span>&#160;    <span class="keywordtype">void</span> SwapRemove(<span class="keywordtype">int</span> i) {</div><div class="line"><a name="l00269"></a><span class="lineno">  269</span>&#160;        TIXMLASSERT(i &gt;= 0 &amp;&amp; i &lt; _size);</div><div class="line"><a name="l00270"></a><span class="lineno">  270</span>&#160;        TIXMLASSERT(_size &gt; 0);</div><div class="line"><a name="l00271"></a><span class="lineno">  271</span>&#160;        _mem[i] = _mem[_size - 1];</div><div class="line"><a name="l00272"></a><span class="lineno">  272</span>&#160;        --_size;</div><div class="line"><a name="l00273"></a><span class="lineno">  273</span>&#160;    }</div><div class="line"><a name="l00274"></a><span class="lineno">  274</span>&#160;</div><div class="line"><a name="l00275"></a><span class="lineno">  275</span>&#160;    <span class="keyword">const</span> T* Mem()<span class="keyword"> const                </span>{</div><div class="line"><a name="l00276"></a><span class="lineno">  276</span>&#160;        TIXMLASSERT( _mem );</div><div class="line"><a name="l00277"></a><span class="lineno">  277</span>&#160;        <span class="keywordflow">return</span> _mem;</div><div class="line"><a name="l00278"></a><span class="lineno">  278</span>&#160;    }</div><div class="line"><a name="l00279"></a><span class="lineno">  279</span>&#160;</div><div class="line"><a name="l00280"></a><span class="lineno">  280</span>&#160;    T* Mem()                            {</div><div class="line"><a name="l00281"></a><span class="lineno">  281</span>&#160;        TIXMLASSERT( _mem );</div><div class="line"><a name="l00282"></a><span class="lineno">  282</span>&#160;        <span class="keywordflow">return</span> _mem;</div><div class="line"><a name="l00283"></a><span class="lineno">  283</span>&#160;    }</div><div class="line"><a name="l00284"></a><span class="lineno">  284</span>&#160;</div><div class="line"><a name="l00285"></a><span class="lineno">  285</span>&#160;<span class="keyword">private</span>:</div><div class="line"><a name="l00286"></a><span class="lineno">  286</span>&#160;    DynArray( <span class="keyword">const</span> DynArray&amp; ); <span class="comment">// not supported</span></div><div class="line"><a name="l00287"></a><span class="lineno">  287</span>&#160;    <span class="keywordtype">void</span> operator=( <span class="keyword">const</span> DynArray&amp; ); <span class="comment">// not supported</span></div><div class="line"><a name="l00288"></a><span class="lineno">  288</span>&#160;</div><div class="line"><a name="l00289"></a><span class="lineno">  289</span>&#160;    <span class="keywordtype">void</span> EnsureCapacity( <span class="keywordtype">int</span> cap ) {</div><div class="line"><a name="l00290"></a><span class="lineno">  290</span>&#160;        TIXMLASSERT( cap &gt; 0 );</div><div class="line"><a name="l00291"></a><span class="lineno">  291</span>&#160;        <span class="keywordflow">if</span> ( cap &gt; _allocated ) {</div><div class="line"><a name="l00292"></a><span class="lineno">  292</span>&#160;            TIXMLASSERT( cap &lt;= INT_MAX / 2 );</div><div class="line"><a name="l00293"></a><span class="lineno">  293</span>&#160;            <span class="keywordtype">int</span> newAllocated = cap * 2;</div><div class="line"><a name="l00294"></a><span class="lineno">  294</span>&#160;            T* newMem = <span class="keyword">new</span> T[newAllocated];</div><div class="line"><a name="l00295"></a><span class="lineno">  295</span>&#160;            TIXMLASSERT( newAllocated &gt;= _size );</div><div class="line"><a name="l00296"></a><span class="lineno">  296</span>&#160;            memcpy( newMem, _mem, <span class="keyword">sizeof</span>(T)*_size );    <span class="comment">// warning: not using constructors, only works for PODs</span></div><div class="line"><a name="l00297"></a><span class="lineno">  297</span>&#160;            <span class="keywordflow">if</span> ( _mem != _pool ) {</div><div class="line"><a name="l00298"></a><span class="lineno">  298</span>&#160;                <span class="keyword">delete</span> [] _mem;</div><div class="line"><a name="l00299"></a><span class="lineno">  299</span>&#160;            }</div><div class="line"><a name="l00300"></a><span class="lineno">  300</span>&#160;            _mem = newMem;</div><div class="line"><a name="l00301"></a><span class="lineno">  301</span>&#160;            _allocated = newAllocated;</div><div class="line"><a name="l00302"></a><span class="lineno">  302</span>&#160;        }</div><div class="line"><a name="l00303"></a><span class="lineno">  303</span>&#160;    }</div><div class="line"><a name="l00304"></a><span class="lineno">  304</span>&#160;</div><div class="line"><a name="l00305"></a><span class="lineno">  305</span>&#160;    T*  _mem;</div><div class="line"><a name="l00306"></a><span class="lineno">  306</span>&#160;    T   _pool[INITIAL_SIZE];</div><div class="line"><a name="l00307"></a><span class="lineno">  307</span>&#160;    <span class="keywordtype">int</span> _allocated;     <span class="comment">// objects allocated</span></div><div class="line"><a name="l00308"></a><span class="lineno">  308</span>&#160;    <span class="keywordtype">int</span> _size;          <span class="comment">// number objects in use</span></div><div class="line"><a name="l00309"></a><span class="lineno">  309</span>&#160;};</div><div class="line"><a name="l00310"></a><span class="lineno">  310</span>&#160;</div><div class="line"><a name="l00311"></a><span class="lineno">  311</span>&#160;</div><div class="line"><a name="l00312"></a><span class="lineno">  312</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00313"></a><span class="lineno">  313</span>&#160;<span class="comment">    Parent virtual class of a pool for fast allocation</span></div><div class="line"><a name="l00314"></a><span class="lineno">  314</span>&#160;<span class="comment">    and deallocation of objects.</span></div><div class="line"><a name="l00315"></a><span class="lineno">  315</span>&#160;<span class="comment">*/</span></div><div class="line"><a name="l00316"></a><span class="lineno">  316</span>&#160;<span class="keyword">class </span>MemPool</div><div class="line"><a name="l00317"></a><span class="lineno">  317</span>&#160;{</div><div class="line"><a name="l00318"></a><span class="lineno">  318</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00319"></a><span class="lineno">  319</span>&#160;    MemPool() {}</div><div class="line"><a name="l00320"></a><span class="lineno">  320</span>&#160;    <span class="keyword">virtual</span> ~MemPool() {}</div><div class="line"><a name="l00321"></a><span class="lineno">  321</span>&#160;</div><div class="line"><a name="l00322"></a><span class="lineno">  322</span>&#160;    <span class="keyword">virtual</span> <span class="keywordtype">int</span> ItemSize() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00323"></a><span class="lineno">  323</span>&#160;    <span class="keyword">virtual</span> <span class="keywordtype">void</span>* Alloc() = 0;</div><div class="line"><a name="l00324"></a><span class="lineno">  324</span>&#160;    <span class="keyword">virtual</span> <span class="keywordtype">void</span> Free( <span class="keywordtype">void</span>* ) = 0;</div><div class="line"><a name="l00325"></a><span class="lineno">  325</span>&#160;    <span class="keyword">virtual</span> <span class="keywordtype">void</span> SetTracked() = 0;</div><div class="line"><a name="l00326"></a><span class="lineno">  326</span>&#160;    <span class="keyword">virtual</span> <span class="keywordtype">void</span> Clear() = 0;</div><div class="line"><a name="l00327"></a><span class="lineno">  327</span>&#160;};</div><div class="line"><a name="l00328"></a><span class="lineno">  328</span>&#160;</div><div class="line"><a name="l00329"></a><span class="lineno">  329</span>&#160;</div><div class="line"><a name="l00330"></a><span class="lineno">  330</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00331"></a><span class="lineno">  331</span>&#160;<span class="comment">    Template child class to create pools of the correct type.</span></div><div class="line"><a name="l00332"></a><span class="lineno">  332</span>&#160;<span class="comment">*/</span></div><div class="line"><a name="l00333"></a><span class="lineno">  333</span>&#160;<span class="keyword">template</span>&lt; <span class="keywordtype">int</span> ITEM_SIZE &gt;</div><div class="line"><a name="l00334"></a><span class="lineno">  334</span>&#160;<span class="keyword">class </span>MemPoolT : <span class="keyword">public</span> MemPool</div><div class="line"><a name="l00335"></a><span class="lineno">  335</span>&#160;{</div><div class="line"><a name="l00336"></a><span class="lineno">  336</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00337"></a><span class="lineno">  337</span>&#160;    MemPoolT() : _blockPtrs(), _root(0), _currentAllocs(0), _nAllocs(0), _maxAllocs(0), _nUntracked(0)  {}</div><div class="line"><a name="l00338"></a><span class="lineno">  338</span>&#160;    ~MemPoolT() {</div><div class="line"><a name="l00339"></a><span class="lineno">  339</span>&#160;        Clear();</div><div class="line"><a name="l00340"></a><span class="lineno">  340</span>&#160;    }</div><div class="line"><a name="l00341"></a><span class="lineno">  341</span>&#160;    </div><div class="line"><a name="l00342"></a><span class="lineno">  342</span>&#160;    <span class="keywordtype">void</span> Clear() {</div><div class="line"><a name="l00343"></a><span class="lineno">  343</span>&#160;        <span class="comment">// Delete the blocks.</span></div><div class="line"><a name="l00344"></a><span class="lineno">  344</span>&#160;        <span class="keywordflow">while</span>( !_blockPtrs.Empty()) {</div><div class="line"><a name="l00345"></a><span class="lineno">  345</span>&#160;            Block* lastBlock = _blockPtrs.Pop();</div><div class="line"><a name="l00346"></a><span class="lineno">  346</span>&#160;            <span class="keyword">delete</span> lastBlock;</div><div class="line"><a name="l00347"></a><span class="lineno">  347</span>&#160;        }</div><div class="line"><a name="l00348"></a><span class="lineno">  348</span>&#160;        _root = 0;</div><div class="line"><a name="l00349"></a><span class="lineno">  349</span>&#160;        _currentAllocs = 0;</div><div class="line"><a name="l00350"></a><span class="lineno">  350</span>&#160;        _nAllocs = 0;</div><div class="line"><a name="l00351"></a><span class="lineno">  351</span>&#160;        _maxAllocs = 0;</div><div class="line"><a name="l00352"></a><span class="lineno">  352</span>&#160;        _nUntracked = 0;</div><div class="line"><a name="l00353"></a><span class="lineno">  353</span>&#160;    }</div><div class="line"><a name="l00354"></a><span class="lineno">  354</span>&#160;</div><div class="line"><a name="l00355"></a><span class="lineno">  355</span>&#160;    <span class="keyword">virtual</span> <span class="keywordtype">int</span> ItemSize()<span class="keyword"> const    </span>{</div><div class="line"><a name="l00356"></a><span class="lineno">  356</span>&#160;        <span class="keywordflow">return</span> ITEM_SIZE;</div><div class="line"><a name="l00357"></a><span class="lineno">  357</span>&#160;    }</div><div class="line"><a name="l00358"></a><span class="lineno">  358</span>&#160;    <span class="keywordtype">int</span> CurrentAllocs()<span class="keyword"> const       </span>{</div><div class="line"><a name="l00359"></a><span class="lineno">  359</span>&#160;        <span class="keywordflow">return</span> _currentAllocs;</div><div class="line"><a name="l00360"></a><span class="lineno">  360</span>&#160;    }</div><div class="line"><a name="l00361"></a><span class="lineno">  361</span>&#160;</div><div class="line"><a name="l00362"></a><span class="lineno">  362</span>&#160;    <span class="keyword">virtual</span> <span class="keywordtype">void</span>* Alloc() {</div><div class="line"><a name="l00363"></a><span class="lineno">  363</span>&#160;        <span class="keywordflow">if</span> ( !_root ) {</div><div class="line"><a name="l00364"></a><span class="lineno">  364</span>&#160;            <span class="comment">// Need a new block.</span></div><div class="line"><a name="l00365"></a><span class="lineno">  365</span>&#160;            Block* block = <span class="keyword">new</span> Block();</div><div class="line"><a name="l00366"></a><span class="lineno">  366</span>&#160;            _blockPtrs.Push( block );</div><div class="line"><a name="l00367"></a><span class="lineno">  367</span>&#160;</div><div class="line"><a name="l00368"></a><span class="lineno">  368</span>&#160;            Item* blockItems = block-&gt;items;</div><div class="line"><a name="l00369"></a><span class="lineno">  369</span>&#160;            <span class="keywordflow">for</span>( <span class="keywordtype">int</span> i = 0; i &lt; ITEMS_PER_BLOCK - 1; ++i ) {</div><div class="line"><a name="l00370"></a><span class="lineno">  370</span>&#160;                blockItems[i].next = &amp;(blockItems[i + 1]);</div><div class="line"><a name="l00371"></a><span class="lineno">  371</span>&#160;            }</div><div class="line"><a name="l00372"></a><span class="lineno">  372</span>&#160;            blockItems[ITEMS_PER_BLOCK - 1].next = 0;</div><div class="line"><a name="l00373"></a><span class="lineno">  373</span>&#160;            _root = blockItems;</div><div class="line"><a name="l00374"></a><span class="lineno">  374</span>&#160;        }</div><div class="line"><a name="l00375"></a><span class="lineno">  375</span>&#160;        Item* <span class="keyword">const</span> result = _root;</div><div class="line"><a name="l00376"></a><span class="lineno">  376</span>&#160;        TIXMLASSERT( result != 0 );</div><div class="line"><a name="l00377"></a><span class="lineno">  377</span>&#160;        _root = _root-&gt;next;</div><div class="line"><a name="l00378"></a><span class="lineno">  378</span>&#160;</div><div class="line"><a name="l00379"></a><span class="lineno">  379</span>&#160;        ++_currentAllocs;</div><div class="line"><a name="l00380"></a><span class="lineno">  380</span>&#160;        <span class="keywordflow">if</span> ( _currentAllocs &gt; _maxAllocs ) {</div><div class="line"><a name="l00381"></a><span class="lineno">  381</span>&#160;            _maxAllocs = _currentAllocs;</div><div class="line"><a name="l00382"></a><span class="lineno">  382</span>&#160;        }</div><div class="line"><a name="l00383"></a><span class="lineno">  383</span>&#160;        ++_nAllocs;</div><div class="line"><a name="l00384"></a><span class="lineno">  384</span>&#160;        ++_nUntracked;</div><div class="line"><a name="l00385"></a><span class="lineno">  385</span>&#160;        <span class="keywordflow">return</span> result;</div><div class="line"><a name="l00386"></a><span class="lineno">  386</span>&#160;    }</div><div class="line"><a name="l00387"></a><span class="lineno">  387</span>&#160;    </div><div class="line"><a name="l00388"></a><span class="lineno">  388</span>&#160;    <span class="keyword">virtual</span> <span class="keywordtype">void</span> Free( <span class="keywordtype">void</span>* mem ) {</div><div class="line"><a name="l00389"></a><span class="lineno">  389</span>&#160;        <span class="keywordflow">if</span> ( !mem ) {</div><div class="line"><a name="l00390"></a><span class="lineno">  390</span>&#160;            <span class="keywordflow">return</span>;</div><div class="line"><a name="l00391"></a><span class="lineno">  391</span>&#160;        }</div><div class="line"><a name="l00392"></a><span class="lineno">  392</span>&#160;        --_currentAllocs;</div><div class="line"><a name="l00393"></a><span class="lineno">  393</span>&#160;        Item* item = <span class="keyword">static_cast&lt;</span>Item*<span class="keyword">&gt;</span>( mem );</div><div class="line"><a name="l00394"></a><span class="lineno">  394</span>&#160;<span class="preprocessor">#ifdef DEBUG</span></div><div class="line"><a name="l00395"></a><span class="lineno">  395</span>&#160;        memset( item, 0xfe, <span class="keyword">sizeof</span>( *item ) );</div><div class="line"><a name="l00396"></a><span class="lineno">  396</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00397"></a><span class="lineno">  397</span>&#160;        item-&gt;next = _root;</div><div class="line"><a name="l00398"></a><span class="lineno">  398</span>&#160;        _root = item;</div><div class="line"><a name="l00399"></a><span class="lineno">  399</span>&#160;    }</div><div class="line"><a name="l00400"></a><span class="lineno">  400</span>&#160;    <span class="keywordtype">void</span> Trace( <span class="keyword">const</span> <span class="keywordtype">char</span>* name ) {</div><div class="line"><a name="l00401"></a><span class="lineno">  401</span>&#160;        printf( <span class="stringliteral">&quot;Mempool %s watermark=%d [%dk] current=%d size=%d nAlloc=%d blocks=%d\n&quot;</span>,</div><div class="line"><a name="l00402"></a><span class="lineno">  402</span>&#160;                name, _maxAllocs, _maxAllocs * ITEM_SIZE / 1024, _currentAllocs,</div><div class="line"><a name="l00403"></a><span class="lineno">  403</span>&#160;                ITEM_SIZE, _nAllocs, _blockPtrs.Size() );</div><div class="line"><a name="l00404"></a><span class="lineno">  404</span>&#160;    }</div><div class="line"><a name="l00405"></a><span class="lineno">  405</span>&#160;</div><div class="line"><a name="l00406"></a><span class="lineno">  406</span>&#160;    <span class="keywordtype">void</span> SetTracked() {</div><div class="line"><a name="l00407"></a><span class="lineno">  407</span>&#160;        --_nUntracked;</div><div class="line"><a name="l00408"></a><span class="lineno">  408</span>&#160;    }</div><div class="line"><a name="l00409"></a><span class="lineno">  409</span>&#160;</div><div class="line"><a name="l00410"></a><span class="lineno">  410</span>&#160;    <span class="keywordtype">int</span> Untracked()<span class="keyword"> const </span>{</div><div class="line"><a name="l00411"></a><span class="lineno">  411</span>&#160;        <span class="keywordflow">return</span> _nUntracked;</div><div class="line"><a name="l00412"></a><span class="lineno">  412</span>&#160;    }</div><div class="line"><a name="l00413"></a><span class="lineno">  413</span>&#160;</div><div class="line"><a name="l00414"></a><span class="lineno">  414</span>&#160;    <span class="comment">// This number is perf sensitive. 4k seems like a good tradeoff on my machine.</span></div><div class="line"><a name="l00415"></a><span class="lineno">  415</span>&#160;    <span class="comment">// The test file is large, 170k.</span></div><div class="line"><a name="l00416"></a><span class="lineno">  416</span>&#160;    <span class="comment">// Release:     VS2010 gcc(no opt)</span></div><div class="line"><a name="l00417"></a><span class="lineno">  417</span>&#160;    <span class="comment">//      1k:     4000</span></div><div class="line"><a name="l00418"></a><span class="lineno">  418</span>&#160;    <span class="comment">//      2k:     4000</span></div><div class="line"><a name="l00419"></a><span class="lineno">  419</span>&#160;    <span class="comment">//      4k:     3900    21000</span></div><div class="line"><a name="l00420"></a><span class="lineno">  420</span>&#160;    <span class="comment">//      16k:    5200</span></div><div class="line"><a name="l00421"></a><span class="lineno">  421</span>&#160;    <span class="comment">//      32k:    4300</span></div><div class="line"><a name="l00422"></a><span class="lineno">  422</span>&#160;    <span class="comment">//      64k:    4000    21000</span></div><div class="line"><a name="l00423"></a><span class="lineno">  423</span>&#160;    <span class="comment">// Declared public because some compilers do not accept to use ITEMS_PER_BLOCK</span></div><div class="line"><a name="l00424"></a><span class="lineno">  424</span>&#160;    <span class="comment">// in private part if ITEMS_PER_BLOCK is private</span></div><div class="line"><a name="l00425"></a><span class="lineno">  425</span>&#160;    <span class="keyword">enum</span> { ITEMS_PER_BLOCK = (4 * 1024) / ITEM_SIZE };</div><div class="line"><a name="l00426"></a><span class="lineno">  426</span>&#160;</div><div class="line"><a name="l00427"></a><span class="lineno">  427</span>&#160;<span class="keyword">private</span>:</div><div class="line"><a name="l00428"></a><span class="lineno">  428</span>&#160;    MemPoolT( <span class="keyword">const</span> MemPoolT&amp; ); <span class="comment">// not supported</span></div><div class="line"><a name="l00429"></a><span class="lineno">  429</span>&#160;    <span class="keywordtype">void</span> operator=( <span class="keyword">const</span> MemPoolT&amp; ); <span class="comment">// not supported</span></div><div class="line"><a name="l00430"></a><span class="lineno">  430</span>&#160;</div><div class="line"><a name="l00431"></a><span class="lineno">  431</span>&#160;    <span class="keyword">union </span>Item {</div><div class="line"><a name="l00432"></a><span class="lineno">  432</span>&#160;        Item*   next;</div><div class="line"><a name="l00433"></a><span class="lineno">  433</span>&#160;        <span class="keywordtype">char</span>    itemData[ITEM_SIZE];</div><div class="line"><a name="l00434"></a><span class="lineno">  434</span>&#160;    };</div><div class="line"><a name="l00435"></a><span class="lineno">  435</span>&#160;    <span class="keyword">struct </span>Block {</div><div class="line"><a name="l00436"></a><span class="lineno">  436</span>&#160;        Item items[ITEMS_PER_BLOCK];</div><div class="line"><a name="l00437"></a><span class="lineno">  437</span>&#160;    };</div><div class="line"><a name="l00438"></a><span class="lineno">  438</span>&#160;    DynArray&lt; Block*, 10 &gt; _blockPtrs;</div><div class="line"><a name="l00439"></a><span class="lineno">  439</span>&#160;    Item* _root;</div><div class="line"><a name="l00440"></a><span class="lineno">  440</span>&#160;</div><div class="line"><a name="l00441"></a><span class="lineno">  441</span>&#160;    <span class="keywordtype">int</span> _currentAllocs;</div><div class="line"><a name="l00442"></a><span class="lineno">  442</span>&#160;    <span class="keywordtype">int</span> _nAllocs;</div><div class="line"><a name="l00443"></a><span class="lineno">  443</span>&#160;    <span class="keywordtype">int</span> _maxAllocs;</div><div class="line"><a name="l00444"></a><span class="lineno">  444</span>&#160;    <span class="keywordtype">int</span> _nUntracked;</div><div class="line"><a name="l00445"></a><span class="lineno">  445</span>&#160;};</div><div class="line"><a name="l00446"></a><span class="lineno">  446</span>&#160;</div><div class="line"><a name="l00447"></a><span class="lineno">  447</span>&#160;</div><div class="line"><a name="l00448"></a><span class="lineno">  448</span>&#160;</div><div class="line"><a name="l00468"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_visitor.html">  468</a></span>&#160;<span class="keyword">class </span>TINYXML2_LIB <a class="code" href="classtinyxml2_1_1_x_m_l_visitor.html">XMLVisitor</a></div><div class="line"><a name="l00469"></a><span class="lineno">  469</span>&#160;{</div><div class="line"><a name="l00470"></a><span class="lineno">  470</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00471"></a><span class="lineno">  471</span>&#160;    <span class="keyword">virtual</span> ~<a class="code" href="classtinyxml2_1_1_x_m_l_visitor.html">XMLVisitor</a>() {}</div><div class="line"><a name="l00472"></a><span class="lineno">  472</span>&#160;</div><div class="line"><a name="l00474"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_visitor.html#acb3c22fc5f60eb9db98f533f2761f67d">  474</a></span>&#160;    <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classtinyxml2_1_1_x_m_l_visitor.html#acb3c22fc5f60eb9db98f533f2761f67d">VisitEnter</a>( <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_document.html">XMLDocument</a>&amp; <span class="comment">/*doc*/</span> )           {</div><div class="line"><a name="l00475"></a><span class="lineno">  475</span>&#160;        <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00476"></a><span class="lineno">  476</span>&#160;    }</div><div class="line"><a name="l00478"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_visitor.html#a170e9989cd046ba904f302d087e07086">  478</a></span>&#160;    <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classtinyxml2_1_1_x_m_l_visitor.html#a170e9989cd046ba904f302d087e07086">VisitExit</a>( <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_document.html">XMLDocument</a>&amp; <span class="comment">/*doc*/</span> )            {</div><div class="line"><a name="l00479"></a><span class="lineno">  479</span>&#160;        <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00480"></a><span class="lineno">  480</span>&#160;    }</div><div class="line"><a name="l00481"></a><span class="lineno">  481</span>&#160;</div><div class="line"><a name="l00483"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_visitor.html#af97980a17dd4e37448b181f5ddfa92b5">  483</a></span>&#160;    <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classtinyxml2_1_1_x_m_l_visitor.html#af97980a17dd4e37448b181f5ddfa92b5">VisitEnter</a>( <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_element.html">XMLElement</a>&amp; <span class="comment">/*element*/</span>, <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_attribute.html">XMLAttribute</a>* <span class="comment">/*firstAttribute*/</span> )    {</div><div class="line"><a name="l00484"></a><span class="lineno">  484</span>&#160;        <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00485"></a><span class="lineno">  485</span>&#160;    }</div><div class="line"><a name="l00487"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_visitor.html#a772f10ddc83f881956d32628faa16eb6">  487</a></span>&#160;    <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classtinyxml2_1_1_x_m_l_visitor.html#a772f10ddc83f881956d32628faa16eb6">VisitExit</a>( <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_element.html">XMLElement</a>&amp; <span class="comment">/*element*/</span> )         {</div><div class="line"><a name="l00488"></a><span class="lineno">  488</span>&#160;        <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00489"></a><span class="lineno">  489</span>&#160;    }</div><div class="line"><a name="l00490"></a><span class="lineno">  490</span>&#160;</div><div class="line"><a name="l00492"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_visitor.html#adc75bd459fc7ba8223b50f0616767f9a">  492</a></span>&#160;    <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classtinyxml2_1_1_x_m_l_visitor.html#adc75bd459fc7ba8223b50f0616767f9a">Visit</a>( <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_declaration.html">XMLDeclaration</a>&amp; <span class="comment">/*declaration*/</span> )     {</div><div class="line"><a name="l00493"></a><span class="lineno">  493</span>&#160;        <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00494"></a><span class="lineno">  494</span>&#160;    }</div><div class="line"><a name="l00496"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_visitor.html#af30233565856480ea48b6fa0d6dec65b">  496</a></span>&#160;    <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classtinyxml2_1_1_x_m_l_visitor.html#af30233565856480ea48b6fa0d6dec65b">Visit</a>( <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_text.html">XMLText</a>&amp; <span class="comment">/*text*/</span> )                   {</div><div class="line"><a name="l00497"></a><span class="lineno">  497</span>&#160;        <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00498"></a><span class="lineno">  498</span>&#160;    }</div><div class="line"><a name="l00500"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_visitor.html#acc8147fb5a85f6c65721654e427752d7">  500</a></span>&#160;    <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classtinyxml2_1_1_x_m_l_visitor.html#acc8147fb5a85f6c65721654e427752d7">Visit</a>( <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_comment.html">XMLComment</a>&amp; <span class="comment">/*comment*/</span> )             {</div><div class="line"><a name="l00501"></a><span class="lineno">  501</span>&#160;        <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00502"></a><span class="lineno">  502</span>&#160;    }</div><div class="line"><a name="l00504"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_visitor.html#a14e4748387c34bf53d24e8119bb1f292">  504</a></span>&#160;    <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classtinyxml2_1_1_x_m_l_visitor.html#a14e4748387c34bf53d24e8119bb1f292">Visit</a>( <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_unknown.html">XMLUnknown</a>&amp; <span class="comment">/*unknown*/</span> )             {</div><div class="line"><a name="l00505"></a><span class="lineno">  505</span>&#160;        <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00506"></a><span class="lineno">  506</span>&#160;    }</div><div class="line"><a name="l00507"></a><span class="lineno">  507</span>&#160;};</div><div class="line"><a name="l00508"></a><span class="lineno">  508</span>&#160;</div><div class="line"><a name="l00509"></a><span class="lineno">  509</span>&#160;<span class="comment">// WARNING: must match XMLDocument::_errorNames[]</span></div><div class="line"><a name="l00510"></a><span class="lineno">  510</span>&#160;<span class="keyword">enum</span> XMLError {</div><div class="line"><a name="l00511"></a><span class="lineno">  511</span>&#160;    XML_SUCCESS = 0,</div><div class="line"><a name="l00512"></a><span class="lineno">  512</span>&#160;    XML_NO_ATTRIBUTE,</div><div class="line"><a name="l00513"></a><span class="lineno">  513</span>&#160;    XML_WRONG_ATTRIBUTE_TYPE,</div><div class="line"><a name="l00514"></a><span class="lineno">  514</span>&#160;    XML_ERROR_FILE_NOT_FOUND,</div><div class="line"><a name="l00515"></a><span class="lineno">  515</span>&#160;    XML_ERROR_FILE_COULD_NOT_BE_OPENED,</div><div class="line"><a name="l00516"></a><span class="lineno">  516</span>&#160;    XML_ERROR_FILE_READ_ERROR,</div><div class="line"><a name="l00517"></a><span class="lineno">  517</span>&#160;    UNUSED_XML_ERROR_ELEMENT_MISMATCH,  <span class="comment">// remove at next major version</span></div><div class="line"><a name="l00518"></a><span class="lineno">  518</span>&#160;    XML_ERROR_PARSING_ELEMENT,</div><div class="line"><a name="l00519"></a><span class="lineno">  519</span>&#160;    XML_ERROR_PARSING_ATTRIBUTE,</div><div class="line"><a name="l00520"></a><span class="lineno">  520</span>&#160;    UNUSED_XML_ERROR_IDENTIFYING_TAG,   <span class="comment">// remove at next major version</span></div><div class="line"><a name="l00521"></a><span class="lineno">  521</span>&#160;    XML_ERROR_PARSING_TEXT,</div><div class="line"><a name="l00522"></a><span class="lineno">  522</span>&#160;    XML_ERROR_PARSING_CDATA,</div><div class="line"><a name="l00523"></a><span class="lineno">  523</span>&#160;    XML_ERROR_PARSING_COMMENT,</div><div class="line"><a name="l00524"></a><span class="lineno">  524</span>&#160;    XML_ERROR_PARSING_DECLARATION,</div><div class="line"><a name="l00525"></a><span class="lineno">  525</span>&#160;    XML_ERROR_PARSING_UNKNOWN,</div><div class="line"><a name="l00526"></a><span class="lineno">  526</span>&#160;    XML_ERROR_EMPTY_DOCUMENT,</div><div class="line"><a name="l00527"></a><span class="lineno">  527</span>&#160;    XML_ERROR_MISMATCHED_ELEMENT,</div><div class="line"><a name="l00528"></a><span class="lineno">  528</span>&#160;    XML_ERROR_PARSING,</div><div class="line"><a name="l00529"></a><span class="lineno">  529</span>&#160;    XML_CAN_NOT_CONVERT_TEXT,</div><div class="line"><a name="l00530"></a><span class="lineno">  530</span>&#160;    XML_NO_TEXT_NODE,</div><div class="line"><a name="l00531"></a><span class="lineno">  531</span>&#160;</div><div class="line"><a name="l00532"></a><span class="lineno">  532</span>&#160;    XML_ERROR_COUNT</div><div class="line"><a name="l00533"></a><span class="lineno">  533</span>&#160;};</div><div class="line"><a name="l00534"></a><span class="lineno">  534</span>&#160;</div><div class="line"><a name="l00535"></a><span class="lineno">  535</span>&#160;</div><div class="line"><a name="l00536"></a><span class="lineno">  536</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00537"></a><span class="lineno">  537</span>&#160;<span class="comment">    Utility functionality.</span></div><div class="line"><a name="l00538"></a><span class="lineno">  538</span>&#160;<span class="comment">*/</span></div><div class="line"><a name="l00539"></a><span class="lineno">  539</span>&#160;<span class="keyword">class </span>TINYXML2_LIB XMLUtil</div><div class="line"><a name="l00540"></a><span class="lineno">  540</span>&#160;{</div><div class="line"><a name="l00541"></a><span class="lineno">  541</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00542"></a><span class="lineno">  542</span>&#160;    <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>* p, <span class="keywordtype">int</span>* curLineNumPtr )  {</div><div class="line"><a name="l00543"></a><span class="lineno">  543</span>&#160;        TIXMLASSERT( p );</div><div class="line"><a name="l00544"></a><span class="lineno">  544</span>&#160;</div><div class="line"><a name="l00545"></a><span class="lineno">  545</span>&#160;        <span class="keywordflow">while</span>( IsWhiteSpace(*p) ) {</div><div class="line"><a name="l00546"></a><span class="lineno">  546</span>&#160;            <span class="keywordflow">if</span> (curLineNumPtr &amp;&amp; *p == <span class="charliteral">&#39;\n&#39;</span>) {</div><div class="line"><a name="l00547"></a><span class="lineno">  547</span>&#160;                ++(*curLineNumPtr);</div><div class="line"><a name="l00548"></a><span class="lineno">  548</span>&#160;            }</div><div class="line"><a name="l00549"></a><span class="lineno">  549</span>&#160;            ++p;</div><div class="line"><a name="l00550"></a><span class="lineno">  550</span>&#160;        }</div><div class="line"><a name="l00551"></a><span class="lineno">  551</span>&#160;        TIXMLASSERT( p );</div><div class="line"><a name="l00552"></a><span class="lineno">  552</span>&#160;        <span class="keywordflow">return</span> p;</div><div class="line"><a name="l00553"></a><span class="lineno">  553</span>&#160;    }</div><div class="line"><a name="l00554"></a><span class="lineno">  554</span>&#160;    <span class="keyword">static</span> <span class="keywordtype">char</span>* SkipWhiteSpace( <span class="keywordtype">char</span>* p, <span class="keywordtype">int</span>* curLineNumPtr )              {</div><div class="line"><a name="l00555"></a><span class="lineno">  555</span>&#160;        <span class="keywordflow">return</span> <span class="keyword">const_cast&lt;</span><span class="keywordtype">char</span>*<span class="keyword">&gt;</span>( SkipWhiteSpace( const_cast&lt;const char*&gt;(p), curLineNumPtr ) );</div><div class="line"><a name="l00556"></a><span class="lineno">  556</span>&#160;    }</div><div class="line"><a name="l00557"></a><span class="lineno">  557</span>&#160;</div><div class="line"><a name="l00558"></a><span class="lineno">  558</span>&#160;    <span class="comment">// Anything in the high order range of UTF-8 is assumed to not be whitespace. This isn&#39;t</span></div><div class="line"><a name="l00559"></a><span class="lineno">  559</span>&#160;    <span class="comment">// correct, but simple, and usually works.</span></div><div class="line"><a name="l00560"></a><span class="lineno">  560</span>&#160;    <span class="keyword">static</span> <span class="keywordtype">bool</span> IsWhiteSpace( <span class="keywordtype">char</span> p )                  {</div><div class="line"><a name="l00561"></a><span class="lineno">  561</span>&#160;        <span class="keywordflow">return</span> !IsUTF8Continuation(p) &amp;&amp; isspace( static_cast&lt;unsigned char&gt;(p) );</div><div class="line"><a name="l00562"></a><span class="lineno">  562</span>&#160;    }</div><div class="line"><a name="l00563"></a><span class="lineno">  563</span>&#160;    </div><div class="line"><a name="l00564"></a><span class="lineno">  564</span>&#160;    <span class="keyword">inline</span> <span class="keyword">static</span> <span class="keywordtype">bool</span> IsNameStartChar( <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> ch ) {</div><div class="line"><a name="l00565"></a><span class="lineno">  565</span>&#160;        <span class="keywordflow">if</span> ( ch &gt;= 128 ) {</div><div class="line"><a name="l00566"></a><span class="lineno">  566</span>&#160;            <span class="comment">// This is a heuristic guess in attempt to not implement Unicode-aware isalpha()</span></div><div class="line"><a name="l00567"></a><span class="lineno">  567</span>&#160;            <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00568"></a><span class="lineno">  568</span>&#160;        }</div><div class="line"><a name="l00569"></a><span class="lineno">  569</span>&#160;        <span class="keywordflow">if</span> ( isalpha( ch ) ) {</div><div class="line"><a name="l00570"></a><span class="lineno">  570</span>&#160;            <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00571"></a><span class="lineno">  571</span>&#160;        }</div><div class="line"><a name="l00572"></a><span class="lineno">  572</span>&#160;        <span class="keywordflow">return</span> ch == <span class="charliteral">&#39;:&#39;</span> || ch == <span class="charliteral">&#39;_&#39;</span>;</div><div class="line"><a name="l00573"></a><span class="lineno">  573</span>&#160;    }</div><div class="line"><a name="l00574"></a><span class="lineno">  574</span>&#160;    </div><div class="line"><a name="l00575"></a><span class="lineno">  575</span>&#160;    <span class="keyword">inline</span> <span class="keyword">static</span> <span class="keywordtype">bool</span> IsNameChar( <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> ch ) {</div><div class="line"><a name="l00576"></a><span class="lineno">  576</span>&#160;        <span class="keywordflow">return</span> IsNameStartChar( ch )</div><div class="line"><a name="l00577"></a><span class="lineno">  577</span>&#160;               || isdigit( ch )</div><div class="line"><a name="l00578"></a><span class="lineno">  578</span>&#160;               || ch == <span class="charliteral">&#39;.&#39;</span></div><div class="line"><a name="l00579"></a><span class="lineno">  579</span>&#160;               || ch == <span class="charliteral">&#39;-&#39;</span>;</div><div class="line"><a name="l00580"></a><span class="lineno">  580</span>&#160;    }</div><div class="line"><a name="l00581"></a><span class="lineno">  581</span>&#160;</div><div class="line"><a name="l00582"></a><span class="lineno">  582</span>&#160;    <span class="keyword">inline</span> <span class="keyword">static</span> <span class="keywordtype">bool</span> StringEqual( <span class="keyword">const</span> <span class="keywordtype">char</span>* p, <span class="keyword">const</span> <span class="keywordtype">char</span>* q, <span class="keywordtype">int</span> nChar=INT_MAX )  {</div><div class="line"><a name="l00583"></a><span class="lineno">  583</span>&#160;        <span class="keywordflow">if</span> ( p == q ) {</div><div class="line"><a name="l00584"></a><span class="lineno">  584</span>&#160;            <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00585"></a><span class="lineno">  585</span>&#160;        }</div><div class="line"><a name="l00586"></a><span class="lineno">  586</span>&#160;        TIXMLASSERT( p );</div><div class="line"><a name="l00587"></a><span class="lineno">  587</span>&#160;        TIXMLASSERT( q );</div><div class="line"><a name="l00588"></a><span class="lineno">  588</span>&#160;        TIXMLASSERT( nChar &gt;= 0 );</div><div class="line"><a name="l00589"></a><span class="lineno">  589</span>&#160;        <span class="keywordflow">return</span> strncmp( p, q, nChar ) == 0;</div><div class="line"><a name="l00590"></a><span class="lineno">  590</span>&#160;    }</div><div class="line"><a name="l00591"></a><span class="lineno">  591</span>&#160;    </div><div class="line"><a name="l00592"></a><span class="lineno">  592</span>&#160;    <span class="keyword">inline</span> <span class="keyword">static</span> <span class="keywordtype">bool</span> IsUTF8Continuation( <span class="keywordtype">char</span> p ) {</div><div class="line"><a name="l00593"></a><span class="lineno">  593</span>&#160;        <span class="keywordflow">return</span> ( p &amp; 0x80 ) != 0;</div><div class="line"><a name="l00594"></a><span class="lineno">  594</span>&#160;    }</div><div class="line"><a name="l00595"></a><span class="lineno">  595</span>&#160;</div><div class="line"><a name="l00596"></a><span class="lineno">  596</span>&#160;    <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">char</span>* ReadBOM( <span class="keyword">const</span> <span class="keywordtype">char</span>* p, <span class="keywordtype">bool</span>* hasBOM );</div><div class="line"><a name="l00597"></a><span class="lineno">  597</span>&#160;    <span class="comment">// p is the starting location,</span></div><div class="line"><a name="l00598"></a><span class="lineno">  598</span>&#160;    <span class="comment">// the UTF-8 value of the entity will be placed in value, and length filled in.</span></div><div class="line"><a name="l00599"></a><span class="lineno">  599</span>&#160;    <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">char</span>* GetCharacterRef( <span class="keyword">const</span> <span class="keywordtype">char</span>* p, <span class="keywordtype">char</span>* value, <span class="keywordtype">int</span>* length );</div><div class="line"><a name="l00600"></a><span class="lineno">  600</span>&#160;    <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 );</div><div class="line"><a name="l00601"></a><span class="lineno">  601</span>&#160;</div><div class="line"><a name="l00602"></a><span class="lineno">  602</span>&#160;    <span class="comment">// converts primitive types to strings</span></div><div class="line"><a name="l00603"></a><span class="lineno">  603</span>&#160;    <span class="keyword">static</span> <span class="keywordtype">void</span> ToStr( <span class="keywordtype">int</span> v, <span class="keywordtype">char</span>* buffer, <span class="keywordtype">int</span> bufferSize );</div><div class="line"><a name="l00604"></a><span class="lineno">  604</span>&#160;    <span class="keyword">static</span> <span class="keywordtype">void</span> ToStr( <span class="keywordtype">unsigned</span> v, <span class="keywordtype">char</span>* buffer, <span class="keywordtype">int</span> bufferSize );</div><div class="line"><a name="l00605"></a><span class="lineno">  605</span>&#160;    <span class="keyword">static</span> <span class="keywordtype">void</span> ToStr( <span class="keywordtype">bool</span> v, <span class="keywordtype">char</span>* buffer, <span class="keywordtype">int</span> bufferSize );</div><div class="line"><a name="l00606"></a><span class="lineno">  606</span>&#160;    <span class="keyword">static</span> <span class="keywordtype">void</span> ToStr( <span class="keywordtype">float</span> v, <span class="keywordtype">char</span>* buffer, <span class="keywordtype">int</span> bufferSize );</div><div class="line"><a name="l00607"></a><span class="lineno">  607</span>&#160;    <span class="keyword">static</span> <span class="keywordtype">void</span> ToStr( <span class="keywordtype">double</span> v, <span class="keywordtype">char</span>* buffer, <span class="keywordtype">int</span> bufferSize );</div><div class="line"><a name="l00608"></a><span class="lineno">  608</span>&#160;    <span class="keyword">static</span> <span class="keywordtype">void</span> ToStr(int64_t v, <span class="keywordtype">char</span>* buffer, <span class="keywordtype">int</span> bufferSize);</div><div class="line"><a name="l00609"></a><span class="lineno">  609</span>&#160;</div><div class="line"><a name="l00610"></a><span class="lineno">  610</span>&#160;    <span class="comment">// converts strings to primitive types</span></div><div class="line"><a name="l00611"></a><span class="lineno">  611</span>&#160;    <span class="keyword">static</span> <span class="keywordtype">bool</span> ToInt( <span class="keyword">const</span> <span class="keywordtype">char</span>* str, <span class="keywordtype">int</span>* value );</div><div class="line"><a name="l00612"></a><span class="lineno">  612</span>&#160;    <span class="keyword">static</span> <span class="keywordtype">bool</span> ToUnsigned( <span class="keyword">const</span> <span class="keywordtype">char</span>* str, <span class="keywordtype">unsigned</span>* value );</div><div class="line"><a name="l00613"></a><span class="lineno">  613</span>&#160;    <span class="keyword">static</span> <span class="keywordtype">bool</span> ToBool( <span class="keyword">const</span> <span class="keywordtype">char</span>* str, <span class="keywordtype">bool</span>* value );</div><div class="line"><a name="l00614"></a><span class="lineno">  614</span>&#160;    <span class="keyword">static</span> <span class="keywordtype">bool</span> ToFloat( <span class="keyword">const</span> <span class="keywordtype">char</span>* str, <span class="keywordtype">float</span>* value );</div><div class="line"><a name="l00615"></a><span class="lineno">  615</span>&#160;    <span class="keyword">static</span> <span class="keywordtype">bool</span> ToDouble( <span class="keyword">const</span> <span class="keywordtype">char</span>* str, <span class="keywordtype">double</span>* value );</div><div class="line"><a name="l00616"></a><span class="lineno">  616</span>&#160;    <span class="keyword">static</span> <span class="keywordtype">bool</span> ToInt64(<span class="keyword">const</span> <span class="keywordtype">char</span>* str, int64_t* value);</div><div class="line"><a name="l00617"></a><span class="lineno">  617</span>&#160;</div><div class="line"><a name="l00618"></a><span class="lineno">  618</span>&#160;    <span class="comment">// Changes what is serialized for a boolean value.</span></div><div class="line"><a name="l00619"></a><span class="lineno">  619</span>&#160;    <span class="comment">// Default to &quot;true&quot; and &quot;false&quot;. Shouldn&#39;t be changed</span></div><div class="line"><a name="l00620"></a><span class="lineno">  620</span>&#160;    <span class="comment">// unless you have a special testing or compatibility need.</span></div><div class="line"><a name="l00621"></a><span class="lineno">  621</span>&#160;    <span class="comment">// Be careful: static, global, &amp; not thread safe.</span></div><div class="line"><a name="l00622"></a><span class="lineno">  622</span>&#160;    <span class="comment">// Be sure to set static const memory as parameters.</span></div><div class="line"><a name="l00623"></a><span class="lineno">  623</span>&#160;    <span class="keyword">static</span> <span class="keywordtype">void</span> SetBoolSerialization(<span class="keyword">const</span> <span class="keywordtype">char</span>* writeTrue, <span class="keyword">const</span> <span class="keywordtype">char</span>* writeFalse);</div><div class="line"><a name="l00624"></a><span class="lineno">  624</span>&#160;</div><div class="line"><a name="l00625"></a><span class="lineno">  625</span>&#160;<span class="keyword">private</span>:</div><div class="line"><a name="l00626"></a><span class="lineno">  626</span>&#160;    <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">char</span>* writeBoolTrue;</div><div class="line"><a name="l00627"></a><span class="lineno">  627</span>&#160;    <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">char</span>* writeBoolFalse;</div><div class="line"><a name="l00628"></a><span class="lineno">  628</span>&#160;};</div><div class="line"><a name="l00629"></a><span class="lineno">  629</span>&#160;</div><div class="line"><a name="l00630"></a><span class="lineno">  630</span>&#160;</div><div class="line"><a name="l00656"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_node.html">  656</a></span>&#160;<span class="keyword">class </span>TINYXML2_LIB <a class="code" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a></div><div class="line"><a name="l00657"></a><span class="lineno">  657</span>&#160;{</div><div class="line"><a name="l00658"></a><span class="lineno">  658</span>&#160;    <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classtinyxml2_1_1_x_m_l_document.html">XMLDocument</a>;</div><div class="line"><a name="l00659"></a><span class="lineno">  659</span>&#160;    <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classtinyxml2_1_1_x_m_l_element.html">XMLElement</a>;</div><div class="line"><a name="l00660"></a><span class="lineno">  660</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00661"></a><span class="lineno">  661</span>&#160;</div><div class="line"><a name="l00663"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_node.html#a2de84cfa4ec3fe249bad745069d145f1">  663</a></span>&#160;    <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_document.html">XMLDocument</a>* <a class="code" href="classtinyxml2_1_1_x_m_l_node.html#a2de84cfa4ec3fe249bad745069d145f1">GetDocument</a>()<span class="keyword"> const  </span>{</div><div class="line"><a name="l00664"></a><span class="lineno">  664</span>&#160;        TIXMLASSERT( _document );</div><div class="line"><a name="l00665"></a><span class="lineno">  665</span>&#160;        <span class="keywordflow">return</span> _document;</div><div class="line"><a name="l00666"></a><span class="lineno">  666</span>&#160;    }</div><div class="line"><a name="l00668"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_node.html#af343d1ef0b45c0020e62d784d7e67a68">  668</a></span>&#160;    <a class="code" href="classtinyxml2_1_1_x_m_l_document.html">XMLDocument</a>* <a class="code" href="classtinyxml2_1_1_x_m_l_node.html#af343d1ef0b45c0020e62d784d7e67a68">GetDocument</a>()              {</div><div class="line"><a name="l00669"></a><span class="lineno">  669</span>&#160;        TIXMLASSERT( _document );</div><div class="line"><a name="l00670"></a><span class="lineno">  670</span>&#160;        <span class="keywordflow">return</span> _document;</div><div class="line"><a name="l00671"></a><span class="lineno">  671</span>&#160;    }</div><div class="line"><a name="l00672"></a><span class="lineno">  672</span>&#160;</div><div class="line"><a name="l00674"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_node.html#aab516e699567f75cc9ab2ef2eee501e8">  674</a></span>&#160;    <span class="keyword">virtual</span> <a class="code" href="classtinyxml2_1_1_x_m_l_element.html">XMLElement</a>*     <a class="code" href="classtinyxml2_1_1_x_m_l_node.html#aab516e699567f75cc9ab2ef2eee501e8">ToElement</a>()     {</div><div class="line"><a name="l00675"></a><span class="lineno">  675</span>&#160;        <span class="keywordflow">return</span> 0;</div><div class="line"><a name="l00676"></a><span class="lineno">  676</span>&#160;    }</div><div class="line"><a name="l00678"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_node.html#a41c55dab9162d1eb62db2008430e376b">  678</a></span>&#160;    <span class="keyword">virtual</span> <a class="code" href="classtinyxml2_1_1_x_m_l_text.html">XMLText</a>*        <a class="code" href="classtinyxml2_1_1_x_m_l_node.html#a41c55dab9162d1eb62db2008430e376b">ToText</a>()        {</div><div class="line"><a name="l00679"></a><span class="lineno">  679</span>&#160;        <span class="keywordflow">return</span> 0;</div><div class="line"><a name="l00680"></a><span class="lineno">  680</span>&#160;    }</div><div class="line"><a name="l00682"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_node.html#aff47671055aa99840a1c1ebd661e63e3">  682</a></span>&#160;    <span class="keyword">virtual</span> <a class="code" href="classtinyxml2_1_1_x_m_l_comment.html">XMLComment</a>*     <a class="code" href="classtinyxml2_1_1_x_m_l_node.html#aff47671055aa99840a1c1ebd661e63e3">ToComment</a>()     {</div><div class="line"><a name="l00683"></a><span class="lineno">  683</span>&#160;        <span class="keywordflow">return</span> 0;</div><div class="line"><a name="l00684"></a><span class="lineno">  684</span>&#160;    }</div><div class="line"><a name="l00686"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_node.html#a836e2966ed736fc3c94f70e12a2a3357">  686</a></span>&#160;    <span class="keyword">virtual</span> <a class="code" href="classtinyxml2_1_1_x_m_l_document.html">XMLDocument</a>*    <a class="code" href="classtinyxml2_1_1_x_m_l_node.html#a836e2966ed736fc3c94f70e12a2a3357">ToDocument</a>()    {</div><div class="line"><a name="l00687"></a><span class="lineno">  687</span>&#160;        <span class="keywordflow">return</span> 0;</div><div class="line"><a name="l00688"></a><span class="lineno">  688</span>&#160;    }</div><div class="line"><a name="l00690"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_node.html#a174fd4c22c010b58138c1b84a0dfbd51">  690</a></span>&#160;    <span class="keyword">virtual</span> <a class="code" href="classtinyxml2_1_1_x_m_l_declaration.html">XMLDeclaration</a>* <a class="code" href="classtinyxml2_1_1_x_m_l_node.html#a174fd4c22c010b58138c1b84a0dfbd51">ToDeclaration</a>() {</div><div class="line"><a name="l00691"></a><span class="lineno">  691</span>&#160;        <span class="keywordflow">return</span> 0;</div><div class="line"><a name="l00692"></a><span class="lineno">  692</span>&#160;    }</div><div class="line"><a name="l00694"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_node.html#a8675a74aa0ada6eccab0c77ef3e5b9bd">  694</a></span>&#160;    <span class="keyword">virtual</span> <a class="code" href="classtinyxml2_1_1_x_m_l_unknown.html">XMLUnknown</a>*     <a class="code" href="classtinyxml2_1_1_x_m_l_node.html#a8675a74aa0ada6eccab0c77ef3e5b9bd">ToUnknown</a>()     {</div><div class="line"><a name="l00695"></a><span class="lineno">  695</span>&#160;        <span class="keywordflow">return</span> 0;</div><div class="line"><a name="l00696"></a><span class="lineno">  696</span>&#160;    }</div><div class="line"><a name="l00697"></a><span class="lineno">  697</span>&#160;</div><div class="line"><a name="l00698"></a><span class="lineno">  698</span>&#160;    <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_element.html">XMLElement</a>*       ToElement()<span class="keyword"> const       </span>{</div><div class="line"><a name="l00699"></a><span class="lineno">  699</span>&#160;        <span class="keywordflow">return</span> 0;</div><div class="line"><a name="l00700"></a><span class="lineno">  700</span>&#160;    }</div><div class="line"><a name="l00701"></a><span class="lineno">  701</span>&#160;    <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_text.html">XMLText</a>*          ToText()<span class="keyword"> const          </span>{</div><div class="line"><a name="l00702"></a><span class="lineno">  702</span>&#160;        <span class="keywordflow">return</span> 0;</div><div class="line"><a name="l00703"></a><span class="lineno">  703</span>&#160;    }</div><div class="line"><a name="l00704"></a><span class="lineno">  704</span>&#160;    <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_comment.html">XMLComment</a>*       ToComment()<span class="keyword"> const       </span>{</div><div class="line"><a name="l00705"></a><span class="lineno">  705</span>&#160;        <span class="keywordflow">return</span> 0;</div><div class="line"><a name="l00706"></a><span class="lineno">  706</span>&#160;    }</div><div class="line"><a name="l00707"></a><span class="lineno">  707</span>&#160;    <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_document.html">XMLDocument</a>*      ToDocument()<span class="keyword"> const      </span>{</div><div class="line"><a name="l00708"></a><span class="lineno">  708</span>&#160;        <span class="keywordflow">return</span> 0;</div><div class="line"><a name="l00709"></a><span class="lineno">  709</span>&#160;    }</div><div class="line"><a name="l00710"></a><span class="lineno">  710</span>&#160;    <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_declaration.html">XMLDeclaration</a>*   ToDeclaration()<span class="keyword"> const   </span>{</div><div class="line"><a name="l00711"></a><span class="lineno">  711</span>&#160;        <span class="keywordflow">return</span> 0;</div><div class="line"><a name="l00712"></a><span class="lineno">  712</span>&#160;    }</div><div class="line"><a name="l00713"></a><span class="lineno">  713</span>&#160;    <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_unknown.html">XMLUnknown</a>*       ToUnknown()<span class="keyword"> const       </span>{</div><div class="line"><a name="l00714"></a><span class="lineno">  714</span>&#160;        <span class="keywordflow">return</span> 0;</div><div class="line"><a name="l00715"></a><span class="lineno">  715</span>&#160;    }</div><div class="line"><a name="l00716"></a><span class="lineno">  716</span>&#160;</div><div class="line"><a name="l00726"></a><span class="lineno">  726</span>&#160;    <span class="keyword">const</span> <span class="keywordtype">char</span>* Value() <span class="keyword">const</span>;</div><div class="line"><a name="l00727"></a><span class="lineno">  727</span>&#160;</div><div class="line"><a name="l00731"></a><span class="lineno">  731</span>&#160;    <span class="keywordtype">void</span> SetValue( <span class="keyword">const</span> <span class="keywordtype">char</span>* val, <span class="keywordtype">bool</span> staticMem=<span class="keyword">false</span> );</div><div class="line"><a name="l00732"></a><span class="lineno">  732</span>&#160;</div><div class="line"><a name="l00734"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_node.html#a9b5fc636646fda761d342c72e91cb286">  734</a></span>&#160;    <span class="keywordtype">int</span> <a class="code" href="classtinyxml2_1_1_x_m_l_node.html#a9b5fc636646fda761d342c72e91cb286">GetLineNum</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> _parseLineNum; }</div><div class="line"><a name="l00735"></a><span class="lineno">  735</span>&#160;</div><div class="line"><a name="l00737"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_node.html#ae0f62bc186c56c2e0483ebd52dbfbe34">  737</a></span>&#160;    <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a>*  <a class="code" href="classtinyxml2_1_1_x_m_l_node.html#ae0f62bc186c56c2e0483ebd52dbfbe34">Parent</a>()<span class="keyword"> const          </span>{</div><div class="line"><a name="l00738"></a><span class="lineno">  738</span>&#160;        <span class="keywordflow">return</span> _parent;</div><div class="line"><a name="l00739"></a><span class="lineno">  739</span>&#160;    }</div><div class="line"><a name="l00740"></a><span class="lineno">  740</span>&#160;</div><div class="line"><a name="l00741"></a><span class="lineno">  741</span>&#160;    <a class="code" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a>* Parent()                       {</div><div class="line"><a name="l00742"></a><span class="lineno">  742</span>&#160;        <span class="keywordflow">return</span> _parent;</div><div class="line"><a name="l00743"></a><span class="lineno">  743</span>&#160;    }</div><div class="line"><a name="l00744"></a><span class="lineno">  744</span>&#160;</div><div class="line"><a name="l00746"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_node.html#ac3ab489e6e202a3cd1762d3b332e89d4">  746</a></span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="classtinyxml2_1_1_x_m_l_node.html#ac3ab489e6e202a3cd1762d3b332e89d4">NoChildren</a>()<span class="keyword"> const                 </span>{</div><div class="line"><a name="l00747"></a><span class="lineno">  747</span>&#160;        <span class="keywordflow">return</span> !_firstChild;</div><div class="line"><a name="l00748"></a><span class="lineno">  748</span>&#160;    }</div><div class="line"><a name="l00749"></a><span class="lineno">  749</span>&#160;</div><div class="line"><a name="l00751"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_node.html#ae7dc225e1018cdd685f7563593a1fe08">  751</a></span>&#160;    <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a>*  <a class="code" href="classtinyxml2_1_1_x_m_l_node.html#ae7dc225e1018cdd685f7563593a1fe08">FirstChild</a>()<span class="keyword"> const      </span>{</div><div class="line"><a name="l00752"></a><span class="lineno">  752</span>&#160;        <span class="keywordflow">return</span> _firstChild;</div><div class="line"><a name="l00753"></a><span class="lineno">  753</span>&#160;    }</div><div class="line"><a name="l00754"></a><span class="lineno">  754</span>&#160;</div><div class="line"><a name="l00755"></a><span class="lineno">  755</span>&#160;    <a class="code" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a>*        FirstChild()            {</div><div class="line"><a name="l00756"></a><span class="lineno">  756</span>&#160;        <span class="keywordflow">return</span> _firstChild;</div><div class="line"><a name="l00757"></a><span class="lineno">  757</span>&#160;    }</div><div class="line"><a name="l00758"></a><span class="lineno">  758</span>&#160;</div><div class="line"><a name="l00762"></a><span class="lineno">  762</span>&#160;    <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_element.html">XMLElement</a>* FirstChildElement( <span class="keyword">const</span> <span class="keywordtype">char</span>* name = 0 ) <span class="keyword">const</span>;</div><div class="line"><a name="l00763"></a><span class="lineno">  763</span>&#160;</div><div class="line"><a name="l00764"></a><span class="lineno">  764</span>&#160;    <a class="code" href="classtinyxml2_1_1_x_m_l_element.html">XMLElement</a>* FirstChildElement( <span class="keyword">const</span> <span class="keywordtype">char</span>* name = 0 )   {</div><div class="line"><a name="l00765"></a><span class="lineno">  765</span>&#160;        <span class="keywordflow">return</span> <span class="keyword">const_cast&lt;</span><a class="code" href="classtinyxml2_1_1_x_m_l_element.html">XMLElement</a>*<span class="keyword">&gt;</span>(<span class="keyword">const_cast&lt;</span><span class="keyword">const </span><a class="code" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a>*<span class="keyword">&gt;</span>(<span class="keyword">this</span>)-&gt;FirstChildElement( name ));</div><div class="line"><a name="l00766"></a><span class="lineno">  766</span>&#160;    }</div><div class="line"><a name="l00767"></a><span class="lineno">  767</span>&#160;</div><div class="line"><a name="l00769"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_node.html#a9b8583a277e8e26f4cbbb5492786778e">  769</a></span>&#160;    <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a>*  <a class="code" href="classtinyxml2_1_1_x_m_l_node.html#a9b8583a277e8e26f4cbbb5492786778e">LastChild</a>()<span class="keyword"> const                       </span>{</div><div class="line"><a name="l00770"></a><span class="lineno">  770</span>&#160;        <span class="keywordflow">return</span> _lastChild;</div><div class="line"><a name="l00771"></a><span class="lineno">  771</span>&#160;    }</div><div class="line"><a name="l00772"></a><span class="lineno">  772</span>&#160;</div><div class="line"><a name="l00773"></a><span class="lineno">  773</span>&#160;    <a class="code" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a>*        LastChild()                             {</div><div class="line"><a name="l00774"></a><span class="lineno">  774</span>&#160;        <span class="keywordflow">return</span> _lastChild;</div><div class="line"><a name="l00775"></a><span class="lineno">  775</span>&#160;    }</div><div class="line"><a name="l00776"></a><span class="lineno">  776</span>&#160;</div><div class="line"><a name="l00780"></a><span class="lineno">  780</span>&#160;    <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_element.html">XMLElement</a>* LastChildElement( <span class="keyword">const</span> <span class="keywordtype">char</span>* name = 0 ) <span class="keyword">const</span>;</div><div class="line"><a name="l00781"></a><span class="lineno">  781</span>&#160;</div><div class="line"><a name="l00782"></a><span class="lineno">  782</span>&#160;    <a class="code" href="classtinyxml2_1_1_x_m_l_element.html">XMLElement</a>* LastChildElement( <span class="keyword">const</span> <span class="keywordtype">char</span>* name = 0 )    {</div><div class="line"><a name="l00783"></a><span class="lineno">  783</span>&#160;        <span class="keywordflow">return</span> <span class="keyword">const_cast&lt;</span><a class="code" href="classtinyxml2_1_1_x_m_l_element.html">XMLElement</a>*<span class="keyword">&gt;</span>(<span class="keyword">const_cast&lt;</span><span class="keyword">const </span><a class="code" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a>*<span class="keyword">&gt;</span>(<span class="keyword">this</span>)-&gt;LastChildElement(name) );</div><div class="line"><a name="l00784"></a><span class="lineno">  784</span>&#160;    }</div><div class="line"><a name="l00785"></a><span class="lineno">  785</span>&#160;</div><div class="line"><a name="l00787"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_node.html#aac667c513d445f8b783e1e15ef9d3551">  787</a></span>&#160;    <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a>*  <a class="code" href="classtinyxml2_1_1_x_m_l_node.html#aac667c513d445f8b783e1e15ef9d3551">PreviousSibling</a>()<span class="keyword"> const                 </span>{</div><div class="line"><a name="l00788"></a><span class="lineno">  788</span>&#160;        <span class="keywordflow">return</span> _prev;</div><div class="line"><a name="l00789"></a><span class="lineno">  789</span>&#160;    }</div><div class="line"><a name="l00790"></a><span class="lineno">  790</span>&#160;</div><div class="line"><a name="l00791"></a><span class="lineno">  791</span>&#160;    <a class="code" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a>*    PreviousSibling()                           {</div><div class="line"><a name="l00792"></a><span class="lineno">  792</span>&#160;        <span class="keywordflow">return</span> _prev;</div><div class="line"><a name="l00793"></a><span class="lineno">  793</span>&#160;    }</div><div class="line"><a name="l00794"></a><span class="lineno">  794</span>&#160;</div><div class="line"><a name="l00796"></a><span class="lineno">  796</span>&#160;    <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_element.html">XMLElement</a>*   PreviousSiblingElement( <span class="keyword">const</span> <span class="keywordtype">char</span>* name = 0 ) <span class="keyword">const</span> ;</div><div class="line"><a name="l00797"></a><span class="lineno">  797</span>&#160;</div><div class="line"><a name="l00798"></a><span class="lineno">  798</span>&#160;    <a class="code" href="classtinyxml2_1_1_x_m_l_element.html">XMLElement</a>* PreviousSiblingElement( <span class="keyword">const</span> <span class="keywordtype">char</span>* name = 0 ) {</div><div class="line"><a name="l00799"></a><span class="lineno">  799</span>&#160;        <span class="keywordflow">return</span> <span class="keyword">const_cast&lt;</span><a class="code" href="classtinyxml2_1_1_x_m_l_element.html">XMLElement</a>*<span class="keyword">&gt;</span>(<span class="keyword">const_cast&lt;</span><span class="keyword">const </span><a class="code" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a>*<span class="keyword">&gt;</span>(<span class="keyword">this</span>)-&gt;PreviousSiblingElement( name ) );</div><div class="line"><a name="l00800"></a><span class="lineno">  800</span>&#160;    }</div><div class="line"><a name="l00801"></a><span class="lineno">  801</span>&#160;</div><div class="line"><a name="l00803"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_node.html#a79db9ef0fe014d27790f2218b87bcbb5">  803</a></span>&#160;    <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a>*  <a class="code" href="classtinyxml2_1_1_x_m_l_node.html#a79db9ef0fe014d27790f2218b87bcbb5">NextSibling</a>()<span class="keyword"> const                     </span>{</div><div class="line"><a name="l00804"></a><span class="lineno">  804</span>&#160;        <span class="keywordflow">return</span> _next;</div><div class="line"><a name="l00805"></a><span class="lineno">  805</span>&#160;    }</div><div class="line"><a name="l00806"></a><span class="lineno">  806</span>&#160;</div><div class="line"><a name="l00807"></a><span class="lineno">  807</span>&#160;    <a class="code" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a>*    NextSibling()                               {</div><div class="line"><a name="l00808"></a><span class="lineno">  808</span>&#160;        <span class="keywordflow">return</span> _next;</div><div class="line"><a name="l00809"></a><span class="lineno">  809</span>&#160;    }</div><div class="line"><a name="l00810"></a><span class="lineno">  810</span>&#160;</div><div class="line"><a name="l00812"></a><span class="lineno">  812</span>&#160;    <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_element.html">XMLElement</a>*   NextSiblingElement( <span class="keyword">const</span> <span class="keywordtype">char</span>* name = 0 ) <span class="keyword">const</span>;</div><div class="line"><a name="l00813"></a><span class="lineno">  813</span>&#160;</div><div class="line"><a name="l00814"></a><span class="lineno">  814</span>&#160;    <a class="code" href="classtinyxml2_1_1_x_m_l_element.html">XMLElement</a>* NextSiblingElement( <span class="keyword">const</span> <span class="keywordtype">char</span>* name = 0 )  {</div><div class="line"><a name="l00815"></a><span class="lineno">  815</span>&#160;        <span class="keywordflow">return</span> <span class="keyword">const_cast&lt;</span><a class="code" href="classtinyxml2_1_1_x_m_l_element.html">XMLElement</a>*<span class="keyword">&gt;</span>(<span class="keyword">const_cast&lt;</span><span class="keyword">const </span><a class="code" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a>*<span class="keyword">&gt;</span>(<span class="keyword">this</span>)-&gt;NextSiblingElement( name ) );</div><div class="line"><a name="l00816"></a><span class="lineno">  816</span>&#160;    }</div><div class="line"><a name="l00817"></a><span class="lineno">  817</span>&#160;</div><div class="line"><a name="l00825"></a><span class="lineno">  825</span>&#160;    <a class="code" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a>* InsertEndChild( <a class="code" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a>* addThis );</div><div class="line"><a name="l00826"></a><span class="lineno">  826</span>&#160;</div><div class="line"><a name="l00827"></a><span class="lineno">  827</span>&#160;    <a class="code" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a>* LinkEndChild( <a class="code" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a>* addThis )   {</div><div class="line"><a name="l00828"></a><span class="lineno">  828</span>&#160;        <span class="keywordflow">return</span> InsertEndChild( addThis );</div><div class="line"><a name="l00829"></a><span class="lineno">  829</span>&#160;    }</div><div class="line"><a name="l00837"></a><span class="lineno">  837</span>&#160;    <a class="code" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a>* InsertFirstChild( <a class="code" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a>* addThis );</div><div class="line"><a name="l00846"></a><span class="lineno">  846</span>&#160;    <a class="code" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a>* InsertAfterChild( <a class="code" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a>* afterThis, <a class="code" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a>* addThis );</div><div class="line"><a name="l00847"></a><span class="lineno">  847</span>&#160;</div><div class="line"><a name="l00851"></a><span class="lineno">  851</span>&#160;    <span class="keywordtype">void</span> DeleteChildren();</div><div class="line"><a name="l00852"></a><span class="lineno">  852</span>&#160;</div><div class="line"><a name="l00856"></a><span class="lineno">  856</span>&#160;    <span class="keywordtype">void</span> DeleteChild( <a class="code" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a>* node );</div><div class="line"><a name="l00857"></a><span class="lineno">  857</span>&#160;</div><div class="line"><a name="l00867"></a><span class="lineno">  867</span>&#160;    <span class="keyword">virtual</span> <a class="code" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a>* ShallowClone( <a class="code" href="classtinyxml2_1_1_x_m_l_document.html">XMLDocument</a>* document ) <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00868"></a><span class="lineno">  868</span>&#160;</div><div class="line"><a name="l00882"></a><span class="lineno">  882</span>&#160;    <a class="code" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a>* DeepClone( <a class="code" href="classtinyxml2_1_1_x_m_l_document.html">XMLDocument</a>* target ) <span class="keyword">const</span>;</div><div class="line"><a name="l00883"></a><span class="lineno">  883</span>&#160;</div><div class="line"><a name="l00890"></a><span class="lineno">  890</span>&#160;    <span class="keyword">virtual</span> <span class="keywordtype">bool</span> ShallowEqual( <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a>* compare ) <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00891"></a><span class="lineno">  891</span>&#160;</div><div class="line"><a name="l00914"></a><span class="lineno">  914</span>&#160;    <span class="keyword">virtual</span> <span class="keywordtype">bool</span> Accept( <a class="code" href="classtinyxml2_1_1_x_m_l_visitor.html">XMLVisitor</a>* visitor ) <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00915"></a><span class="lineno">  915</span>&#160;</div><div class="line"><a name="l00921"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_node.html#a002978fc889cc011d143185f2377eca2">  921</a></span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classtinyxml2_1_1_x_m_l_node.html#a002978fc889cc011d143185f2377eca2">SetUserData</a>(<span class="keywordtype">void</span>* userData)    { _userData = userData; }</div><div class="line"><a name="l00922"></a><span class="lineno">  922</span>&#160;</div><div class="line"><a name="l00928"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_node.html#a7f0687574afa03bc479dc44f29db0afe">  928</a></span>&#160;    <span class="keywordtype">void</span>* <a class="code" href="classtinyxml2_1_1_x_m_l_node.html#a7f0687574afa03bc479dc44f29db0afe">GetUserData</a>()<span class="keyword"> const           </span>{ <span class="keywordflow">return</span> _userData; }</div><div class="line"><a name="l00929"></a><span class="lineno">  929</span>&#160;</div><div class="line"><a name="l00930"></a><span class="lineno">  930</span>&#160;<span class="keyword">protected</span>:</div><div class="line"><a name="l00931"></a><span class="lineno">  931</span>&#160;    <a class="code" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a>( <a class="code" href="classtinyxml2_1_1_x_m_l_document.html">XMLDocument</a>* );</div><div class="line"><a name="l00932"></a><span class="lineno">  932</span>&#160;    <span class="keyword">virtual</span> ~<a class="code" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a>();</div><div class="line"><a name="l00933"></a><span class="lineno">  933</span>&#160;</div><div class="line"><a name="l00934"></a><span class="lineno">  934</span>&#160;    <span class="keyword">virtual</span> <span class="keywordtype">char</span>* ParseDeep( <span class="keywordtype">char</span>* p, StrPair* parentEndTag, <span class="keywordtype">int</span>* curLineNumPtr);</div><div class="line"><a name="l00935"></a><span class="lineno">  935</span>&#160;</div><div class="line"><a name="l00936"></a><span class="lineno">  936</span>&#160;    <a class="code" href="classtinyxml2_1_1_x_m_l_document.html">XMLDocument</a>*    _document;</div><div class="line"><a name="l00937"></a><span class="lineno">  937</span>&#160;    <a class="code" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a>*        _parent;</div><div class="line"><a name="l00938"></a><span class="lineno">  938</span>&#160;    <span class="keyword">mutable</span> StrPair _value;</div><div class="line"><a name="l00939"></a><span class="lineno">  939</span>&#160;    <span class="keywordtype">int</span>             _parseLineNum;</div><div class="line"><a name="l00940"></a><span class="lineno">  940</span>&#160;</div><div class="line"><a name="l00941"></a><span class="lineno">  941</span>&#160;    <a class="code" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a>*        _firstChild;</div><div class="line"><a name="l00942"></a><span class="lineno">  942</span>&#160;    <a class="code" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a>*        _lastChild;</div><div class="line"><a name="l00943"></a><span class="lineno">  943</span>&#160;</div><div class="line"><a name="l00944"></a><span class="lineno">  944</span>&#160;    <a class="code" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a>*        _prev;</div><div class="line"><a name="l00945"></a><span class="lineno">  945</span>&#160;    <a class="code" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a>*        _next;</div><div class="line"><a name="l00946"></a><span class="lineno">  946</span>&#160;</div><div class="line"><a name="l00947"></a><span class="lineno">  947</span>&#160;    <span class="keywordtype">void</span>*           _userData;</div><div class="line"><a name="l00948"></a><span class="lineno">  948</span>&#160;</div><div class="line"><a name="l00949"></a><span class="lineno">  949</span>&#160;<span class="keyword">private</span>:</div><div class="line"><a name="l00950"></a><span class="lineno">  950</span>&#160;    MemPool*        _memPool;</div><div class="line"><a name="l00951"></a><span class="lineno">  951</span>&#160;    <span class="keywordtype">void</span> Unlink( <a class="code" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a>* child );</div><div class="line"><a name="l00952"></a><span class="lineno">  952</span>&#160;    <span class="keyword">static</span> <span class="keywordtype">void</span> DeleteNode( <a class="code" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a>* node );</div><div class="line"><a name="l00953"></a><span class="lineno">  953</span>&#160;    <span class="keywordtype">void</span> InsertChildPreamble( <a class="code" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a>* insertThis ) <span class="keyword">const</span>;</div><div class="line"><a name="l00954"></a><span class="lineno">  954</span>&#160;    <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_element.html">XMLElement</a>* ToElementWithName( <span class="keyword">const</span> <span class="keywordtype">char</span>* name ) <span class="keyword">const</span>;</div><div class="line"><a name="l00955"></a><span class="lineno">  955</span>&#160;</div><div class="line"><a name="l00956"></a><span class="lineno">  956</span>&#160;    <a class="code" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a>( <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a>&amp; );  <span class="comment">// not supported</span></div><div class="line"><a name="l00957"></a><span class="lineno">  957</span>&#160;    <a class="code" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a>&amp; operator=( <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a>&amp; );   <span class="comment">// not supported</span></div><div class="line"><a name="l00958"></a><span class="lineno">  958</span>&#160;};</div><div class="line"><a name="l00959"></a><span class="lineno">  959</span>&#160;</div><div class="line"><a name="l00960"></a><span class="lineno">  960</span>&#160;</div><div class="line"><a name="l00973"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_text.html">  973</a></span>&#160;<span class="keyword">class </span>TINYXML2_LIB <a class="code" href="classtinyxml2_1_1_x_m_l_text.html">XMLText</a> : <span class="keyword">public</span> <a class="code" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a></div><div class="line"><a name="l00974"></a><span class="lineno">  974</span>&#160;{</div><div class="line"><a name="l00975"></a><span class="lineno">  975</span>&#160;    <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classtinyxml2_1_1_x_m_l_document.html">XMLDocument</a>;</div><div class="line"><a name="l00976"></a><span class="lineno">  976</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00977"></a><span class="lineno">  977</span>&#160;    <span class="keyword">virtual</span> <span class="keywordtype">bool</span> Accept( <a class="code" href="classtinyxml2_1_1_x_m_l_visitor.html">XMLVisitor</a>* visitor ) <span class="keyword">const</span>;</div><div class="line"><a name="l00978"></a><span class="lineno">  978</span>&#160;</div><div class="line"><a name="l00979"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_text.html#ab1213b4ddebe9b17ec7e7040e9f1caf7">  979</a></span>&#160;    <span class="keyword">virtual</span> <a class="code" href="classtinyxml2_1_1_x_m_l_text.html">XMLText</a>* <a class="code" href="classtinyxml2_1_1_x_m_l_text.html#ab1213b4ddebe9b17ec7e7040e9f1caf7">ToText</a>()           {</div><div class="line"><a name="l00980"></a><span class="lineno">  980</span>&#160;        <span class="keywordflow">return</span> <span class="keyword">this</span>;</div><div class="line"><a name="l00981"></a><span class="lineno">  981</span>&#160;    }</div><div class="line"><a name="l00982"></a><span class="lineno">  982</span>&#160;    <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_text.html">XMLText</a>* ToText()<span class="keyword"> const   </span>{</div><div class="line"><a name="l00983"></a><span class="lineno">  983</span>&#160;        <span class="keywordflow">return</span> <span class="keyword">this</span>;</div><div class="line"><a name="l00984"></a><span class="lineno">  984</span>&#160;    }</div><div class="line"><a name="l00985"></a><span class="lineno">  985</span>&#160;</div><div class="line"><a name="l00987"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_text.html#ad080357d76ab7cc59d7651249949329d">  987</a></span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classtinyxml2_1_1_x_m_l_text.html#ad080357d76ab7cc59d7651249949329d">SetCData</a>( <span class="keywordtype">bool</span> isCData )           {</div><div class="line"><a name="l00988"></a><span class="lineno">  988</span>&#160;        _isCData = isCData;</div><div class="line"><a name="l00989"></a><span class="lineno">  989</span>&#160;    }</div><div class="line"><a name="l00991"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_text.html#ac1bb5ea4166c320882d9e0ad16fd385b">  991</a></span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="classtinyxml2_1_1_x_m_l_text.html#ac1bb5ea4166c320882d9e0ad16fd385b">CData</a>()<span class="keyword"> const                      </span>{</div><div class="line"><a name="l00992"></a><span class="lineno">  992</span>&#160;        <span class="keywordflow">return</span> _isCData;</div><div class="line"><a name="l00993"></a><span class="lineno">  993</span>&#160;    }</div><div class="line"><a name="l00994"></a><span class="lineno">  994</span>&#160;</div><div class="line"><a name="l00995"></a><span class="lineno">  995</span>&#160;    <span class="keyword">virtual</span> <a class="code" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a>* ShallowClone( <a class="code" href="classtinyxml2_1_1_x_m_l_document.html">XMLDocument</a>* document ) <span class="keyword">const</span>;</div><div class="line"><a name="l00996"></a><span class="lineno">  996</span>&#160;    <span class="keyword">virtual</span> <span class="keywordtype">bool</span> ShallowEqual( <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a>* compare ) <span class="keyword">const</span>;</div><div class="line"><a name="l00997"></a><span class="lineno">  997</span>&#160;</div><div class="line"><a name="l00998"></a><span class="lineno">  998</span>&#160;<span class="keyword">protected</span>:</div><div class="line"><a name="l00999"></a><span class="lineno">  999</span>&#160;    <a class="code" href="classtinyxml2_1_1_x_m_l_text.html">XMLText</a>( <a class="code" href="classtinyxml2_1_1_x_m_l_document.html">XMLDocument</a>* doc ) : <a class="code" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a>( doc ), _isCData( <span class="keyword">false</span> ) {}</div><div class="line"><a name="l01000"></a><span class="lineno"> 1000</span>&#160;    <span class="keyword">virtual</span> ~<a class="code" href="classtinyxml2_1_1_x_m_l_text.html">XMLText</a>()                                              {}</div><div class="line"><a name="l01001"></a><span class="lineno"> 1001</span>&#160;</div><div class="line"><a name="l01002"></a><span class="lineno"> 1002</span>&#160;    <span class="keywordtype">char</span>* ParseDeep( <span class="keywordtype">char</span>* p, StrPair* parentEndTag, <span class="keywordtype">int</span>* curLineNumPtr );</div><div class="line"><a name="l01003"></a><span class="lineno"> 1003</span>&#160;</div><div class="line"><a name="l01004"></a><span class="lineno"> 1004</span>&#160;<span class="keyword">private</span>:</div><div class="line"><a name="l01005"></a><span class="lineno"> 1005</span>&#160;    <span class="keywordtype">bool</span> _isCData;</div><div class="line"><a name="l01006"></a><span class="lineno"> 1006</span>&#160;</div><div class="line"><a name="l01007"></a><span class="lineno"> 1007</span>&#160;    <a class="code" href="classtinyxml2_1_1_x_m_l_text.html">XMLText</a>( <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_text.html">XMLText</a>&amp; );  <span class="comment">// not supported</span></div><div class="line"><a name="l01008"></a><span class="lineno"> 1008</span>&#160;    <a class="code" href="classtinyxml2_1_1_x_m_l_text.html">XMLText</a>&amp; operator=( <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_text.html">XMLText</a>&amp; );   <span class="comment">// not supported</span></div><div class="line"><a name="l01009"></a><span class="lineno"> 1009</span>&#160;};</div><div class="line"><a name="l01010"></a><span class="lineno"> 1010</span>&#160;</div><div class="line"><a name="l01011"></a><span class="lineno"> 1011</span>&#160;</div><div class="line"><a name="l01013"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_comment.html"> 1013</a></span>&#160;<span class="keyword">class </span>TINYXML2_LIB <a class="code" href="classtinyxml2_1_1_x_m_l_comment.html">XMLComment</a> : <span class="keyword">public</span> <a class="code" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a></div><div class="line"><a name="l01014"></a><span class="lineno"> 1014</span>&#160;{</div><div class="line"><a name="l01015"></a><span class="lineno"> 1015</span>&#160;    <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classtinyxml2_1_1_x_m_l_document.html">XMLDocument</a>;</div><div class="line"><a name="l01016"></a><span class="lineno"> 1016</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l01017"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_comment.html#a8093e1dc8a34fa446d9dc3fde0e6c0ee"> 1017</a></span>&#160;    <span class="keyword">virtual</span> <a class="code" href="classtinyxml2_1_1_x_m_l_comment.html">XMLComment</a>* <a class="code" href="classtinyxml2_1_1_x_m_l_comment.html#a8093e1dc8a34fa446d9dc3fde0e6c0ee">ToComment</a>()                 {</div><div class="line"><a name="l01018"></a><span class="lineno"> 1018</span>&#160;        <span class="keywordflow">return</span> <span class="keyword">this</span>;</div><div class="line"><a name="l01019"></a><span class="lineno"> 1019</span>&#160;    }</div><div class="line"><a name="l01020"></a><span class="lineno"> 1020</span>&#160;    <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_comment.html">XMLComment</a>* ToComment()<span class="keyword"> const     </span>{</div><div class="line"><a name="l01021"></a><span class="lineno"> 1021</span>&#160;        <span class="keywordflow">return</span> <span class="keyword">this</span>;</div><div class="line"><a name="l01022"></a><span class="lineno"> 1022</span>&#160;    }</div><div class="line"><a name="l01023"></a><span class="lineno"> 1023</span>&#160;</div><div class="line"><a name="l01024"></a><span class="lineno"> 1024</span>&#160;    <span class="keyword">virtual</span> <span class="keywordtype">bool</span> Accept( <a class="code" href="classtinyxml2_1_1_x_m_l_visitor.html">XMLVisitor</a>* visitor ) <span class="keyword">const</span>;</div><div class="line"><a name="l01025"></a><span class="lineno"> 1025</span>&#160;</div><div class="line"><a name="l01026"></a><span class="lineno"> 1026</span>&#160;    <span class="keyword">virtual</span> <a class="code" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a>* ShallowClone( <a class="code" href="classtinyxml2_1_1_x_m_l_document.html">XMLDocument</a>* document ) <span class="keyword">const</span>;</div><div class="line"><a name="l01027"></a><span class="lineno"> 1027</span>&#160;    <span class="keyword">virtual</span> <span class="keywordtype">bool</span> ShallowEqual( <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a>* compare ) <span class="keyword">const</span>;</div><div class="line"><a name="l01028"></a><span class="lineno"> 1028</span>&#160;</div><div class="line"><a name="l01029"></a><span class="lineno"> 1029</span>&#160;<span class="keyword">protected</span>:</div><div class="line"><a name="l01030"></a><span class="lineno"> 1030</span>&#160;    <a class="code" href="classtinyxml2_1_1_x_m_l_comment.html">XMLComment</a>( <a class="code" href="classtinyxml2_1_1_x_m_l_document.html">XMLDocument</a>* doc );</div><div class="line"><a name="l01031"></a><span class="lineno"> 1031</span>&#160;    <span class="keyword">virtual</span> ~<a class="code" href="classtinyxml2_1_1_x_m_l_comment.html">XMLComment</a>();</div><div class="line"><a name="l01032"></a><span class="lineno"> 1032</span>&#160;</div><div class="line"><a name="l01033"></a><span class="lineno"> 1033</span>&#160;    <span class="keywordtype">char</span>* ParseDeep( <span class="keywordtype">char</span>* p, StrPair* parentEndTag, <span class="keywordtype">int</span>* curLineNumPtr);</div><div class="line"><a name="l01034"></a><span class="lineno"> 1034</span>&#160;</div><div class="line"><a name="l01035"></a><span class="lineno"> 1035</span>&#160;<span class="keyword">private</span>:</div><div class="line"><a name="l01036"></a><span class="lineno"> 1036</span>&#160;    <a class="code" href="classtinyxml2_1_1_x_m_l_comment.html">XMLComment</a>( <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_comment.html">XMLComment</a>&amp; );    <span class="comment">// not supported</span></div><div class="line"><a name="l01037"></a><span class="lineno"> 1037</span>&#160;    <a class="code" href="classtinyxml2_1_1_x_m_l_comment.html">XMLComment</a>&amp; operator=( <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_comment.html">XMLComment</a>&amp; ); <span class="comment">// not supported</span></div><div class="line"><a name="l01038"></a><span class="lineno"> 1038</span>&#160;};</div><div class="line"><a name="l01039"></a><span class="lineno"> 1039</span>&#160;</div><div class="line"><a name="l01040"></a><span class="lineno"> 1040</span>&#160;</div><div class="line"><a name="l01052"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_declaration.html"> 1052</a></span>&#160;<span class="keyword">class </span>TINYXML2_LIB <a class="code" href="classtinyxml2_1_1_x_m_l_declaration.html">XMLDeclaration</a> : <span class="keyword">public</span> <a class="code" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a></div><div class="line"><a name="l01053"></a><span class="lineno"> 1053</span>&#160;{</div><div class="line"><a name="l01054"></a><span class="lineno"> 1054</span>&#160;    <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classtinyxml2_1_1_x_m_l_document.html">XMLDocument</a>;</div><div class="line"><a name="l01055"></a><span class="lineno"> 1055</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l01056"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_declaration.html#a159d8ac45865215e88059ea1e5b52fc5"> 1056</a></span>&#160;    <span class="keyword">virtual</span> <a class="code" href="classtinyxml2_1_1_x_m_l_declaration.html">XMLDeclaration</a>* <a class="code" href="classtinyxml2_1_1_x_m_l_declaration.html#a159d8ac45865215e88059ea1e5b52fc5">ToDeclaration</a>()                 {</div><div class="line"><a name="l01057"></a><span class="lineno"> 1057</span>&#160;        <span class="keywordflow">return</span> <span class="keyword">this</span>;</div><div class="line"><a name="l01058"></a><span class="lineno"> 1058</span>&#160;    }</div><div class="line"><a name="l01059"></a><span class="lineno"> 1059</span>&#160;    <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_declaration.html">XMLDeclaration</a>* ToDeclaration()<span class="keyword"> const     </span>{</div><div class="line"><a name="l01060"></a><span class="lineno"> 1060</span>&#160;        <span class="keywordflow">return</span> <span class="keyword">this</span>;</div><div class="line"><a name="l01061"></a><span class="lineno"> 1061</span>&#160;    }</div><div class="line"><a name="l01062"></a><span class="lineno"> 1062</span>&#160;</div><div class="line"><a name="l01063"></a><span class="lineno"> 1063</span>&#160;    <span class="keyword">virtual</span> <span class="keywordtype">bool</span> Accept( <a class="code" href="classtinyxml2_1_1_x_m_l_visitor.html">XMLVisitor</a>* visitor ) <span class="keyword">const</span>;</div><div class="line"><a name="l01064"></a><span class="lineno"> 1064</span>&#160;</div><div class="line"><a name="l01065"></a><span class="lineno"> 1065</span>&#160;    <span class="keyword">virtual</span> <a class="code" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a>* ShallowClone( <a class="code" href="classtinyxml2_1_1_x_m_l_document.html">XMLDocument</a>* document ) <span class="keyword">const</span>;</div><div class="line"><a name="l01066"></a><span class="lineno"> 1066</span>&#160;    <span class="keyword">virtual</span> <span class="keywordtype">bool</span> ShallowEqual( <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a>* compare ) <span class="keyword">const</span>;</div><div class="line"><a name="l01067"></a><span class="lineno"> 1067</span>&#160;</div><div class="line"><a name="l01068"></a><span class="lineno"> 1068</span>&#160;<span class="keyword">protected</span>:</div><div class="line"><a name="l01069"></a><span class="lineno"> 1069</span>&#160;    <a class="code" href="classtinyxml2_1_1_x_m_l_declaration.html">XMLDeclaration</a>( <a class="code" href="classtinyxml2_1_1_x_m_l_document.html">XMLDocument</a>* doc );</div><div class="line"><a name="l01070"></a><span class="lineno"> 1070</span>&#160;    <span class="keyword">virtual</span> ~<a class="code" href="classtinyxml2_1_1_x_m_l_declaration.html">XMLDeclaration</a>();</div><div class="line"><a name="l01071"></a><span class="lineno"> 1071</span>&#160;</div><div class="line"><a name="l01072"></a><span class="lineno"> 1072</span>&#160;    <span class="keywordtype">char</span>* ParseDeep( <span class="keywordtype">char</span>* p, StrPair* parentEndTag, <span class="keywordtype">int</span>* curLineNumPtr );</div><div class="line"><a name="l01073"></a><span class="lineno"> 1073</span>&#160;</div><div class="line"><a name="l01074"></a><span class="lineno"> 1074</span>&#160;<span class="keyword">private</span>:</div><div class="line"><a name="l01075"></a><span class="lineno"> 1075</span>&#160;    <a class="code" href="classtinyxml2_1_1_x_m_l_declaration.html">XMLDeclaration</a>( <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_declaration.html">XMLDeclaration</a>&amp; );    <span class="comment">// not supported</span></div><div class="line"><a name="l01076"></a><span class="lineno"> 1076</span>&#160;    <a class="code" href="classtinyxml2_1_1_x_m_l_declaration.html">XMLDeclaration</a>&amp; operator=( <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_declaration.html">XMLDeclaration</a>&amp; ); <span class="comment">// not supported</span></div><div class="line"><a name="l01077"></a><span class="lineno"> 1077</span>&#160;};</div><div class="line"><a name="l01078"></a><span class="lineno"> 1078</span>&#160;</div><div class="line"><a name="l01079"></a><span class="lineno"> 1079</span>&#160;</div><div class="line"><a name="l01087"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_unknown.html"> 1087</a></span>&#160;<span class="keyword">class </span>TINYXML2_LIB <a class="code" href="classtinyxml2_1_1_x_m_l_unknown.html">XMLUnknown</a> : <span class="keyword">public</span> <a class="code" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a></div><div class="line"><a name="l01088"></a><span class="lineno"> 1088</span>&#160;{</div><div class="line"><a name="l01089"></a><span class="lineno"> 1089</span>&#160;    <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classtinyxml2_1_1_x_m_l_document.html">XMLDocument</a>;</div><div class="line"><a name="l01090"></a><span class="lineno"> 1090</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l01091"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_unknown.html#af4374856421921cad578c8affae872b6"> 1091</a></span>&#160;    <span class="keyword">virtual</span> <a class="code" href="classtinyxml2_1_1_x_m_l_unknown.html">XMLUnknown</a>* <a class="code" href="classtinyxml2_1_1_x_m_l_unknown.html#af4374856421921cad578c8affae872b6">ToUnknown</a>()                 {</div><div class="line"><a name="l01092"></a><span class="lineno"> 1092</span>&#160;        <span class="keywordflow">return</span> <span class="keyword">this</span>;</div><div class="line"><a name="l01093"></a><span class="lineno"> 1093</span>&#160;    }</div><div class="line"><a name="l01094"></a><span class="lineno"> 1094</span>&#160;    <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_unknown.html">XMLUnknown</a>* ToUnknown()<span class="keyword"> const     </span>{</div><div class="line"><a name="l01095"></a><span class="lineno"> 1095</span>&#160;        <span class="keywordflow">return</span> <span class="keyword">this</span>;</div><div class="line"><a name="l01096"></a><span class="lineno"> 1096</span>&#160;    }</div><div class="line"><a name="l01097"></a><span class="lineno"> 1097</span>&#160;</div><div class="line"><a name="l01098"></a><span class="lineno"> 1098</span>&#160;    <span class="keyword">virtual</span> <span class="keywordtype">bool</span> Accept( <a class="code" href="classtinyxml2_1_1_x_m_l_visitor.html">XMLVisitor</a>* visitor ) <span class="keyword">const</span>;</div><div class="line"><a name="l01099"></a><span class="lineno"> 1099</span>&#160;</div><div class="line"><a name="l01100"></a><span class="lineno"> 1100</span>&#160;    <span class="keyword">virtual</span> <a class="code" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a>* ShallowClone( <a class="code" href="classtinyxml2_1_1_x_m_l_document.html">XMLDocument</a>* document ) <span class="keyword">const</span>;</div><div class="line"><a name="l01101"></a><span class="lineno"> 1101</span>&#160;    <span class="keyword">virtual</span> <span class="keywordtype">bool</span> ShallowEqual( <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a>* compare ) <span class="keyword">const</span>;</div><div class="line"><a name="l01102"></a><span class="lineno"> 1102</span>&#160;</div><div class="line"><a name="l01103"></a><span class="lineno"> 1103</span>&#160;<span class="keyword">protected</span>:</div><div class="line"><a name="l01104"></a><span class="lineno"> 1104</span>&#160;    <a class="code" href="classtinyxml2_1_1_x_m_l_unknown.html">XMLUnknown</a>( <a class="code" href="classtinyxml2_1_1_x_m_l_document.html">XMLDocument</a>* doc );</div><div class="line"><a name="l01105"></a><span class="lineno"> 1105</span>&#160;    <span class="keyword">virtual</span> ~<a class="code" href="classtinyxml2_1_1_x_m_l_unknown.html">XMLUnknown</a>();</div><div class="line"><a name="l01106"></a><span class="lineno"> 1106</span>&#160;</div><div class="line"><a name="l01107"></a><span class="lineno"> 1107</span>&#160;    <span class="keywordtype">char</span>* ParseDeep( <span class="keywordtype">char</span>* p, StrPair* parentEndTag, <span class="keywordtype">int</span>* curLineNumPtr );</div><div class="line"><a name="l01108"></a><span class="lineno"> 1108</span>&#160;</div><div class="line"><a name="l01109"></a><span class="lineno"> 1109</span>&#160;<span class="keyword">private</span>:</div><div class="line"><a name="l01110"></a><span class="lineno"> 1110</span>&#160;    <a class="code" href="classtinyxml2_1_1_x_m_l_unknown.html">XMLUnknown</a>( <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_unknown.html">XMLUnknown</a>&amp; );    <span class="comment">// not supported</span></div><div class="line"><a name="l01111"></a><span class="lineno"> 1111</span>&#160;    <a class="code" href="classtinyxml2_1_1_x_m_l_unknown.html">XMLUnknown</a>&amp; operator=( <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_unknown.html">XMLUnknown</a>&amp; ); <span class="comment">// not supported</span></div><div class="line"><a name="l01112"></a><span class="lineno"> 1112</span>&#160;};</div><div class="line"><a name="l01113"></a><span class="lineno"> 1113</span>&#160;</div><div class="line"><a name="l01114"></a><span class="lineno"> 1114</span>&#160;</div><div class="line"><a name="l01115"></a><span class="lineno"> 1115</span>&#160;</div><div class="line"><a name="l01122"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_attribute.html"> 1122</a></span>&#160;<span class="keyword">class </span>TINYXML2_LIB <a class="code" href="classtinyxml2_1_1_x_m_l_attribute.html">XMLAttribute</a></div><div class="line"><a name="l01123"></a><span class="lineno"> 1123</span>&#160;{</div><div class="line"><a name="l01124"></a><span class="lineno"> 1124</span>&#160;    <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classtinyxml2_1_1_x_m_l_element.html">XMLElement</a>;</div><div class="line"><a name="l01125"></a><span class="lineno"> 1125</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l01127"></a><span class="lineno"> 1127</span>&#160;    <span class="keyword">const</span> <span class="keywordtype">char</span>* Name() <span class="keyword">const</span>;</div><div class="line"><a name="l01128"></a><span class="lineno"> 1128</span>&#160;</div><div class="line"><a name="l01130"></a><span class="lineno"> 1130</span>&#160;    <span class="keyword">const</span> <span class="keywordtype">char</span>* Value() <span class="keyword">const</span>;</div><div class="line"><a name="l01131"></a><span class="lineno"> 1131</span>&#160;</div><div class="line"><a name="l01133"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_attribute.html#a02d5ea924586e35f9c13857d1671b765"> 1133</a></span>&#160;    <span class="keywordtype">int</span> <a class="code" href="classtinyxml2_1_1_x_m_l_attribute.html#a02d5ea924586e35f9c13857d1671b765">GetLineNum</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> _parseLineNum; }</div><div class="line"><a name="l01134"></a><span class="lineno"> 1134</span>&#160;</div><div class="line"><a name="l01136"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_attribute.html#aee53571b21e7ce5421eb929523a8bbe6"> 1136</a></span>&#160;    <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_attribute.html">XMLAttribute</a>* <a class="code" href="classtinyxml2_1_1_x_m_l_attribute.html#aee53571b21e7ce5421eb929523a8bbe6">Next</a>()<span class="keyword"> const </span>{</div><div class="line"><a name="l01137"></a><span class="lineno"> 1137</span>&#160;        <span class="keywordflow">return</span> _next;</div><div class="line"><a name="l01138"></a><span class="lineno"> 1138</span>&#160;    }</div><div class="line"><a name="l01139"></a><span class="lineno"> 1139</span>&#160;</div><div class="line"><a name="l01144"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_attribute.html#adfa2433f0fdafd5c3880936de9affa80"> 1144</a></span>&#160;    <span class="keywordtype">int</span> <a class="code" href="classtinyxml2_1_1_x_m_l_attribute.html#adfa2433f0fdafd5c3880936de9affa80">IntValue</a>()<span class="keyword"> const </span>{</div><div class="line"><a name="l01145"></a><span class="lineno"> 1145</span>&#160;        <span class="keywordtype">int</span> i = 0;</div><div class="line"><a name="l01146"></a><span class="lineno"> 1146</span>&#160;        QueryIntValue(&amp;i);</div><div class="line"><a name="l01147"></a><span class="lineno"> 1147</span>&#160;        <span class="keywordflow">return</span> i;</div><div class="line"><a name="l01148"></a><span class="lineno"> 1148</span>&#160;    }</div><div class="line"><a name="l01149"></a><span class="lineno"> 1149</span>&#160;</div><div class="line"><a name="l01150"></a><span class="lineno"> 1150</span>&#160;    int64_t Int64Value()<span class="keyword"> const </span>{</div><div class="line"><a name="l01151"></a><span class="lineno"> 1151</span>&#160;        int64_t i = 0;</div><div class="line"><a name="l01152"></a><span class="lineno"> 1152</span>&#160;        QueryInt64Value(&amp;i);</div><div class="line"><a name="l01153"></a><span class="lineno"> 1153</span>&#160;        <span class="keywordflow">return</span> i;</div><div class="line"><a name="l01154"></a><span class="lineno"> 1154</span>&#160;    }</div><div class="line"><a name="l01155"></a><span class="lineno"> 1155</span>&#160;</div><div class="line"><a name="l01157"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_attribute.html#a0be5343b08a957c42c02c5d32c35d338"> 1157</a></span>&#160;    <span class="keywordtype">unsigned</span> <a class="code" href="classtinyxml2_1_1_x_m_l_attribute.html#a0be5343b08a957c42c02c5d32c35d338">UnsignedValue</a>()<span class="keyword"> const          </span>{</div><div class="line"><a name="l01158"></a><span class="lineno"> 1158</span>&#160;        <span class="keywordtype">unsigned</span> i=0;</div><div class="line"><a name="l01159"></a><span class="lineno"> 1159</span>&#160;        QueryUnsignedValue( &amp;i );</div><div class="line"><a name="l01160"></a><span class="lineno"> 1160</span>&#160;        <span class="keywordflow">return</span> i;</div><div class="line"><a name="l01161"></a><span class="lineno"> 1161</span>&#160;    }</div><div class="line"><a name="l01163"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_attribute.html#a98ce5207344ad33a265b0422addae1ff"> 1163</a></span>&#160;    <span class="keywordtype">bool</span>     <a class="code" href="classtinyxml2_1_1_x_m_l_attribute.html#a98ce5207344ad33a265b0422addae1ff">BoolValue</a>()<span class="keyword"> const              </span>{</div><div class="line"><a name="l01164"></a><span class="lineno"> 1164</span>&#160;        <span class="keywordtype">bool</span> b=<span class="keyword">false</span>;</div><div class="line"><a name="l01165"></a><span class="lineno"> 1165</span>&#160;        QueryBoolValue( &amp;b );</div><div class="line"><a name="l01166"></a><span class="lineno"> 1166</span>&#160;        <span class="keywordflow">return</span> b;</div><div class="line"><a name="l01167"></a><span class="lineno"> 1167</span>&#160;    }</div><div class="line"><a name="l01169"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_attribute.html#a4aa73513f54ff0087d3e804f0f54e30f"> 1169</a></span>&#160;    <span class="keywordtype">double</span>   <a class="code" href="classtinyxml2_1_1_x_m_l_attribute.html#a4aa73513f54ff0087d3e804f0f54e30f">DoubleValue</a>()<span class="keyword"> const            </span>{</div><div class="line"><a name="l01170"></a><span class="lineno"> 1170</span>&#160;        <span class="keywordtype">double</span> d=0;</div><div class="line"><a name="l01171"></a><span class="lineno"> 1171</span>&#160;        QueryDoubleValue( &amp;d );</div><div class="line"><a name="l01172"></a><span class="lineno"> 1172</span>&#160;        <span class="keywordflow">return</span> d;</div><div class="line"><a name="l01173"></a><span class="lineno"> 1173</span>&#160;    }</div><div class="line"><a name="l01175"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_attribute.html#a27797b45d21c981257720db94f5f8801"> 1175</a></span>&#160;    <span class="keywordtype">float</span>    <a class="code" href="classtinyxml2_1_1_x_m_l_attribute.html#a27797b45d21c981257720db94f5f8801">FloatValue</a>()<span class="keyword"> const             </span>{</div><div class="line"><a name="l01176"></a><span class="lineno"> 1176</span>&#160;        <span class="keywordtype">float</span> f=0;</div><div class="line"><a name="l01177"></a><span class="lineno"> 1177</span>&#160;        QueryFloatValue( &amp;f );</div><div class="line"><a name="l01178"></a><span class="lineno"> 1178</span>&#160;        <span class="keywordflow">return</span> f;</div><div class="line"><a name="l01179"></a><span class="lineno"> 1179</span>&#160;    }</div><div class="line"><a name="l01180"></a><span class="lineno"> 1180</span>&#160;</div><div class="line"><a name="l01185"></a><span class="lineno"> 1185</span>&#160;    XMLError QueryIntValue( <span class="keywordtype">int</span>* value ) <span class="keyword">const</span>;</div><div class="line"><a name="l01187"></a><span class="lineno"> 1187</span>&#160;    XMLError QueryUnsignedValue( <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span>* value ) <span class="keyword">const</span>;</div><div class="line"><a name="l01189"></a><span class="lineno"> 1189</span>&#160;    XMLError QueryInt64Value(int64_t* value) <span class="keyword">const</span>;</div><div class="line"><a name="l01191"></a><span class="lineno"> 1191</span>&#160;    XMLError QueryBoolValue( <span class="keywordtype">bool</span>* value ) <span class="keyword">const</span>;</div><div class="line"><a name="l01193"></a><span class="lineno"> 1193</span>&#160;    XMLError QueryDoubleValue( <span class="keywordtype">double</span>* value ) <span class="keyword">const</span>;</div><div class="line"><a name="l01195"></a><span class="lineno"> 1195</span>&#160;    XMLError QueryFloatValue( <span class="keywordtype">float</span>* value ) <span class="keyword">const</span>;</div><div class="line"><a name="l01196"></a><span class="lineno"> 1196</span>&#160;</div><div class="line"><a name="l01198"></a><span class="lineno"> 1198</span>&#160;    <span class="keywordtype">void</span> SetAttribute( <span class="keyword">const</span> <span class="keywordtype">char</span>* value );</div><div class="line"><a name="l01200"></a><span class="lineno"> 1200</span>&#160;    <span class="keywordtype">void</span> SetAttribute( <span class="keywordtype">int</span> value );</div><div class="line"><a name="l01202"></a><span class="lineno"> 1202</span>&#160;    <span class="keywordtype">void</span> SetAttribute( <span class="keywordtype">unsigned</span> value );</div><div class="line"><a name="l01204"></a><span class="lineno"> 1204</span>&#160;    <span class="keywordtype">void</span> SetAttribute(int64_t value);</div><div class="line"><a name="l01206"></a><span class="lineno"> 1206</span>&#160;    <span class="keywordtype">void</span> SetAttribute( <span class="keywordtype">bool</span> value );</div><div class="line"><a name="l01208"></a><span class="lineno"> 1208</span>&#160;    <span class="keywordtype">void</span> SetAttribute( <span class="keywordtype">double</span> value );</div><div class="line"><a name="l01210"></a><span class="lineno"> 1210</span>&#160;    <span class="keywordtype">void</span> SetAttribute( <span class="keywordtype">float</span> value );</div><div class="line"><a name="l01211"></a><span class="lineno"> 1211</span>&#160;</div><div class="line"><a name="l01212"></a><span class="lineno"> 1212</span>&#160;<span class="keyword">private</span>:</div><div class="line"><a name="l01213"></a><span class="lineno"> 1213</span>&#160;    <span class="keyword">enum</span> { BUF_SIZE = 200 };</div><div class="line"><a name="l01214"></a><span class="lineno"> 1214</span>&#160;</div><div class="line"><a name="l01215"></a><span class="lineno"> 1215</span>&#160;    <a class="code" href="classtinyxml2_1_1_x_m_l_attribute.html">XMLAttribute</a>() : _name(), _value(),_parseLineNum( 0 ), _next( 0 ), _memPool( 0 ) {}</div><div class="line"><a name="l01216"></a><span class="lineno"> 1216</span>&#160;    <span class="keyword">virtual</span> ~<a class="code" href="classtinyxml2_1_1_x_m_l_attribute.html">XMLAttribute</a>() {}</div><div class="line"><a name="l01217"></a><span class="lineno"> 1217</span>&#160;</div><div class="line"><a name="l01218"></a><span class="lineno"> 1218</span>&#160;    <a class="code" href="classtinyxml2_1_1_x_m_l_attribute.html">XMLAttribute</a>( <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_attribute.html">XMLAttribute</a>&amp; );    <span class="comment">// not supported</span></div><div class="line"><a name="l01219"></a><span class="lineno"> 1219</span>&#160;    <span class="keywordtype">void</span> operator=( <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_attribute.html">XMLAttribute</a>&amp; );  <span class="comment">// not supported</span></div><div class="line"><a name="l01220"></a><span class="lineno"> 1220</span>&#160;    <span class="keywordtype">void</span> SetName( <span class="keyword">const</span> <span class="keywordtype">char</span>* name );</div><div class="line"><a name="l01221"></a><span class="lineno"> 1221</span>&#160;</div><div class="line"><a name="l01222"></a><span class="lineno"> 1222</span>&#160;    <span class="keywordtype">char</span>* ParseDeep( <span class="keywordtype">char</span>* p, <span class="keywordtype">bool</span> processEntities, <span class="keywordtype">int</span>* curLineNumPtr );</div><div class="line"><a name="l01223"></a><span class="lineno"> 1223</span>&#160;</div><div class="line"><a name="l01224"></a><span class="lineno"> 1224</span>&#160;    <span class="keyword">mutable</span> StrPair _name;</div><div class="line"><a name="l01225"></a><span class="lineno"> 1225</span>&#160;    <span class="keyword">mutable</span> StrPair _value;</div><div class="line"><a name="l01226"></a><span class="lineno"> 1226</span>&#160;    <span class="keywordtype">int</span>             _parseLineNum;</div><div class="line"><a name="l01227"></a><span class="lineno"> 1227</span>&#160;    <a class="code" href="classtinyxml2_1_1_x_m_l_attribute.html">XMLAttribute</a>*   _next;</div><div class="line"><a name="l01228"></a><span class="lineno"> 1228</span>&#160;    MemPool*        _memPool;</div><div class="line"><a name="l01229"></a><span class="lineno"> 1229</span>&#160;};</div><div class="line"><a name="l01230"></a><span class="lineno"> 1230</span>&#160;</div><div class="line"><a name="l01231"></a><span class="lineno"> 1231</span>&#160;</div><div class="line"><a name="l01236"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_element.html"> 1236</a></span>&#160;<span class="keyword">class </span>TINYXML2_LIB <a class="code" href="classtinyxml2_1_1_x_m_l_element.html">XMLElement</a> : <span class="keyword">public</span> <a class="code" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a></div><div class="line"><a name="l01237"></a><span class="lineno"> 1237</span>&#160;{</div><div class="line"><a name="l01238"></a><span class="lineno"> 1238</span>&#160;    <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classtinyxml2_1_1_x_m_l_document.html">XMLDocument</a>;</div><div class="line"><a name="l01239"></a><span class="lineno"> 1239</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l01241"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_element.html#a63e057fb5baee1dd29f323cb85907b35"> 1241</a></span>&#160;    <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="classtinyxml2_1_1_x_m_l_element.html#a63e057fb5baee1dd29f323cb85907b35">Name</a>()<span class="keyword"> const        </span>{</div><div class="line"><a name="l01242"></a><span class="lineno"> 1242</span>&#160;        <span class="keywordflow">return</span> Value();</div><div class="line"><a name="l01243"></a><span class="lineno"> 1243</span>&#160;    }</div><div class="line"><a name="l01245"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_element.html#a97712009a530d8cb8a63bf705f02b4f1"> 1245</a></span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classtinyxml2_1_1_x_m_l_element.html#a97712009a530d8cb8a63bf705f02b4f1">SetName</a>( <span class="keyword">const</span> <span class="keywordtype">char</span>* str, <span class="keywordtype">bool</span> staticMem=<span class="keyword">false</span> )   {</div><div class="line"><a name="l01246"></a><span class="lineno"> 1246</span>&#160;        SetValue( str, staticMem );</div><div class="line"><a name="l01247"></a><span class="lineno"> 1247</span>&#160;    }</div><div class="line"><a name="l01248"></a><span class="lineno"> 1248</span>&#160;</div><div class="line"><a name="l01249"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_element.html#ad9ff5c2dbc15df36cf664ce1b0ea0a5d"> 1249</a></span>&#160;    <span class="keyword">virtual</span> <a class="code" href="classtinyxml2_1_1_x_m_l_element.html">XMLElement</a>* <a class="code" href="classtinyxml2_1_1_x_m_l_element.html#ad9ff5c2dbc15df36cf664ce1b0ea0a5d">ToElement</a>()             {</div><div class="line"><a name="l01250"></a><span class="lineno"> 1250</span>&#160;        <span class="keywordflow">return</span> <span class="keyword">this</span>;</div><div class="line"><a name="l01251"></a><span class="lineno"> 1251</span>&#160;    }</div><div class="line"><a name="l01252"></a><span class="lineno"> 1252</span>&#160;    <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_element.html">XMLElement</a>* ToElement()<span class="keyword"> const </span>{</div><div class="line"><a name="l01253"></a><span class="lineno"> 1253</span>&#160;        <span class="keywordflow">return</span> <span class="keyword">this</span>;</div><div class="line"><a name="l01254"></a><span class="lineno"> 1254</span>&#160;    }</div><div class="line"><a name="l01255"></a><span class="lineno"> 1255</span>&#160;    <span class="keyword">virtual</span> <span class="keywordtype">bool</span> Accept( <a class="code" href="classtinyxml2_1_1_x_m_l_visitor.html">XMLVisitor</a>* visitor ) <span class="keyword">const</span>;</div><div class="line"><a name="l01256"></a><span class="lineno"> 1256</span>&#160;</div><div class="line"><a name="l01280"></a><span class="lineno"> 1280</span>&#160;    <span class="keyword">const</span> <span class="keywordtype">char</span>* Attribute( <span class="keyword">const</span> <span class="keywordtype">char</span>* name, <span class="keyword">const</span> <span class="keywordtype">char</span>* value=0 ) <span class="keyword">const</span>;</div><div class="line"><a name="l01281"></a><span class="lineno"> 1281</span>&#160;</div><div class="line"><a name="l01288"></a><span class="lineno"> 1288</span>&#160;    <span class="keywordtype">int</span> IntAttribute(<span class="keyword">const</span> <span class="keywordtype">char</span>* name, <span class="keywordtype">int</span> defaultValue = 0) <span class="keyword">const</span>;</div><div class="line"><a name="l01290"></a><span class="lineno"> 1290</span>&#160;    <span class="keywordtype">unsigned</span> UnsignedAttribute(<span class="keyword">const</span> <span class="keywordtype">char</span>* name, <span class="keywordtype">unsigned</span> defaultValue = 0) <span class="keyword">const</span>;</div><div class="line"><a name="l01292"></a><span class="lineno"> 1292</span>&#160;    int64_t Int64Attribute(<span class="keyword">const</span> <span class="keywordtype">char</span>* name, int64_t defaultValue = 0) <span class="keyword">const</span>;</div><div class="line"><a name="l01294"></a><span class="lineno"> 1294</span>&#160;    <span class="keywordtype">bool</span> BoolAttribute(<span class="keyword">const</span> <span class="keywordtype">char</span>* name, <span class="keywordtype">bool</span> defaultValue = <span class="keyword">false</span>) <span class="keyword">const</span>;</div><div class="line"><a name="l01296"></a><span class="lineno"> 1296</span>&#160;    <span class="keywordtype">double</span> DoubleAttribute(<span class="keyword">const</span> <span class="keywordtype">char</span>* name, <span class="keywordtype">double</span> defaultValue = 0) <span class="keyword">const</span>;</div><div class="line"><a name="l01298"></a><span class="lineno"> 1298</span>&#160;    <span class="keywordtype">float</span> FloatAttribute(<span class="keyword">const</span> <span class="keywordtype">char</span>* name, <span class="keywordtype">float</span> defaultValue = 0) <span class="keyword">const</span>;</div><div class="line"><a name="l01299"></a><span class="lineno"> 1299</span>&#160;</div><div class="line"><a name="l01313"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_element.html#a8a78bc1187c1c45ad89f2690eab567b1"> 1313</a></span>&#160;    XMLError <a class="code" href="classtinyxml2_1_1_x_m_l_element.html#a8a78bc1187c1c45ad89f2690eab567b1">QueryIntAttribute</a>( <span class="keyword">const</span> <span class="keywordtype">char</span>* name, <span class="keywordtype">int</span>* value )<span class="keyword"> const                </span>{</div><div class="line"><a name="l01314"></a><span class="lineno"> 1314</span>&#160;        <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_attribute.html">XMLAttribute</a>* a = FindAttribute( name );</div><div class="line"><a name="l01315"></a><span class="lineno"> 1315</span>&#160;        <span class="keywordflow">if</span> ( !a ) {</div><div class="line"><a name="l01316"></a><span class="lineno"> 1316</span>&#160;            <span class="keywordflow">return</span> XML_NO_ATTRIBUTE;</div><div class="line"><a name="l01317"></a><span class="lineno"> 1317</span>&#160;        }</div><div class="line"><a name="l01318"></a><span class="lineno"> 1318</span>&#160;        <span class="keywordflow">return</span> a-&gt;<a class="code" href="classtinyxml2_1_1_x_m_l_attribute.html#a6d5176260db00ea301c01af8457cd993">QueryIntValue</a>( value );</div><div class="line"><a name="l01319"></a><span class="lineno"> 1319</span>&#160;    }</div><div class="line"><a name="l01320"></a><span class="lineno"> 1320</span>&#160;</div><div class="line"><a name="l01322"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_element.html#a26fc84cbfba6769dafcfbf256c05e22f"> 1322</a></span>&#160;    XMLError <a class="code" href="classtinyxml2_1_1_x_m_l_element.html#a26fc84cbfba6769dafcfbf256c05e22f">QueryUnsignedAttribute</a>( <span class="keyword">const</span> <span class="keywordtype">char</span>* name, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span>* value )<span class="keyword"> const  </span>{</div><div class="line"><a name="l01323"></a><span class="lineno"> 1323</span>&#160;        <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_attribute.html">XMLAttribute</a>* a = FindAttribute( name );</div><div class="line"><a name="l01324"></a><span class="lineno"> 1324</span>&#160;        <span class="keywordflow">if</span> ( !a ) {</div><div class="line"><a name="l01325"></a><span class="lineno"> 1325</span>&#160;            <span class="keywordflow">return</span> XML_NO_ATTRIBUTE;</div><div class="line"><a name="l01326"></a><span class="lineno"> 1326</span>&#160;        }</div><div class="line"><a name="l01327"></a><span class="lineno"> 1327</span>&#160;        <span class="keywordflow">return</span> a-&gt;<a class="code" href="classtinyxml2_1_1_x_m_l_attribute.html#a48a7f3496f1415832e451bd8d09c9cb9">QueryUnsignedValue</a>( value );</div><div class="line"><a name="l01328"></a><span class="lineno"> 1328</span>&#160;    }</div><div class="line"><a name="l01329"></a><span class="lineno"> 1329</span>&#160;</div><div class="line"><a name="l01331"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_element.html#a7c0955d80b6f8d196744eacb0f6e90a8"> 1331</a></span>&#160;    XMLError <a class="code" href="classtinyxml2_1_1_x_m_l_element.html#a7c0955d80b6f8d196744eacb0f6e90a8">QueryInt64Attribute</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>* name, int64_t* value)<span class="keyword"> const </span>{</div><div class="line"><a name="l01332"></a><span class="lineno"> 1332</span>&#160;        <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_attribute.html">XMLAttribute</a>* a = FindAttribute(name);</div><div class="line"><a name="l01333"></a><span class="lineno"> 1333</span>&#160;        <span class="keywordflow">if</span> (!a) {</div><div class="line"><a name="l01334"></a><span class="lineno"> 1334</span>&#160;            <span class="keywordflow">return</span> XML_NO_ATTRIBUTE;</div><div class="line"><a name="l01335"></a><span class="lineno"> 1335</span>&#160;        }</div><div class="line"><a name="l01336"></a><span class="lineno"> 1336</span>&#160;        <span class="keywordflow">return</span> a-&gt;<a class="code" href="classtinyxml2_1_1_x_m_l_attribute.html#a4e25344d6e4159026be34dbddf1dcac2">QueryInt64Value</a>(value);</div><div class="line"><a name="l01337"></a><span class="lineno"> 1337</span>&#160;    }</div><div class="line"><a name="l01338"></a><span class="lineno"> 1338</span>&#160;</div><div class="line"><a name="l01340"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_element.html#a14c1bb77c39689838be01838d86ca872"> 1340</a></span>&#160;    XMLError <a class="code" href="classtinyxml2_1_1_x_m_l_element.html#a14c1bb77c39689838be01838d86ca872">QueryBoolAttribute</a>( <span class="keyword">const</span> <span class="keywordtype">char</span>* name, <span class="keywordtype">bool</span>* value )<span class="keyword"> const              </span>{</div><div class="line"><a name="l01341"></a><span class="lineno"> 1341</span>&#160;        <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_attribute.html">XMLAttribute</a>* a = FindAttribute( name );</div><div class="line"><a name="l01342"></a><span class="lineno"> 1342</span>&#160;        <span class="keywordflow">if</span> ( !a ) {</div><div class="line"><a name="l01343"></a><span class="lineno"> 1343</span>&#160;            <span class="keywordflow">return</span> XML_NO_ATTRIBUTE;</div><div class="line"><a name="l01344"></a><span class="lineno"> 1344</span>&#160;        }</div><div class="line"><a name="l01345"></a><span class="lineno"> 1345</span>&#160;        <span class="keywordflow">return</span> a-&gt;<a class="code" href="classtinyxml2_1_1_x_m_l_attribute.html#a5f32e038954256f61c21ff20fd13a09c">QueryBoolValue</a>( value );</div><div class="line"><a name="l01346"></a><span class="lineno"> 1346</span>&#160;    }</div><div class="line"><a name="l01348"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_element.html#a5f0964e2dbd8e2ee7fce9beab689443c"> 1348</a></span>&#160;    XMLError <a class="code" href="classtinyxml2_1_1_x_m_l_element.html#a5f0964e2dbd8e2ee7fce9beab689443c">QueryDoubleAttribute</a>( <span class="keyword">const</span> <span class="keywordtype">char</span>* name, <span class="keywordtype">double</span>* value )<span class="keyword"> const          </span>{</div><div class="line"><a name="l01349"></a><span class="lineno"> 1349</span>&#160;        <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_attribute.html">XMLAttribute</a>* a = FindAttribute( name );</div><div class="line"><a name="l01350"></a><span class="lineno"> 1350</span>&#160;        <span class="keywordflow">if</span> ( !a ) {</div><div class="line"><a name="l01351"></a><span class="lineno"> 1351</span>&#160;            <span class="keywordflow">return</span> XML_NO_ATTRIBUTE;</div><div class="line"><a name="l01352"></a><span class="lineno"> 1352</span>&#160;        }</div><div class="line"><a name="l01353"></a><span class="lineno"> 1353</span>&#160;        <span class="keywordflow">return</span> a-&gt;<a class="code" href="classtinyxml2_1_1_x_m_l_attribute.html#a2aa6e55e8ea03af0609cf6690bff79b9">QueryDoubleValue</a>( value );</div><div class="line"><a name="l01354"></a><span class="lineno"> 1354</span>&#160;    }</div><div class="line"><a name="l01356"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_element.html#acd5eeddf6002ef90806af794b9d9a5a5"> 1356</a></span>&#160;    XMLError <a class="code" href="classtinyxml2_1_1_x_m_l_element.html#acd5eeddf6002ef90806af794b9d9a5a5">QueryFloatAttribute</a>( <span class="keyword">const</span> <span class="keywordtype">char</span>* name, <span class="keywordtype">float</span>* value )<span class="keyword"> const            </span>{</div><div class="line"><a name="l01357"></a><span class="lineno"> 1357</span>&#160;        <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_attribute.html">XMLAttribute</a>* a = FindAttribute( name );</div><div class="line"><a name="l01358"></a><span class="lineno"> 1358</span>&#160;        <span class="keywordflow">if</span> ( !a ) {</div><div class="line"><a name="l01359"></a><span class="lineno"> 1359</span>&#160;            <span class="keywordflow">return</span> XML_NO_ATTRIBUTE;</div><div class="line"><a name="l01360"></a><span class="lineno"> 1360</span>&#160;        }</div><div class="line"><a name="l01361"></a><span class="lineno"> 1361</span>&#160;        <span class="keywordflow">return</span> a-&gt;<a class="code" href="classtinyxml2_1_1_x_m_l_attribute.html#a049dea6449a6259b6cfed44a9427b607">QueryFloatValue</a>( value );</div><div class="line"><a name="l01362"></a><span class="lineno"> 1362</span>&#160;    }</div><div class="line"><a name="l01363"></a><span class="lineno"> 1363</span>&#160;</div><div class="line"><a name="l01364"></a><span class="lineno"> 1364</span>&#160;    </div><div class="line"><a name="l01382"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_element.html#a042fc30504347b84a56cf863ad528a4f"> 1382</a></span>&#160;    <span class="keywordtype">int</span> <a class="code" href="classtinyxml2_1_1_x_m_l_element.html#a042fc30504347b84a56cf863ad528a4f">QueryAttribute</a>( <span class="keyword">const</span> <span class="keywordtype">char</span>* name, <span class="keywordtype">int</span>* value )<span class="keyword"> const </span>{</div><div class="line"><a name="l01383"></a><span class="lineno"> 1383</span>&#160;        <span class="keywordflow">return</span> QueryIntAttribute( name, value );</div><div class="line"><a name="l01384"></a><span class="lineno"> 1384</span>&#160;    }</div><div class="line"><a name="l01385"></a><span class="lineno"> 1385</span>&#160;</div><div class="line"><a name="l01386"></a><span class="lineno"> 1386</span>&#160;    <span class="keywordtype">int</span> QueryAttribute( <span class="keyword">const</span> <span class="keywordtype">char</span>* name, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span>* value )<span class="keyword"> const </span>{</div><div class="line"><a name="l01387"></a><span class="lineno"> 1387</span>&#160;        <span class="keywordflow">return</span> QueryUnsignedAttribute( name, value );</div><div class="line"><a name="l01388"></a><span class="lineno"> 1388</span>&#160;    }</div><div class="line"><a name="l01389"></a><span class="lineno"> 1389</span>&#160;</div><div class="line"><a name="l01390"></a><span class="lineno"> 1390</span>&#160;    <span class="keywordtype">int</span> QueryAttribute(<span class="keyword">const</span> <span class="keywordtype">char</span>* name, int64_t* value)<span class="keyword"> const </span>{</div><div class="line"><a name="l01391"></a><span class="lineno"> 1391</span>&#160;        <span class="keywordflow">return</span> QueryInt64Attribute(name, value);</div><div class="line"><a name="l01392"></a><span class="lineno"> 1392</span>&#160;    }</div><div class="line"><a name="l01393"></a><span class="lineno"> 1393</span>&#160;</div><div class="line"><a name="l01394"></a><span class="lineno"> 1394</span>&#160;    <span class="keywordtype">int</span> QueryAttribute( <span class="keyword">const</span> <span class="keywordtype">char</span>* name, <span class="keywordtype">bool</span>* value )<span class="keyword"> const </span>{</div><div class="line"><a name="l01395"></a><span class="lineno"> 1395</span>&#160;        <span class="keywordflow">return</span> QueryBoolAttribute( name, value );</div><div class="line"><a name="l01396"></a><span class="lineno"> 1396</span>&#160;    }</div><div class="line"><a name="l01397"></a><span class="lineno"> 1397</span>&#160;</div><div class="line"><a name="l01398"></a><span class="lineno"> 1398</span>&#160;    <span class="keywordtype">int</span> QueryAttribute( <span class="keyword">const</span> <span class="keywordtype">char</span>* name, <span class="keywordtype">double</span>* value )<span class="keyword"> const </span>{</div><div class="line"><a name="l01399"></a><span class="lineno"> 1399</span>&#160;        <span class="keywordflow">return</span> QueryDoubleAttribute( name, value );</div><div class="line"><a name="l01400"></a><span class="lineno"> 1400</span>&#160;    }</div><div class="line"><a name="l01401"></a><span class="lineno"> 1401</span>&#160;</div><div class="line"><a name="l01402"></a><span class="lineno"> 1402</span>&#160;    <span class="keywordtype">int</span> QueryAttribute( <span class="keyword">const</span> <span class="keywordtype">char</span>* name, <span class="keywordtype">float</span>* value )<span class="keyword"> const </span>{</div><div class="line"><a name="l01403"></a><span class="lineno"> 1403</span>&#160;        <span class="keywordflow">return</span> QueryFloatAttribute( name, value );</div><div class="line"><a name="l01404"></a><span class="lineno"> 1404</span>&#160;    }</div><div class="line"><a name="l01405"></a><span class="lineno"> 1405</span>&#160;</div><div class="line"><a name="l01407"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_element.html#a11943abf2d0831548c3790dd5d9f119c"> 1407</a></span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classtinyxml2_1_1_x_m_l_element.html#a11943abf2d0831548c3790dd5d9f119c">SetAttribute</a>( <span class="keyword">const</span> <span class="keywordtype">char</span>* name, <span class="keyword">const</span> <span class="keywordtype">char</span>* value )    {</div><div class="line"><a name="l01408"></a><span class="lineno"> 1408</span>&#160;        <a class="code" href="classtinyxml2_1_1_x_m_l_attribute.html">XMLAttribute</a>* a = FindOrCreateAttribute( name );</div><div class="line"><a name="l01409"></a><span class="lineno"> 1409</span>&#160;        a-&gt;<a class="code" href="classtinyxml2_1_1_x_m_l_attribute.html#a406d2c4a13c7af99a65edb59dd9f7581">SetAttribute</a>( value );</div><div class="line"><a name="l01410"></a><span class="lineno"> 1410</span>&#160;    }</div><div class="line"><a name="l01412"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_element.html#aae6568c64c7f1cc88be8461ba41a79cf"> 1412</a></span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classtinyxml2_1_1_x_m_l_element.html#aae6568c64c7f1cc88be8461ba41a79cf">SetAttribute</a>( <span class="keyword">const</span> <span class="keywordtype">char</span>* name, <span class="keywordtype">int</span> value )            {</div><div class="line"><a name="l01413"></a><span class="lineno"> 1413</span>&#160;        <a class="code" href="classtinyxml2_1_1_x_m_l_attribute.html">XMLAttribute</a>* a = FindOrCreateAttribute( name );</div><div class="line"><a name="l01414"></a><span class="lineno"> 1414</span>&#160;        a-&gt;<a class="code" href="classtinyxml2_1_1_x_m_l_attribute.html#a406d2c4a13c7af99a65edb59dd9f7581">SetAttribute</a>( value );</div><div class="line"><a name="l01415"></a><span class="lineno"> 1415</span>&#160;    }</div><div class="line"><a name="l01417"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_element.html#ae143997e90064ba82326b29a9930ea8f"> 1417</a></span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classtinyxml2_1_1_x_m_l_element.html#ae143997e90064ba82326b29a9930ea8f">SetAttribute</a>( <span class="keyword">const</span> <span class="keywordtype">char</span>* name, <span class="keywordtype">unsigned</span> value )       {</div><div class="line"><a name="l01418"></a><span class="lineno"> 1418</span>&#160;        <a class="code" href="classtinyxml2_1_1_x_m_l_attribute.html">XMLAttribute</a>* a = FindOrCreateAttribute( name );</div><div class="line"><a name="l01419"></a><span class="lineno"> 1419</span>&#160;        a-&gt;<a class="code" href="classtinyxml2_1_1_x_m_l_attribute.html#a406d2c4a13c7af99a65edb59dd9f7581">SetAttribute</a>( value );</div><div class="line"><a name="l01420"></a><span class="lineno"> 1420</span>&#160;    }</div><div class="line"><a name="l01421"></a><span class="lineno"> 1421</span>&#160;</div><div class="line"><a name="l01423"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_element.html#aaeefdf9171fec91b13a776b42299b0dd"> 1423</a></span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classtinyxml2_1_1_x_m_l_element.html#aaeefdf9171fec91b13a776b42299b0dd">SetAttribute</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>* name, int64_t value) {</div><div class="line"><a name="l01424"></a><span class="lineno"> 1424</span>&#160;        <a class="code" href="classtinyxml2_1_1_x_m_l_attribute.html">XMLAttribute</a>* a = FindOrCreateAttribute(name);</div><div class="line"><a name="l01425"></a><span class="lineno"> 1425</span>&#160;        a-&gt;<a class="code" href="classtinyxml2_1_1_x_m_l_attribute.html#a406d2c4a13c7af99a65edb59dd9f7581">SetAttribute</a>(value);</div><div class="line"><a name="l01426"></a><span class="lineno"> 1426</span>&#160;    }</div><div class="line"><a name="l01427"></a><span class="lineno"> 1427</span>&#160;</div><div class="line"><a name="l01429"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_element.html#aa848b696e6a75e4e545c6da9893b11e1"> 1429</a></span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classtinyxml2_1_1_x_m_l_element.html#aa848b696e6a75e4e545c6da9893b11e1">SetAttribute</a>( <span class="keyword">const</span> <span class="keywordtype">char</span>* name, <span class="keywordtype">bool</span> value )           {</div><div class="line"><a name="l01430"></a><span class="lineno"> 1430</span>&#160;        <a class="code" href="classtinyxml2_1_1_x_m_l_attribute.html">XMLAttribute</a>* a = FindOrCreateAttribute( name );</div><div class="line"><a name="l01431"></a><span class="lineno"> 1431</span>&#160;        a-&gt;<a class="code" href="classtinyxml2_1_1_x_m_l_attribute.html#a406d2c4a13c7af99a65edb59dd9f7581">SetAttribute</a>( value );</div><div class="line"><a name="l01432"></a><span class="lineno"> 1432</span>&#160;    }</div><div class="line"><a name="l01434"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_element.html#a233397ee81e70eb5d4b814c5f8698533"> 1434</a></span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classtinyxml2_1_1_x_m_l_element.html#a233397ee81e70eb5d4b814c5f8698533">SetAttribute</a>( <span class="keyword">const</span> <span class="keywordtype">char</span>* name, <span class="keywordtype">double</span> value )     {</div><div class="line"><a name="l01435"></a><span class="lineno"> 1435</span>&#160;        <a class="code" href="classtinyxml2_1_1_x_m_l_attribute.html">XMLAttribute</a>* a = FindOrCreateAttribute( name );</div><div class="line"><a name="l01436"></a><span class="lineno"> 1436</span>&#160;        a-&gt;<a class="code" href="classtinyxml2_1_1_x_m_l_attribute.html#a406d2c4a13c7af99a65edb59dd9f7581">SetAttribute</a>( value );</div><div class="line"><a name="l01437"></a><span class="lineno"> 1437</span>&#160;    }</div><div class="line"><a name="l01439"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_element.html#a554b70d882e65b28fc084b23df9b9759"> 1439</a></span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classtinyxml2_1_1_x_m_l_element.html#a554b70d882e65b28fc084b23df9b9759">SetAttribute</a>( <span class="keyword">const</span> <span class="keywordtype">char</span>* name, <span class="keywordtype">float</span> value )      {</div><div class="line"><a name="l01440"></a><span class="lineno"> 1440</span>&#160;        <a class="code" href="classtinyxml2_1_1_x_m_l_attribute.html">XMLAttribute</a>* a = FindOrCreateAttribute( name );</div><div class="line"><a name="l01441"></a><span class="lineno"> 1441</span>&#160;        a-&gt;<a class="code" href="classtinyxml2_1_1_x_m_l_attribute.html#a406d2c4a13c7af99a65edb59dd9f7581">SetAttribute</a>( value );</div><div class="line"><a name="l01442"></a><span class="lineno"> 1442</span>&#160;    }</div><div class="line"><a name="l01443"></a><span class="lineno"> 1443</span>&#160;</div><div class="line"><a name="l01447"></a><span class="lineno"> 1447</span>&#160;    <span class="keywordtype">void</span> DeleteAttribute( <span class="keyword">const</span> <span class="keywordtype">char</span>* name );</div><div class="line"><a name="l01448"></a><span class="lineno"> 1448</span>&#160;</div><div class="line"><a name="l01450"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_element.html#a3e191704c8d499906ec11fe2f60c6686"> 1450</a></span>&#160;    <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_attribute.html">XMLAttribute</a>* <a class="code" href="classtinyxml2_1_1_x_m_l_element.html#a3e191704c8d499906ec11fe2f60c6686">FirstAttribute</a>()<span class="keyword"> const </span>{</div><div class="line"><a name="l01451"></a><span class="lineno"> 1451</span>&#160;        <span class="keywordflow">return</span> _rootAttribute;</div><div class="line"><a name="l01452"></a><span class="lineno"> 1452</span>&#160;    }</div><div class="line"><a name="l01454"></a><span class="lineno"> 1454</span>&#160;    <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_attribute.html">XMLAttribute</a>* FindAttribute( <span class="keyword">const</span> <span class="keywordtype">char</span>* name ) <span class="keyword">const</span>;</div><div class="line"><a name="l01455"></a><span class="lineno"> 1455</span>&#160;</div><div class="line"><a name="l01484"></a><span class="lineno"> 1484</span>&#160;    <span class="keyword">const</span> <span class="keywordtype">char</span>* GetText() <span class="keyword">const</span>;</div><div class="line"><a name="l01485"></a><span class="lineno"> 1485</span>&#160;</div><div class="line"><a name="l01520"></a><span class="lineno"> 1520</span>&#160;    <span class="keywordtype">void</span> SetText( <span class="keyword">const</span> <span class="keywordtype">char</span>* inText );</div><div class="line"><a name="l01522"></a><span class="lineno"> 1522</span>&#160;    <span class="keywordtype">void</span> SetText( <span class="keywordtype">int</span> value );</div><div class="line"><a name="l01524"></a><span class="lineno"> 1524</span>&#160;    <span class="keywordtype">void</span> SetText( <span class="keywordtype">unsigned</span> value );  </div><div class="line"><a name="l01526"></a><span class="lineno"> 1526</span>&#160;    <span class="keywordtype">void</span> SetText(int64_t value);</div><div class="line"><a name="l01528"></a><span class="lineno"> 1528</span>&#160;    <span class="keywordtype">void</span> SetText( <span class="keywordtype">bool</span> value );  </div><div class="line"><a name="l01530"></a><span class="lineno"> 1530</span>&#160;    <span class="keywordtype">void</span> SetText( <span class="keywordtype">double</span> value );  </div><div class="line"><a name="l01532"></a><span class="lineno"> 1532</span>&#160;    <span class="keywordtype">void</span> SetText( <span class="keywordtype">float</span> value );  </div><div class="line"><a name="l01533"></a><span class="lineno"> 1533</span>&#160;</div><div class="line"><a name="l01560"></a><span class="lineno"> 1560</span>&#160;    XMLError QueryIntText( <span class="keywordtype">int</span>* ival ) <span class="keyword">const</span>;</div><div class="line"><a name="l01562"></a><span class="lineno"> 1562</span>&#160;    XMLError QueryUnsignedText( <span class="keywordtype">unsigned</span>* uval ) <span class="keyword">const</span>;</div><div class="line"><a name="l01564"></a><span class="lineno"> 1564</span>&#160;    XMLError QueryInt64Text(int64_t* uval) <span class="keyword">const</span>;</div><div class="line"><a name="l01566"></a><span class="lineno"> 1566</span>&#160;    XMLError QueryBoolText( <span class="keywordtype">bool</span>* bval ) <span class="keyword">const</span>;</div><div class="line"><a name="l01568"></a><span class="lineno"> 1568</span>&#160;    XMLError QueryDoubleText( <span class="keywordtype">double</span>* dval ) <span class="keyword">const</span>;</div><div class="line"><a name="l01570"></a><span class="lineno"> 1570</span>&#160;    XMLError QueryFloatText( <span class="keywordtype">float</span>* fval ) <span class="keyword">const</span>;</div><div class="line"><a name="l01571"></a><span class="lineno"> 1571</span>&#160;</div><div class="line"><a name="l01572"></a><span class="lineno"> 1572</span>&#160;    <span class="keywordtype">int</span> IntText(<span class="keywordtype">int</span> defaultValue = 0) <span class="keyword">const</span>;</div><div class="line"><a name="l01573"></a><span class="lineno"> 1573</span>&#160;</div><div class="line"><a name="l01575"></a><span class="lineno"> 1575</span>&#160;    <span class="keywordtype">unsigned</span> UnsignedText(<span class="keywordtype">unsigned</span> defaultValue = 0) <span class="keyword">const</span>;</div><div class="line"><a name="l01577"></a><span class="lineno"> 1577</span>&#160;    int64_t Int64Text(int64_t defaultValue = 0) <span class="keyword">const</span>;</div><div class="line"><a name="l01579"></a><span class="lineno"> 1579</span>&#160;    <span class="keywordtype">bool</span> BoolText(<span class="keywordtype">bool</span> defaultValue = <span class="keyword">false</span>) <span class="keyword">const</span>;</div><div class="line"><a name="l01581"></a><span class="lineno"> 1581</span>&#160;    <span class="keywordtype">double</span> DoubleText(<span class="keywordtype">double</span> defaultValue = 0) <span class="keyword">const</span>;</div><div class="line"><a name="l01583"></a><span class="lineno"> 1583</span>&#160;    <span class="keywordtype">float</span> FloatText(<span class="keywordtype">float</span> defaultValue = 0) <span class="keyword">const</span>;</div><div class="line"><a name="l01584"></a><span class="lineno"> 1584</span>&#160;</div><div class="line"><a name="l01585"></a><span class="lineno"> 1585</span>&#160;    <span class="comment">// internal:</span></div><div class="line"><a name="l01586"></a><span class="lineno"> 1586</span>&#160;    <span class="keyword">enum</span> ElementClosingType {</div><div class="line"><a name="l01587"></a><span class="lineno"> 1587</span>&#160;        OPEN,       <span class="comment">// &lt;foo&gt;</span></div><div class="line"><a name="l01588"></a><span class="lineno"> 1588</span>&#160;        CLOSED,     <span class="comment">// &lt;foo/&gt;</span></div><div class="line"><a name="l01589"></a><span class="lineno"> 1589</span>&#160;        CLOSING     <span class="comment">// &lt;/foo&gt;</span></div><div class="line"><a name="l01590"></a><span class="lineno"> 1590</span>&#160;    };</div><div class="line"><a name="l01591"></a><span class="lineno"> 1591</span>&#160;    ElementClosingType ClosingType()<span class="keyword"> const </span>{</div><div class="line"><a name="l01592"></a><span class="lineno"> 1592</span>&#160;        <span class="keywordflow">return</span> _closingType;</div><div class="line"><a name="l01593"></a><span class="lineno"> 1593</span>&#160;    }</div><div class="line"><a name="l01594"></a><span class="lineno"> 1594</span>&#160;    <span class="keyword">virtual</span> <a class="code" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a>* ShallowClone( <a class="code" href="classtinyxml2_1_1_x_m_l_document.html">XMLDocument</a>* document ) <span class="keyword">const</span>;</div><div class="line"><a name="l01595"></a><span class="lineno"> 1595</span>&#160;    <span class="keyword">virtual</span> <span class="keywordtype">bool</span> ShallowEqual( <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a>* compare ) <span class="keyword">const</span>;</div><div class="line"><a name="l01596"></a><span class="lineno"> 1596</span>&#160;</div><div class="line"><a name="l01597"></a><span class="lineno"> 1597</span>&#160;<span class="keyword">protected</span>:</div><div class="line"><a name="l01598"></a><span class="lineno"> 1598</span>&#160;    <span class="keywordtype">char</span>* ParseDeep( <span class="keywordtype">char</span>* p, StrPair* parentEndTag, <span class="keywordtype">int</span>* curLineNumPtr );</div><div class="line"><a name="l01599"></a><span class="lineno"> 1599</span>&#160;</div><div class="line"><a name="l01600"></a><span class="lineno"> 1600</span>&#160;<span class="keyword">private</span>:</div><div class="line"><a name="l01601"></a><span class="lineno"> 1601</span>&#160;    <a class="code" href="classtinyxml2_1_1_x_m_l_element.html">XMLElement</a>( <a class="code" href="classtinyxml2_1_1_x_m_l_document.html">XMLDocument</a>* doc );</div><div class="line"><a name="l01602"></a><span class="lineno"> 1602</span>&#160;    <span class="keyword">virtual</span> ~<a class="code" href="classtinyxml2_1_1_x_m_l_element.html">XMLElement</a>();</div><div class="line"><a name="l01603"></a><span class="lineno"> 1603</span>&#160;    <a class="code" href="classtinyxml2_1_1_x_m_l_element.html">XMLElement</a>( <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_element.html">XMLElement</a>&amp; );    <span class="comment">// not supported</span></div><div class="line"><a name="l01604"></a><span class="lineno"> 1604</span>&#160;    <span class="keywordtype">void</span> operator=( <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_element.html">XMLElement</a>&amp; );    <span class="comment">// not supported</span></div><div class="line"><a name="l01605"></a><span class="lineno"> 1605</span>&#160;</div><div class="line"><a name="l01606"></a><span class="lineno"> 1606</span>&#160;    <a class="code" href="classtinyxml2_1_1_x_m_l_attribute.html">XMLAttribute</a>* FindAttribute( <span class="keyword">const</span> <span class="keywordtype">char</span>* name ) {</div><div class="line"><a name="l01607"></a><span class="lineno"> 1607</span>&#160;        <span class="keywordflow">return</span> <span class="keyword">const_cast&lt;</span><a class="code" href="classtinyxml2_1_1_x_m_l_attribute.html">XMLAttribute</a>*<span class="keyword">&gt;</span>(<span class="keyword">const_cast&lt;</span><span class="keyword">const </span><a class="code" href="classtinyxml2_1_1_x_m_l_element.html">XMLElement</a>*<span class="keyword">&gt;</span>(<span class="keyword">this</span>)-&gt;FindAttribute( name ));</div><div class="line"><a name="l01608"></a><span class="lineno"> 1608</span>&#160;    }</div><div class="line"><a name="l01609"></a><span class="lineno"> 1609</span>&#160;    <a class="code" href="classtinyxml2_1_1_x_m_l_attribute.html">XMLAttribute</a>* FindOrCreateAttribute( <span class="keyword">const</span> <span class="keywordtype">char</span>* name );</div><div class="line"><a name="l01610"></a><span class="lineno"> 1610</span>&#160;    <span class="comment">//void LinkAttribute( XMLAttribute* attrib );</span></div><div class="line"><a name="l01611"></a><span class="lineno"> 1611</span>&#160;    <span class="keywordtype">char</span>* ParseAttributes( <span class="keywordtype">char</span>* p, <span class="keywordtype">int</span>* curLineNumPtr );</div><div class="line"><a name="l01612"></a><span class="lineno"> 1612</span>&#160;    <span class="keyword">static</span> <span class="keywordtype">void</span> DeleteAttribute( <a class="code" href="classtinyxml2_1_1_x_m_l_attribute.html">XMLAttribute</a>* attribute );</div><div class="line"><a name="l01613"></a><span class="lineno"> 1613</span>&#160;    <a class="code" href="classtinyxml2_1_1_x_m_l_attribute.html">XMLAttribute</a>* CreateAttribute();</div><div class="line"><a name="l01614"></a><span class="lineno"> 1614</span>&#160;</div><div class="line"><a name="l01615"></a><span class="lineno"> 1615</span>&#160;    <span class="keyword">enum</span> { BUF_SIZE = 200 };</div><div class="line"><a name="l01616"></a><span class="lineno"> 1616</span>&#160;    ElementClosingType _closingType;</div><div class="line"><a name="l01617"></a><span class="lineno"> 1617</span>&#160;    <span class="comment">// The attribute list is ordered; there is no &#39;lastAttribute&#39;</span></div><div class="line"><a name="l01618"></a><span class="lineno"> 1618</span>&#160;    <span class="comment">// because the list needs to be scanned for dupes before adding</span></div><div class="line"><a name="l01619"></a><span class="lineno"> 1619</span>&#160;    <span class="comment">// a new attribute.</span></div><div class="line"><a name="l01620"></a><span class="lineno"> 1620</span>&#160;    <a class="code" href="classtinyxml2_1_1_x_m_l_attribute.html">XMLAttribute</a>* _rootAttribute;</div><div class="line"><a name="l01621"></a><span class="lineno"> 1621</span>&#160;};</div><div class="line"><a name="l01622"></a><span class="lineno"> 1622</span>&#160;</div><div class="line"><a name="l01623"></a><span class="lineno"> 1623</span>&#160;</div><div class="line"><a name="l01624"></a><span class="lineno"> 1624</span>&#160;<span class="keyword">enum</span> Whitespace {</div><div class="line"><a name="l01625"></a><span class="lineno"> 1625</span>&#160;    PRESERVE_WHITESPACE,</div><div class="line"><a name="l01626"></a><span class="lineno"> 1626</span>&#160;    COLLAPSE_WHITESPACE</div><div class="line"><a name="l01627"></a><span class="lineno"> 1627</span>&#160;};</div><div class="line"><a name="l01628"></a><span class="lineno"> 1628</span>&#160;</div><div class="line"><a name="l01629"></a><span class="lineno"> 1629</span>&#160;</div><div class="line"><a name="l01635"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_document.html"> 1635</a></span>&#160;<span class="keyword">class </span>TINYXML2_LIB <a class="code" href="classtinyxml2_1_1_x_m_l_document.html">XMLDocument</a> : <span class="keyword">public</span> <a class="code" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a></div><div class="line"><a name="l01636"></a><span class="lineno"> 1636</span>&#160;{</div><div class="line"><a name="l01637"></a><span class="lineno"> 1637</span>&#160;    <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classtinyxml2_1_1_x_m_l_element.html">XMLElement</a>;</div><div class="line"><a name="l01638"></a><span class="lineno"> 1638</span>&#160;    <span class="comment">// Gives access to SetError, but over-access for everything else.</span></div><div class="line"><a name="l01639"></a><span class="lineno"> 1639</span>&#160;    <span class="comment">// Wishing C++ had &quot;internal&quot; scope.</span></div><div class="line"><a name="l01640"></a><span class="lineno"> 1640</span>&#160;    <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a>;       </div><div class="line"><a name="l01641"></a><span class="lineno"> 1641</span>&#160;    <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classtinyxml2_1_1_x_m_l_text.html">XMLText</a>;</div><div class="line"><a name="l01642"></a><span class="lineno"> 1642</span>&#160;    <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classtinyxml2_1_1_x_m_l_comment.html">XMLComment</a>;</div><div class="line"><a name="l01643"></a><span class="lineno"> 1643</span>&#160;    <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classtinyxml2_1_1_x_m_l_declaration.html">XMLDeclaration</a>;</div><div class="line"><a name="l01644"></a><span class="lineno"> 1644</span>&#160;    <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classtinyxml2_1_1_x_m_l_unknown.html">XMLUnknown</a>;</div><div class="line"><a name="l01645"></a><span class="lineno"> 1645</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l01647"></a><span class="lineno"> 1647</span>&#160;    <a class="code" href="classtinyxml2_1_1_x_m_l_document.html">XMLDocument</a>( <span class="keywordtype">bool</span> processEntities = <span class="keyword">true</span>, Whitespace whitespaceMode = PRESERVE_WHITESPACE );</div><div class="line"><a name="l01648"></a><span class="lineno"> 1648</span>&#160;    ~<a class="code" href="classtinyxml2_1_1_x_m_l_document.html">XMLDocument</a>();</div><div class="line"><a name="l01649"></a><span class="lineno"> 1649</span>&#160;</div><div class="line"><a name="l01650"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_document.html#a3e185f880882bd978367bb55937735ec"> 1650</a></span>&#160;    <span class="keyword">virtual</span> <a class="code" href="classtinyxml2_1_1_x_m_l_document.html">XMLDocument</a>* <a class="code" href="classtinyxml2_1_1_x_m_l_document.html#a3e185f880882bd978367bb55937735ec">ToDocument</a>()               {</div><div class="line"><a name="l01651"></a><span class="lineno"> 1651</span>&#160;        TIXMLASSERT( <span class="keyword">this</span> == _document );</div><div class="line"><a name="l01652"></a><span class="lineno"> 1652</span>&#160;        <span class="keywordflow">return</span> <span class="keyword">this</span>;</div><div class="line"><a name="l01653"></a><span class="lineno"> 1653</span>&#160;    }</div><div class="line"><a name="l01654"></a><span class="lineno"> 1654</span>&#160;    <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_document.html">XMLDocument</a>* ToDocument()<span class="keyword"> const   </span>{</div><div class="line"><a name="l01655"></a><span class="lineno"> 1655</span>&#160;        TIXMLASSERT( <span class="keyword">this</span> == _document );</div><div class="line"><a name="l01656"></a><span class="lineno"> 1656</span>&#160;        <span class="keywordflow">return</span> <span class="keyword">this</span>;</div><div class="line"><a name="l01657"></a><span class="lineno"> 1657</span>&#160;    }</div><div class="line"><a name="l01658"></a><span class="lineno"> 1658</span>&#160;</div><div class="line"><a name="l01669"></a><span class="lineno"> 1669</span>&#160;    XMLError Parse( <span class="keyword">const</span> <span class="keywordtype">char</span>* xml, <span class="keywordtype">size_t</span> nBytes=(<span class="keywordtype">size_t</span>)(-1) );</div><div class="line"><a name="l01670"></a><span class="lineno"> 1670</span>&#160;</div><div class="line"><a name="l01676"></a><span class="lineno"> 1676</span>&#160;    XMLError LoadFile( <span class="keyword">const</span> <span class="keywordtype">char</span>* filename );</div><div class="line"><a name="l01677"></a><span class="lineno"> 1677</span>&#160;</div><div class="line"><a name="l01689"></a><span class="lineno"> 1689</span>&#160;    XMLError LoadFile( FILE* );</div><div class="line"><a name="l01690"></a><span class="lineno"> 1690</span>&#160;</div><div class="line"><a name="l01696"></a><span class="lineno"> 1696</span>&#160;    XMLError SaveFile( <span class="keyword">const</span> <span class="keywordtype">char</span>* filename, <span class="keywordtype">bool</span> compact = <span class="keyword">false</span> );</div><div class="line"><a name="l01697"></a><span class="lineno"> 1697</span>&#160;</div><div class="line"><a name="l01705"></a><span class="lineno"> 1705</span>&#160;    XMLError SaveFile( FILE* fp, <span class="keywordtype">bool</span> compact = <span class="keyword">false</span> );</div><div class="line"><a name="l01706"></a><span class="lineno"> 1706</span>&#160;</div><div class="line"><a name="l01707"></a><span class="lineno"> 1707</span>&#160;    <span class="keywordtype">bool</span> ProcessEntities()<span class="keyword"> const        </span>{</div><div class="line"><a name="l01708"></a><span class="lineno"> 1708</span>&#160;        <span class="keywordflow">return</span> _processEntities;</div><div class="line"><a name="l01709"></a><span class="lineno"> 1709</span>&#160;    }</div><div class="line"><a name="l01710"></a><span class="lineno"> 1710</span>&#160;    Whitespace WhitespaceMode()<span class="keyword"> const   </span>{</div><div class="line"><a name="l01711"></a><span class="lineno"> 1711</span>&#160;        <span class="keywordflow">return</span> _whitespaceMode;</div><div class="line"><a name="l01712"></a><span class="lineno"> 1712</span>&#160;    }</div><div class="line"><a name="l01713"></a><span class="lineno"> 1713</span>&#160;</div><div class="line"><a name="l01717"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_document.html#a33fc5d159db873a179fa26338adb05bd"> 1717</a></span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="classtinyxml2_1_1_x_m_l_document.html#a33fc5d159db873a179fa26338adb05bd">HasBOM</a>()<span class="keyword"> const </span>{</div><div class="line"><a name="l01718"></a><span class="lineno"> 1718</span>&#160;        <span class="keywordflow">return</span> _writeBOM;</div><div class="line"><a name="l01719"></a><span class="lineno"> 1719</span>&#160;    }</div><div class="line"><a name="l01722"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_document.html#a14419b698f7c4b140df4e80f3f0c93b0"> 1722</a></span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classtinyxml2_1_1_x_m_l_document.html#a14419b698f7c4b140df4e80f3f0c93b0">SetBOM</a>( <span class="keywordtype">bool</span> useBOM ) {</div><div class="line"><a name="l01723"></a><span class="lineno"> 1723</span>&#160;        _writeBOM = useBOM;</div><div class="line"><a name="l01724"></a><span class="lineno"> 1724</span>&#160;    }</div><div class="line"><a name="l01725"></a><span class="lineno"> 1725</span>&#160;</div><div class="line"><a name="l01729"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_document.html#ad2b70320d3c2a071c2f36928edff3e1c"> 1729</a></span>&#160;    <a class="code" href="classtinyxml2_1_1_x_m_l_element.html">XMLElement</a>* <a class="code" href="classtinyxml2_1_1_x_m_l_document.html#ad2b70320d3c2a071c2f36928edff3e1c">RootElement</a>()               {</div><div class="line"><a name="l01730"></a><span class="lineno"> 1730</span>&#160;        <span class="keywordflow">return</span> FirstChildElement();</div><div class="line"><a name="l01731"></a><span class="lineno"> 1731</span>&#160;    }</div><div class="line"><a name="l01732"></a><span class="lineno"> 1732</span>&#160;    <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_element.html">XMLElement</a>* RootElement()<span class="keyword"> const   </span>{</div><div class="line"><a name="l01733"></a><span class="lineno"> 1733</span>&#160;        <span class="keywordflow">return</span> FirstChildElement();</div><div class="line"><a name="l01734"></a><span class="lineno"> 1734</span>&#160;    }</div><div class="line"><a name="l01735"></a><span class="lineno"> 1735</span>&#160;</div><div class="line"><a name="l01750"></a><span class="lineno"> 1750</span>&#160;    <span class="keywordtype">void</span> Print( <a class="code" href="classtinyxml2_1_1_x_m_l_printer.html">XMLPrinter</a>* streamer=0 ) <span class="keyword">const</span>;</div><div class="line"><a name="l01751"></a><span class="lineno"> 1751</span>&#160;    <span class="keyword">virtual</span> <span class="keywordtype">bool</span> Accept( <a class="code" href="classtinyxml2_1_1_x_m_l_visitor.html">XMLVisitor</a>* visitor ) <span class="keyword">const</span>;</div><div class="line"><a name="l01752"></a><span class="lineno"> 1752</span>&#160;</div><div class="line"><a name="l01758"></a><span class="lineno"> 1758</span>&#160;    <a class="code" href="classtinyxml2_1_1_x_m_l_element.html">XMLElement</a>* NewElement( <span class="keyword">const</span> <span class="keywordtype">char</span>* name );</div><div class="line"><a name="l01764"></a><span class="lineno"> 1764</span>&#160;    <a class="code" href="classtinyxml2_1_1_x_m_l_comment.html">XMLComment</a>* NewComment( <span class="keyword">const</span> <span class="keywordtype">char</span>* comment );</div><div class="line"><a name="l01770"></a><span class="lineno"> 1770</span>&#160;    <a class="code" href="classtinyxml2_1_1_x_m_l_text.html">XMLText</a>* NewText( <span class="keyword">const</span> <span class="keywordtype">char</span>* text );</div><div class="line"><a name="l01782"></a><span class="lineno"> 1782</span>&#160;    <a class="code" href="classtinyxml2_1_1_x_m_l_declaration.html">XMLDeclaration</a>* NewDeclaration( <span class="keyword">const</span> <span class="keywordtype">char</span>* text=0 );</div><div class="line"><a name="l01788"></a><span class="lineno"> 1788</span>&#160;    <a class="code" href="classtinyxml2_1_1_x_m_l_unknown.html">XMLUnknown</a>* NewUnknown( <span class="keyword">const</span> <span class="keywordtype">char</span>* text );</div><div class="line"><a name="l01789"></a><span class="lineno"> 1789</span>&#160;</div><div class="line"><a name="l01794"></a><span class="lineno"> 1794</span>&#160;    <span class="keywordtype">void</span> DeleteNode( <a class="code" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a>* node );</div><div class="line"><a name="l01795"></a><span class="lineno"> 1795</span>&#160;</div><div class="line"><a name="l01796"></a><span class="lineno"> 1796</span>&#160;    <span class="keywordtype">void</span> ClearError() {</div><div class="line"><a name="l01797"></a><span class="lineno"> 1797</span>&#160;        SetError(XML_SUCCESS, 0, 0);</div><div class="line"><a name="l01798"></a><span class="lineno"> 1798</span>&#160;    }</div><div class="line"><a name="l01799"></a><span class="lineno"> 1799</span>&#160;</div><div class="line"><a name="l01801"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_document.html#a34e6318e182e40e3cc4f4ba5d59ed9ed"> 1801</a></span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="classtinyxml2_1_1_x_m_l_document.html#a34e6318e182e40e3cc4f4ba5d59ed9ed">Error</a>()<span class="keyword"> const </span>{</div><div class="line"><a name="l01802"></a><span class="lineno"> 1802</span>&#160;        <span class="keywordflow">return</span> _errorID != XML_SUCCESS;</div><div class="line"><a name="l01803"></a><span class="lineno"> 1803</span>&#160;    }</div><div class="line"><a name="l01805"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_document.html#afa3ed33b3107f920ec2b301f805ac17d"> 1805</a></span>&#160;    XMLError  <a class="code" href="classtinyxml2_1_1_x_m_l_document.html#afa3ed33b3107f920ec2b301f805ac17d">ErrorID</a>()<span class="keyword"> const </span>{</div><div class="line"><a name="l01806"></a><span class="lineno"> 1806</span>&#160;        <span class="keywordflow">return</span> _errorID;</div><div class="line"><a name="l01807"></a><span class="lineno"> 1807</span>&#160;    }</div><div class="line"><a name="l01808"></a><span class="lineno"> 1808</span>&#160;    <span class="keyword">const</span> <span class="keywordtype">char</span>* ErrorName() <span class="keyword">const</span>;</div><div class="line"><a name="l01809"></a><span class="lineno"> 1809</span>&#160;    <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">char</span>* ErrorIDToName(XMLError errorID);</div><div class="line"><a name="l01810"></a><span class="lineno"> 1810</span>&#160;</div><div class="line"><a name="l01814"></a><span class="lineno"> 1814</span>&#160;    <span class="keyword">const</span> <span class="keywordtype">char</span>* ErrorStr() <span class="keyword">const</span>;</div><div class="line"><a name="l01815"></a><span class="lineno"> 1815</span>&#160;</div><div class="line"><a name="l01817"></a><span class="lineno"> 1817</span>&#160;    <span class="keywordtype">void</span> PrintError() <span class="keyword">const</span>;</div><div class="line"><a name="l01818"></a><span class="lineno"> 1818</span>&#160;</div><div class="line"><a name="l01820"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_document.html#a57400f816dbe7799ece33615ead9ab76"> 1820</a></span>&#160;    <span class="keywordtype">int</span> <a class="code" href="classtinyxml2_1_1_x_m_l_document.html#a57400f816dbe7799ece33615ead9ab76">ErrorLineNum</a>()<span class="keyword"> const</span></div><div class="line"><a name="l01821"></a><span class="lineno"> 1821</span>&#160;<span class="keyword">    </span>{</div><div class="line"><a name="l01822"></a><span class="lineno"> 1822</span>&#160;        <span class="keywordflow">return</span> _errorLineNum;</div><div class="line"><a name="l01823"></a><span class="lineno"> 1823</span>&#160;    }</div><div class="line"><a name="l01824"></a><span class="lineno"> 1824</span>&#160;    </div><div class="line"><a name="l01826"></a><span class="lineno"> 1826</span>&#160;    <span class="keywordtype">void</span> Clear();</div><div class="line"><a name="l01827"></a><span class="lineno"> 1827</span>&#160;</div><div class="line"><a name="l01835"></a><span class="lineno"> 1835</span>&#160;    <span class="keywordtype">void</span> DeepCopy(<a class="code" href="classtinyxml2_1_1_x_m_l_document.html">XMLDocument</a>* target) <span class="keyword">const</span>;</div><div class="line"><a name="l01836"></a><span class="lineno"> 1836</span>&#160;</div><div class="line"><a name="l01837"></a><span class="lineno"> 1837</span>&#160;    <span class="comment">// internal</span></div><div class="line"><a name="l01838"></a><span class="lineno"> 1838</span>&#160;    <span class="keywordtype">char</span>* Identify( <span class="keywordtype">char</span>* p, <a class="code" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a>** node );</div><div class="line"><a name="l01839"></a><span class="lineno"> 1839</span>&#160;</div><div class="line"><a name="l01840"></a><span class="lineno"> 1840</span>&#160;    <span class="comment">// internal</span></div><div class="line"><a name="l01841"></a><span class="lineno"> 1841</span>&#160;    <span class="keywordtype">void</span> MarkInUse(<a class="code" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a>*);</div><div class="line"><a name="l01842"></a><span class="lineno"> 1842</span>&#160;</div><div class="line"><a name="l01843"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_document.html#aa37cc1709d7e1e988bc17dcfb24a69b8"> 1843</a></span>&#160;    <span class="keyword">virtual</span> <a class="code" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a>* <a class="code" href="classtinyxml2_1_1_x_m_l_document.html#aa37cc1709d7e1e988bc17dcfb24a69b8">ShallowClone</a>( <a class="code" href="classtinyxml2_1_1_x_m_l_document.html">XMLDocument</a>* <span class="comment">/*document*/</span> )<span class="keyword"> const    </span>{</div><div class="line"><a name="l01844"></a><span class="lineno"> 1844</span>&#160;        <span class="keywordflow">return</span> 0;</div><div class="line"><a name="l01845"></a><span class="lineno"> 1845</span>&#160;    }</div><div class="line"><a name="l01846"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_document.html#a6fe5ef18699091844fcf64b56ffa5bf9"> 1846</a></span>&#160;    <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classtinyxml2_1_1_x_m_l_document.html#a6fe5ef18699091844fcf64b56ffa5bf9">ShallowEqual</a>( <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a>* <span class="comment">/*compare*/</span> )<span class="keyword"> const   </span>{</div><div class="line"><a name="l01847"></a><span class="lineno"> 1847</span>&#160;        <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l01848"></a><span class="lineno"> 1848</span>&#160;    }</div><div class="line"><a name="l01849"></a><span class="lineno"> 1849</span>&#160;</div><div class="line"><a name="l01850"></a><span class="lineno"> 1850</span>&#160;<span class="keyword">private</span>:</div><div class="line"><a name="l01851"></a><span class="lineno"> 1851</span>&#160;    <a class="code" href="classtinyxml2_1_1_x_m_l_document.html">XMLDocument</a>( <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_document.html">XMLDocument</a>&amp; );  <span class="comment">// not supported</span></div><div class="line"><a name="l01852"></a><span class="lineno"> 1852</span>&#160;    <span class="keywordtype">void</span> operator=( <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_document.html">XMLDocument</a>&amp; );   <span class="comment">// not supported</span></div><div class="line"><a name="l01853"></a><span class="lineno"> 1853</span>&#160;</div><div class="line"><a name="l01854"></a><span class="lineno"> 1854</span>&#160;    <span class="keywordtype">bool</span>            _writeBOM;</div><div class="line"><a name="l01855"></a><span class="lineno"> 1855</span>&#160;    <span class="keywordtype">bool</span>            _processEntities;</div><div class="line"><a name="l01856"></a><span class="lineno"> 1856</span>&#160;    XMLError        _errorID;</div><div class="line"><a name="l01857"></a><span class="lineno"> 1857</span>&#160;    Whitespace      _whitespaceMode;</div><div class="line"><a name="l01858"></a><span class="lineno"> 1858</span>&#160;    <span class="keyword">mutable</span> StrPair _errorStr;</div><div class="line"><a name="l01859"></a><span class="lineno"> 1859</span>&#160;    <span class="keywordtype">int</span>             _errorLineNum;</div><div class="line"><a name="l01860"></a><span class="lineno"> 1860</span>&#160;    <span class="keywordtype">char</span>*           _charBuffer;</div><div class="line"><a name="l01861"></a><span class="lineno"> 1861</span>&#160;    <span class="keywordtype">int</span>             _parseCurLineNum;</div><div class="line"><a name="l01862"></a><span class="lineno"> 1862</span>&#160;    <span class="comment">// Memory tracking does add some overhead.</span></div><div class="line"><a name="l01863"></a><span class="lineno"> 1863</span>&#160;    <span class="comment">// However, the code assumes that you don&#39;t</span></div><div class="line"><a name="l01864"></a><span class="lineno"> 1864</span>&#160;    <span class="comment">// have a bunch of unlinked nodes around.</span></div><div class="line"><a name="l01865"></a><span class="lineno"> 1865</span>&#160;    <span class="comment">// Therefore it takes less memory to track</span></div><div class="line"><a name="l01866"></a><span class="lineno"> 1866</span>&#160;    <span class="comment">// in the document vs. a linked list in the XMLNode,</span></div><div class="line"><a name="l01867"></a><span class="lineno"> 1867</span>&#160;    <span class="comment">// and the performance is the same.</span></div><div class="line"><a name="l01868"></a><span class="lineno"> 1868</span>&#160;    DynArray&lt;XMLNode*, 10&gt; _unlinked;</div><div class="line"><a name="l01869"></a><span class="lineno"> 1869</span>&#160;</div><div class="line"><a name="l01870"></a><span class="lineno"> 1870</span>&#160;    MemPoolT&lt; sizeof(XMLElement) &gt;   _elementPool;</div><div class="line"><a name="l01871"></a><span class="lineno"> 1871</span>&#160;    MemPoolT&lt; sizeof(XMLAttribute) &gt; _attributePool;</div><div class="line"><a name="l01872"></a><span class="lineno"> 1872</span>&#160;    MemPoolT&lt; sizeof(XMLText) &gt;      _textPool;</div><div class="line"><a name="l01873"></a><span class="lineno"> 1873</span>&#160;    MemPoolT&lt; sizeof(XMLComment) &gt;   _commentPool;</div><div class="line"><a name="l01874"></a><span class="lineno"> 1874</span>&#160;</div><div class="line"><a name="l01875"></a><span class="lineno"> 1875</span>&#160;    <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">char</span>* _errorNames[XML_ERROR_COUNT];</div><div class="line"><a name="l01876"></a><span class="lineno"> 1876</span>&#160;</div><div class="line"><a name="l01877"></a><span class="lineno"> 1877</span>&#160;    <span class="keywordtype">void</span> Parse();</div><div class="line"><a name="l01878"></a><span class="lineno"> 1878</span>&#160;</div><div class="line"><a name="l01879"></a><span class="lineno"> 1879</span>&#160;    <span class="keywordtype">void</span> SetError( XMLError error, <span class="keywordtype">int</span> lineNum, <span class="keyword">const</span> <span class="keywordtype">char</span>* format, ... );</div><div class="line"><a name="l01880"></a><span class="lineno"> 1880</span>&#160;</div><div class="line"><a name="l01881"></a><span class="lineno"> 1881</span>&#160;    <span class="keyword">template</span>&lt;<span class="keyword">class</span> NodeType, <span class="keywordtype">int</span> PoolElementSize&gt;</div><div class="line"><a name="l01882"></a><span class="lineno"> 1882</span>&#160;    NodeType* CreateUnlinkedNode( MemPoolT&lt;PoolElementSize&gt;&amp; pool );</div><div class="line"><a name="l01883"></a><span class="lineno"> 1883</span>&#160;};</div><div class="line"><a name="l01884"></a><span class="lineno"> 1884</span>&#160;</div><div class="line"><a name="l01885"></a><span class="lineno"> 1885</span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">class</span> NodeType, <span class="keywordtype">int</span> PoolElementSize&gt;</div><div class="line"><a name="l01886"></a><span class="lineno"> 1886</span>&#160;<span class="keyword">inline</span> NodeType* XMLDocument::CreateUnlinkedNode( MemPoolT&lt;PoolElementSize&gt;&amp; pool )</div><div class="line"><a name="l01887"></a><span class="lineno"> 1887</span>&#160;{</div><div class="line"><a name="l01888"></a><span class="lineno"> 1888</span>&#160;    TIXMLASSERT( <span class="keyword">sizeof</span>( NodeType ) == PoolElementSize );</div><div class="line"><a name="l01889"></a><span class="lineno"> 1889</span>&#160;    TIXMLASSERT( <span class="keyword">sizeof</span>( NodeType ) == pool.ItemSize() );</div><div class="line"><a name="l01890"></a><span class="lineno"> 1890</span>&#160;    NodeType* returnNode = <span class="keyword">new</span> (pool.Alloc()) NodeType( <span class="keyword">this</span> );</div><div class="line"><a name="l01891"></a><span class="lineno"> 1891</span>&#160;    TIXMLASSERT( returnNode );</div><div class="line"><a name="l01892"></a><span class="lineno"> 1892</span>&#160;    returnNode-&gt;_memPool = &amp;pool;</div><div class="line"><a name="l01893"></a><span class="lineno"> 1893</span>&#160;</div><div class="line"><a name="l01894"></a><span class="lineno"> 1894</span>&#160;    _unlinked.Push(returnNode);</div><div class="line"><a name="l01895"></a><span class="lineno"> 1895</span>&#160;    <span class="keywordflow">return</span> returnNode;</div><div class="line"><a name="l01896"></a><span class="lineno"> 1896</span>&#160;}</div><div class="line"><a name="l01897"></a><span class="lineno"> 1897</span>&#160;</div><div class="line"><a name="l01953"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_handle.html"> 1953</a></span>&#160;<span class="keyword">class </span>TINYXML2_LIB <a class="code" href="classtinyxml2_1_1_x_m_l_handle.html">XMLHandle</a></div><div class="line"><a name="l01954"></a><span class="lineno"> 1954</span>&#160;{</div><div class="line"><a name="l01955"></a><span class="lineno"> 1955</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l01957"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_handle.html#a9c240a35c18f053509b4b97ddccd9793"> 1957</a></span>&#160;    <a class="code" href="classtinyxml2_1_1_x_m_l_handle.html#a9c240a35c18f053509b4b97ddccd9793">XMLHandle</a>( <a class="code" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a>* node ) : _node( node ) {</div><div class="line"><a name="l01958"></a><span class="lineno"> 1958</span>&#160;    }</div><div class="line"><a name="l01960"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_handle.html#aa2edbc1c0d3e3e8259bd98de7f1cf500"> 1960</a></span>&#160;    <a class="code" href="classtinyxml2_1_1_x_m_l_handle.html#aa2edbc1c0d3e3e8259bd98de7f1cf500">XMLHandle</a>( <a class="code" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a>&amp; node ) : _node( &amp;node ) {</div><div class="line"><a name="l01961"></a><span class="lineno"> 1961</span>&#160;    }</div><div class="line"><a name="l01963"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_handle.html#afd8e01e6018c07347b8e6d80272466aa"> 1963</a></span>&#160;    <a class="code" href="classtinyxml2_1_1_x_m_l_handle.html#afd8e01e6018c07347b8e6d80272466aa">XMLHandle</a>( <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_handle.html">XMLHandle</a>&amp; ref ) : _node( ref._node ) {</div><div class="line"><a name="l01964"></a><span class="lineno"> 1964</span>&#160;    }</div><div class="line"><a name="l01966"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_handle.html#a75b908322bb4b83be3281b6845252b20"> 1966</a></span>&#160;    <a class="code" href="classtinyxml2_1_1_x_m_l_handle.html">XMLHandle</a>&amp; <a class="code" href="classtinyxml2_1_1_x_m_l_handle.html#a75b908322bb4b83be3281b6845252b20">operator=</a>( <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_handle.html">XMLHandle</a>&amp; ref )                            {</div><div class="line"><a name="l01967"></a><span class="lineno"> 1967</span>&#160;        _node = ref._node;</div><div class="line"><a name="l01968"></a><span class="lineno"> 1968</span>&#160;        <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div><div class="line"><a name="l01969"></a><span class="lineno"> 1969</span>&#160;    }</div><div class="line"><a name="l01970"></a><span class="lineno"> 1970</span>&#160;</div><div class="line"><a name="l01972"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_handle.html#a536447dc7f54c0cd11e031dad94795ae"> 1972</a></span>&#160;    <a class="code" href="classtinyxml2_1_1_x_m_l_handle.html">XMLHandle</a> <a class="code" href="classtinyxml2_1_1_x_m_l_handle.html#a536447dc7f54c0cd11e031dad94795ae">FirstChild</a>()                                                  {</div><div class="line"><a name="l01973"></a><span class="lineno"> 1973</span>&#160;        <span class="keywordflow">return</span> <a class="code" href="classtinyxml2_1_1_x_m_l_handle.html">XMLHandle</a>( _node ? _node-&gt;FirstChild() : 0 );</div><div class="line"><a name="l01974"></a><span class="lineno"> 1974</span>&#160;    }</div><div class="line"><a name="l01976"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_handle.html#a74b04dd0f15e0bf01860e282b840b6a3"> 1976</a></span>&#160;    <a class="code" href="classtinyxml2_1_1_x_m_l_handle.html">XMLHandle</a> <a class="code" href="classtinyxml2_1_1_x_m_l_handle.html#a74b04dd0f15e0bf01860e282b840b6a3">FirstChildElement</a>( <span class="keyword">const</span> <span class="keywordtype">char</span>* name = 0 )                     {</div><div class="line"><a name="l01977"></a><span class="lineno"> 1977</span>&#160;        <span class="keywordflow">return</span> <a class="code" href="classtinyxml2_1_1_x_m_l_handle.html">XMLHandle</a>( _node ? _node-&gt;FirstChildElement( name ) : 0 );</div><div class="line"><a name="l01978"></a><span class="lineno"> 1978</span>&#160;    }</div><div class="line"><a name="l01980"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_handle.html#a9d09f04435f0f2f7d0816b0198d0517b"> 1980</a></span>&#160;    <a class="code" href="classtinyxml2_1_1_x_m_l_handle.html">XMLHandle</a> <a class="code" href="classtinyxml2_1_1_x_m_l_handle.html#a9d09f04435f0f2f7d0816b0198d0517b">LastChild</a>()                                                   {</div><div class="line"><a name="l01981"></a><span class="lineno"> 1981</span>&#160;        <span class="keywordflow">return</span> <a class="code" href="classtinyxml2_1_1_x_m_l_handle.html">XMLHandle</a>( _node ? _node-&gt;LastChild() : 0 );</div><div class="line"><a name="l01982"></a><span class="lineno"> 1982</span>&#160;    }</div><div class="line"><a name="l01984"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_handle.html#a42cccd0ce8b1ce704f431025e9f19e0c"> 1984</a></span>&#160;    <a class="code" href="classtinyxml2_1_1_x_m_l_handle.html">XMLHandle</a> <a class="code" href="classtinyxml2_1_1_x_m_l_handle.html#a42cccd0ce8b1ce704f431025e9f19e0c">LastChildElement</a>( <span class="keyword">const</span> <span class="keywordtype">char</span>* name = 0 )                      {</div><div class="line"><a name="l01985"></a><span class="lineno"> 1985</span>&#160;        <span class="keywordflow">return</span> <a class="code" href="classtinyxml2_1_1_x_m_l_handle.html">XMLHandle</a>( _node ? _node-&gt;LastChildElement( name ) : 0 );</div><div class="line"><a name="l01986"></a><span class="lineno"> 1986</span>&#160;    }</div><div class="line"><a name="l01988"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_handle.html#a428374e756f4db4cbc287fec64eae02c"> 1988</a></span>&#160;    <a class="code" href="classtinyxml2_1_1_x_m_l_handle.html">XMLHandle</a> <a class="code" href="classtinyxml2_1_1_x_m_l_handle.html#a428374e756f4db4cbc287fec64eae02c">PreviousSibling</a>()                                             {</div><div class="line"><a name="l01989"></a><span class="lineno"> 1989</span>&#160;        <span class="keywordflow">return</span> <a class="code" href="classtinyxml2_1_1_x_m_l_handle.html">XMLHandle</a>( _node ? _node-&gt;PreviousSibling() : 0 );</div><div class="line"><a name="l01990"></a><span class="lineno"> 1990</span>&#160;    }</div><div class="line"><a name="l01992"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_handle.html#a786957e498039554ed334cdc36612a7e"> 1992</a></span>&#160;    <a class="code" href="classtinyxml2_1_1_x_m_l_handle.html">XMLHandle</a> <a class="code" href="classtinyxml2_1_1_x_m_l_handle.html#a786957e498039554ed334cdc36612a7e">PreviousSiblingElement</a>( <span class="keyword">const</span> <span class="keywordtype">char</span>* name = 0 )                {</div><div class="line"><a name="l01993"></a><span class="lineno"> 1993</span>&#160;        <span class="keywordflow">return</span> <a class="code" href="classtinyxml2_1_1_x_m_l_handle.html">XMLHandle</a>( _node ? _node-&gt;PreviousSiblingElement( name ) : 0 );</div><div class="line"><a name="l01994"></a><span class="lineno"> 1994</span>&#160;    }</div><div class="line"><a name="l01996"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_handle.html#aad2eccc7c7c7b18145877c978c3850b5"> 1996</a></span>&#160;    <a class="code" href="classtinyxml2_1_1_x_m_l_handle.html">XMLHandle</a> <a class="code" href="classtinyxml2_1_1_x_m_l_handle.html#aad2eccc7c7c7b18145877c978c3850b5">NextSibling</a>()                                                 {</div><div class="line"><a name="l01997"></a><span class="lineno"> 1997</span>&#160;        <span class="keywordflow">return</span> <a class="code" href="classtinyxml2_1_1_x_m_l_handle.html">XMLHandle</a>( _node ? _node-&gt;NextSibling() : 0 );</div><div class="line"><a name="l01998"></a><span class="lineno"> 1998</span>&#160;    }</div><div class="line"><a name="l02000"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_handle.html#ae41d88ee061f3c49a081630ff753b2c5"> 2000</a></span>&#160;    <a class="code" href="classtinyxml2_1_1_x_m_l_handle.html">XMLHandle</a> <a class="code" href="classtinyxml2_1_1_x_m_l_handle.html#ae41d88ee061f3c49a081630ff753b2c5">NextSiblingElement</a>( <span class="keyword">const</span> <span class="keywordtype">char</span>* name = 0 )                    {</div><div class="line"><a name="l02001"></a><span class="lineno"> 2001</span>&#160;        <span class="keywordflow">return</span> <a class="code" href="classtinyxml2_1_1_x_m_l_handle.html">XMLHandle</a>( _node ? _node-&gt;NextSiblingElement( name ) : 0 );</div><div class="line"><a name="l02002"></a><span class="lineno"> 2002</span>&#160;    }</div><div class="line"><a name="l02003"></a><span class="lineno"> 2003</span>&#160;</div><div class="line"><a name="l02005"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_handle.html#a03ea6ec970a021b71bf1219a0f6717df"> 2005</a></span>&#160;    <a class="code" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a>* <a class="code" href="classtinyxml2_1_1_x_m_l_handle.html#a03ea6ec970a021b71bf1219a0f6717df">ToNode</a>()                           {</div><div class="line"><a name="l02006"></a><span class="lineno"> 2006</span>&#160;        <span class="keywordflow">return</span> _node;</div><div class="line"><a name="l02007"></a><span class="lineno"> 2007</span>&#160;    }</div><div class="line"><a name="l02009"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_handle.html#a5e73ed8f3f6f9619d5a8bb1862c47d99"> 2009</a></span>&#160;    <a class="code" href="classtinyxml2_1_1_x_m_l_element.html">XMLElement</a>* <a class="code" href="classtinyxml2_1_1_x_m_l_handle.html#a5e73ed8f3f6f9619d5a8bb1862c47d99">ToElement</a>()                     {</div><div class="line"><a name="l02010"></a><span class="lineno"> 2010</span>&#160;        <span class="keywordflow">return</span> ( _node ? _node-&gt;ToElement() : 0 );</div><div class="line"><a name="l02011"></a><span class="lineno"> 2011</span>&#160;    }</div><div class="line"><a name="l02013"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_handle.html#a6ab9e8cbfb41417246e5657e3842c62a"> 2013</a></span>&#160;    <a class="code" href="classtinyxml2_1_1_x_m_l_text.html">XMLText</a>* <a class="code" href="classtinyxml2_1_1_x_m_l_handle.html#a6ab9e8cbfb41417246e5657e3842c62a">ToText</a>()                           {</div><div class="line"><a name="l02014"></a><span class="lineno"> 2014</span>&#160;        <span class="keywordflow">return</span> ( _node ? _node-&gt;ToText() : 0 );</div><div class="line"><a name="l02015"></a><span class="lineno"> 2015</span>&#160;    }</div><div class="line"><a name="l02017"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_handle.html#aa387368a1ad8d843a9f12df863d298de"> 2017</a></span>&#160;    <a class="code" href="classtinyxml2_1_1_x_m_l_unknown.html">XMLUnknown</a>* <a class="code" href="classtinyxml2_1_1_x_m_l_handle.html#aa387368a1ad8d843a9f12df863d298de">ToUnknown</a>()                     {</div><div class="line"><a name="l02018"></a><span class="lineno"> 2018</span>&#160;        <span class="keywordflow">return</span> ( _node ? _node-&gt;ToUnknown() : 0 );</div><div class="line"><a name="l02019"></a><span class="lineno"> 2019</span>&#160;    }</div><div class="line"><a name="l02021"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_handle.html#a108858be7ee3eb53f73b5194c1aa8ff0"> 2021</a></span>&#160;    <a class="code" href="classtinyxml2_1_1_x_m_l_declaration.html">XMLDeclaration</a>* <a class="code" href="classtinyxml2_1_1_x_m_l_handle.html#a108858be7ee3eb53f73b5194c1aa8ff0">ToDeclaration</a>()             {</div><div class="line"><a name="l02022"></a><span class="lineno"> 2022</span>&#160;        <span class="keywordflow">return</span> ( _node ? _node-&gt;ToDeclaration() : 0 );</div><div class="line"><a name="l02023"></a><span class="lineno"> 2023</span>&#160;    }</div><div class="line"><a name="l02024"></a><span class="lineno"> 2024</span>&#160;</div><div class="line"><a name="l02025"></a><span class="lineno"> 2025</span>&#160;<span class="keyword">private</span>:</div><div class="line"><a name="l02026"></a><span class="lineno"> 2026</span>&#160;    <a class="code" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a>* _node;</div><div class="line"><a name="l02027"></a><span class="lineno"> 2027</span>&#160;};</div><div class="line"><a name="l02028"></a><span class="lineno"> 2028</span>&#160;</div><div class="line"><a name="l02029"></a><span class="lineno"> 2029</span>&#160;</div><div class="line"><a name="l02034"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_const_handle.html"> 2034</a></span>&#160;<span class="keyword">class </span>TINYXML2_LIB <a class="code" href="classtinyxml2_1_1_x_m_l_const_handle.html">XMLConstHandle</a></div><div class="line"><a name="l02035"></a><span class="lineno"> 2035</span>&#160;{</div><div class="line"><a name="l02036"></a><span class="lineno"> 2036</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l02037"></a><span class="lineno"> 2037</span>&#160;    <a class="code" href="classtinyxml2_1_1_x_m_l_const_handle.html">XMLConstHandle</a>( <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a>* node ) : _node( node ) {</div><div class="line"><a name="l02038"></a><span class="lineno"> 2038</span>&#160;    }</div><div class="line"><a name="l02039"></a><span class="lineno"> 2039</span>&#160;    <a class="code" href="classtinyxml2_1_1_x_m_l_const_handle.html">XMLConstHandle</a>( <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a>&amp; node ) : _node( &amp;node ) {</div><div class="line"><a name="l02040"></a><span class="lineno"> 2040</span>&#160;    }</div><div class="line"><a name="l02041"></a><span class="lineno"> 2041</span>&#160;    <a class="code" href="classtinyxml2_1_1_x_m_l_const_handle.html">XMLConstHandle</a>( <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_const_handle.html">XMLConstHandle</a>&amp; ref ) : _node( ref._node ) {</div><div class="line"><a name="l02042"></a><span class="lineno"> 2042</span>&#160;    }</div><div class="line"><a name="l02043"></a><span class="lineno"> 2043</span>&#160;</div><div class="line"><a name="l02044"></a><span class="lineno"> 2044</span>&#160;    <a class="code" href="classtinyxml2_1_1_x_m_l_const_handle.html">XMLConstHandle</a>&amp; operator=( <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_const_handle.html">XMLConstHandle</a>&amp; ref )                          {</div><div class="line"><a name="l02045"></a><span class="lineno"> 2045</span>&#160;        _node = ref._node;</div><div class="line"><a name="l02046"></a><span class="lineno"> 2046</span>&#160;        <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div><div class="line"><a name="l02047"></a><span class="lineno"> 2047</span>&#160;    }</div><div class="line"><a name="l02048"></a><span class="lineno"> 2048</span>&#160;</div><div class="line"><a name="l02049"></a><span class="lineno"> 2049</span>&#160;    <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_const_handle.html">XMLConstHandle</a> FirstChild()<span class="keyword"> const                                         </span>{</div><div class="line"><a name="l02050"></a><span class="lineno"> 2050</span>&#160;        <span class="keywordflow">return</span> <a class="code" href="classtinyxml2_1_1_x_m_l_const_handle.html">XMLConstHandle</a>( _node ? _node-&gt;FirstChild() : 0 );</div><div class="line"><a name="l02051"></a><span class="lineno"> 2051</span>&#160;    }</div><div class="line"><a name="l02052"></a><span class="lineno"> 2052</span>&#160;    <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_const_handle.html">XMLConstHandle</a> FirstChildElement( <span class="keyword">const</span> <span class="keywordtype">char</span>* name = 0 )<span class="keyword"> const                </span>{</div><div class="line"><a name="l02053"></a><span class="lineno"> 2053</span>&#160;        <span class="keywordflow">return</span> <a class="code" href="classtinyxml2_1_1_x_m_l_const_handle.html">XMLConstHandle</a>( _node ? _node-&gt;FirstChildElement( name ) : 0 );</div><div class="line"><a name="l02054"></a><span class="lineno"> 2054</span>&#160;    }</div><div class="line"><a name="l02055"></a><span class="lineno"> 2055</span>&#160;    <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_const_handle.html">XMLConstHandle</a> LastChild()<span class="keyword">    const                                       </span>{</div><div class="line"><a name="l02056"></a><span class="lineno"> 2056</span>&#160;        <span class="keywordflow">return</span> <a class="code" href="classtinyxml2_1_1_x_m_l_const_handle.html">XMLConstHandle</a>( _node ? _node-&gt;LastChild() : 0 );</div><div class="line"><a name="l02057"></a><span class="lineno"> 2057</span>&#160;    }</div><div class="line"><a name="l02058"></a><span class="lineno"> 2058</span>&#160;    <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_const_handle.html">XMLConstHandle</a> LastChildElement( <span class="keyword">const</span> <span class="keywordtype">char</span>* name = 0 )<span class="keyword"> const             </span>{</div><div class="line"><a name="l02059"></a><span class="lineno"> 2059</span>&#160;        <span class="keywordflow">return</span> <a class="code" href="classtinyxml2_1_1_x_m_l_const_handle.html">XMLConstHandle</a>( _node ? _node-&gt;LastChildElement( name ) : 0 );</div><div class="line"><a name="l02060"></a><span class="lineno"> 2060</span>&#160;    }</div><div class="line"><a name="l02061"></a><span class="lineno"> 2061</span>&#160;    <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_const_handle.html">XMLConstHandle</a> PreviousSibling()<span class="keyword"> const                                    </span>{</div><div class="line"><a name="l02062"></a><span class="lineno"> 2062</span>&#160;        <span class="keywordflow">return</span> <a class="code" href="classtinyxml2_1_1_x_m_l_const_handle.html">XMLConstHandle</a>( _node ? _node-&gt;PreviousSibling() : 0 );</div><div class="line"><a name="l02063"></a><span class="lineno"> 2063</span>&#160;    }</div><div class="line"><a name="l02064"></a><span class="lineno"> 2064</span>&#160;    <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_const_handle.html">XMLConstHandle</a> PreviousSiblingElement( <span class="keyword">const</span> <span class="keywordtype">char</span>* name = 0 )<span class="keyword"> const       </span>{</div><div class="line"><a name="l02065"></a><span class="lineno"> 2065</span>&#160;        <span class="keywordflow">return</span> <a class="code" href="classtinyxml2_1_1_x_m_l_const_handle.html">XMLConstHandle</a>( _node ? _node-&gt;PreviousSiblingElement( name ) : 0 );</div><div class="line"><a name="l02066"></a><span class="lineno"> 2066</span>&#160;    }</div><div class="line"><a name="l02067"></a><span class="lineno"> 2067</span>&#160;    <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_const_handle.html">XMLConstHandle</a> NextSibling()<span class="keyword"> const                                        </span>{</div><div class="line"><a name="l02068"></a><span class="lineno"> 2068</span>&#160;        <span class="keywordflow">return</span> <a class="code" href="classtinyxml2_1_1_x_m_l_const_handle.html">XMLConstHandle</a>( _node ? _node-&gt;NextSibling() : 0 );</div><div class="line"><a name="l02069"></a><span class="lineno"> 2069</span>&#160;    }</div><div class="line"><a name="l02070"></a><span class="lineno"> 2070</span>&#160;    <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_const_handle.html">XMLConstHandle</a> NextSiblingElement( <span class="keyword">const</span> <span class="keywordtype">char</span>* name = 0 )<span class="keyword"> const           </span>{</div><div class="line"><a name="l02071"></a><span class="lineno"> 2071</span>&#160;        <span class="keywordflow">return</span> <a class="code" href="classtinyxml2_1_1_x_m_l_const_handle.html">XMLConstHandle</a>( _node ? _node-&gt;NextSiblingElement( name ) : 0 );</div><div class="line"><a name="l02072"></a><span class="lineno"> 2072</span>&#160;    }</div><div class="line"><a name="l02073"></a><span class="lineno"> 2073</span>&#160;</div><div class="line"><a name="l02074"></a><span class="lineno"> 2074</span>&#160;</div><div class="line"><a name="l02075"></a><span class="lineno"> 2075</span>&#160;    <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a>* ToNode()<span class="keyword"> const               </span>{</div><div class="line"><a name="l02076"></a><span class="lineno"> 2076</span>&#160;        <span class="keywordflow">return</span> _node;</div><div class="line"><a name="l02077"></a><span class="lineno"> 2077</span>&#160;    }</div><div class="line"><a name="l02078"></a><span class="lineno"> 2078</span>&#160;    <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_element.html">XMLElement</a>* ToElement()<span class="keyword"> const         </span>{</div><div class="line"><a name="l02079"></a><span class="lineno"> 2079</span>&#160;        <span class="keywordflow">return</span> ( _node ? _node-&gt;ToElement() : 0 );</div><div class="line"><a name="l02080"></a><span class="lineno"> 2080</span>&#160;    }</div><div class="line"><a name="l02081"></a><span class="lineno"> 2081</span>&#160;    <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_text.html">XMLText</a>* ToText()<span class="keyword"> const               </span>{</div><div class="line"><a name="l02082"></a><span class="lineno"> 2082</span>&#160;        <span class="keywordflow">return</span> ( _node ? _node-&gt;ToText() : 0 );</div><div class="line"><a name="l02083"></a><span class="lineno"> 2083</span>&#160;    }</div><div class="line"><a name="l02084"></a><span class="lineno"> 2084</span>&#160;    <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_unknown.html">XMLUnknown</a>* ToUnknown()<span class="keyword"> const         </span>{</div><div class="line"><a name="l02085"></a><span class="lineno"> 2085</span>&#160;        <span class="keywordflow">return</span> ( _node ? _node-&gt;ToUnknown() : 0 );</div><div class="line"><a name="l02086"></a><span class="lineno"> 2086</span>&#160;    }</div><div class="line"><a name="l02087"></a><span class="lineno"> 2087</span>&#160;    <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_declaration.html">XMLDeclaration</a>* ToDeclaration()<span class="keyword"> const </span>{</div><div class="line"><a name="l02088"></a><span class="lineno"> 2088</span>&#160;        <span class="keywordflow">return</span> ( _node ? _node-&gt;ToDeclaration() : 0 );</div><div class="line"><a name="l02089"></a><span class="lineno"> 2089</span>&#160;    }</div><div class="line"><a name="l02090"></a><span class="lineno"> 2090</span>&#160;</div><div class="line"><a name="l02091"></a><span class="lineno"> 2091</span>&#160;<span class="keyword">private</span>:</div><div class="line"><a name="l02092"></a><span class="lineno"> 2092</span>&#160;    <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a>* _node;</div><div class="line"><a name="l02093"></a><span class="lineno"> 2093</span>&#160;};</div><div class="line"><a name="l02094"></a><span class="lineno"> 2094</span>&#160;</div><div class="line"><a name="l02095"></a><span class="lineno"> 2095</span>&#160;</div><div class="line"><a name="l02138"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_printer.html"> 2138</a></span>&#160;<span class="keyword">class </span>TINYXML2_LIB <a class="code" href="classtinyxml2_1_1_x_m_l_printer.html">XMLPrinter</a> : <span class="keyword">public</span> <a class="code" href="classtinyxml2_1_1_x_m_l_visitor.html">XMLVisitor</a></div><div class="line"><a name="l02139"></a><span class="lineno"> 2139</span>&#160;{</div><div class="line"><a name="l02140"></a><span class="lineno"> 2140</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l02147"></a><span class="lineno"> 2147</span>&#160;    <a class="code" href="classtinyxml2_1_1_x_m_l_printer.html">XMLPrinter</a>( FILE* file=0, <span class="keywordtype">bool</span> compact = <span class="keyword">false</span>, <span class="keywordtype">int</span> depth = 0 );</div><div class="line"><a name="l02148"></a><span class="lineno"> 2148</span>&#160;    <span class="keyword">virtual</span> ~<a class="code" href="classtinyxml2_1_1_x_m_l_printer.html">XMLPrinter</a>()   {}</div><div class="line"><a name="l02149"></a><span class="lineno"> 2149</span>&#160;</div><div class="line"><a name="l02151"></a><span class="lineno"> 2151</span>&#160;    <span class="keywordtype">void</span> PushHeader( <span class="keywordtype">bool</span> writeBOM, <span class="keywordtype">bool</span> writeDeclaration );</div><div class="line"><a name="l02155"></a><span class="lineno"> 2155</span>&#160;    <span class="keywordtype">void</span> OpenElement( <span class="keyword">const</span> <span class="keywordtype">char</span>* name, <span class="keywordtype">bool</span> compactMode=<span class="keyword">false</span> );</div><div class="line"><a name="l02157"></a><span class="lineno"> 2157</span>&#160;    <span class="keywordtype">void</span> PushAttribute( <span class="keyword">const</span> <span class="keywordtype">char</span>* name, <span class="keyword">const</span> <span class="keywordtype">char</span>* value );</div><div class="line"><a name="l02158"></a><span class="lineno"> 2158</span>&#160;    <span class="keywordtype">void</span> PushAttribute( <span class="keyword">const</span> <span class="keywordtype">char</span>* name, <span class="keywordtype">int</span> value );</div><div class="line"><a name="l02159"></a><span class="lineno"> 2159</span>&#160;    <span class="keywordtype">void</span> PushAttribute( <span class="keyword">const</span> <span class="keywordtype">char</span>* name, <span class="keywordtype">unsigned</span> value );</div><div class="line"><a name="l02160"></a><span class="lineno"> 2160</span>&#160;    <span class="keywordtype">void</span> PushAttribute(<span class="keyword">const</span> <span class="keywordtype">char</span>* name, int64_t value);</div><div class="line"><a name="l02161"></a><span class="lineno"> 2161</span>&#160;    <span class="keywordtype">void</span> PushAttribute( <span class="keyword">const</span> <span class="keywordtype">char</span>* name, <span class="keywordtype">bool</span> value );</div><div class="line"><a name="l02162"></a><span class="lineno"> 2162</span>&#160;    <span class="keywordtype">void</span> PushAttribute( <span class="keyword">const</span> <span class="keywordtype">char</span>* name, <span class="keywordtype">double</span> value );</div><div class="line"><a name="l02164"></a><span class="lineno"> 2164</span>&#160;    <span class="keyword">virtual</span> <span class="keywordtype">void</span> CloseElement( <span class="keywordtype">bool</span> compactMode=<span class="keyword">false</span> );</div><div class="line"><a name="l02165"></a><span class="lineno"> 2165</span>&#160;</div><div class="line"><a name="l02167"></a><span class="lineno"> 2167</span>&#160;    <span class="keywordtype">void</span> PushText( <span class="keyword">const</span> <span class="keywordtype">char</span>* text, <span class="keywordtype">bool</span> cdata=<span class="keyword">false</span> );</div><div class="line"><a name="l02169"></a><span class="lineno"> 2169</span>&#160;    <span class="keywordtype">void</span> PushText( <span class="keywordtype">int</span> value );</div><div class="line"><a name="l02171"></a><span class="lineno"> 2171</span>&#160;    <span class="keywordtype">void</span> PushText( <span class="keywordtype">unsigned</span> value );</div><div class="line"><a name="l02173"></a><span class="lineno"> 2173</span>&#160;    <span class="keywordtype">void</span> PushText(int64_t value);</div><div class="line"><a name="l02175"></a><span class="lineno"> 2175</span>&#160;    <span class="keywordtype">void</span> PushText( <span class="keywordtype">bool</span> value );</div><div class="line"><a name="l02177"></a><span class="lineno"> 2177</span>&#160;    <span class="keywordtype">void</span> PushText( <span class="keywordtype">float</span> value );</div><div class="line"><a name="l02179"></a><span class="lineno"> 2179</span>&#160;    <span class="keywordtype">void</span> PushText( <span class="keywordtype">double</span> value );</div><div class="line"><a name="l02180"></a><span class="lineno"> 2180</span>&#160;</div><div class="line"><a name="l02182"></a><span class="lineno"> 2182</span>&#160;    <span class="keywordtype">void</span> PushComment( <span class="keyword">const</span> <span class="keywordtype">char</span>* comment );</div><div class="line"><a name="l02183"></a><span class="lineno"> 2183</span>&#160;</div><div class="line"><a name="l02184"></a><span class="lineno"> 2184</span>&#160;    <span class="keywordtype">void</span> PushDeclaration( <span class="keyword">const</span> <span class="keywordtype">char</span>* value );</div><div class="line"><a name="l02185"></a><span class="lineno"> 2185</span>&#160;    <span class="keywordtype">void</span> PushUnknown( <span class="keyword">const</span> <span class="keywordtype">char</span>* value );</div><div class="line"><a name="l02186"></a><span class="lineno"> 2186</span>&#160;</div><div class="line"><a name="l02187"></a><span class="lineno"> 2187</span>&#160;    <span class="keyword">virtual</span> <span class="keywordtype">bool</span> VisitEnter( <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_document.html">XMLDocument</a>&amp; <span class="comment">/*doc*/</span> );</div><div class="line"><a name="l02188"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_printer.html#a15fc1f2b922f540917dcf52808737b29"> 2188</a></span>&#160;    <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classtinyxml2_1_1_x_m_l_printer.html#a15fc1f2b922f540917dcf52808737b29">VisitExit</a>( <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_document.html">XMLDocument</a>&amp; <span class="comment">/*doc*/</span> )            {</div><div class="line"><a name="l02189"></a><span class="lineno"> 2189</span>&#160;        <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l02190"></a><span class="lineno"> 2190</span>&#160;    }</div><div class="line"><a name="l02191"></a><span class="lineno"> 2191</span>&#160;</div><div class="line"><a name="l02192"></a><span class="lineno"> 2192</span>&#160;    <span class="keyword">virtual</span> <span class="keywordtype">bool</span> VisitEnter( <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_element.html">XMLElement</a>&amp; element, <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_attribute.html">XMLAttribute</a>* attribute );</div><div class="line"><a name="l02193"></a><span class="lineno"> 2193</span>&#160;    <span class="keyword">virtual</span> <span class="keywordtype">bool</span> VisitExit( <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_element.html">XMLElement</a>&amp; element );</div><div class="line"><a name="l02194"></a><span class="lineno"> 2194</span>&#160;</div><div class="line"><a name="l02195"></a><span class="lineno"> 2195</span>&#160;    <span class="keyword">virtual</span> <span class="keywordtype">bool</span> Visit( <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_text.html">XMLText</a>&amp; text );</div><div class="line"><a name="l02196"></a><span class="lineno"> 2196</span>&#160;    <span class="keyword">virtual</span> <span class="keywordtype">bool</span> Visit( <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_comment.html">XMLComment</a>&amp; comment );</div><div class="line"><a name="l02197"></a><span class="lineno"> 2197</span>&#160;    <span class="keyword">virtual</span> <span class="keywordtype">bool</span> Visit( <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_declaration.html">XMLDeclaration</a>&amp; declaration );</div><div class="line"><a name="l02198"></a><span class="lineno"> 2198</span>&#160;    <span class="keyword">virtual</span> <span class="keywordtype">bool</span> Visit( <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_unknown.html">XMLUnknown</a>&amp; unknown );</div><div class="line"><a name="l02199"></a><span class="lineno"> 2199</span>&#160;</div><div class="line"><a name="l02204"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_printer.html#a180671d73844f159f2d4aafbc11d106e"> 2204</a></span>&#160;    <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="classtinyxml2_1_1_x_m_l_printer.html#a180671d73844f159f2d4aafbc11d106e">CStr</a>()<span class="keyword"> const </span>{</div><div class="line"><a name="l02205"></a><span class="lineno"> 2205</span>&#160;        <span class="keywordflow">return</span> _buffer.Mem();</div><div class="line"><a name="l02206"></a><span class="lineno"> 2206</span>&#160;    }</div><div class="line"><a name="l02212"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_printer.html#a3256cf3523d4898b91abb18b924be04c"> 2212</a></span>&#160;    <span class="keywordtype">int</span> <a class="code" href="classtinyxml2_1_1_x_m_l_printer.html#a3256cf3523d4898b91abb18b924be04c">CStrSize</a>()<span class="keyword"> const </span>{</div><div class="line"><a name="l02213"></a><span class="lineno"> 2213</span>&#160;        <span class="keywordflow">return</span> _buffer.Size();</div><div class="line"><a name="l02214"></a><span class="lineno"> 2214</span>&#160;    }</div><div class="line"><a name="l02219"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_printer.html#a216157765b7267bf389975b1cbf9a909"> 2219</a></span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classtinyxml2_1_1_x_m_l_printer.html#a216157765b7267bf389975b1cbf9a909">ClearBuffer</a>() {</div><div class="line"><a name="l02220"></a><span class="lineno"> 2220</span>&#160;        _buffer.Clear();</div><div class="line"><a name="l02221"></a><span class="lineno"> 2221</span>&#160;        _buffer.Push(0);</div><div class="line"><a name="l02222"></a><span class="lineno"> 2222</span>&#160;        _firstElement = <span class="keyword">true</span>;</div><div class="line"><a name="l02223"></a><span class="lineno"> 2223</span>&#160;    }</div><div class="line"><a name="l02224"></a><span class="lineno"> 2224</span>&#160;</div><div class="line"><a name="l02225"></a><span class="lineno"> 2225</span>&#160;<span class="keyword">protected</span>:</div><div class="line"><a name="l02226"></a><span class="lineno"> 2226</span>&#160;    <span class="keyword">virtual</span> <span class="keywordtype">bool</span> CompactMode( <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_element.html">XMLElement</a>&amp; )   { <span class="keywordflow">return</span> _compactMode; }</div><div class="line"><a name="l02227"></a><span class="lineno"> 2227</span>&#160;</div><div class="line"><a name="l02231"></a><span class="lineno"> 2231</span>&#160;    <span class="keyword">virtual</span> <span class="keywordtype">void</span> PrintSpace( <span class="keywordtype">int</span> depth );</div><div class="line"><a name="l02232"></a><span class="lineno"> 2232</span>&#160;    <span class="keywordtype">void</span> Print( <span class="keyword">const</span> <span class="keywordtype">char</span>* format, ... );</div><div class="line"><a name="l02233"></a><span class="lineno"> 2233</span>&#160;    <span class="keywordtype">void</span> Write( <span class="keyword">const</span> <span class="keywordtype">char</span>* data, <span class="keywordtype">size_t</span> size );</div><div class="line"><a name="l02234"></a><span class="lineno"> 2234</span>&#160;    <span class="keyword">inline</span> <span class="keywordtype">void</span> Write( <span class="keyword">const</span> <span class="keywordtype">char</span>* data )           { Write( data, strlen( data ) ); }</div><div class="line"><a name="l02235"></a><span class="lineno"> 2235</span>&#160;    <span class="keywordtype">void</span> Putc( <span class="keywordtype">char</span> ch );</div><div class="line"><a name="l02236"></a><span class="lineno"> 2236</span>&#160;</div><div class="line"><a name="l02237"></a><span class="lineno"> 2237</span>&#160;    <span class="keywordtype">void</span> SealElementIfJustOpened();</div><div class="line"><a name="l02238"></a><span class="lineno"> 2238</span>&#160;    <span class="keywordtype">bool</span> _elementJustOpened;</div><div class="line"><a name="l02239"></a><span class="lineno"> 2239</span>&#160;    DynArray&lt; const char*, 10 &gt; _stack;</div><div class="line"><a name="l02240"></a><span class="lineno"> 2240</span>&#160;</div><div class="line"><a name="l02241"></a><span class="lineno"> 2241</span>&#160;<span class="keyword">private</span>:</div><div class="line"><a name="l02242"></a><span class="lineno"> 2242</span>&#160;    <span class="keywordtype">void</span> PrintString( <span class="keyword">const</span> <span class="keywordtype">char</span>*, <span class="keywordtype">bool</span> restrictedEntitySet );  <span class="comment">// prints out, after detecting entities.</span></div><div class="line"><a name="l02243"></a><span class="lineno"> 2243</span>&#160;</div><div class="line"><a name="l02244"></a><span class="lineno"> 2244</span>&#160;    <span class="keywordtype">bool</span> _firstElement;</div><div class="line"><a name="l02245"></a><span class="lineno"> 2245</span>&#160;    FILE* _fp;</div><div class="line"><a name="l02246"></a><span class="lineno"> 2246</span>&#160;    <span class="keywordtype">int</span> _depth;</div><div class="line"><a name="l02247"></a><span class="lineno"> 2247</span>&#160;    <span class="keywordtype">int</span> _textDepth;</div><div class="line"><a name="l02248"></a><span class="lineno"> 2248</span>&#160;    <span class="keywordtype">bool</span> _processEntities;</div><div class="line"><a name="l02249"></a><span class="lineno"> 2249</span>&#160;    <span class="keywordtype">bool</span> _compactMode;</div><div class="line"><a name="l02250"></a><span class="lineno"> 2250</span>&#160;</div><div class="line"><a name="l02251"></a><span class="lineno"> 2251</span>&#160;    <span class="keyword">enum</span> {</div><div class="line"><a name="l02252"></a><span class="lineno"> 2252</span>&#160;        ENTITY_RANGE = 64,</div><div class="line"><a name="l02253"></a><span class="lineno"> 2253</span>&#160;        BUF_SIZE = 200</div><div class="line"><a name="l02254"></a><span class="lineno"> 2254</span>&#160;    };</div><div class="line"><a name="l02255"></a><span class="lineno"> 2255</span>&#160;    <span class="keywordtype">bool</span> _entityFlag[ENTITY_RANGE];</div><div class="line"><a name="l02256"></a><span class="lineno"> 2256</span>&#160;    <span class="keywordtype">bool</span> _restrictedEntityFlag[ENTITY_RANGE];</div><div class="line"><a name="l02257"></a><span class="lineno"> 2257</span>&#160;</div><div class="line"><a name="l02258"></a><span class="lineno"> 2258</span>&#160;    DynArray&lt; char, 20 &gt; _buffer;</div><div class="line"><a name="l02259"></a><span class="lineno"> 2259</span>&#160;</div><div class="line"><a name="l02260"></a><span class="lineno"> 2260</span>&#160;    <span class="comment">// Prohibit cloning, intentionally not implemented</span></div><div class="line"><a name="l02261"></a><span class="lineno"> 2261</span>&#160;    <a class="code" href="classtinyxml2_1_1_x_m_l_printer.html">XMLPrinter</a>( <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_printer.html">XMLPrinter</a>&amp; );</div><div class="line"><a name="l02262"></a><span class="lineno"> 2262</span>&#160;    <a class="code" href="classtinyxml2_1_1_x_m_l_printer.html">XMLPrinter</a>&amp; operator=( <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_printer.html">XMLPrinter</a>&amp; );</div><div class="line"><a name="l02263"></a><span class="lineno"> 2263</span>&#160;};</div><div class="line"><a name="l02264"></a><span class="lineno"> 2264</span>&#160;</div><div class="line"><a name="l02265"></a><span class="lineno"> 2265</span>&#160;</div><div class="line"><a name="l02266"></a><span class="lineno"> 2266</span>&#160;}   <span class="comment">// tinyxml2</span></div><div class="line"><a name="l02267"></a><span class="lineno"> 2267</span>&#160;</div><div class="line"><a name="l02268"></a><span class="lineno"> 2268</span>&#160;<span class="preprocessor">#if defined(_MSC_VER)</span></div><div class="line"><a name="l02269"></a><span class="lineno"> 2269</span>&#160;<span class="preprocessor">#   pragma warning(pop)</span></div><div class="line"><a name="l02270"></a><span class="lineno"> 2270</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l02271"></a><span class="lineno"> 2271</span>&#160;</div><div class="line"><a name="l02272"></a><span class="lineno"> 2272</span>&#160;<span class="preprocessor">#endif // TINYXML2_INCLUDED</span></div><div class="ttc" id="classtinyxml2_1_1_x_m_l_element_html_a7c0955d80b6f8d196744eacb0f6e90a8"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_element.html#a7c0955d80b6f8d196744eacb0f6e90a8">tinyxml2::XMLElement::QueryInt64Attribute</a></div><div class="ttdeci">XMLError QueryInt64Attribute(const char *name, int64_t *value) const</div><div class="ttdoc">See QueryIntAttribute() </div><div class="ttdef"><b>Definition:</b> tinyxml2.h:1331</div></div>
+<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment">Original code by Lee Thomason (www.grinninglizard.com)</span></div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment">This software is provided &#39;as-is&#39;, without any express or implied</span></div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment">warranty. In no event will the authors be held liable for any</span></div><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment">damages arising from the use of this software.</span></div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment">Permission is granted to anyone to use this software for any</span></div><div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment">purpose, including commercial applications, and to alter it and</span></div><div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment">redistribute it freely, subject to the following restrictions:</span></div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="comment">1. The origin of this software must not be misrepresented; you must</span></div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="comment">not claim that you wrote the original software. If you use this</span></div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="comment">software in a product, an acknowledgment in the product documentation</span></div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="comment">would be appreciated but is not required.</span></div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="comment">2. Altered source versions must be plainly marked as such, and</span></div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="comment">must not be misrepresented as being the original software.</span></div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="comment">3. This notice may not be removed or altered from any source</span></div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="comment">distribution.</span></div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;<span class="comment">*/</span></div><div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;</div><div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;<span class="preprocessor">#ifndef TINYXML2_INCLUDED</span></div><div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;<span class="preprocessor">#define TINYXML2_INCLUDED</span></div><div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;</div><div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;<span class="preprocessor">#if defined(ANDROID_NDK) || defined(__BORLANDC__) || defined(__QNXNTO__)</span></div><div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;<span class="preprocessor">#   include &lt;ctype.h&gt;</span></div><div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;<span class="preprocessor">#   include &lt;limits.h&gt;</span></div><div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;<span class="preprocessor">#   include &lt;stdio.h&gt;</span></div><div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;<span class="preprocessor">#   include &lt;stdlib.h&gt;</span></div><div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;<span class="preprocessor">#   include &lt;string.h&gt;</span></div><div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;<span class="preprocessor">#   if defined(__PS3__)</span></div><div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;<span class="preprocessor">#       include &lt;stddef.h&gt;</span></div><div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;<span class="preprocessor">#   endif</span></div><div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160;<span class="preprocessor">#else</span></div><div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;<span class="preprocessor">#   include &lt;cctype&gt;</span></div><div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;<span class="preprocessor">#   include &lt;climits&gt;</span></div><div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160;<span class="preprocessor">#   include &lt;cstdio&gt;</span></div><div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;<span class="preprocessor">#   include &lt;cstdlib&gt;</span></div><div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160;<span class="preprocessor">#   include &lt;cstring&gt;</span></div><div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;<span class="preprocessor">#include &lt;stdint.h&gt;</span></div><div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160;</div><div class="line"><a name="l00045"></a><span class="lineno">   45</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00046"></a><span class="lineno">   46</span>&#160;<span class="comment">   TODO: intern strings instead of allocation.</span></div><div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160;<span class="comment">*/</span></div><div class="line"><a name="l00048"></a><span class="lineno">   48</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160;<span class="comment">    gcc:</span></div><div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160;<span class="comment">        g++ -Wall -DTINYXML2_DEBUG tinyxml2.cpp xmltest.cpp -o gccxmltest.exe</span></div><div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00052"></a><span class="lineno">   52</span>&#160;<span class="comment">    Formatting, Artistic Style:</span></div><div class="line"><a name="l00053"></a><span class="lineno">   53</span>&#160;<span class="comment">        AStyle.exe --style=1tbs --indent-switches --break-closing-brackets --indent-preprocessor tinyxml2.cpp tinyxml2.h</span></div><div class="line"><a name="l00054"></a><span class="lineno">   54</span>&#160;<span class="comment">*/</span></div><div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160;</div><div class="line"><a name="l00056"></a><span class="lineno">   56</span>&#160;<span class="preprocessor">#if defined( _DEBUG ) || defined (__DEBUG__)</span></div><div class="line"><a name="l00057"></a><span class="lineno">   57</span>&#160;<span class="preprocessor">#   ifndef TINYXML2_DEBUG</span></div><div class="line"><a name="l00058"></a><span class="lineno">   58</span>&#160;<span class="preprocessor">#       define TINYXML2_DEBUG</span></div><div class="line"><a name="l00059"></a><span class="lineno">   59</span>&#160;<span class="preprocessor">#   endif</span></div><div class="line"><a name="l00060"></a><span class="lineno">   60</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00061"></a><span class="lineno">   61</span>&#160;</div><div class="line"><a name="l00062"></a><span class="lineno">   62</span>&#160;<span class="preprocessor">#ifdef _MSC_VER</span></div><div class="line"><a name="l00063"></a><span class="lineno">   63</span>&#160;<span class="preprocessor">#   pragma warning(push)</span></div><div class="line"><a name="l00064"></a><span class="lineno">   64</span>&#160;<span class="preprocessor">#   pragma warning(disable: 4251)</span></div><div class="line"><a name="l00065"></a><span class="lineno">   65</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00066"></a><span class="lineno">   66</span>&#160;</div><div class="line"><a name="l00067"></a><span class="lineno">   67</span>&#160;<span class="preprocessor">#ifdef _WIN32</span></div><div class="line"><a name="l00068"></a><span class="lineno">   68</span>&#160;<span class="preprocessor">#   ifdef TINYXML2_EXPORT</span></div><div class="line"><a name="l00069"></a><span class="lineno">   69</span>&#160;<span class="preprocessor">#       define TINYXML2_LIB __declspec(dllexport)</span></div><div class="line"><a name="l00070"></a><span class="lineno">   70</span>&#160;<span class="preprocessor">#   elif defined(TINYXML2_IMPORT)</span></div><div class="line"><a name="l00071"></a><span class="lineno">   71</span>&#160;<span class="preprocessor">#       define TINYXML2_LIB __declspec(dllimport)</span></div><div class="line"><a name="l00072"></a><span class="lineno">   72</span>&#160;<span class="preprocessor">#   else</span></div><div class="line"><a name="l00073"></a><span class="lineno">   73</span>&#160;<span class="preprocessor">#       define TINYXML2_LIB</span></div><div class="line"><a name="l00074"></a><span class="lineno">   74</span>&#160;<span class="preprocessor">#   endif</span></div><div class="line"><a name="l00075"></a><span class="lineno">   75</span>&#160;<span class="preprocessor">#elif __GNUC__ &gt;= 4</span></div><div class="line"><a name="l00076"></a><span class="lineno">   76</span>&#160;<span class="preprocessor">#   define TINYXML2_LIB __attribute__((visibility(&quot;default&quot;)))</span></div><div class="line"><a name="l00077"></a><span class="lineno">   77</span>&#160;<span class="preprocessor">#else</span></div><div class="line"><a name="l00078"></a><span class="lineno">   78</span>&#160;<span class="preprocessor">#   define TINYXML2_LIB</span></div><div class="line"><a name="l00079"></a><span class="lineno">   79</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00080"></a><span class="lineno">   80</span>&#160;</div><div class="line"><a name="l00081"></a><span class="lineno">   81</span>&#160;</div><div class="line"><a name="l00082"></a><span class="lineno">   82</span>&#160;<span class="preprocessor">#if defined(TINYXML2_DEBUG)</span></div><div class="line"><a name="l00083"></a><span class="lineno">   83</span>&#160;<span class="preprocessor">#   if defined(_MSC_VER)</span></div><div class="line"><a name="l00084"></a><span class="lineno">   84</span>&#160;<span class="preprocessor">#       // &quot;(void)0,&quot; is for suppressing C4127 warning in &quot;assert(false)&quot;, &quot;assert(true)&quot; and the like</span></div><div class="line"><a name="l00085"></a><span class="lineno">   85</span>&#160;<span class="preprocessor">#       define TIXMLASSERT( x )           if ( !((void)0,(x))) { __debugbreak(); }</span></div><div class="line"><a name="l00086"></a><span class="lineno">   86</span>&#160;<span class="preprocessor">#   elif defined (ANDROID_NDK)</span></div><div class="line"><a name="l00087"></a><span class="lineno">   87</span>&#160;<span class="preprocessor">#       include &lt;android/log.h&gt;</span></div><div class="line"><a name="l00088"></a><span class="lineno">   88</span>&#160;<span class="preprocessor">#       define TIXMLASSERT( x )           if ( !(x)) { __android_log_assert( &quot;assert&quot;, &quot;grinliz&quot;, &quot;ASSERT in &#39;%s&#39; at %d.&quot;, __FILE__, __LINE__ ); }</span></div><div class="line"><a name="l00089"></a><span class="lineno">   89</span>&#160;<span class="preprocessor">#   else</span></div><div class="line"><a name="l00090"></a><span class="lineno">   90</span>&#160;<span class="preprocessor">#       include &lt;assert.h&gt;</span></div><div class="line"><a name="l00091"></a><span class="lineno">   91</span>&#160;<span class="preprocessor">#       define TIXMLASSERT                assert</span></div><div class="line"><a name="l00092"></a><span class="lineno">   92</span>&#160;<span class="preprocessor">#   endif</span></div><div class="line"><a name="l00093"></a><span class="lineno">   93</span>&#160;<span class="preprocessor">#else</span></div><div class="line"><a name="l00094"></a><span class="lineno">   94</span>&#160;<span class="preprocessor">#   define TIXMLASSERT( x )               {}</span></div><div class="line"><a name="l00095"></a><span class="lineno">   95</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00096"></a><span class="lineno">   96</span>&#160;</div><div class="line"><a name="l00097"></a><span class="lineno">   97</span>&#160;</div><div class="line"><a name="l00098"></a><span class="lineno">   98</span>&#160;<span class="comment">/* Versioning, past 1.0.14:</span></div><div class="line"><a name="l00099"></a><span class="lineno">   99</span>&#160;<span class="comment">    http://semver.org/</span></div><div class="line"><a name="l00100"></a><span class="lineno">  100</span>&#160;<span class="comment">*/</span></div><div class="line"><a name="l00101"></a><span class="lineno">  101</span>&#160;<span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">int</span> TIXML2_MAJOR_VERSION = 7;</div><div class="line"><a name="l00102"></a><span class="lineno">  102</span>&#160;<span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">int</span> TIXML2_MINOR_VERSION = 0;</div><div class="line"><a name="l00103"></a><span class="lineno">  103</span>&#160;<span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">int</span> TIXML2_PATCH_VERSION = 0;</div><div class="line"><a name="l00104"></a><span class="lineno">  104</span>&#160;</div><div class="line"><a name="l00105"></a><span class="lineno">  105</span>&#160;<span class="preprocessor">#define TINYXML2_MAJOR_VERSION 7</span></div><div class="line"><a name="l00106"></a><span class="lineno">  106</span>&#160;<span class="preprocessor">#define TINYXML2_MINOR_VERSION 0</span></div><div class="line"><a name="l00107"></a><span class="lineno">  107</span>&#160;<span class="preprocessor">#define TINYXML2_PATCH_VERSION 0</span></div><div class="line"><a name="l00108"></a><span class="lineno">  108</span>&#160;</div><div class="line"><a name="l00109"></a><span class="lineno">  109</span>&#160;<span class="comment">// A fixed element depth limit is problematic. There needs to be a</span></div><div class="line"><a name="l00110"></a><span class="lineno">  110</span>&#160;<span class="comment">// limit to avoid a stack overflow. However, that limit varies per</span></div><div class="line"><a name="l00111"></a><span class="lineno">  111</span>&#160;<span class="comment">// system, and the capacity of the stack. On the other hand, it&#39;s a trivial</span></div><div class="line"><a name="l00112"></a><span class="lineno">  112</span>&#160;<span class="comment">// attack that can result from ill, malicious, or even correctly formed XML,</span></div><div class="line"><a name="l00113"></a><span class="lineno">  113</span>&#160;<span class="comment">// so there needs to be a limit in place.</span></div><div class="line"><a name="l00114"></a><span class="lineno">  114</span>&#160;<span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">int</span> TINYXML2_MAX_ELEMENT_DEPTH = 100;</div><div class="line"><a name="l00115"></a><span class="lineno">  115</span>&#160;</div><div class="line"><a name="l00116"></a><span class="lineno">  116</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespacetinyxml2.html">tinyxml2</a></div><div class="line"><a name="l00117"></a><span class="lineno">  117</span>&#160;{</div><div class="line"><a name="l00118"></a><span class="lineno">  118</span>&#160;<span class="keyword">class </span>XMLDocument;</div><div class="line"><a name="l00119"></a><span class="lineno">  119</span>&#160;<span class="keyword">class </span>XMLElement;</div><div class="line"><a name="l00120"></a><span class="lineno">  120</span>&#160;<span class="keyword">class </span>XMLAttribute;</div><div class="line"><a name="l00121"></a><span class="lineno">  121</span>&#160;<span class="keyword">class </span>XMLComment;</div><div class="line"><a name="l00122"></a><span class="lineno">  122</span>&#160;<span class="keyword">class </span>XMLText;</div><div class="line"><a name="l00123"></a><span class="lineno">  123</span>&#160;<span class="keyword">class </span>XMLDeclaration;</div><div class="line"><a name="l00124"></a><span class="lineno">  124</span>&#160;<span class="keyword">class </span>XMLUnknown;</div><div class="line"><a name="l00125"></a><span class="lineno">  125</span>&#160;<span class="keyword">class </span>XMLPrinter;</div><div class="line"><a name="l00126"></a><span class="lineno">  126</span>&#160;</div><div class="line"><a name="l00127"></a><span class="lineno">  127</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00128"></a><span class="lineno">  128</span>&#160;<span class="comment">    A class that wraps strings. Normally stores the start and end</span></div><div class="line"><a name="l00129"></a><span class="lineno">  129</span>&#160;<span class="comment">    pointers into the XML file itself, and will apply normalization</span></div><div class="line"><a name="l00130"></a><span class="lineno">  130</span>&#160;<span class="comment">    and entity translation if actually read. Can also store (and memory</span></div><div class="line"><a name="l00131"></a><span class="lineno">  131</span>&#160;<span class="comment">    manage) a traditional char[]</span></div><div class="line"><a name="l00132"></a><span class="lineno">  132</span>&#160;<span class="comment">*/</span></div><div class="line"><a name="l00133"></a><span class="lineno">  133</span>&#160;<span class="keyword">class </span>StrPair</div><div class="line"><a name="l00134"></a><span class="lineno">  134</span>&#160;{</div><div class="line"><a name="l00135"></a><span class="lineno">  135</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00136"></a><span class="lineno">  136</span>&#160;    <span class="keyword">enum</span> {</div><div class="line"><a name="l00137"></a><span class="lineno">  137</span>&#160;        NEEDS_ENTITY_PROCESSING         = 0x01,</div><div class="line"><a name="l00138"></a><span class="lineno">  138</span>&#160;        NEEDS_NEWLINE_NORMALIZATION     = 0x02,</div><div class="line"><a name="l00139"></a><span class="lineno">  139</span>&#160;        NEEDS_WHITESPACE_COLLAPSING     = 0x04,</div><div class="line"><a name="l00140"></a><span class="lineno">  140</span>&#160;</div><div class="line"><a name="l00141"></a><span class="lineno">  141</span>&#160;        TEXT_ELEMENT                    = NEEDS_ENTITY_PROCESSING | NEEDS_NEWLINE_NORMALIZATION,</div><div class="line"><a name="l00142"></a><span class="lineno">  142</span>&#160;        TEXT_ELEMENT_LEAVE_ENTITIES     = NEEDS_NEWLINE_NORMALIZATION,</div><div class="line"><a name="l00143"></a><span class="lineno">  143</span>&#160;        ATTRIBUTE_NAME                  = 0,</div><div class="line"><a name="l00144"></a><span class="lineno">  144</span>&#160;        ATTRIBUTE_VALUE                 = NEEDS_ENTITY_PROCESSING | NEEDS_NEWLINE_NORMALIZATION,</div><div class="line"><a name="l00145"></a><span class="lineno">  145</span>&#160;        ATTRIBUTE_VALUE_LEAVE_ENTITIES  = NEEDS_NEWLINE_NORMALIZATION,</div><div class="line"><a name="l00146"></a><span class="lineno">  146</span>&#160;        COMMENT                         = NEEDS_NEWLINE_NORMALIZATION</div><div class="line"><a name="l00147"></a><span class="lineno">  147</span>&#160;    };</div><div class="line"><a name="l00148"></a><span class="lineno">  148</span>&#160;</div><div class="line"><a name="l00149"></a><span class="lineno">  149</span>&#160;    StrPair() : _flags( 0 ), _start( 0 ), _end( 0 ) {}</div><div class="line"><a name="l00150"></a><span class="lineno">  150</span>&#160;    ~StrPair();</div><div class="line"><a name="l00151"></a><span class="lineno">  151</span>&#160;</div><div class="line"><a name="l00152"></a><span class="lineno">  152</span>&#160;    <span class="keywordtype">void</span> Set( <span class="keywordtype">char</span>* start, <span class="keywordtype">char</span>* end, <span class="keywordtype">int</span> flags ) {</div><div class="line"><a name="l00153"></a><span class="lineno">  153</span>&#160;        TIXMLASSERT( start );</div><div class="line"><a name="l00154"></a><span class="lineno">  154</span>&#160;        TIXMLASSERT( end );</div><div class="line"><a name="l00155"></a><span class="lineno">  155</span>&#160;        Reset();</div><div class="line"><a name="l00156"></a><span class="lineno">  156</span>&#160;        _start  = start;</div><div class="line"><a name="l00157"></a><span class="lineno">  157</span>&#160;        _end    = end;</div><div class="line"><a name="l00158"></a><span class="lineno">  158</span>&#160;        _flags  = flags | NEEDS_FLUSH;</div><div class="line"><a name="l00159"></a><span class="lineno">  159</span>&#160;    }</div><div class="line"><a name="l00160"></a><span class="lineno">  160</span>&#160;</div><div class="line"><a name="l00161"></a><span class="lineno">  161</span>&#160;    <span class="keyword">const</span> <span class="keywordtype">char</span>* GetStr();</div><div class="line"><a name="l00162"></a><span class="lineno">  162</span>&#160;</div><div class="line"><a name="l00163"></a><span class="lineno">  163</span>&#160;    <span class="keywordtype">bool</span> Empty()<span class="keyword"> const </span>{</div><div class="line"><a name="l00164"></a><span class="lineno">  164</span>&#160;        <span class="keywordflow">return</span> _start == _end;</div><div class="line"><a name="l00165"></a><span class="lineno">  165</span>&#160;    }</div><div class="line"><a name="l00166"></a><span class="lineno">  166</span>&#160;</div><div class="line"><a name="l00167"></a><span class="lineno">  167</span>&#160;    <span class="keywordtype">void</span> SetInternedStr( <span class="keyword">const</span> <span class="keywordtype">char</span>* str ) {</div><div class="line"><a name="l00168"></a><span class="lineno">  168</span>&#160;        Reset();</div><div class="line"><a name="l00169"></a><span class="lineno">  169</span>&#160;        _start = <span class="keyword">const_cast&lt;</span><span class="keywordtype">char</span>*<span class="keyword">&gt;</span>(str);</div><div class="line"><a name="l00170"></a><span class="lineno">  170</span>&#160;    }</div><div class="line"><a name="l00171"></a><span class="lineno">  171</span>&#160;</div><div class="line"><a name="l00172"></a><span class="lineno">  172</span>&#160;    <span class="keywordtype">void</span> SetStr( <span class="keyword">const</span> <span class="keywordtype">char</span>* str, <span class="keywordtype">int</span> flags=0 );</div><div class="line"><a name="l00173"></a><span class="lineno">  173</span>&#160;</div><div class="line"><a name="l00174"></a><span class="lineno">  174</span>&#160;    <span class="keywordtype">char</span>* ParseText( <span class="keywordtype">char</span>* in, <span class="keyword">const</span> <span class="keywordtype">char</span>* endTag, <span class="keywordtype">int</span> strFlags, <span class="keywordtype">int</span>* curLineNumPtr );</div><div class="line"><a name="l00175"></a><span class="lineno">  175</span>&#160;    <span class="keywordtype">char</span>* ParseName( <span class="keywordtype">char</span>* in );</div><div class="line"><a name="l00176"></a><span class="lineno">  176</span>&#160;</div><div class="line"><a name="l00177"></a><span class="lineno">  177</span>&#160;    <span class="keywordtype">void</span> TransferTo( StrPair* other );</div><div class="line"><a name="l00178"></a><span class="lineno">  178</span>&#160;    <span class="keywordtype">void</span> Reset();</div><div class="line"><a name="l00179"></a><span class="lineno">  179</span>&#160;</div><div class="line"><a name="l00180"></a><span class="lineno">  180</span>&#160;<span class="keyword">private</span>:</div><div class="line"><a name="l00181"></a><span class="lineno">  181</span>&#160;    <span class="keywordtype">void</span> CollapseWhitespace();</div><div class="line"><a name="l00182"></a><span class="lineno">  182</span>&#160;</div><div class="line"><a name="l00183"></a><span class="lineno">  183</span>&#160;    <span class="keyword">enum</span> {</div><div class="line"><a name="l00184"></a><span class="lineno">  184</span>&#160;        NEEDS_FLUSH = 0x100,</div><div class="line"><a name="l00185"></a><span class="lineno">  185</span>&#160;        NEEDS_DELETE = 0x200</div><div class="line"><a name="l00186"></a><span class="lineno">  186</span>&#160;    };</div><div class="line"><a name="l00187"></a><span class="lineno">  187</span>&#160;</div><div class="line"><a name="l00188"></a><span class="lineno">  188</span>&#160;    <span class="keywordtype">int</span>     _flags;</div><div class="line"><a name="l00189"></a><span class="lineno">  189</span>&#160;    <span class="keywordtype">char</span>*   _start;</div><div class="line"><a name="l00190"></a><span class="lineno">  190</span>&#160;    <span class="keywordtype">char</span>*   _end;</div><div class="line"><a name="l00191"></a><span class="lineno">  191</span>&#160;</div><div class="line"><a name="l00192"></a><span class="lineno">  192</span>&#160;    StrPair( <span class="keyword">const</span> StrPair&amp; other );    <span class="comment">// not supported</span></div><div class="line"><a name="l00193"></a><span class="lineno">  193</span>&#160;    <span class="keywordtype">void</span> operator=( <span class="keyword">const</span> StrPair&amp; other ); <span class="comment">// not supported, use TransferTo()</span></div><div class="line"><a name="l00194"></a><span class="lineno">  194</span>&#160;};</div><div class="line"><a name="l00195"></a><span class="lineno">  195</span>&#160;</div><div class="line"><a name="l00196"></a><span class="lineno">  196</span>&#160;</div><div class="line"><a name="l00197"></a><span class="lineno">  197</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00198"></a><span class="lineno">  198</span>&#160;<span class="comment">    A dynamic array of Plain Old Data. Doesn&#39;t support constructors, etc.</span></div><div class="line"><a name="l00199"></a><span class="lineno">  199</span>&#160;<span class="comment">    Has a small initial memory pool, so that low or no usage will not</span></div><div class="line"><a name="l00200"></a><span class="lineno">  200</span>&#160;<span class="comment">    cause a call to new/delete</span></div><div class="line"><a name="l00201"></a><span class="lineno">  201</span>&#160;<span class="comment">*/</span></div><div class="line"><a name="l00202"></a><span class="lineno">  202</span>&#160;<span class="keyword">template</span> &lt;<span class="keyword">class</span> T, <span class="keywordtype">int</span> INITIAL_SIZE&gt;</div><div class="line"><a name="l00203"></a><span class="lineno">  203</span>&#160;<span class="keyword">class </span>DynArray</div><div class="line"><a name="l00204"></a><span class="lineno">  204</span>&#160;{</div><div class="line"><a name="l00205"></a><span class="lineno">  205</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00206"></a><span class="lineno">  206</span>&#160;    DynArray() :</div><div class="line"><a name="l00207"></a><span class="lineno">  207</span>&#160;        _mem( _pool ),</div><div class="line"><a name="l00208"></a><span class="lineno">  208</span>&#160;        _allocated( INITIAL_SIZE ),</div><div class="line"><a name="l00209"></a><span class="lineno">  209</span>&#160;        _size( 0 )</div><div class="line"><a name="l00210"></a><span class="lineno">  210</span>&#160;    {</div><div class="line"><a name="l00211"></a><span class="lineno">  211</span>&#160;    }</div><div class="line"><a name="l00212"></a><span class="lineno">  212</span>&#160;</div><div class="line"><a name="l00213"></a><span class="lineno">  213</span>&#160;    ~DynArray() {</div><div class="line"><a name="l00214"></a><span class="lineno">  214</span>&#160;        <span class="keywordflow">if</span> ( _mem != _pool ) {</div><div class="line"><a name="l00215"></a><span class="lineno">  215</span>&#160;            <span class="keyword">delete</span> [] _mem;</div><div class="line"><a name="l00216"></a><span class="lineno">  216</span>&#160;        }</div><div class="line"><a name="l00217"></a><span class="lineno">  217</span>&#160;    }</div><div class="line"><a name="l00218"></a><span class="lineno">  218</span>&#160;</div><div class="line"><a name="l00219"></a><span class="lineno">  219</span>&#160;    <span class="keywordtype">void</span> Clear() {</div><div class="line"><a name="l00220"></a><span class="lineno">  220</span>&#160;        _size = 0;</div><div class="line"><a name="l00221"></a><span class="lineno">  221</span>&#160;    }</div><div class="line"><a name="l00222"></a><span class="lineno">  222</span>&#160;</div><div class="line"><a name="l00223"></a><span class="lineno">  223</span>&#160;    <span class="keywordtype">void</span> Push( T t ) {</div><div class="line"><a name="l00224"></a><span class="lineno">  224</span>&#160;        TIXMLASSERT( _size &lt; INT_MAX );</div><div class="line"><a name="l00225"></a><span class="lineno">  225</span>&#160;        EnsureCapacity( _size+1 );</div><div class="line"><a name="l00226"></a><span class="lineno">  226</span>&#160;        _mem[_size] = t;</div><div class="line"><a name="l00227"></a><span class="lineno">  227</span>&#160;        ++_size;</div><div class="line"><a name="l00228"></a><span class="lineno">  228</span>&#160;    }</div><div class="line"><a name="l00229"></a><span class="lineno">  229</span>&#160;</div><div class="line"><a name="l00230"></a><span class="lineno">  230</span>&#160;    T* PushArr( <span class="keywordtype">int</span> count ) {</div><div class="line"><a name="l00231"></a><span class="lineno">  231</span>&#160;        TIXMLASSERT( count &gt;= 0 );</div><div class="line"><a name="l00232"></a><span class="lineno">  232</span>&#160;        TIXMLASSERT( _size &lt;= INT_MAX - count );</div><div class="line"><a name="l00233"></a><span class="lineno">  233</span>&#160;        EnsureCapacity( _size+count );</div><div class="line"><a name="l00234"></a><span class="lineno">  234</span>&#160;        T* ret = &amp;_mem[_size];</div><div class="line"><a name="l00235"></a><span class="lineno">  235</span>&#160;        _size += count;</div><div class="line"><a name="l00236"></a><span class="lineno">  236</span>&#160;        <span class="keywordflow">return</span> ret;</div><div class="line"><a name="l00237"></a><span class="lineno">  237</span>&#160;    }</div><div class="line"><a name="l00238"></a><span class="lineno">  238</span>&#160;</div><div class="line"><a name="l00239"></a><span class="lineno">  239</span>&#160;    T Pop() {</div><div class="line"><a name="l00240"></a><span class="lineno">  240</span>&#160;        TIXMLASSERT( _size &gt; 0 );</div><div class="line"><a name="l00241"></a><span class="lineno">  241</span>&#160;        --_size;</div><div class="line"><a name="l00242"></a><span class="lineno">  242</span>&#160;        <span class="keywordflow">return</span> _mem[_size];</div><div class="line"><a name="l00243"></a><span class="lineno">  243</span>&#160;    }</div><div class="line"><a name="l00244"></a><span class="lineno">  244</span>&#160;</div><div class="line"><a name="l00245"></a><span class="lineno">  245</span>&#160;    <span class="keywordtype">void</span> PopArr( <span class="keywordtype">int</span> count ) {</div><div class="line"><a name="l00246"></a><span class="lineno">  246</span>&#160;        TIXMLASSERT( _size &gt;= count );</div><div class="line"><a name="l00247"></a><span class="lineno">  247</span>&#160;        _size -= count;</div><div class="line"><a name="l00248"></a><span class="lineno">  248</span>&#160;    }</div><div class="line"><a name="l00249"></a><span class="lineno">  249</span>&#160;</div><div class="line"><a name="l00250"></a><span class="lineno">  250</span>&#160;    <span class="keywordtype">bool</span> Empty()<span class="keyword"> const                  </span>{</div><div class="line"><a name="l00251"></a><span class="lineno">  251</span>&#160;        <span class="keywordflow">return</span> _size == 0;</div><div class="line"><a name="l00252"></a><span class="lineno">  252</span>&#160;    }</div><div class="line"><a name="l00253"></a><span class="lineno">  253</span>&#160;</div><div class="line"><a name="l00254"></a><span class="lineno">  254</span>&#160;    T&amp; operator[](<span class="keywordtype">int</span> i)                {</div><div class="line"><a name="l00255"></a><span class="lineno">  255</span>&#160;        TIXMLASSERT( i&gt;= 0 &amp;&amp; i &lt; _size );</div><div class="line"><a name="l00256"></a><span class="lineno">  256</span>&#160;        <span class="keywordflow">return</span> _mem[i];</div><div class="line"><a name="l00257"></a><span class="lineno">  257</span>&#160;    }</div><div class="line"><a name="l00258"></a><span class="lineno">  258</span>&#160;</div><div class="line"><a name="l00259"></a><span class="lineno">  259</span>&#160;    <span class="keyword">const</span> T&amp; operator[](<span class="keywordtype">int</span> i)<span class="keyword"> const    </span>{</div><div class="line"><a name="l00260"></a><span class="lineno">  260</span>&#160;        TIXMLASSERT( i&gt;= 0 &amp;&amp; i &lt; _size );</div><div class="line"><a name="l00261"></a><span class="lineno">  261</span>&#160;        <span class="keywordflow">return</span> _mem[i];</div><div class="line"><a name="l00262"></a><span class="lineno">  262</span>&#160;    }</div><div class="line"><a name="l00263"></a><span class="lineno">  263</span>&#160;</div><div class="line"><a name="l00264"></a><span class="lineno">  264</span>&#160;    <span class="keyword">const</span> T&amp; PeekTop()<span class="keyword"> const            </span>{</div><div class="line"><a name="l00265"></a><span class="lineno">  265</span>&#160;        TIXMLASSERT( _size &gt; 0 );</div><div class="line"><a name="l00266"></a><span class="lineno">  266</span>&#160;        <span class="keywordflow">return</span> _mem[ _size - 1];</div><div class="line"><a name="l00267"></a><span class="lineno">  267</span>&#160;    }</div><div class="line"><a name="l00268"></a><span class="lineno">  268</span>&#160;</div><div class="line"><a name="l00269"></a><span class="lineno">  269</span>&#160;    <span class="keywordtype">int</span> Size()<span class="keyword"> const                    </span>{</div><div class="line"><a name="l00270"></a><span class="lineno">  270</span>&#160;        TIXMLASSERT( _size &gt;= 0 );</div><div class="line"><a name="l00271"></a><span class="lineno">  271</span>&#160;        <span class="keywordflow">return</span> _size;</div><div class="line"><a name="l00272"></a><span class="lineno">  272</span>&#160;    }</div><div class="line"><a name="l00273"></a><span class="lineno">  273</span>&#160;</div><div class="line"><a name="l00274"></a><span class="lineno">  274</span>&#160;    <span class="keywordtype">int</span> Capacity()<span class="keyword"> const                </span>{</div><div class="line"><a name="l00275"></a><span class="lineno">  275</span>&#160;        TIXMLASSERT( _allocated &gt;= INITIAL_SIZE );</div><div class="line"><a name="l00276"></a><span class="lineno">  276</span>&#160;        <span class="keywordflow">return</span> _allocated;</div><div class="line"><a name="l00277"></a><span class="lineno">  277</span>&#160;    }</div><div class="line"><a name="l00278"></a><span class="lineno">  278</span>&#160;</div><div class="line"><a name="l00279"></a><span class="lineno">  279</span>&#160;    <span class="keywordtype">void</span> SwapRemove(<span class="keywordtype">int</span> i) {</div><div class="line"><a name="l00280"></a><span class="lineno">  280</span>&#160;        TIXMLASSERT(i &gt;= 0 &amp;&amp; i &lt; _size);</div><div class="line"><a name="l00281"></a><span class="lineno">  281</span>&#160;        TIXMLASSERT(_size &gt; 0);</div><div class="line"><a name="l00282"></a><span class="lineno">  282</span>&#160;        _mem[i] = _mem[_size - 1];</div><div class="line"><a name="l00283"></a><span class="lineno">  283</span>&#160;        --_size;</div><div class="line"><a name="l00284"></a><span class="lineno">  284</span>&#160;    }</div><div class="line"><a name="l00285"></a><span class="lineno">  285</span>&#160;</div><div class="line"><a name="l00286"></a><span class="lineno">  286</span>&#160;    <span class="keyword">const</span> T* Mem()<span class="keyword"> const                </span>{</div><div class="line"><a name="l00287"></a><span class="lineno">  287</span>&#160;        TIXMLASSERT( _mem );</div><div class="line"><a name="l00288"></a><span class="lineno">  288</span>&#160;        <span class="keywordflow">return</span> _mem;</div><div class="line"><a name="l00289"></a><span class="lineno">  289</span>&#160;    }</div><div class="line"><a name="l00290"></a><span class="lineno">  290</span>&#160;</div><div class="line"><a name="l00291"></a><span class="lineno">  291</span>&#160;    T* Mem() {</div><div class="line"><a name="l00292"></a><span class="lineno">  292</span>&#160;        TIXMLASSERT( _mem );</div><div class="line"><a name="l00293"></a><span class="lineno">  293</span>&#160;        <span class="keywordflow">return</span> _mem;</div><div class="line"><a name="l00294"></a><span class="lineno">  294</span>&#160;    }</div><div class="line"><a name="l00295"></a><span class="lineno">  295</span>&#160;</div><div class="line"><a name="l00296"></a><span class="lineno">  296</span>&#160;<span class="keyword">private</span>:</div><div class="line"><a name="l00297"></a><span class="lineno">  297</span>&#160;    DynArray( <span class="keyword">const</span> DynArray&amp; ); <span class="comment">// not supported</span></div><div class="line"><a name="l00298"></a><span class="lineno">  298</span>&#160;    <span class="keywordtype">void</span> operator=( <span class="keyword">const</span> DynArray&amp; ); <span class="comment">// not supported</span></div><div class="line"><a name="l00299"></a><span class="lineno">  299</span>&#160;</div><div class="line"><a name="l00300"></a><span class="lineno">  300</span>&#160;    <span class="keywordtype">void</span> EnsureCapacity( <span class="keywordtype">int</span> cap ) {</div><div class="line"><a name="l00301"></a><span class="lineno">  301</span>&#160;        TIXMLASSERT( cap &gt; 0 );</div><div class="line"><a name="l00302"></a><span class="lineno">  302</span>&#160;        <span class="keywordflow">if</span> ( cap &gt; _allocated ) {</div><div class="line"><a name="l00303"></a><span class="lineno">  303</span>&#160;            TIXMLASSERT( cap &lt;= INT_MAX / 2 );</div><div class="line"><a name="l00304"></a><span class="lineno">  304</span>&#160;            <span class="keywordtype">int</span> newAllocated = cap * 2;</div><div class="line"><a name="l00305"></a><span class="lineno">  305</span>&#160;            T* newMem = <span class="keyword">new</span> T[newAllocated];</div><div class="line"><a name="l00306"></a><span class="lineno">  306</span>&#160;            TIXMLASSERT( newAllocated &gt;= _size );</div><div class="line"><a name="l00307"></a><span class="lineno">  307</span>&#160;            memcpy( newMem, _mem, <span class="keyword">sizeof</span>(T)*_size );    <span class="comment">// warning: not using constructors, only works for PODs</span></div><div class="line"><a name="l00308"></a><span class="lineno">  308</span>&#160;            <span class="keywordflow">if</span> ( _mem != _pool ) {</div><div class="line"><a name="l00309"></a><span class="lineno">  309</span>&#160;                <span class="keyword">delete</span> [] _mem;</div><div class="line"><a name="l00310"></a><span class="lineno">  310</span>&#160;            }</div><div class="line"><a name="l00311"></a><span class="lineno">  311</span>&#160;            _mem = newMem;</div><div class="line"><a name="l00312"></a><span class="lineno">  312</span>&#160;            _allocated = newAllocated;</div><div class="line"><a name="l00313"></a><span class="lineno">  313</span>&#160;        }</div><div class="line"><a name="l00314"></a><span class="lineno">  314</span>&#160;    }</div><div class="line"><a name="l00315"></a><span class="lineno">  315</span>&#160;</div><div class="line"><a name="l00316"></a><span class="lineno">  316</span>&#160;    T*  _mem;</div><div class="line"><a name="l00317"></a><span class="lineno">  317</span>&#160;    T   _pool[INITIAL_SIZE];</div><div class="line"><a name="l00318"></a><span class="lineno">  318</span>&#160;    <span class="keywordtype">int</span> _allocated;     <span class="comment">// objects allocated</span></div><div class="line"><a name="l00319"></a><span class="lineno">  319</span>&#160;    <span class="keywordtype">int</span> _size;          <span class="comment">// number objects in use</span></div><div class="line"><a name="l00320"></a><span class="lineno">  320</span>&#160;};</div><div class="line"><a name="l00321"></a><span class="lineno">  321</span>&#160;</div><div class="line"><a name="l00322"></a><span class="lineno">  322</span>&#160;</div><div class="line"><a name="l00323"></a><span class="lineno">  323</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00324"></a><span class="lineno">  324</span>&#160;<span class="comment">    Parent virtual class of a pool for fast allocation</span></div><div class="line"><a name="l00325"></a><span class="lineno">  325</span>&#160;<span class="comment">    and deallocation of objects.</span></div><div class="line"><a name="l00326"></a><span class="lineno">  326</span>&#160;<span class="comment">*/</span></div><div class="line"><a name="l00327"></a><span class="lineno">  327</span>&#160;<span class="keyword">class </span>MemPool</div><div class="line"><a name="l00328"></a><span class="lineno">  328</span>&#160;{</div><div class="line"><a name="l00329"></a><span class="lineno">  329</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00330"></a><span class="lineno">  330</span>&#160;    MemPool() {}</div><div class="line"><a name="l00331"></a><span class="lineno">  331</span>&#160;    <span class="keyword">virtual</span> ~MemPool() {}</div><div class="line"><a name="l00332"></a><span class="lineno">  332</span>&#160;</div><div class="line"><a name="l00333"></a><span class="lineno">  333</span>&#160;    <span class="keyword">virtual</span> <span class="keywordtype">int</span> ItemSize() <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00334"></a><span class="lineno">  334</span>&#160;    <span class="keyword">virtual</span> <span class="keywordtype">void</span>* Alloc() = 0;</div><div class="line"><a name="l00335"></a><span class="lineno">  335</span>&#160;    <span class="keyword">virtual</span> <span class="keywordtype">void</span> Free( <span class="keywordtype">void</span>* ) = 0;</div><div class="line"><a name="l00336"></a><span class="lineno">  336</span>&#160;    <span class="keyword">virtual</span> <span class="keywordtype">void</span> SetTracked() = 0;</div><div class="line"><a name="l00337"></a><span class="lineno">  337</span>&#160;};</div><div class="line"><a name="l00338"></a><span class="lineno">  338</span>&#160;</div><div class="line"><a name="l00339"></a><span class="lineno">  339</span>&#160;</div><div class="line"><a name="l00340"></a><span class="lineno">  340</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00341"></a><span class="lineno">  341</span>&#160;<span class="comment">    Template child class to create pools of the correct type.</span></div><div class="line"><a name="l00342"></a><span class="lineno">  342</span>&#160;<span class="comment">*/</span></div><div class="line"><a name="l00343"></a><span class="lineno">  343</span>&#160;<span class="keyword">template</span>&lt; <span class="keywordtype">int</span> ITEM_SIZE &gt;</div><div class="line"><a name="l00344"></a><span class="lineno">  344</span>&#160;<span class="keyword">class </span>MemPoolT : <span class="keyword">public</span> MemPool</div><div class="line"><a name="l00345"></a><span class="lineno">  345</span>&#160;{</div><div class="line"><a name="l00346"></a><span class="lineno">  346</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00347"></a><span class="lineno">  347</span>&#160;    MemPoolT() : _blockPtrs(), _root(0), _currentAllocs(0), _nAllocs(0), _maxAllocs(0), _nUntracked(0)  {}</div><div class="line"><a name="l00348"></a><span class="lineno">  348</span>&#160;    ~MemPoolT() {</div><div class="line"><a name="l00349"></a><span class="lineno">  349</span>&#160;        MemPoolT&lt; ITEM_SIZE &gt;::Clear();</div><div class="line"><a name="l00350"></a><span class="lineno">  350</span>&#160;    }</div><div class="line"><a name="l00351"></a><span class="lineno">  351</span>&#160;</div><div class="line"><a name="l00352"></a><span class="lineno">  352</span>&#160;    <span class="keywordtype">void</span> Clear() {</div><div class="line"><a name="l00353"></a><span class="lineno">  353</span>&#160;        <span class="comment">// Delete the blocks.</span></div><div class="line"><a name="l00354"></a><span class="lineno">  354</span>&#160;        <span class="keywordflow">while</span>( !_blockPtrs.Empty()) {</div><div class="line"><a name="l00355"></a><span class="lineno">  355</span>&#160;            Block* lastBlock = _blockPtrs.Pop();</div><div class="line"><a name="l00356"></a><span class="lineno">  356</span>&#160;            <span class="keyword">delete</span> lastBlock;</div><div class="line"><a name="l00357"></a><span class="lineno">  357</span>&#160;        }</div><div class="line"><a name="l00358"></a><span class="lineno">  358</span>&#160;        _root = 0;</div><div class="line"><a name="l00359"></a><span class="lineno">  359</span>&#160;        _currentAllocs = 0;</div><div class="line"><a name="l00360"></a><span class="lineno">  360</span>&#160;        _nAllocs = 0;</div><div class="line"><a name="l00361"></a><span class="lineno">  361</span>&#160;        _maxAllocs = 0;</div><div class="line"><a name="l00362"></a><span class="lineno">  362</span>&#160;        _nUntracked = 0;</div><div class="line"><a name="l00363"></a><span class="lineno">  363</span>&#160;    }</div><div class="line"><a name="l00364"></a><span class="lineno">  364</span>&#160;</div><div class="line"><a name="l00365"></a><span class="lineno">  365</span>&#160;    <span class="keyword">virtual</span> <span class="keywordtype">int</span> ItemSize()<span class="keyword"> const    </span>{</div><div class="line"><a name="l00366"></a><span class="lineno">  366</span>&#160;        <span class="keywordflow">return</span> ITEM_SIZE;</div><div class="line"><a name="l00367"></a><span class="lineno">  367</span>&#160;    }</div><div class="line"><a name="l00368"></a><span class="lineno">  368</span>&#160;    <span class="keywordtype">int</span> CurrentAllocs()<span class="keyword"> const       </span>{</div><div class="line"><a name="l00369"></a><span class="lineno">  369</span>&#160;        <span class="keywordflow">return</span> _currentAllocs;</div><div class="line"><a name="l00370"></a><span class="lineno">  370</span>&#160;    }</div><div class="line"><a name="l00371"></a><span class="lineno">  371</span>&#160;</div><div class="line"><a name="l00372"></a><span class="lineno">  372</span>&#160;    <span class="keyword">virtual</span> <span class="keywordtype">void</span>* Alloc() {</div><div class="line"><a name="l00373"></a><span class="lineno">  373</span>&#160;        <span class="keywordflow">if</span> ( !_root ) {</div><div class="line"><a name="l00374"></a><span class="lineno">  374</span>&#160;            <span class="comment">// Need a new block.</span></div><div class="line"><a name="l00375"></a><span class="lineno">  375</span>&#160;            Block* block = <span class="keyword">new</span> Block();</div><div class="line"><a name="l00376"></a><span class="lineno">  376</span>&#160;            _blockPtrs.Push( block );</div><div class="line"><a name="l00377"></a><span class="lineno">  377</span>&#160;</div><div class="line"><a name="l00378"></a><span class="lineno">  378</span>&#160;            Item* blockItems = block-&gt;items;</div><div class="line"><a name="l00379"></a><span class="lineno">  379</span>&#160;            <span class="keywordflow">for</span>( <span class="keywordtype">int</span> i = 0; i &lt; ITEMS_PER_BLOCK - 1; ++i ) {</div><div class="line"><a name="l00380"></a><span class="lineno">  380</span>&#160;                blockItems[i].next = &amp;(blockItems[i + 1]);</div><div class="line"><a name="l00381"></a><span class="lineno">  381</span>&#160;            }</div><div class="line"><a name="l00382"></a><span class="lineno">  382</span>&#160;            blockItems[ITEMS_PER_BLOCK - 1].next = 0;</div><div class="line"><a name="l00383"></a><span class="lineno">  383</span>&#160;            _root = blockItems;</div><div class="line"><a name="l00384"></a><span class="lineno">  384</span>&#160;        }</div><div class="line"><a name="l00385"></a><span class="lineno">  385</span>&#160;        Item* <span class="keyword">const</span> result = _root;</div><div class="line"><a name="l00386"></a><span class="lineno">  386</span>&#160;        TIXMLASSERT( result != 0 );</div><div class="line"><a name="l00387"></a><span class="lineno">  387</span>&#160;        _root = _root-&gt;next;</div><div class="line"><a name="l00388"></a><span class="lineno">  388</span>&#160;</div><div class="line"><a name="l00389"></a><span class="lineno">  389</span>&#160;        ++_currentAllocs;</div><div class="line"><a name="l00390"></a><span class="lineno">  390</span>&#160;        <span class="keywordflow">if</span> ( _currentAllocs &gt; _maxAllocs ) {</div><div class="line"><a name="l00391"></a><span class="lineno">  391</span>&#160;            _maxAllocs = _currentAllocs;</div><div class="line"><a name="l00392"></a><span class="lineno">  392</span>&#160;        }</div><div class="line"><a name="l00393"></a><span class="lineno">  393</span>&#160;        ++_nAllocs;</div><div class="line"><a name="l00394"></a><span class="lineno">  394</span>&#160;        ++_nUntracked;</div><div class="line"><a name="l00395"></a><span class="lineno">  395</span>&#160;        <span class="keywordflow">return</span> result;</div><div class="line"><a name="l00396"></a><span class="lineno">  396</span>&#160;    }</div><div class="line"><a name="l00397"></a><span class="lineno">  397</span>&#160;</div><div class="line"><a name="l00398"></a><span class="lineno">  398</span>&#160;    <span class="keyword">virtual</span> <span class="keywordtype">void</span> Free( <span class="keywordtype">void</span>* mem ) {</div><div class="line"><a name="l00399"></a><span class="lineno">  399</span>&#160;        <span class="keywordflow">if</span> ( !mem ) {</div><div class="line"><a name="l00400"></a><span class="lineno">  400</span>&#160;            <span class="keywordflow">return</span>;</div><div class="line"><a name="l00401"></a><span class="lineno">  401</span>&#160;        }</div><div class="line"><a name="l00402"></a><span class="lineno">  402</span>&#160;        --_currentAllocs;</div><div class="line"><a name="l00403"></a><span class="lineno">  403</span>&#160;        Item* item = <span class="keyword">static_cast&lt;</span>Item*<span class="keyword">&gt;</span>( mem );</div><div class="line"><a name="l00404"></a><span class="lineno">  404</span>&#160;<span class="preprocessor">#ifdef TINYXML2_DEBUG</span></div><div class="line"><a name="l00405"></a><span class="lineno">  405</span>&#160;        memset( item, 0xfe, <span class="keyword">sizeof</span>( *item ) );</div><div class="line"><a name="l00406"></a><span class="lineno">  406</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00407"></a><span class="lineno">  407</span>&#160;        item-&gt;next = _root;</div><div class="line"><a name="l00408"></a><span class="lineno">  408</span>&#160;        _root = item;</div><div class="line"><a name="l00409"></a><span class="lineno">  409</span>&#160;    }</div><div class="line"><a name="l00410"></a><span class="lineno">  410</span>&#160;    <span class="keywordtype">void</span> Trace( <span class="keyword">const</span> <span class="keywordtype">char</span>* name ) {</div><div class="line"><a name="l00411"></a><span class="lineno">  411</span>&#160;        printf( <span class="stringliteral">&quot;Mempool %s watermark=%d [%dk] current=%d size=%d nAlloc=%d blocks=%d\n&quot;</span>,</div><div class="line"><a name="l00412"></a><span class="lineno">  412</span>&#160;                name, _maxAllocs, _maxAllocs * ITEM_SIZE / 1024, _currentAllocs,</div><div class="line"><a name="l00413"></a><span class="lineno">  413</span>&#160;                ITEM_SIZE, _nAllocs, _blockPtrs.Size() );</div><div class="line"><a name="l00414"></a><span class="lineno">  414</span>&#160;    }</div><div class="line"><a name="l00415"></a><span class="lineno">  415</span>&#160;</div><div class="line"><a name="l00416"></a><span class="lineno">  416</span>&#160;    <span class="keywordtype">void</span> SetTracked() {</div><div class="line"><a name="l00417"></a><span class="lineno">  417</span>&#160;        --_nUntracked;</div><div class="line"><a name="l00418"></a><span class="lineno">  418</span>&#160;    }</div><div class="line"><a name="l00419"></a><span class="lineno">  419</span>&#160;</div><div class="line"><a name="l00420"></a><span class="lineno">  420</span>&#160;    <span class="keywordtype">int</span> Untracked()<span class="keyword"> const </span>{</div><div class="line"><a name="l00421"></a><span class="lineno">  421</span>&#160;        <span class="keywordflow">return</span> _nUntracked;</div><div class="line"><a name="l00422"></a><span class="lineno">  422</span>&#160;    }</div><div class="line"><a name="l00423"></a><span class="lineno">  423</span>&#160;</div><div class="line"><a name="l00424"></a><span class="lineno">  424</span>&#160;    <span class="comment">// This number is perf sensitive. 4k seems like a good tradeoff on my machine.</span></div><div class="line"><a name="l00425"></a><span class="lineno">  425</span>&#160;    <span class="comment">// The test file is large, 170k.</span></div><div class="line"><a name="l00426"></a><span class="lineno">  426</span>&#160;    <span class="comment">// Release:     VS2010 gcc(no opt)</span></div><div class="line"><a name="l00427"></a><span class="lineno">  427</span>&#160;    <span class="comment">//      1k:     4000</span></div><div class="line"><a name="l00428"></a><span class="lineno">  428</span>&#160;    <span class="comment">//      2k:     4000</span></div><div class="line"><a name="l00429"></a><span class="lineno">  429</span>&#160;    <span class="comment">//      4k:     3900    21000</span></div><div class="line"><a name="l00430"></a><span class="lineno">  430</span>&#160;    <span class="comment">//      16k:    5200</span></div><div class="line"><a name="l00431"></a><span class="lineno">  431</span>&#160;    <span class="comment">//      32k:    4300</span></div><div class="line"><a name="l00432"></a><span class="lineno">  432</span>&#160;    <span class="comment">//      64k:    4000    21000</span></div><div class="line"><a name="l00433"></a><span class="lineno">  433</span>&#160;    <span class="comment">// Declared public because some compilers do not accept to use ITEMS_PER_BLOCK</span></div><div class="line"><a name="l00434"></a><span class="lineno">  434</span>&#160;    <span class="comment">// in private part if ITEMS_PER_BLOCK is private</span></div><div class="line"><a name="l00435"></a><span class="lineno">  435</span>&#160;    <span class="keyword">enum</span> { ITEMS_PER_BLOCK = (4 * 1024) / ITEM_SIZE };</div><div class="line"><a name="l00436"></a><span class="lineno">  436</span>&#160;</div><div class="line"><a name="l00437"></a><span class="lineno">  437</span>&#160;<span class="keyword">private</span>:</div><div class="line"><a name="l00438"></a><span class="lineno">  438</span>&#160;    MemPoolT( <span class="keyword">const</span> MemPoolT&amp; ); <span class="comment">// not supported</span></div><div class="line"><a name="l00439"></a><span class="lineno">  439</span>&#160;    <span class="keywordtype">void</span> operator=( <span class="keyword">const</span> MemPoolT&amp; ); <span class="comment">// not supported</span></div><div class="line"><a name="l00440"></a><span class="lineno">  440</span>&#160;</div><div class="line"><a name="l00441"></a><span class="lineno">  441</span>&#160;    <span class="keyword">union </span>Item {</div><div class="line"><a name="l00442"></a><span class="lineno">  442</span>&#160;        Item*   next;</div><div class="line"><a name="l00443"></a><span class="lineno">  443</span>&#160;        <span class="keywordtype">char</span>    itemData[ITEM_SIZE];</div><div class="line"><a name="l00444"></a><span class="lineno">  444</span>&#160;    };</div><div class="line"><a name="l00445"></a><span class="lineno">  445</span>&#160;    <span class="keyword">struct </span>Block {</div><div class="line"><a name="l00446"></a><span class="lineno">  446</span>&#160;        Item items[ITEMS_PER_BLOCK];</div><div class="line"><a name="l00447"></a><span class="lineno">  447</span>&#160;    };</div><div class="line"><a name="l00448"></a><span class="lineno">  448</span>&#160;    DynArray&lt; Block*, 10 &gt; _blockPtrs;</div><div class="line"><a name="l00449"></a><span class="lineno">  449</span>&#160;    Item* _root;</div><div class="line"><a name="l00450"></a><span class="lineno">  450</span>&#160;</div><div class="line"><a name="l00451"></a><span class="lineno">  451</span>&#160;    <span class="keywordtype">int</span> _currentAllocs;</div><div class="line"><a name="l00452"></a><span class="lineno">  452</span>&#160;    <span class="keywordtype">int</span> _nAllocs;</div><div class="line"><a name="l00453"></a><span class="lineno">  453</span>&#160;    <span class="keywordtype">int</span> _maxAllocs;</div><div class="line"><a name="l00454"></a><span class="lineno">  454</span>&#160;    <span class="keywordtype">int</span> _nUntracked;</div><div class="line"><a name="l00455"></a><span class="lineno">  455</span>&#160;};</div><div class="line"><a name="l00456"></a><span class="lineno">  456</span>&#160;</div><div class="line"><a name="l00457"></a><span class="lineno">  457</span>&#160;</div><div class="line"><a name="l00458"></a><span class="lineno">  458</span>&#160;</div><div class="line"><a name="l00478"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_visitor.html">  478</a></span>&#160;<span class="keyword">class </span>TINYXML2_LIB <a class="code" href="classtinyxml2_1_1_x_m_l_visitor.html">XMLVisitor</a></div><div class="line"><a name="l00479"></a><span class="lineno">  479</span>&#160;{</div><div class="line"><a name="l00480"></a><span class="lineno">  480</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00481"></a><span class="lineno">  481</span>&#160;    <span class="keyword">virtual</span> ~<a class="code" href="classtinyxml2_1_1_x_m_l_visitor.html">XMLVisitor</a>() {}</div><div class="line"><a name="l00482"></a><span class="lineno">  482</span>&#160;</div><div class="line"><a name="l00484"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_visitor.html#acb3c22fc5f60eb9db98f533f2761f67d">  484</a></span>&#160;    <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classtinyxml2_1_1_x_m_l_visitor.html#acb3c22fc5f60eb9db98f533f2761f67d">VisitEnter</a>( <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_document.html">XMLDocument</a>&amp; <span class="comment">/*doc*/</span> )           {</div><div class="line"><a name="l00485"></a><span class="lineno">  485</span>&#160;        <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00486"></a><span class="lineno">  486</span>&#160;    }</div><div class="line"><a name="l00488"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_visitor.html#a170e9989cd046ba904f302d087e07086">  488</a></span>&#160;    <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classtinyxml2_1_1_x_m_l_visitor.html#a170e9989cd046ba904f302d087e07086">VisitExit</a>( <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_document.html">XMLDocument</a>&amp; <span class="comment">/*doc*/</span> )            {</div><div class="line"><a name="l00489"></a><span class="lineno">  489</span>&#160;        <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00490"></a><span class="lineno">  490</span>&#160;    }</div><div class="line"><a name="l00491"></a><span class="lineno">  491</span>&#160;</div><div class="line"><a name="l00493"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_visitor.html#af97980a17dd4e37448b181f5ddfa92b5">  493</a></span>&#160;    <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classtinyxml2_1_1_x_m_l_visitor.html#af97980a17dd4e37448b181f5ddfa92b5">VisitEnter</a>( <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_element.html">XMLElement</a>&amp; <span class="comment">/*element*/</span>, <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_attribute.html">XMLAttribute</a>* <span class="comment">/*firstAttribute*/</span> )    {</div><div class="line"><a name="l00494"></a><span class="lineno">  494</span>&#160;        <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00495"></a><span class="lineno">  495</span>&#160;    }</div><div class="line"><a name="l00497"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_visitor.html#a772f10ddc83f881956d32628faa16eb6">  497</a></span>&#160;    <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classtinyxml2_1_1_x_m_l_visitor.html#a772f10ddc83f881956d32628faa16eb6">VisitExit</a>( <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_element.html">XMLElement</a>&amp; <span class="comment">/*element*/</span> )         {</div><div class="line"><a name="l00498"></a><span class="lineno">  498</span>&#160;        <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00499"></a><span class="lineno">  499</span>&#160;    }</div><div class="line"><a name="l00500"></a><span class="lineno">  500</span>&#160;</div><div class="line"><a name="l00502"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_visitor.html#adc75bd459fc7ba8223b50f0616767f9a">  502</a></span>&#160;    <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classtinyxml2_1_1_x_m_l_visitor.html#adc75bd459fc7ba8223b50f0616767f9a">Visit</a>( <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_declaration.html">XMLDeclaration</a>&amp; <span class="comment">/*declaration*/</span> )     {</div><div class="line"><a name="l00503"></a><span class="lineno">  503</span>&#160;        <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00504"></a><span class="lineno">  504</span>&#160;    }</div><div class="line"><a name="l00506"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_visitor.html#af30233565856480ea48b6fa0d6dec65b">  506</a></span>&#160;    <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classtinyxml2_1_1_x_m_l_visitor.html#af30233565856480ea48b6fa0d6dec65b">Visit</a>( <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_text.html">XMLText</a>&amp; <span class="comment">/*text*/</span> )                   {</div><div class="line"><a name="l00507"></a><span class="lineno">  507</span>&#160;        <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00508"></a><span class="lineno">  508</span>&#160;    }</div><div class="line"><a name="l00510"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_visitor.html#acc8147fb5a85f6c65721654e427752d7">  510</a></span>&#160;    <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classtinyxml2_1_1_x_m_l_visitor.html#acc8147fb5a85f6c65721654e427752d7">Visit</a>( <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_comment.html">XMLComment</a>&amp; <span class="comment">/*comment*/</span> )             {</div><div class="line"><a name="l00511"></a><span class="lineno">  511</span>&#160;        <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00512"></a><span class="lineno">  512</span>&#160;    }</div><div class="line"><a name="l00514"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_visitor.html#a14e4748387c34bf53d24e8119bb1f292">  514</a></span>&#160;    <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classtinyxml2_1_1_x_m_l_visitor.html#a14e4748387c34bf53d24e8119bb1f292">Visit</a>( <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_unknown.html">XMLUnknown</a>&amp; <span class="comment">/*unknown*/</span> )             {</div><div class="line"><a name="l00515"></a><span class="lineno">  515</span>&#160;        <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00516"></a><span class="lineno">  516</span>&#160;    }</div><div class="line"><a name="l00517"></a><span class="lineno">  517</span>&#160;};</div><div class="line"><a name="l00518"></a><span class="lineno">  518</span>&#160;</div><div class="line"><a name="l00519"></a><span class="lineno">  519</span>&#160;<span class="comment">// WARNING: must match XMLDocument::_errorNames[]</span></div><div class="line"><a name="l00520"></a><span class="lineno">  520</span>&#160;<span class="keyword">enum</span> XMLError {</div><div class="line"><a name="l00521"></a><span class="lineno">  521</span>&#160;    XML_SUCCESS = 0,</div><div class="line"><a name="l00522"></a><span class="lineno">  522</span>&#160;    XML_NO_ATTRIBUTE,</div><div class="line"><a name="l00523"></a><span class="lineno">  523</span>&#160;    XML_WRONG_ATTRIBUTE_TYPE,</div><div class="line"><a name="l00524"></a><span class="lineno">  524</span>&#160;    XML_ERROR_FILE_NOT_FOUND,</div><div class="line"><a name="l00525"></a><span class="lineno">  525</span>&#160;    XML_ERROR_FILE_COULD_NOT_BE_OPENED,</div><div class="line"><a name="l00526"></a><span class="lineno">  526</span>&#160;    XML_ERROR_FILE_READ_ERROR,</div><div class="line"><a name="l00527"></a><span class="lineno">  527</span>&#160;    XML_ERROR_PARSING_ELEMENT,</div><div class="line"><a name="l00528"></a><span class="lineno">  528</span>&#160;    XML_ERROR_PARSING_ATTRIBUTE,</div><div class="line"><a name="l00529"></a><span class="lineno">  529</span>&#160;    XML_ERROR_PARSING_TEXT,</div><div class="line"><a name="l00530"></a><span class="lineno">  530</span>&#160;    XML_ERROR_PARSING_CDATA,</div><div class="line"><a name="l00531"></a><span class="lineno">  531</span>&#160;    XML_ERROR_PARSING_COMMENT,</div><div class="line"><a name="l00532"></a><span class="lineno">  532</span>&#160;    XML_ERROR_PARSING_DECLARATION,</div><div class="line"><a name="l00533"></a><span class="lineno">  533</span>&#160;    XML_ERROR_PARSING_UNKNOWN,</div><div class="line"><a name="l00534"></a><span class="lineno">  534</span>&#160;    XML_ERROR_EMPTY_DOCUMENT,</div><div class="line"><a name="l00535"></a><span class="lineno">  535</span>&#160;    XML_ERROR_MISMATCHED_ELEMENT,</div><div class="line"><a name="l00536"></a><span class="lineno">  536</span>&#160;    XML_ERROR_PARSING,</div><div class="line"><a name="l00537"></a><span class="lineno">  537</span>&#160;    XML_CAN_NOT_CONVERT_TEXT,</div><div class="line"><a name="l00538"></a><span class="lineno">  538</span>&#160;    XML_NO_TEXT_NODE,</div><div class="line"><a name="l00539"></a><span class="lineno">  539</span>&#160;    XML_ELEMENT_DEPTH_EXCEEDED,</div><div class="line"><a name="l00540"></a><span class="lineno">  540</span>&#160;</div><div class="line"><a name="l00541"></a><span class="lineno">  541</span>&#160;    XML_ERROR_COUNT</div><div class="line"><a name="l00542"></a><span class="lineno">  542</span>&#160;};</div><div class="line"><a name="l00543"></a><span class="lineno">  543</span>&#160;</div><div class="line"><a name="l00544"></a><span class="lineno">  544</span>&#160;</div><div class="line"><a name="l00545"></a><span class="lineno">  545</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00546"></a><span class="lineno">  546</span>&#160;<span class="comment">    Utility functionality.</span></div><div class="line"><a name="l00547"></a><span class="lineno">  547</span>&#160;<span class="comment">*/</span></div><div class="line"><a name="l00548"></a><span class="lineno">  548</span>&#160;<span class="keyword">class </span>TINYXML2_LIB XMLUtil</div><div class="line"><a name="l00549"></a><span class="lineno">  549</span>&#160;{</div><div class="line"><a name="l00550"></a><span class="lineno">  550</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00551"></a><span class="lineno">  551</span>&#160;    <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>* p, <span class="keywordtype">int</span>* curLineNumPtr )  {</div><div class="line"><a name="l00552"></a><span class="lineno">  552</span>&#160;        TIXMLASSERT( p );</div><div class="line"><a name="l00553"></a><span class="lineno">  553</span>&#160;</div><div class="line"><a name="l00554"></a><span class="lineno">  554</span>&#160;        <span class="keywordflow">while</span>( IsWhiteSpace(*p) ) {</div><div class="line"><a name="l00555"></a><span class="lineno">  555</span>&#160;            <span class="keywordflow">if</span> (curLineNumPtr &amp;&amp; *p == <span class="charliteral">&#39;\n&#39;</span>) {</div><div class="line"><a name="l00556"></a><span class="lineno">  556</span>&#160;                ++(*curLineNumPtr);</div><div class="line"><a name="l00557"></a><span class="lineno">  557</span>&#160;            }</div><div class="line"><a name="l00558"></a><span class="lineno">  558</span>&#160;            ++p;</div><div class="line"><a name="l00559"></a><span class="lineno">  559</span>&#160;        }</div><div class="line"><a name="l00560"></a><span class="lineno">  560</span>&#160;        TIXMLASSERT( p );</div><div class="line"><a name="l00561"></a><span class="lineno">  561</span>&#160;        <span class="keywordflow">return</span> p;</div><div class="line"><a name="l00562"></a><span class="lineno">  562</span>&#160;    }</div><div class="line"><a name="l00563"></a><span class="lineno">  563</span>&#160;    <span class="keyword">static</span> <span class="keywordtype">char</span>* SkipWhiteSpace( <span class="keywordtype">char</span>* p, <span class="keywordtype">int</span>* curLineNumPtr )              {</div><div class="line"><a name="l00564"></a><span class="lineno">  564</span>&#160;        <span class="keywordflow">return</span> <span class="keyword">const_cast&lt;</span><span class="keywordtype">char</span>*<span class="keyword">&gt;</span>( SkipWhiteSpace( const_cast&lt;const char*&gt;(p), curLineNumPtr ) );</div><div class="line"><a name="l00565"></a><span class="lineno">  565</span>&#160;    }</div><div class="line"><a name="l00566"></a><span class="lineno">  566</span>&#160;</div><div class="line"><a name="l00567"></a><span class="lineno">  567</span>&#160;    <span class="comment">// Anything in the high order range of UTF-8 is assumed to not be whitespace. This isn&#39;t</span></div><div class="line"><a name="l00568"></a><span class="lineno">  568</span>&#160;    <span class="comment">// correct, but simple, and usually works.</span></div><div class="line"><a name="l00569"></a><span class="lineno">  569</span>&#160;    <span class="keyword">static</span> <span class="keywordtype">bool</span> IsWhiteSpace( <span class="keywordtype">char</span> p )                  {</div><div class="line"><a name="l00570"></a><span class="lineno">  570</span>&#160;        <span class="keywordflow">return</span> !IsUTF8Continuation(p) &amp;&amp; isspace( static_cast&lt;unsigned char&gt;(p) );</div><div class="line"><a name="l00571"></a><span class="lineno">  571</span>&#160;    }</div><div class="line"><a name="l00572"></a><span class="lineno">  572</span>&#160;</div><div class="line"><a name="l00573"></a><span class="lineno">  573</span>&#160;    <span class="keyword">inline</span> <span class="keyword">static</span> <span class="keywordtype">bool</span> IsNameStartChar( <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> ch ) {</div><div class="line"><a name="l00574"></a><span class="lineno">  574</span>&#160;        <span class="keywordflow">if</span> ( ch &gt;= 128 ) {</div><div class="line"><a name="l00575"></a><span class="lineno">  575</span>&#160;            <span class="comment">// This is a heuristic guess in attempt to not implement Unicode-aware isalpha()</span></div><div class="line"><a name="l00576"></a><span class="lineno">  576</span>&#160;            <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00577"></a><span class="lineno">  577</span>&#160;        }</div><div class="line"><a name="l00578"></a><span class="lineno">  578</span>&#160;        <span class="keywordflow">if</span> ( isalpha( ch ) ) {</div><div class="line"><a name="l00579"></a><span class="lineno">  579</span>&#160;            <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00580"></a><span class="lineno">  580</span>&#160;        }</div><div class="line"><a name="l00581"></a><span class="lineno">  581</span>&#160;        <span class="keywordflow">return</span> ch == <span class="charliteral">&#39;:&#39;</span> || ch == <span class="charliteral">&#39;_&#39;</span>;</div><div class="line"><a name="l00582"></a><span class="lineno">  582</span>&#160;    }</div><div class="line"><a name="l00583"></a><span class="lineno">  583</span>&#160;</div><div class="line"><a name="l00584"></a><span class="lineno">  584</span>&#160;    <span class="keyword">inline</span> <span class="keyword">static</span> <span class="keywordtype">bool</span> IsNameChar( <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> ch ) {</div><div class="line"><a name="l00585"></a><span class="lineno">  585</span>&#160;        <span class="keywordflow">return</span> IsNameStartChar( ch )</div><div class="line"><a name="l00586"></a><span class="lineno">  586</span>&#160;               || isdigit( ch )</div><div class="line"><a name="l00587"></a><span class="lineno">  587</span>&#160;               || ch == <span class="charliteral">&#39;.&#39;</span></div><div class="line"><a name="l00588"></a><span class="lineno">  588</span>&#160;               || ch == <span class="charliteral">&#39;-&#39;</span>;</div><div class="line"><a name="l00589"></a><span class="lineno">  589</span>&#160;    }</div><div class="line"><a name="l00590"></a><span class="lineno">  590</span>&#160;</div><div class="line"><a name="l00591"></a><span class="lineno">  591</span>&#160;    <span class="keyword">inline</span> <span class="keyword">static</span> <span class="keywordtype">bool</span> StringEqual( <span class="keyword">const</span> <span class="keywordtype">char</span>* p, <span class="keyword">const</span> <span class="keywordtype">char</span>* q, <span class="keywordtype">int</span> nChar=INT_MAX )  {</div><div class="line"><a name="l00592"></a><span class="lineno">  592</span>&#160;        <span class="keywordflow">if</span> ( p == q ) {</div><div class="line"><a name="l00593"></a><span class="lineno">  593</span>&#160;            <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00594"></a><span class="lineno">  594</span>&#160;        }</div><div class="line"><a name="l00595"></a><span class="lineno">  595</span>&#160;        TIXMLASSERT( p );</div><div class="line"><a name="l00596"></a><span class="lineno">  596</span>&#160;        TIXMLASSERT( q );</div><div class="line"><a name="l00597"></a><span class="lineno">  597</span>&#160;        TIXMLASSERT( nChar &gt;= 0 );</div><div class="line"><a name="l00598"></a><span class="lineno">  598</span>&#160;        <span class="keywordflow">return</span> strncmp( p, q, nChar ) == 0;</div><div class="line"><a name="l00599"></a><span class="lineno">  599</span>&#160;    }</div><div class="line"><a name="l00600"></a><span class="lineno">  600</span>&#160;</div><div class="line"><a name="l00601"></a><span class="lineno">  601</span>&#160;    <span class="keyword">inline</span> <span class="keyword">static</span> <span class="keywordtype">bool</span> IsUTF8Continuation( <span class="keywordtype">char</span> p ) {</div><div class="line"><a name="l00602"></a><span class="lineno">  602</span>&#160;        <span class="keywordflow">return</span> ( p &amp; 0x80 ) != 0;</div><div class="line"><a name="l00603"></a><span class="lineno">  603</span>&#160;    }</div><div class="line"><a name="l00604"></a><span class="lineno">  604</span>&#160;</div><div class="line"><a name="l00605"></a><span class="lineno">  605</span>&#160;    <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">char</span>* ReadBOM( <span class="keyword">const</span> <span class="keywordtype">char</span>* p, <span class="keywordtype">bool</span>* hasBOM );</div><div class="line"><a name="l00606"></a><span class="lineno">  606</span>&#160;    <span class="comment">// p is the starting location,</span></div><div class="line"><a name="l00607"></a><span class="lineno">  607</span>&#160;    <span class="comment">// the UTF-8 value of the entity will be placed in value, and length filled in.</span></div><div class="line"><a name="l00608"></a><span class="lineno">  608</span>&#160;    <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">char</span>* GetCharacterRef( <span class="keyword">const</span> <span class="keywordtype">char</span>* p, <span class="keywordtype">char</span>* value, <span class="keywordtype">int</span>* length );</div><div class="line"><a name="l00609"></a><span class="lineno">  609</span>&#160;    <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 );</div><div class="line"><a name="l00610"></a><span class="lineno">  610</span>&#160;</div><div class="line"><a name="l00611"></a><span class="lineno">  611</span>&#160;    <span class="comment">// converts primitive types to strings</span></div><div class="line"><a name="l00612"></a><span class="lineno">  612</span>&#160;    <span class="keyword">static</span> <span class="keywordtype">void</span> ToStr( <span class="keywordtype">int</span> v, <span class="keywordtype">char</span>* buffer, <span class="keywordtype">int</span> bufferSize );</div><div class="line"><a name="l00613"></a><span class="lineno">  613</span>&#160;    <span class="keyword">static</span> <span class="keywordtype">void</span> ToStr( <span class="keywordtype">unsigned</span> v, <span class="keywordtype">char</span>* buffer, <span class="keywordtype">int</span> bufferSize );</div><div class="line"><a name="l00614"></a><span class="lineno">  614</span>&#160;    <span class="keyword">static</span> <span class="keywordtype">void</span> ToStr( <span class="keywordtype">bool</span> v, <span class="keywordtype">char</span>* buffer, <span class="keywordtype">int</span> bufferSize );</div><div class="line"><a name="l00615"></a><span class="lineno">  615</span>&#160;    <span class="keyword">static</span> <span class="keywordtype">void</span> ToStr( <span class="keywordtype">float</span> v, <span class="keywordtype">char</span>* buffer, <span class="keywordtype">int</span> bufferSize );</div><div class="line"><a name="l00616"></a><span class="lineno">  616</span>&#160;    <span class="keyword">static</span> <span class="keywordtype">void</span> ToStr( <span class="keywordtype">double</span> v, <span class="keywordtype">char</span>* buffer, <span class="keywordtype">int</span> bufferSize );</div><div class="line"><a name="l00617"></a><span class="lineno">  617</span>&#160;    <span class="keyword">static</span> <span class="keywordtype">void</span> ToStr(int64_t v, <span class="keywordtype">char</span>* buffer, <span class="keywordtype">int</span> bufferSize);</div><div class="line"><a name="l00618"></a><span class="lineno">  618</span>&#160;</div><div class="line"><a name="l00619"></a><span class="lineno">  619</span>&#160;    <span class="comment">// converts strings to primitive types</span></div><div class="line"><a name="l00620"></a><span class="lineno">  620</span>&#160;    <span class="keyword">static</span> <span class="keywordtype">bool</span> ToInt( <span class="keyword">const</span> <span class="keywordtype">char</span>* str, <span class="keywordtype">int</span>* value );</div><div class="line"><a name="l00621"></a><span class="lineno">  621</span>&#160;    <span class="keyword">static</span> <span class="keywordtype">bool</span> ToUnsigned( <span class="keyword">const</span> <span class="keywordtype">char</span>* str, <span class="keywordtype">unsigned</span>* value );</div><div class="line"><a name="l00622"></a><span class="lineno">  622</span>&#160;    <span class="keyword">static</span> <span class="keywordtype">bool</span> ToBool( <span class="keyword">const</span> <span class="keywordtype">char</span>* str, <span class="keywordtype">bool</span>* value );</div><div class="line"><a name="l00623"></a><span class="lineno">  623</span>&#160;    <span class="keyword">static</span> <span class="keywordtype">bool</span> ToFloat( <span class="keyword">const</span> <span class="keywordtype">char</span>* str, <span class="keywordtype">float</span>* value );</div><div class="line"><a name="l00624"></a><span class="lineno">  624</span>&#160;    <span class="keyword">static</span> <span class="keywordtype">bool</span> ToDouble( <span class="keyword">const</span> <span class="keywordtype">char</span>* str, <span class="keywordtype">double</span>* value );</div><div class="line"><a name="l00625"></a><span class="lineno">  625</span>&#160;    <span class="keyword">static</span> <span class="keywordtype">bool</span> ToInt64(<span class="keyword">const</span> <span class="keywordtype">char</span>* str, int64_t* value);</div><div class="line"><a name="l00626"></a><span class="lineno">  626</span>&#160;</div><div class="line"><a name="l00627"></a><span class="lineno">  627</span>&#160;    <span class="comment">// Changes what is serialized for a boolean value.</span></div><div class="line"><a name="l00628"></a><span class="lineno">  628</span>&#160;    <span class="comment">// Default to &quot;true&quot; and &quot;false&quot;. Shouldn&#39;t be changed</span></div><div class="line"><a name="l00629"></a><span class="lineno">  629</span>&#160;    <span class="comment">// unless you have a special testing or compatibility need.</span></div><div class="line"><a name="l00630"></a><span class="lineno">  630</span>&#160;    <span class="comment">// Be careful: static, global, &amp; not thread safe.</span></div><div class="line"><a name="l00631"></a><span class="lineno">  631</span>&#160;    <span class="comment">// Be sure to set static const memory as parameters.</span></div><div class="line"><a name="l00632"></a><span class="lineno">  632</span>&#160;    <span class="keyword">static</span> <span class="keywordtype">void</span> SetBoolSerialization(<span class="keyword">const</span> <span class="keywordtype">char</span>* writeTrue, <span class="keyword">const</span> <span class="keywordtype">char</span>* writeFalse);</div><div class="line"><a name="l00633"></a><span class="lineno">  633</span>&#160;</div><div class="line"><a name="l00634"></a><span class="lineno">  634</span>&#160;<span class="keyword">private</span>:</div><div class="line"><a name="l00635"></a><span class="lineno">  635</span>&#160;    <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">char</span>* writeBoolTrue;</div><div class="line"><a name="l00636"></a><span class="lineno">  636</span>&#160;    <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">char</span>* writeBoolFalse;</div><div class="line"><a name="l00637"></a><span class="lineno">  637</span>&#160;};</div><div class="line"><a name="l00638"></a><span class="lineno">  638</span>&#160;</div><div class="line"><a name="l00639"></a><span class="lineno">  639</span>&#160;</div><div class="line"><a name="l00665"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_node.html">  665</a></span>&#160;<span class="keyword">class </span>TINYXML2_LIB <a class="code" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a></div><div class="line"><a name="l00666"></a><span class="lineno">  666</span>&#160;{</div><div class="line"><a name="l00667"></a><span class="lineno">  667</span>&#160;    <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classtinyxml2_1_1_x_m_l_document.html">XMLDocument</a>;</div><div class="line"><a name="l00668"></a><span class="lineno">  668</span>&#160;    <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classtinyxml2_1_1_x_m_l_element.html">XMLElement</a>;</div><div class="line"><a name="l00669"></a><span class="lineno">  669</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00670"></a><span class="lineno">  670</span>&#160;</div><div class="line"><a name="l00672"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_node.html#a2de84cfa4ec3fe249bad745069d145f1">  672</a></span>&#160;    <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_document.html">XMLDocument</a>* <a class="code" href="classtinyxml2_1_1_x_m_l_node.html#a2de84cfa4ec3fe249bad745069d145f1">GetDocument</a>()<span class="keyword"> const  </span>{</div><div class="line"><a name="l00673"></a><span class="lineno">  673</span>&#160;        TIXMLASSERT( _document );</div><div class="line"><a name="l00674"></a><span class="lineno">  674</span>&#160;        <span class="keywordflow">return</span> _document;</div><div class="line"><a name="l00675"></a><span class="lineno">  675</span>&#160;    }</div><div class="line"><a name="l00677"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_node.html#af343d1ef0b45c0020e62d784d7e67a68">  677</a></span>&#160;    <a class="code" href="classtinyxml2_1_1_x_m_l_document.html">XMLDocument</a>* <a class="code" href="classtinyxml2_1_1_x_m_l_node.html#af343d1ef0b45c0020e62d784d7e67a68">GetDocument</a>()              {</div><div class="line"><a name="l00678"></a><span class="lineno">  678</span>&#160;        TIXMLASSERT( _document );</div><div class="line"><a name="l00679"></a><span class="lineno">  679</span>&#160;        <span class="keywordflow">return</span> _document;</div><div class="line"><a name="l00680"></a><span class="lineno">  680</span>&#160;    }</div><div class="line"><a name="l00681"></a><span class="lineno">  681</span>&#160;</div><div class="line"><a name="l00683"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_node.html#aab516e699567f75cc9ab2ef2eee501e8">  683</a></span>&#160;    <span class="keyword">virtual</span> <a class="code" href="classtinyxml2_1_1_x_m_l_element.html">XMLElement</a>*     <a class="code" href="classtinyxml2_1_1_x_m_l_node.html#aab516e699567f75cc9ab2ef2eee501e8">ToElement</a>()     {</div><div class="line"><a name="l00684"></a><span class="lineno">  684</span>&#160;        <span class="keywordflow">return</span> 0;</div><div class="line"><a name="l00685"></a><span class="lineno">  685</span>&#160;    }</div><div class="line"><a name="l00687"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_node.html#a41c55dab9162d1eb62db2008430e376b">  687</a></span>&#160;    <span class="keyword">virtual</span> <a class="code" href="classtinyxml2_1_1_x_m_l_text.html">XMLText</a>*        <a class="code" href="classtinyxml2_1_1_x_m_l_node.html#a41c55dab9162d1eb62db2008430e376b">ToText</a>()        {</div><div class="line"><a name="l00688"></a><span class="lineno">  688</span>&#160;        <span class="keywordflow">return</span> 0;</div><div class="line"><a name="l00689"></a><span class="lineno">  689</span>&#160;    }</div><div class="line"><a name="l00691"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_node.html#aff47671055aa99840a1c1ebd661e63e3">  691</a></span>&#160;    <span class="keyword">virtual</span> <a class="code" href="classtinyxml2_1_1_x_m_l_comment.html">XMLComment</a>*     <a class="code" href="classtinyxml2_1_1_x_m_l_node.html#aff47671055aa99840a1c1ebd661e63e3">ToComment</a>()     {</div><div class="line"><a name="l00692"></a><span class="lineno">  692</span>&#160;        <span class="keywordflow">return</span> 0;</div><div class="line"><a name="l00693"></a><span class="lineno">  693</span>&#160;    }</div><div class="line"><a name="l00695"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_node.html#a836e2966ed736fc3c94f70e12a2a3357">  695</a></span>&#160;    <span class="keyword">virtual</span> <a class="code" href="classtinyxml2_1_1_x_m_l_document.html">XMLDocument</a>*    <a class="code" href="classtinyxml2_1_1_x_m_l_node.html#a836e2966ed736fc3c94f70e12a2a3357">ToDocument</a>()    {</div><div class="line"><a name="l00696"></a><span class="lineno">  696</span>&#160;        <span class="keywordflow">return</span> 0;</div><div class="line"><a name="l00697"></a><span class="lineno">  697</span>&#160;    }</div><div class="line"><a name="l00699"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_node.html#a174fd4c22c010b58138c1b84a0dfbd51">  699</a></span>&#160;    <span class="keyword">virtual</span> <a class="code" href="classtinyxml2_1_1_x_m_l_declaration.html">XMLDeclaration</a>* <a class="code" href="classtinyxml2_1_1_x_m_l_node.html#a174fd4c22c010b58138c1b84a0dfbd51">ToDeclaration</a>() {</div><div class="line"><a name="l00700"></a><span class="lineno">  700</span>&#160;        <span class="keywordflow">return</span> 0;</div><div class="line"><a name="l00701"></a><span class="lineno">  701</span>&#160;    }</div><div class="line"><a name="l00703"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_node.html#a8675a74aa0ada6eccab0c77ef3e5b9bd">  703</a></span>&#160;    <span class="keyword">virtual</span> <a class="code" href="classtinyxml2_1_1_x_m_l_unknown.html">XMLUnknown</a>*     <a class="code" href="classtinyxml2_1_1_x_m_l_node.html#a8675a74aa0ada6eccab0c77ef3e5b9bd">ToUnknown</a>()     {</div><div class="line"><a name="l00704"></a><span class="lineno">  704</span>&#160;        <span class="keywordflow">return</span> 0;</div><div class="line"><a name="l00705"></a><span class="lineno">  705</span>&#160;    }</div><div class="line"><a name="l00706"></a><span class="lineno">  706</span>&#160;</div><div class="line"><a name="l00707"></a><span class="lineno">  707</span>&#160;    <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_element.html">XMLElement</a>*       ToElement()<span class="keyword"> const       </span>{</div><div class="line"><a name="l00708"></a><span class="lineno">  708</span>&#160;        <span class="keywordflow">return</span> 0;</div><div class="line"><a name="l00709"></a><span class="lineno">  709</span>&#160;    }</div><div class="line"><a name="l00710"></a><span class="lineno">  710</span>&#160;    <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_text.html">XMLText</a>*          ToText()<span class="keyword"> const          </span>{</div><div class="line"><a name="l00711"></a><span class="lineno">  711</span>&#160;        <span class="keywordflow">return</span> 0;</div><div class="line"><a name="l00712"></a><span class="lineno">  712</span>&#160;    }</div><div class="line"><a name="l00713"></a><span class="lineno">  713</span>&#160;    <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_comment.html">XMLComment</a>*       ToComment()<span class="keyword"> const       </span>{</div><div class="line"><a name="l00714"></a><span class="lineno">  714</span>&#160;        <span class="keywordflow">return</span> 0;</div><div class="line"><a name="l00715"></a><span class="lineno">  715</span>&#160;    }</div><div class="line"><a name="l00716"></a><span class="lineno">  716</span>&#160;    <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_document.html">XMLDocument</a>*      ToDocument()<span class="keyword"> const      </span>{</div><div class="line"><a name="l00717"></a><span class="lineno">  717</span>&#160;        <span class="keywordflow">return</span> 0;</div><div class="line"><a name="l00718"></a><span class="lineno">  718</span>&#160;    }</div><div class="line"><a name="l00719"></a><span class="lineno">  719</span>&#160;    <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_declaration.html">XMLDeclaration</a>*   ToDeclaration()<span class="keyword"> const   </span>{</div><div class="line"><a name="l00720"></a><span class="lineno">  720</span>&#160;        <span class="keywordflow">return</span> 0;</div><div class="line"><a name="l00721"></a><span class="lineno">  721</span>&#160;    }</div><div class="line"><a name="l00722"></a><span class="lineno">  722</span>&#160;    <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_unknown.html">XMLUnknown</a>*       ToUnknown()<span class="keyword"> const       </span>{</div><div class="line"><a name="l00723"></a><span class="lineno">  723</span>&#160;        <span class="keywordflow">return</span> 0;</div><div class="line"><a name="l00724"></a><span class="lineno">  724</span>&#160;    }</div><div class="line"><a name="l00725"></a><span class="lineno">  725</span>&#160;</div><div class="line"><a name="l00735"></a><span class="lineno">  735</span>&#160;    <span class="keyword">const</span> <span class="keywordtype">char</span>* Value() <span class="keyword">const</span>;</div><div class="line"><a name="l00736"></a><span class="lineno">  736</span>&#160;</div><div class="line"><a name="l00740"></a><span class="lineno">  740</span>&#160;    <span class="keywordtype">void</span> SetValue( <span class="keyword">const</span> <span class="keywordtype">char</span>* val, <span class="keywordtype">bool</span> staticMem=<span class="keyword">false</span> );</div><div class="line"><a name="l00741"></a><span class="lineno">  741</span>&#160;</div><div class="line"><a name="l00743"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_node.html#a9b5fc636646fda761d342c72e91cb286">  743</a></span>&#160;    <span class="keywordtype">int</span> <a class="code" href="classtinyxml2_1_1_x_m_l_node.html#a9b5fc636646fda761d342c72e91cb286">GetLineNum</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> _parseLineNum; }</div><div class="line"><a name="l00744"></a><span class="lineno">  744</span>&#160;</div><div class="line"><a name="l00746"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_node.html#ae0f62bc186c56c2e0483ebd52dbfbe34">  746</a></span>&#160;    <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a>*  <a class="code" href="classtinyxml2_1_1_x_m_l_node.html#ae0f62bc186c56c2e0483ebd52dbfbe34">Parent</a>()<span class="keyword"> const          </span>{</div><div class="line"><a name="l00747"></a><span class="lineno">  747</span>&#160;        <span class="keywordflow">return</span> _parent;</div><div class="line"><a name="l00748"></a><span class="lineno">  748</span>&#160;    }</div><div class="line"><a name="l00749"></a><span class="lineno">  749</span>&#160;</div><div class="line"><a name="l00750"></a><span class="lineno">  750</span>&#160;    <a class="code" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a>* Parent()                       {</div><div class="line"><a name="l00751"></a><span class="lineno">  751</span>&#160;        <span class="keywordflow">return</span> _parent;</div><div class="line"><a name="l00752"></a><span class="lineno">  752</span>&#160;    }</div><div class="line"><a name="l00753"></a><span class="lineno">  753</span>&#160;</div><div class="line"><a name="l00755"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_node.html#ac3ab489e6e202a3cd1762d3b332e89d4">  755</a></span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="classtinyxml2_1_1_x_m_l_node.html#ac3ab489e6e202a3cd1762d3b332e89d4">NoChildren</a>()<span class="keyword"> const                 </span>{</div><div class="line"><a name="l00756"></a><span class="lineno">  756</span>&#160;        <span class="keywordflow">return</span> !_firstChild;</div><div class="line"><a name="l00757"></a><span class="lineno">  757</span>&#160;    }</div><div class="line"><a name="l00758"></a><span class="lineno">  758</span>&#160;</div><div class="line"><a name="l00760"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_node.html#ae7dc225e1018cdd685f7563593a1fe08">  760</a></span>&#160;    <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a>*  <a class="code" href="classtinyxml2_1_1_x_m_l_node.html#ae7dc225e1018cdd685f7563593a1fe08">FirstChild</a>()<span class="keyword"> const      </span>{</div><div class="line"><a name="l00761"></a><span class="lineno">  761</span>&#160;        <span class="keywordflow">return</span> _firstChild;</div><div class="line"><a name="l00762"></a><span class="lineno">  762</span>&#160;    }</div><div class="line"><a name="l00763"></a><span class="lineno">  763</span>&#160;</div><div class="line"><a name="l00764"></a><span class="lineno">  764</span>&#160;    <a class="code" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a>*        FirstChild()            {</div><div class="line"><a name="l00765"></a><span class="lineno">  765</span>&#160;        <span class="keywordflow">return</span> _firstChild;</div><div class="line"><a name="l00766"></a><span class="lineno">  766</span>&#160;    }</div><div class="line"><a name="l00767"></a><span class="lineno">  767</span>&#160;</div><div class="line"><a name="l00771"></a><span class="lineno">  771</span>&#160;    <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_element.html">XMLElement</a>* FirstChildElement( <span class="keyword">const</span> <span class="keywordtype">char</span>* name = 0 ) <span class="keyword">const</span>;</div><div class="line"><a name="l00772"></a><span class="lineno">  772</span>&#160;</div><div class="line"><a name="l00773"></a><span class="lineno">  773</span>&#160;    <a class="code" href="classtinyxml2_1_1_x_m_l_element.html">XMLElement</a>* FirstChildElement( <span class="keyword">const</span> <span class="keywordtype">char</span>* name = 0 )   {</div><div class="line"><a name="l00774"></a><span class="lineno">  774</span>&#160;        <span class="keywordflow">return</span> <span class="keyword">const_cast&lt;</span><a class="code" href="classtinyxml2_1_1_x_m_l_element.html">XMLElement</a>*<span class="keyword">&gt;</span>(<span class="keyword">const_cast&lt;</span><span class="keyword">const </span><a class="code" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a>*<span class="keyword">&gt;</span>(<span class="keyword">this</span>)-&gt;FirstChildElement( name ));</div><div class="line"><a name="l00775"></a><span class="lineno">  775</span>&#160;    }</div><div class="line"><a name="l00776"></a><span class="lineno">  776</span>&#160;</div><div class="line"><a name="l00778"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_node.html#a9b8583a277e8e26f4cbbb5492786778e">  778</a></span>&#160;    <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a>*  <a class="code" href="classtinyxml2_1_1_x_m_l_node.html#a9b8583a277e8e26f4cbbb5492786778e">LastChild</a>()<span class="keyword"> const                       </span>{</div><div class="line"><a name="l00779"></a><span class="lineno">  779</span>&#160;        <span class="keywordflow">return</span> _lastChild;</div><div class="line"><a name="l00780"></a><span class="lineno">  780</span>&#160;    }</div><div class="line"><a name="l00781"></a><span class="lineno">  781</span>&#160;</div><div class="line"><a name="l00782"></a><span class="lineno">  782</span>&#160;    <a class="code" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a>*        LastChild()                             {</div><div class="line"><a name="l00783"></a><span class="lineno">  783</span>&#160;        <span class="keywordflow">return</span> _lastChild;</div><div class="line"><a name="l00784"></a><span class="lineno">  784</span>&#160;    }</div><div class="line"><a name="l00785"></a><span class="lineno">  785</span>&#160;</div><div class="line"><a name="l00789"></a><span class="lineno">  789</span>&#160;    <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_element.html">XMLElement</a>* LastChildElement( <span class="keyword">const</span> <span class="keywordtype">char</span>* name = 0 ) <span class="keyword">const</span>;</div><div class="line"><a name="l00790"></a><span class="lineno">  790</span>&#160;</div><div class="line"><a name="l00791"></a><span class="lineno">  791</span>&#160;    <a class="code" href="classtinyxml2_1_1_x_m_l_element.html">XMLElement</a>* LastChildElement( <span class="keyword">const</span> <span class="keywordtype">char</span>* name = 0 )    {</div><div class="line"><a name="l00792"></a><span class="lineno">  792</span>&#160;        <span class="keywordflow">return</span> <span class="keyword">const_cast&lt;</span><a class="code" href="classtinyxml2_1_1_x_m_l_element.html">XMLElement</a>*<span class="keyword">&gt;</span>(<span class="keyword">const_cast&lt;</span><span class="keyword">const </span><a class="code" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a>*<span class="keyword">&gt;</span>(<span class="keyword">this</span>)-&gt;LastChildElement(name) );</div><div class="line"><a name="l00793"></a><span class="lineno">  793</span>&#160;    }</div><div class="line"><a name="l00794"></a><span class="lineno">  794</span>&#160;</div><div class="line"><a name="l00796"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_node.html#aac667c513d445f8b783e1e15ef9d3551">  796</a></span>&#160;    <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a>*  <a class="code" href="classtinyxml2_1_1_x_m_l_node.html#aac667c513d445f8b783e1e15ef9d3551">PreviousSibling</a>()<span class="keyword"> const                 </span>{</div><div class="line"><a name="l00797"></a><span class="lineno">  797</span>&#160;        <span class="keywordflow">return</span> _prev;</div><div class="line"><a name="l00798"></a><span class="lineno">  798</span>&#160;    }</div><div class="line"><a name="l00799"></a><span class="lineno">  799</span>&#160;</div><div class="line"><a name="l00800"></a><span class="lineno">  800</span>&#160;    <a class="code" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a>*    PreviousSibling()                           {</div><div class="line"><a name="l00801"></a><span class="lineno">  801</span>&#160;        <span class="keywordflow">return</span> _prev;</div><div class="line"><a name="l00802"></a><span class="lineno">  802</span>&#160;    }</div><div class="line"><a name="l00803"></a><span class="lineno">  803</span>&#160;</div><div class="line"><a name="l00805"></a><span class="lineno">  805</span>&#160;    <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_element.html">XMLElement</a>*   PreviousSiblingElement( <span class="keyword">const</span> <span class="keywordtype">char</span>* name = 0 ) <span class="keyword">const</span> ;</div><div class="line"><a name="l00806"></a><span class="lineno">  806</span>&#160;</div><div class="line"><a name="l00807"></a><span class="lineno">  807</span>&#160;    <a class="code" href="classtinyxml2_1_1_x_m_l_element.html">XMLElement</a>* PreviousSiblingElement( <span class="keyword">const</span> <span class="keywordtype">char</span>* name = 0 ) {</div><div class="line"><a name="l00808"></a><span class="lineno">  808</span>&#160;        <span class="keywordflow">return</span> <span class="keyword">const_cast&lt;</span><a class="code" href="classtinyxml2_1_1_x_m_l_element.html">XMLElement</a>*<span class="keyword">&gt;</span>(<span class="keyword">const_cast&lt;</span><span class="keyword">const </span><a class="code" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a>*<span class="keyword">&gt;</span>(<span class="keyword">this</span>)-&gt;PreviousSiblingElement( name ) );</div><div class="line"><a name="l00809"></a><span class="lineno">  809</span>&#160;    }</div><div class="line"><a name="l00810"></a><span class="lineno">  810</span>&#160;</div><div class="line"><a name="l00812"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_node.html#a79db9ef0fe014d27790f2218b87bcbb5">  812</a></span>&#160;    <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a>*  <a class="code" href="classtinyxml2_1_1_x_m_l_node.html#a79db9ef0fe014d27790f2218b87bcbb5">NextSibling</a>()<span class="keyword"> const                     </span>{</div><div class="line"><a name="l00813"></a><span class="lineno">  813</span>&#160;        <span class="keywordflow">return</span> _next;</div><div class="line"><a name="l00814"></a><span class="lineno">  814</span>&#160;    }</div><div class="line"><a name="l00815"></a><span class="lineno">  815</span>&#160;</div><div class="line"><a name="l00816"></a><span class="lineno">  816</span>&#160;    <a class="code" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a>*    NextSibling()                               {</div><div class="line"><a name="l00817"></a><span class="lineno">  817</span>&#160;        <span class="keywordflow">return</span> _next;</div><div class="line"><a name="l00818"></a><span class="lineno">  818</span>&#160;    }</div><div class="line"><a name="l00819"></a><span class="lineno">  819</span>&#160;</div><div class="line"><a name="l00821"></a><span class="lineno">  821</span>&#160;    <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_element.html">XMLElement</a>*   NextSiblingElement( <span class="keyword">const</span> <span class="keywordtype">char</span>* name = 0 ) <span class="keyword">const</span>;</div><div class="line"><a name="l00822"></a><span class="lineno">  822</span>&#160;</div><div class="line"><a name="l00823"></a><span class="lineno">  823</span>&#160;    <a class="code" href="classtinyxml2_1_1_x_m_l_element.html">XMLElement</a>* NextSiblingElement( <span class="keyword">const</span> <span class="keywordtype">char</span>* name = 0 )  {</div><div class="line"><a name="l00824"></a><span class="lineno">  824</span>&#160;        <span class="keywordflow">return</span> <span class="keyword">const_cast&lt;</span><a class="code" href="classtinyxml2_1_1_x_m_l_element.html">XMLElement</a>*<span class="keyword">&gt;</span>(<span class="keyword">const_cast&lt;</span><span class="keyword">const </span><a class="code" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a>*<span class="keyword">&gt;</span>(<span class="keyword">this</span>)-&gt;NextSiblingElement( name ) );</div><div class="line"><a name="l00825"></a><span class="lineno">  825</span>&#160;    }</div><div class="line"><a name="l00826"></a><span class="lineno">  826</span>&#160;</div><div class="line"><a name="l00834"></a><span class="lineno">  834</span>&#160;    <a class="code" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a>* InsertEndChild( <a class="code" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a>* addThis );</div><div class="line"><a name="l00835"></a><span class="lineno">  835</span>&#160;</div><div class="line"><a name="l00836"></a><span class="lineno">  836</span>&#160;    <a class="code" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a>* LinkEndChild( <a class="code" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a>* addThis )   {</div><div class="line"><a name="l00837"></a><span class="lineno">  837</span>&#160;        <span class="keywordflow">return</span> InsertEndChild( addThis );</div><div class="line"><a name="l00838"></a><span class="lineno">  838</span>&#160;    }</div><div class="line"><a name="l00846"></a><span class="lineno">  846</span>&#160;    <a class="code" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a>* InsertFirstChild( <a class="code" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a>* addThis );</div><div class="line"><a name="l00855"></a><span class="lineno">  855</span>&#160;    <a class="code" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a>* InsertAfterChild( <a class="code" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a>* afterThis, <a class="code" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a>* addThis );</div><div class="line"><a name="l00856"></a><span class="lineno">  856</span>&#160;</div><div class="line"><a name="l00860"></a><span class="lineno">  860</span>&#160;    <span class="keywordtype">void</span> DeleteChildren();</div><div class="line"><a name="l00861"></a><span class="lineno">  861</span>&#160;</div><div class="line"><a name="l00865"></a><span class="lineno">  865</span>&#160;    <span class="keywordtype">void</span> DeleteChild( <a class="code" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a>* node );</div><div class="line"><a name="l00866"></a><span class="lineno">  866</span>&#160;</div><div class="line"><a name="l00876"></a><span class="lineno">  876</span>&#160;    <span class="keyword">virtual</span> <a class="code" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a>* ShallowClone( <a class="code" href="classtinyxml2_1_1_x_m_l_document.html">XMLDocument</a>* document ) <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00877"></a><span class="lineno">  877</span>&#160;</div><div class="line"><a name="l00891"></a><span class="lineno">  891</span>&#160;    <a class="code" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a>* DeepClone( <a class="code" href="classtinyxml2_1_1_x_m_l_document.html">XMLDocument</a>* target ) <span class="keyword">const</span>;</div><div class="line"><a name="l00892"></a><span class="lineno">  892</span>&#160;</div><div class="line"><a name="l00899"></a><span class="lineno">  899</span>&#160;    <span class="keyword">virtual</span> <span class="keywordtype">bool</span> ShallowEqual( <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a>* compare ) <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00900"></a><span class="lineno">  900</span>&#160;</div><div class="line"><a name="l00923"></a><span class="lineno">  923</span>&#160;    <span class="keyword">virtual</span> <span class="keywordtype">bool</span> Accept( <a class="code" href="classtinyxml2_1_1_x_m_l_visitor.html">XMLVisitor</a>* visitor ) <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00924"></a><span class="lineno">  924</span>&#160;</div><div class="line"><a name="l00930"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_node.html#a002978fc889cc011d143185f2377eca2">  930</a></span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classtinyxml2_1_1_x_m_l_node.html#a002978fc889cc011d143185f2377eca2">SetUserData</a>(<span class="keywordtype">void</span>* userData)    { _userData = userData; }</div><div class="line"><a name="l00931"></a><span class="lineno">  931</span>&#160;</div><div class="line"><a name="l00937"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_node.html#a7f0687574afa03bc479dc44f29db0afe">  937</a></span>&#160;    <span class="keywordtype">void</span>* <a class="code" href="classtinyxml2_1_1_x_m_l_node.html#a7f0687574afa03bc479dc44f29db0afe">GetUserData</a>()<span class="keyword"> const           </span>{ <span class="keywordflow">return</span> _userData; }</div><div class="line"><a name="l00938"></a><span class="lineno">  938</span>&#160;</div><div class="line"><a name="l00939"></a><span class="lineno">  939</span>&#160;<span class="keyword">protected</span>:</div><div class="line"><a name="l00940"></a><span class="lineno">  940</span>&#160;    <span class="keyword">explicit</span> <a class="code" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a>( <a class="code" href="classtinyxml2_1_1_x_m_l_document.html">XMLDocument</a>* );</div><div class="line"><a name="l00941"></a><span class="lineno">  941</span>&#160;    <span class="keyword">virtual</span> ~<a class="code" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a>();</div><div class="line"><a name="l00942"></a><span class="lineno">  942</span>&#160;</div><div class="line"><a name="l00943"></a><span class="lineno">  943</span>&#160;    <span class="keyword">virtual</span> <span class="keywordtype">char</span>* ParseDeep( <span class="keywordtype">char</span>* p, StrPair* parentEndTag, <span class="keywordtype">int</span>* curLineNumPtr);</div><div class="line"><a name="l00944"></a><span class="lineno">  944</span>&#160;</div><div class="line"><a name="l00945"></a><span class="lineno">  945</span>&#160;    <a class="code" href="classtinyxml2_1_1_x_m_l_document.html">XMLDocument</a>*    _document;</div><div class="line"><a name="l00946"></a><span class="lineno">  946</span>&#160;    <a class="code" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a>*        _parent;</div><div class="line"><a name="l00947"></a><span class="lineno">  947</span>&#160;    <span class="keyword">mutable</span> StrPair _value;</div><div class="line"><a name="l00948"></a><span class="lineno">  948</span>&#160;    <span class="keywordtype">int</span>             _parseLineNum;</div><div class="line"><a name="l00949"></a><span class="lineno">  949</span>&#160;</div><div class="line"><a name="l00950"></a><span class="lineno">  950</span>&#160;    <a class="code" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a>*        _firstChild;</div><div class="line"><a name="l00951"></a><span class="lineno">  951</span>&#160;    <a class="code" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a>*        _lastChild;</div><div class="line"><a name="l00952"></a><span class="lineno">  952</span>&#160;</div><div class="line"><a name="l00953"></a><span class="lineno">  953</span>&#160;    <a class="code" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a>*        _prev;</div><div class="line"><a name="l00954"></a><span class="lineno">  954</span>&#160;    <a class="code" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a>*        _next;</div><div class="line"><a name="l00955"></a><span class="lineno">  955</span>&#160;</div><div class="line"><a name="l00956"></a><span class="lineno">  956</span>&#160;    <span class="keywordtype">void</span>*           _userData;</div><div class="line"><a name="l00957"></a><span class="lineno">  957</span>&#160;</div><div class="line"><a name="l00958"></a><span class="lineno">  958</span>&#160;<span class="keyword">private</span>:</div><div class="line"><a name="l00959"></a><span class="lineno">  959</span>&#160;    MemPool*        _memPool;</div><div class="line"><a name="l00960"></a><span class="lineno">  960</span>&#160;    <span class="keywordtype">void</span> Unlink( <a class="code" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a>* child );</div><div class="line"><a name="l00961"></a><span class="lineno">  961</span>&#160;    <span class="keyword">static</span> <span class="keywordtype">void</span> DeleteNode( <a class="code" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a>* node );</div><div class="line"><a name="l00962"></a><span class="lineno">  962</span>&#160;    <span class="keywordtype">void</span> InsertChildPreamble( <a class="code" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a>* insertThis ) <span class="keyword">const</span>;</div><div class="line"><a name="l00963"></a><span class="lineno">  963</span>&#160;    <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_element.html">XMLElement</a>* ToElementWithName( <span class="keyword">const</span> <span class="keywordtype">char</span>* name ) <span class="keyword">const</span>;</div><div class="line"><a name="l00964"></a><span class="lineno">  964</span>&#160;</div><div class="line"><a name="l00965"></a><span class="lineno">  965</span>&#160;    <a class="code" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a>( <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a>&amp; );  <span class="comment">// not supported</span></div><div class="line"><a name="l00966"></a><span class="lineno">  966</span>&#160;    <a class="code" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a>&amp; operator=( <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a>&amp; );   <span class="comment">// not supported</span></div><div class="line"><a name="l00967"></a><span class="lineno">  967</span>&#160;};</div><div class="line"><a name="l00968"></a><span class="lineno">  968</span>&#160;</div><div class="line"><a name="l00969"></a><span class="lineno">  969</span>&#160;</div><div class="line"><a name="l00982"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_text.html">  982</a></span>&#160;<span class="keyword">class </span>TINYXML2_LIB <a class="code" href="classtinyxml2_1_1_x_m_l_text.html">XMLText</a> : <span class="keyword">public</span> <a class="code" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a></div><div class="line"><a name="l00983"></a><span class="lineno">  983</span>&#160;{</div><div class="line"><a name="l00984"></a><span class="lineno">  984</span>&#160;    <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classtinyxml2_1_1_x_m_l_document.html">XMLDocument</a>;</div><div class="line"><a name="l00985"></a><span class="lineno">  985</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00986"></a><span class="lineno">  986</span>&#160;    <span class="keyword">virtual</span> <span class="keywordtype">bool</span> Accept( <a class="code" href="classtinyxml2_1_1_x_m_l_visitor.html">XMLVisitor</a>* visitor ) <span class="keyword">const</span>;</div><div class="line"><a name="l00987"></a><span class="lineno">  987</span>&#160;</div><div class="line"><a name="l00988"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_text.html#ab1213b4ddebe9b17ec7e7040e9f1caf7">  988</a></span>&#160;    <span class="keyword">virtual</span> <a class="code" href="classtinyxml2_1_1_x_m_l_text.html">XMLText</a>* <a class="code" href="classtinyxml2_1_1_x_m_l_text.html#ab1213b4ddebe9b17ec7e7040e9f1caf7">ToText</a>()           {</div><div class="line"><a name="l00989"></a><span class="lineno">  989</span>&#160;        <span class="keywordflow">return</span> <span class="keyword">this</span>;</div><div class="line"><a name="l00990"></a><span class="lineno">  990</span>&#160;    }</div><div class="line"><a name="l00991"></a><span class="lineno">  991</span>&#160;    <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_text.html">XMLText</a>* ToText()<span class="keyword"> const   </span>{</div><div class="line"><a name="l00992"></a><span class="lineno">  992</span>&#160;        <span class="keywordflow">return</span> <span class="keyword">this</span>;</div><div class="line"><a name="l00993"></a><span class="lineno">  993</span>&#160;    }</div><div class="line"><a name="l00994"></a><span class="lineno">  994</span>&#160;</div><div class="line"><a name="l00996"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_text.html#ad080357d76ab7cc59d7651249949329d">  996</a></span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classtinyxml2_1_1_x_m_l_text.html#ad080357d76ab7cc59d7651249949329d">SetCData</a>( <span class="keywordtype">bool</span> isCData )           {</div><div class="line"><a name="l00997"></a><span class="lineno">  997</span>&#160;        _isCData = isCData;</div><div class="line"><a name="l00998"></a><span class="lineno">  998</span>&#160;    }</div><div class="line"><a name="l01000"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_text.html#ac1bb5ea4166c320882d9e0ad16fd385b"> 1000</a></span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="classtinyxml2_1_1_x_m_l_text.html#ac1bb5ea4166c320882d9e0ad16fd385b">CData</a>()<span class="keyword"> const                      </span>{</div><div class="line"><a name="l01001"></a><span class="lineno"> 1001</span>&#160;        <span class="keywordflow">return</span> _isCData;</div><div class="line"><a name="l01002"></a><span class="lineno"> 1002</span>&#160;    }</div><div class="line"><a name="l01003"></a><span class="lineno"> 1003</span>&#160;</div><div class="line"><a name="l01004"></a><span class="lineno"> 1004</span>&#160;    <span class="keyword">virtual</span> <a class="code" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a>* ShallowClone( <a class="code" href="classtinyxml2_1_1_x_m_l_document.html">XMLDocument</a>* document ) <span class="keyword">const</span>;</div><div class="line"><a name="l01005"></a><span class="lineno"> 1005</span>&#160;    <span class="keyword">virtual</span> <span class="keywordtype">bool</span> ShallowEqual( <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a>* compare ) <span class="keyword">const</span>;</div><div class="line"><a name="l01006"></a><span class="lineno"> 1006</span>&#160;</div><div class="line"><a name="l01007"></a><span class="lineno"> 1007</span>&#160;<span class="keyword">protected</span>:</div><div class="line"><a name="l01008"></a><span class="lineno"> 1008</span>&#160;    <span class="keyword">explicit</span> <a class="code" href="classtinyxml2_1_1_x_m_l_text.html">XMLText</a>( <a class="code" href="classtinyxml2_1_1_x_m_l_document.html">XMLDocument</a>* doc )    : <a class="code" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a>( doc ), _isCData( <span class="keyword">false</span> ) {}</div><div class="line"><a name="l01009"></a><span class="lineno"> 1009</span>&#160;    <span class="keyword">virtual</span> ~<a class="code" href="classtinyxml2_1_1_x_m_l_text.html">XMLText</a>()                                              {}</div><div class="line"><a name="l01010"></a><span class="lineno"> 1010</span>&#160;</div><div class="line"><a name="l01011"></a><span class="lineno"> 1011</span>&#160;    <span class="keywordtype">char</span>* ParseDeep( <span class="keywordtype">char</span>* p, StrPair* parentEndTag, <span class="keywordtype">int</span>* curLineNumPtr );</div><div class="line"><a name="l01012"></a><span class="lineno"> 1012</span>&#160;</div><div class="line"><a name="l01013"></a><span class="lineno"> 1013</span>&#160;<span class="keyword">private</span>:</div><div class="line"><a name="l01014"></a><span class="lineno"> 1014</span>&#160;    <span class="keywordtype">bool</span> _isCData;</div><div class="line"><a name="l01015"></a><span class="lineno"> 1015</span>&#160;</div><div class="line"><a name="l01016"></a><span class="lineno"> 1016</span>&#160;    <a class="code" href="classtinyxml2_1_1_x_m_l_text.html">XMLText</a>( <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_text.html">XMLText</a>&amp; );  <span class="comment">// not supported</span></div><div class="line"><a name="l01017"></a><span class="lineno"> 1017</span>&#160;    <a class="code" href="classtinyxml2_1_1_x_m_l_text.html">XMLText</a>&amp; operator=( <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_text.html">XMLText</a>&amp; );   <span class="comment">// not supported</span></div><div class="line"><a name="l01018"></a><span class="lineno"> 1018</span>&#160;};</div><div class="line"><a name="l01019"></a><span class="lineno"> 1019</span>&#160;</div><div class="line"><a name="l01020"></a><span class="lineno"> 1020</span>&#160;</div><div class="line"><a name="l01022"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_comment.html"> 1022</a></span>&#160;<span class="keyword">class </span>TINYXML2_LIB <a class="code" href="classtinyxml2_1_1_x_m_l_comment.html">XMLComment</a> : <span class="keyword">public</span> <a class="code" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a></div><div class="line"><a name="l01023"></a><span class="lineno"> 1023</span>&#160;{</div><div class="line"><a name="l01024"></a><span class="lineno"> 1024</span>&#160;    <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classtinyxml2_1_1_x_m_l_document.html">XMLDocument</a>;</div><div class="line"><a name="l01025"></a><span class="lineno"> 1025</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l01026"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_comment.html#a8093e1dc8a34fa446d9dc3fde0e6c0ee"> 1026</a></span>&#160;    <span class="keyword">virtual</span> <a class="code" href="classtinyxml2_1_1_x_m_l_comment.html">XMLComment</a>* <a class="code" href="classtinyxml2_1_1_x_m_l_comment.html#a8093e1dc8a34fa446d9dc3fde0e6c0ee">ToComment</a>()                 {</div><div class="line"><a name="l01027"></a><span class="lineno"> 1027</span>&#160;        <span class="keywordflow">return</span> <span class="keyword">this</span>;</div><div class="line"><a name="l01028"></a><span class="lineno"> 1028</span>&#160;    }</div><div class="line"><a name="l01029"></a><span class="lineno"> 1029</span>&#160;    <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_comment.html">XMLComment</a>* ToComment()<span class="keyword"> const     </span>{</div><div class="line"><a name="l01030"></a><span class="lineno"> 1030</span>&#160;        <span class="keywordflow">return</span> <span class="keyword">this</span>;</div><div class="line"><a name="l01031"></a><span class="lineno"> 1031</span>&#160;    }</div><div class="line"><a name="l01032"></a><span class="lineno"> 1032</span>&#160;</div><div class="line"><a name="l01033"></a><span class="lineno"> 1033</span>&#160;    <span class="keyword">virtual</span> <span class="keywordtype">bool</span> Accept( <a class="code" href="classtinyxml2_1_1_x_m_l_visitor.html">XMLVisitor</a>* visitor ) <span class="keyword">const</span>;</div><div class="line"><a name="l01034"></a><span class="lineno"> 1034</span>&#160;</div><div class="line"><a name="l01035"></a><span class="lineno"> 1035</span>&#160;    <span class="keyword">virtual</span> <a class="code" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a>* ShallowClone( <a class="code" href="classtinyxml2_1_1_x_m_l_document.html">XMLDocument</a>* document ) <span class="keyword">const</span>;</div><div class="line"><a name="l01036"></a><span class="lineno"> 1036</span>&#160;    <span class="keyword">virtual</span> <span class="keywordtype">bool</span> ShallowEqual( <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a>* compare ) <span class="keyword">const</span>;</div><div class="line"><a name="l01037"></a><span class="lineno"> 1037</span>&#160;</div><div class="line"><a name="l01038"></a><span class="lineno"> 1038</span>&#160;<span class="keyword">protected</span>:</div><div class="line"><a name="l01039"></a><span class="lineno"> 1039</span>&#160;    <span class="keyword">explicit</span> <a class="code" href="classtinyxml2_1_1_x_m_l_comment.html">XMLComment</a>( <a class="code" href="classtinyxml2_1_1_x_m_l_document.html">XMLDocument</a>* doc );</div><div class="line"><a name="l01040"></a><span class="lineno"> 1040</span>&#160;    <span class="keyword">virtual</span> ~<a class="code" href="classtinyxml2_1_1_x_m_l_comment.html">XMLComment</a>();</div><div class="line"><a name="l01041"></a><span class="lineno"> 1041</span>&#160;</div><div class="line"><a name="l01042"></a><span class="lineno"> 1042</span>&#160;    <span class="keywordtype">char</span>* ParseDeep( <span class="keywordtype">char</span>* p, StrPair* parentEndTag, <span class="keywordtype">int</span>* curLineNumPtr);</div><div class="line"><a name="l01043"></a><span class="lineno"> 1043</span>&#160;</div><div class="line"><a name="l01044"></a><span class="lineno"> 1044</span>&#160;<span class="keyword">private</span>:</div><div class="line"><a name="l01045"></a><span class="lineno"> 1045</span>&#160;    <a class="code" href="classtinyxml2_1_1_x_m_l_comment.html">XMLComment</a>( <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_comment.html">XMLComment</a>&amp; );    <span class="comment">// not supported</span></div><div class="line"><a name="l01046"></a><span class="lineno"> 1046</span>&#160;    <a class="code" href="classtinyxml2_1_1_x_m_l_comment.html">XMLComment</a>&amp; operator=( <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_comment.html">XMLComment</a>&amp; ); <span class="comment">// not supported</span></div><div class="line"><a name="l01047"></a><span class="lineno"> 1047</span>&#160;};</div><div class="line"><a name="l01048"></a><span class="lineno"> 1048</span>&#160;</div><div class="line"><a name="l01049"></a><span class="lineno"> 1049</span>&#160;</div><div class="line"><a name="l01061"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_declaration.html"> 1061</a></span>&#160;<span class="keyword">class </span>TINYXML2_LIB <a class="code" href="classtinyxml2_1_1_x_m_l_declaration.html">XMLDeclaration</a> : <span class="keyword">public</span> <a class="code" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a></div><div class="line"><a name="l01062"></a><span class="lineno"> 1062</span>&#160;{</div><div class="line"><a name="l01063"></a><span class="lineno"> 1063</span>&#160;    <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classtinyxml2_1_1_x_m_l_document.html">XMLDocument</a>;</div><div class="line"><a name="l01064"></a><span class="lineno"> 1064</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l01065"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_declaration.html#a159d8ac45865215e88059ea1e5b52fc5"> 1065</a></span>&#160;    <span class="keyword">virtual</span> <a class="code" href="classtinyxml2_1_1_x_m_l_declaration.html">XMLDeclaration</a>* <a class="code" href="classtinyxml2_1_1_x_m_l_declaration.html#a159d8ac45865215e88059ea1e5b52fc5">ToDeclaration</a>()                 {</div><div class="line"><a name="l01066"></a><span class="lineno"> 1066</span>&#160;        <span class="keywordflow">return</span> <span class="keyword">this</span>;</div><div class="line"><a name="l01067"></a><span class="lineno"> 1067</span>&#160;    }</div><div class="line"><a name="l01068"></a><span class="lineno"> 1068</span>&#160;    <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_declaration.html">XMLDeclaration</a>* ToDeclaration()<span class="keyword"> const     </span>{</div><div class="line"><a name="l01069"></a><span class="lineno"> 1069</span>&#160;        <span class="keywordflow">return</span> <span class="keyword">this</span>;</div><div class="line"><a name="l01070"></a><span class="lineno"> 1070</span>&#160;    }</div><div class="line"><a name="l01071"></a><span class="lineno"> 1071</span>&#160;</div><div class="line"><a name="l01072"></a><span class="lineno"> 1072</span>&#160;    <span class="keyword">virtual</span> <span class="keywordtype">bool</span> Accept( <a class="code" href="classtinyxml2_1_1_x_m_l_visitor.html">XMLVisitor</a>* visitor ) <span class="keyword">const</span>;</div><div class="line"><a name="l01073"></a><span class="lineno"> 1073</span>&#160;</div><div class="line"><a name="l01074"></a><span class="lineno"> 1074</span>&#160;    <span class="keyword">virtual</span> <a class="code" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a>* ShallowClone( <a class="code" href="classtinyxml2_1_1_x_m_l_document.html">XMLDocument</a>* document ) <span class="keyword">const</span>;</div><div class="line"><a name="l01075"></a><span class="lineno"> 1075</span>&#160;    <span class="keyword">virtual</span> <span class="keywordtype">bool</span> ShallowEqual( <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a>* compare ) <span class="keyword">const</span>;</div><div class="line"><a name="l01076"></a><span class="lineno"> 1076</span>&#160;</div><div class="line"><a name="l01077"></a><span class="lineno"> 1077</span>&#160;<span class="keyword">protected</span>:</div><div class="line"><a name="l01078"></a><span class="lineno"> 1078</span>&#160;    <span class="keyword">explicit</span> <a class="code" href="classtinyxml2_1_1_x_m_l_declaration.html">XMLDeclaration</a>( <a class="code" href="classtinyxml2_1_1_x_m_l_document.html">XMLDocument</a>* doc );</div><div class="line"><a name="l01079"></a><span class="lineno"> 1079</span>&#160;    <span class="keyword">virtual</span> ~<a class="code" href="classtinyxml2_1_1_x_m_l_declaration.html">XMLDeclaration</a>();</div><div class="line"><a name="l01080"></a><span class="lineno"> 1080</span>&#160;</div><div class="line"><a name="l01081"></a><span class="lineno"> 1081</span>&#160;    <span class="keywordtype">char</span>* ParseDeep( <span class="keywordtype">char</span>* p, StrPair* parentEndTag, <span class="keywordtype">int</span>* curLineNumPtr );</div><div class="line"><a name="l01082"></a><span class="lineno"> 1082</span>&#160;</div><div class="line"><a name="l01083"></a><span class="lineno"> 1083</span>&#160;<span class="keyword">private</span>:</div><div class="line"><a name="l01084"></a><span class="lineno"> 1084</span>&#160;    <a class="code" href="classtinyxml2_1_1_x_m_l_declaration.html">XMLDeclaration</a>( <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_declaration.html">XMLDeclaration</a>&amp; );    <span class="comment">// not supported</span></div><div class="line"><a name="l01085"></a><span class="lineno"> 1085</span>&#160;    <a class="code" href="classtinyxml2_1_1_x_m_l_declaration.html">XMLDeclaration</a>&amp; operator=( <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_declaration.html">XMLDeclaration</a>&amp; ); <span class="comment">// not supported</span></div><div class="line"><a name="l01086"></a><span class="lineno"> 1086</span>&#160;};</div><div class="line"><a name="l01087"></a><span class="lineno"> 1087</span>&#160;</div><div class="line"><a name="l01088"></a><span class="lineno"> 1088</span>&#160;</div><div class="line"><a name="l01096"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_unknown.html"> 1096</a></span>&#160;<span class="keyword">class </span>TINYXML2_LIB <a class="code" href="classtinyxml2_1_1_x_m_l_unknown.html">XMLUnknown</a> : <span class="keyword">public</span> <a class="code" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a></div><div class="line"><a name="l01097"></a><span class="lineno"> 1097</span>&#160;{</div><div class="line"><a name="l01098"></a><span class="lineno"> 1098</span>&#160;    <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classtinyxml2_1_1_x_m_l_document.html">XMLDocument</a>;</div><div class="line"><a name="l01099"></a><span class="lineno"> 1099</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l01100"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_unknown.html#af4374856421921cad578c8affae872b6"> 1100</a></span>&#160;    <span class="keyword">virtual</span> <a class="code" href="classtinyxml2_1_1_x_m_l_unknown.html">XMLUnknown</a>* <a class="code" href="classtinyxml2_1_1_x_m_l_unknown.html#af4374856421921cad578c8affae872b6">ToUnknown</a>()                 {</div><div class="line"><a name="l01101"></a><span class="lineno"> 1101</span>&#160;        <span class="keywordflow">return</span> <span class="keyword">this</span>;</div><div class="line"><a name="l01102"></a><span class="lineno"> 1102</span>&#160;    }</div><div class="line"><a name="l01103"></a><span class="lineno"> 1103</span>&#160;    <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_unknown.html">XMLUnknown</a>* ToUnknown()<span class="keyword"> const     </span>{</div><div class="line"><a name="l01104"></a><span class="lineno"> 1104</span>&#160;        <span class="keywordflow">return</span> <span class="keyword">this</span>;</div><div class="line"><a name="l01105"></a><span class="lineno"> 1105</span>&#160;    }</div><div class="line"><a name="l01106"></a><span class="lineno"> 1106</span>&#160;</div><div class="line"><a name="l01107"></a><span class="lineno"> 1107</span>&#160;    <span class="keyword">virtual</span> <span class="keywordtype">bool</span> Accept( <a class="code" href="classtinyxml2_1_1_x_m_l_visitor.html">XMLVisitor</a>* visitor ) <span class="keyword">const</span>;</div><div class="line"><a name="l01108"></a><span class="lineno"> 1108</span>&#160;</div><div class="line"><a name="l01109"></a><span class="lineno"> 1109</span>&#160;    <span class="keyword">virtual</span> <a class="code" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a>* ShallowClone( <a class="code" href="classtinyxml2_1_1_x_m_l_document.html">XMLDocument</a>* document ) <span class="keyword">const</span>;</div><div class="line"><a name="l01110"></a><span class="lineno"> 1110</span>&#160;    <span class="keyword">virtual</span> <span class="keywordtype">bool</span> ShallowEqual( <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a>* compare ) <span class="keyword">const</span>;</div><div class="line"><a name="l01111"></a><span class="lineno"> 1111</span>&#160;</div><div class="line"><a name="l01112"></a><span class="lineno"> 1112</span>&#160;<span class="keyword">protected</span>:</div><div class="line"><a name="l01113"></a><span class="lineno"> 1113</span>&#160;    <span class="keyword">explicit</span> <a class="code" href="classtinyxml2_1_1_x_m_l_unknown.html">XMLUnknown</a>( <a class="code" href="classtinyxml2_1_1_x_m_l_document.html">XMLDocument</a>* doc );</div><div class="line"><a name="l01114"></a><span class="lineno"> 1114</span>&#160;    <span class="keyword">virtual</span> ~<a class="code" href="classtinyxml2_1_1_x_m_l_unknown.html">XMLUnknown</a>();</div><div class="line"><a name="l01115"></a><span class="lineno"> 1115</span>&#160;</div><div class="line"><a name="l01116"></a><span class="lineno"> 1116</span>&#160;    <span class="keywordtype">char</span>* ParseDeep( <span class="keywordtype">char</span>* p, StrPair* parentEndTag, <span class="keywordtype">int</span>* curLineNumPtr );</div><div class="line"><a name="l01117"></a><span class="lineno"> 1117</span>&#160;</div><div class="line"><a name="l01118"></a><span class="lineno"> 1118</span>&#160;<span class="keyword">private</span>:</div><div class="line"><a name="l01119"></a><span class="lineno"> 1119</span>&#160;    <a class="code" href="classtinyxml2_1_1_x_m_l_unknown.html">XMLUnknown</a>( <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_unknown.html">XMLUnknown</a>&amp; );    <span class="comment">// not supported</span></div><div class="line"><a name="l01120"></a><span class="lineno"> 1120</span>&#160;    <a class="code" href="classtinyxml2_1_1_x_m_l_unknown.html">XMLUnknown</a>&amp; operator=( <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_unknown.html">XMLUnknown</a>&amp; ); <span class="comment">// not supported</span></div><div class="line"><a name="l01121"></a><span class="lineno"> 1121</span>&#160;};</div><div class="line"><a name="l01122"></a><span class="lineno"> 1122</span>&#160;</div><div class="line"><a name="l01123"></a><span class="lineno"> 1123</span>&#160;</div><div class="line"><a name="l01124"></a><span class="lineno"> 1124</span>&#160;</div><div class="line"><a name="l01131"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_attribute.html"> 1131</a></span>&#160;<span class="keyword">class </span>TINYXML2_LIB <a class="code" href="classtinyxml2_1_1_x_m_l_attribute.html">XMLAttribute</a></div><div class="line"><a name="l01132"></a><span class="lineno"> 1132</span>&#160;{</div><div class="line"><a name="l01133"></a><span class="lineno"> 1133</span>&#160;    <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classtinyxml2_1_1_x_m_l_element.html">XMLElement</a>;</div><div class="line"><a name="l01134"></a><span class="lineno"> 1134</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l01136"></a><span class="lineno"> 1136</span>&#160;    <span class="keyword">const</span> <span class="keywordtype">char</span>* Name() <span class="keyword">const</span>;</div><div class="line"><a name="l01137"></a><span class="lineno"> 1137</span>&#160;</div><div class="line"><a name="l01139"></a><span class="lineno"> 1139</span>&#160;    <span class="keyword">const</span> <span class="keywordtype">char</span>* Value() <span class="keyword">const</span>;</div><div class="line"><a name="l01140"></a><span class="lineno"> 1140</span>&#160;</div><div class="line"><a name="l01142"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_attribute.html#a02d5ea924586e35f9c13857d1671b765"> 1142</a></span>&#160;    <span class="keywordtype">int</span> <a class="code" href="classtinyxml2_1_1_x_m_l_attribute.html#a02d5ea924586e35f9c13857d1671b765">GetLineNum</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> _parseLineNum; }</div><div class="line"><a name="l01143"></a><span class="lineno"> 1143</span>&#160;</div><div class="line"><a name="l01145"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_attribute.html#aee53571b21e7ce5421eb929523a8bbe6"> 1145</a></span>&#160;    <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_attribute.html">XMLAttribute</a>* <a class="code" href="classtinyxml2_1_1_x_m_l_attribute.html#aee53571b21e7ce5421eb929523a8bbe6">Next</a>()<span class="keyword"> const </span>{</div><div class="line"><a name="l01146"></a><span class="lineno"> 1146</span>&#160;        <span class="keywordflow">return</span> _next;</div><div class="line"><a name="l01147"></a><span class="lineno"> 1147</span>&#160;    }</div><div class="line"><a name="l01148"></a><span class="lineno"> 1148</span>&#160;</div><div class="line"><a name="l01153"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_attribute.html#adfa2433f0fdafd5c3880936de9affa80"> 1153</a></span>&#160;    <span class="keywordtype">int</span> <a class="code" href="classtinyxml2_1_1_x_m_l_attribute.html#adfa2433f0fdafd5c3880936de9affa80">IntValue</a>()<span class="keyword"> const </span>{</div><div class="line"><a name="l01154"></a><span class="lineno"> 1154</span>&#160;        <span class="keywordtype">int</span> i = 0;</div><div class="line"><a name="l01155"></a><span class="lineno"> 1155</span>&#160;        QueryIntValue(&amp;i);</div><div class="line"><a name="l01156"></a><span class="lineno"> 1156</span>&#160;        <span class="keywordflow">return</span> i;</div><div class="line"><a name="l01157"></a><span class="lineno"> 1157</span>&#160;    }</div><div class="line"><a name="l01158"></a><span class="lineno"> 1158</span>&#160;</div><div class="line"><a name="l01159"></a><span class="lineno"> 1159</span>&#160;    int64_t Int64Value()<span class="keyword"> const </span>{</div><div class="line"><a name="l01160"></a><span class="lineno"> 1160</span>&#160;        int64_t i = 0;</div><div class="line"><a name="l01161"></a><span class="lineno"> 1161</span>&#160;        QueryInt64Value(&amp;i);</div><div class="line"><a name="l01162"></a><span class="lineno"> 1162</span>&#160;        <span class="keywordflow">return</span> i;</div><div class="line"><a name="l01163"></a><span class="lineno"> 1163</span>&#160;    }</div><div class="line"><a name="l01164"></a><span class="lineno"> 1164</span>&#160;</div><div class="line"><a name="l01166"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_attribute.html#a0be5343b08a957c42c02c5d32c35d338"> 1166</a></span>&#160;    <span class="keywordtype">unsigned</span> <a class="code" href="classtinyxml2_1_1_x_m_l_attribute.html#a0be5343b08a957c42c02c5d32c35d338">UnsignedValue</a>()<span class="keyword"> const          </span>{</div><div class="line"><a name="l01167"></a><span class="lineno"> 1167</span>&#160;        <span class="keywordtype">unsigned</span> i=0;</div><div class="line"><a name="l01168"></a><span class="lineno"> 1168</span>&#160;        QueryUnsignedValue( &amp;i );</div><div class="line"><a name="l01169"></a><span class="lineno"> 1169</span>&#160;        <span class="keywordflow">return</span> i;</div><div class="line"><a name="l01170"></a><span class="lineno"> 1170</span>&#160;    }</div><div class="line"><a name="l01172"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_attribute.html#a98ce5207344ad33a265b0422addae1ff"> 1172</a></span>&#160;    <span class="keywordtype">bool</span>     <a class="code" href="classtinyxml2_1_1_x_m_l_attribute.html#a98ce5207344ad33a265b0422addae1ff">BoolValue</a>()<span class="keyword"> const              </span>{</div><div class="line"><a name="l01173"></a><span class="lineno"> 1173</span>&#160;        <span class="keywordtype">bool</span> b=<span class="keyword">false</span>;</div><div class="line"><a name="l01174"></a><span class="lineno"> 1174</span>&#160;        QueryBoolValue( &amp;b );</div><div class="line"><a name="l01175"></a><span class="lineno"> 1175</span>&#160;        <span class="keywordflow">return</span> b;</div><div class="line"><a name="l01176"></a><span class="lineno"> 1176</span>&#160;    }</div><div class="line"><a name="l01178"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_attribute.html#a4aa73513f54ff0087d3e804f0f54e30f"> 1178</a></span>&#160;    <span class="keywordtype">double</span>   <a class="code" href="classtinyxml2_1_1_x_m_l_attribute.html#a4aa73513f54ff0087d3e804f0f54e30f">DoubleValue</a>()<span class="keyword"> const            </span>{</div><div class="line"><a name="l01179"></a><span class="lineno"> 1179</span>&#160;        <span class="keywordtype">double</span> d=0;</div><div class="line"><a name="l01180"></a><span class="lineno"> 1180</span>&#160;        QueryDoubleValue( &amp;d );</div><div class="line"><a name="l01181"></a><span class="lineno"> 1181</span>&#160;        <span class="keywordflow">return</span> d;</div><div class="line"><a name="l01182"></a><span class="lineno"> 1182</span>&#160;    }</div><div class="line"><a name="l01184"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_attribute.html#a27797b45d21c981257720db94f5f8801"> 1184</a></span>&#160;    <span class="keywordtype">float</span>    <a class="code" href="classtinyxml2_1_1_x_m_l_attribute.html#a27797b45d21c981257720db94f5f8801">FloatValue</a>()<span class="keyword"> const             </span>{</div><div class="line"><a name="l01185"></a><span class="lineno"> 1185</span>&#160;        <span class="keywordtype">float</span> f=0;</div><div class="line"><a name="l01186"></a><span class="lineno"> 1186</span>&#160;        QueryFloatValue( &amp;f );</div><div class="line"><a name="l01187"></a><span class="lineno"> 1187</span>&#160;        <span class="keywordflow">return</span> f;</div><div class="line"><a name="l01188"></a><span class="lineno"> 1188</span>&#160;    }</div><div class="line"><a name="l01189"></a><span class="lineno"> 1189</span>&#160;</div><div class="line"><a name="l01194"></a><span class="lineno"> 1194</span>&#160;    XMLError QueryIntValue( <span class="keywordtype">int</span>* value ) <span class="keyword">const</span>;</div><div class="line"><a name="l01196"></a><span class="lineno"> 1196</span>&#160;    XMLError QueryUnsignedValue( <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span>* value ) <span class="keyword">const</span>;</div><div class="line"><a name="l01198"></a><span class="lineno"> 1198</span>&#160;    XMLError QueryInt64Value(int64_t* value) <span class="keyword">const</span>;</div><div class="line"><a name="l01200"></a><span class="lineno"> 1200</span>&#160;    XMLError QueryBoolValue( <span class="keywordtype">bool</span>* value ) <span class="keyword">const</span>;</div><div class="line"><a name="l01202"></a><span class="lineno"> 1202</span>&#160;    XMLError QueryDoubleValue( <span class="keywordtype">double</span>* value ) <span class="keyword">const</span>;</div><div class="line"><a name="l01204"></a><span class="lineno"> 1204</span>&#160;    XMLError QueryFloatValue( <span class="keywordtype">float</span>* value ) <span class="keyword">const</span>;</div><div class="line"><a name="l01205"></a><span class="lineno"> 1205</span>&#160;</div><div class="line"><a name="l01207"></a><span class="lineno"> 1207</span>&#160;    <span class="keywordtype">void</span> SetAttribute( <span class="keyword">const</span> <span class="keywordtype">char</span>* value );</div><div class="line"><a name="l01209"></a><span class="lineno"> 1209</span>&#160;    <span class="keywordtype">void</span> SetAttribute( <span class="keywordtype">int</span> value );</div><div class="line"><a name="l01211"></a><span class="lineno"> 1211</span>&#160;    <span class="keywordtype">void</span> SetAttribute( <span class="keywordtype">unsigned</span> value );</div><div class="line"><a name="l01213"></a><span class="lineno"> 1213</span>&#160;    <span class="keywordtype">void</span> SetAttribute(int64_t value);</div><div class="line"><a name="l01215"></a><span class="lineno"> 1215</span>&#160;    <span class="keywordtype">void</span> SetAttribute( <span class="keywordtype">bool</span> value );</div><div class="line"><a name="l01217"></a><span class="lineno"> 1217</span>&#160;    <span class="keywordtype">void</span> SetAttribute( <span class="keywordtype">double</span> value );</div><div class="line"><a name="l01219"></a><span class="lineno"> 1219</span>&#160;    <span class="keywordtype">void</span> SetAttribute( <span class="keywordtype">float</span> value );</div><div class="line"><a name="l01220"></a><span class="lineno"> 1220</span>&#160;</div><div class="line"><a name="l01221"></a><span class="lineno"> 1221</span>&#160;<span class="keyword">private</span>:</div><div class="line"><a name="l01222"></a><span class="lineno"> 1222</span>&#160;    <span class="keyword">enum</span> { BUF_SIZE = 200 };</div><div class="line"><a name="l01223"></a><span class="lineno"> 1223</span>&#160;</div><div class="line"><a name="l01224"></a><span class="lineno"> 1224</span>&#160;    <a class="code" href="classtinyxml2_1_1_x_m_l_attribute.html">XMLAttribute</a>() : _name(), _value(),_parseLineNum( 0 ), _next( 0 ), _memPool( 0 ) {}</div><div class="line"><a name="l01225"></a><span class="lineno"> 1225</span>&#160;    <span class="keyword">virtual</span> ~<a class="code" href="classtinyxml2_1_1_x_m_l_attribute.html">XMLAttribute</a>() {}</div><div class="line"><a name="l01226"></a><span class="lineno"> 1226</span>&#160;</div><div class="line"><a name="l01227"></a><span class="lineno"> 1227</span>&#160;    <a class="code" href="classtinyxml2_1_1_x_m_l_attribute.html">XMLAttribute</a>( <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_attribute.html">XMLAttribute</a>&amp; );    <span class="comment">// not supported</span></div><div class="line"><a name="l01228"></a><span class="lineno"> 1228</span>&#160;    <span class="keywordtype">void</span> operator=( <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_attribute.html">XMLAttribute</a>&amp; );  <span class="comment">// not supported</span></div><div class="line"><a name="l01229"></a><span class="lineno"> 1229</span>&#160;    <span class="keywordtype">void</span> SetName( <span class="keyword">const</span> <span class="keywordtype">char</span>* name );</div><div class="line"><a name="l01230"></a><span class="lineno"> 1230</span>&#160;</div><div class="line"><a name="l01231"></a><span class="lineno"> 1231</span>&#160;    <span class="keywordtype">char</span>* ParseDeep( <span class="keywordtype">char</span>* p, <span class="keywordtype">bool</span> processEntities, <span class="keywordtype">int</span>* curLineNumPtr );</div><div class="line"><a name="l01232"></a><span class="lineno"> 1232</span>&#160;</div><div class="line"><a name="l01233"></a><span class="lineno"> 1233</span>&#160;    <span class="keyword">mutable</span> StrPair _name;</div><div class="line"><a name="l01234"></a><span class="lineno"> 1234</span>&#160;    <span class="keyword">mutable</span> StrPair _value;</div><div class="line"><a name="l01235"></a><span class="lineno"> 1235</span>&#160;    <span class="keywordtype">int</span>             _parseLineNum;</div><div class="line"><a name="l01236"></a><span class="lineno"> 1236</span>&#160;    <a class="code" href="classtinyxml2_1_1_x_m_l_attribute.html">XMLAttribute</a>*   _next;</div><div class="line"><a name="l01237"></a><span class="lineno"> 1237</span>&#160;    MemPool*        _memPool;</div><div class="line"><a name="l01238"></a><span class="lineno"> 1238</span>&#160;};</div><div class="line"><a name="l01239"></a><span class="lineno"> 1239</span>&#160;</div><div class="line"><a name="l01240"></a><span class="lineno"> 1240</span>&#160;</div><div class="line"><a name="l01245"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_element.html"> 1245</a></span>&#160;<span class="keyword">class </span>TINYXML2_LIB <a class="code" href="classtinyxml2_1_1_x_m_l_element.html">XMLElement</a> : <span class="keyword">public</span> <a class="code" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a></div><div class="line"><a name="l01246"></a><span class="lineno"> 1246</span>&#160;{</div><div class="line"><a name="l01247"></a><span class="lineno"> 1247</span>&#160;    <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classtinyxml2_1_1_x_m_l_document.html">XMLDocument</a>;</div><div class="line"><a name="l01248"></a><span class="lineno"> 1248</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l01250"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_element.html#a63e057fb5baee1dd29f323cb85907b35"> 1250</a></span>&#160;    <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="classtinyxml2_1_1_x_m_l_element.html#a63e057fb5baee1dd29f323cb85907b35">Name</a>()<span class="keyword"> const        </span>{</div><div class="line"><a name="l01251"></a><span class="lineno"> 1251</span>&#160;        <span class="keywordflow">return</span> Value();</div><div class="line"><a name="l01252"></a><span class="lineno"> 1252</span>&#160;    }</div><div class="line"><a name="l01254"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_element.html#a97712009a530d8cb8a63bf705f02b4f1"> 1254</a></span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classtinyxml2_1_1_x_m_l_element.html#a97712009a530d8cb8a63bf705f02b4f1">SetName</a>( <span class="keyword">const</span> <span class="keywordtype">char</span>* str, <span class="keywordtype">bool</span> staticMem=<span class="keyword">false</span> )   {</div><div class="line"><a name="l01255"></a><span class="lineno"> 1255</span>&#160;        SetValue( str, staticMem );</div><div class="line"><a name="l01256"></a><span class="lineno"> 1256</span>&#160;    }</div><div class="line"><a name="l01257"></a><span class="lineno"> 1257</span>&#160;</div><div class="line"><a name="l01258"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_element.html#ad9ff5c2dbc15df36cf664ce1b0ea0a5d"> 1258</a></span>&#160;    <span class="keyword">virtual</span> <a class="code" href="classtinyxml2_1_1_x_m_l_element.html">XMLElement</a>* <a class="code" href="classtinyxml2_1_1_x_m_l_element.html#ad9ff5c2dbc15df36cf664ce1b0ea0a5d">ToElement</a>()             {</div><div class="line"><a name="l01259"></a><span class="lineno"> 1259</span>&#160;        <span class="keywordflow">return</span> <span class="keyword">this</span>;</div><div class="line"><a name="l01260"></a><span class="lineno"> 1260</span>&#160;    }</div><div class="line"><a name="l01261"></a><span class="lineno"> 1261</span>&#160;    <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_element.html">XMLElement</a>* ToElement()<span class="keyword"> const </span>{</div><div class="line"><a name="l01262"></a><span class="lineno"> 1262</span>&#160;        <span class="keywordflow">return</span> <span class="keyword">this</span>;</div><div class="line"><a name="l01263"></a><span class="lineno"> 1263</span>&#160;    }</div><div class="line"><a name="l01264"></a><span class="lineno"> 1264</span>&#160;    <span class="keyword">virtual</span> <span class="keywordtype">bool</span> Accept( <a class="code" href="classtinyxml2_1_1_x_m_l_visitor.html">XMLVisitor</a>* visitor ) <span class="keyword">const</span>;</div><div class="line"><a name="l01265"></a><span class="lineno"> 1265</span>&#160;</div><div class="line"><a name="l01289"></a><span class="lineno"> 1289</span>&#160;    <span class="keyword">const</span> <span class="keywordtype">char</span>* Attribute( <span class="keyword">const</span> <span class="keywordtype">char</span>* name, <span class="keyword">const</span> <span class="keywordtype">char</span>* value=0 ) <span class="keyword">const</span>;</div><div class="line"><a name="l01290"></a><span class="lineno"> 1290</span>&#160;</div><div class="line"><a name="l01297"></a><span class="lineno"> 1297</span>&#160;    <span class="keywordtype">int</span> IntAttribute(<span class="keyword">const</span> <span class="keywordtype">char</span>* name, <span class="keywordtype">int</span> defaultValue = 0) <span class="keyword">const</span>;</div><div class="line"><a name="l01299"></a><span class="lineno"> 1299</span>&#160;    <span class="keywordtype">unsigned</span> UnsignedAttribute(<span class="keyword">const</span> <span class="keywordtype">char</span>* name, <span class="keywordtype">unsigned</span> defaultValue = 0) <span class="keyword">const</span>;</div><div class="line"><a name="l01301"></a><span class="lineno"> 1301</span>&#160;    int64_t Int64Attribute(<span class="keyword">const</span> <span class="keywordtype">char</span>* name, int64_t defaultValue = 0) <span class="keyword">const</span>;</div><div class="line"><a name="l01303"></a><span class="lineno"> 1303</span>&#160;    <span class="keywordtype">bool</span> BoolAttribute(<span class="keyword">const</span> <span class="keywordtype">char</span>* name, <span class="keywordtype">bool</span> defaultValue = <span class="keyword">false</span>) <span class="keyword">const</span>;</div><div class="line"><a name="l01305"></a><span class="lineno"> 1305</span>&#160;    <span class="keywordtype">double</span> DoubleAttribute(<span class="keyword">const</span> <span class="keywordtype">char</span>* name, <span class="keywordtype">double</span> defaultValue = 0) <span class="keyword">const</span>;</div><div class="line"><a name="l01307"></a><span class="lineno"> 1307</span>&#160;    <span class="keywordtype">float</span> FloatAttribute(<span class="keyword">const</span> <span class="keywordtype">char</span>* name, <span class="keywordtype">float</span> defaultValue = 0) <span class="keyword">const</span>;</div><div class="line"><a name="l01308"></a><span class="lineno"> 1308</span>&#160;</div><div class="line"><a name="l01322"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_element.html#a8a78bc1187c1c45ad89f2690eab567b1"> 1322</a></span>&#160;    XMLError <a class="code" href="classtinyxml2_1_1_x_m_l_element.html#a8a78bc1187c1c45ad89f2690eab567b1">QueryIntAttribute</a>( <span class="keyword">const</span> <span class="keywordtype">char</span>* name, <span class="keywordtype">int</span>* value )<span class="keyword"> const                </span>{</div><div class="line"><a name="l01323"></a><span class="lineno"> 1323</span>&#160;        <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_attribute.html">XMLAttribute</a>* a = FindAttribute( name );</div><div class="line"><a name="l01324"></a><span class="lineno"> 1324</span>&#160;        <span class="keywordflow">if</span> ( !a ) {</div><div class="line"><a name="l01325"></a><span class="lineno"> 1325</span>&#160;            <span class="keywordflow">return</span> XML_NO_ATTRIBUTE;</div><div class="line"><a name="l01326"></a><span class="lineno"> 1326</span>&#160;        }</div><div class="line"><a name="l01327"></a><span class="lineno"> 1327</span>&#160;        <span class="keywordflow">return</span> a-&gt;<a class="code" href="classtinyxml2_1_1_x_m_l_attribute.html#a6d5176260db00ea301c01af8457cd993">QueryIntValue</a>( value );</div><div class="line"><a name="l01328"></a><span class="lineno"> 1328</span>&#160;    }</div><div class="line"><a name="l01329"></a><span class="lineno"> 1329</span>&#160;</div><div class="line"><a name="l01331"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_element.html#a26fc84cbfba6769dafcfbf256c05e22f"> 1331</a></span>&#160;    XMLError <a class="code" href="classtinyxml2_1_1_x_m_l_element.html#a26fc84cbfba6769dafcfbf256c05e22f">QueryUnsignedAttribute</a>( <span class="keyword">const</span> <span class="keywordtype">char</span>* name, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span>* value )<span class="keyword"> const  </span>{</div><div class="line"><a name="l01332"></a><span class="lineno"> 1332</span>&#160;        <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_attribute.html">XMLAttribute</a>* a = FindAttribute( name );</div><div class="line"><a name="l01333"></a><span class="lineno"> 1333</span>&#160;        <span class="keywordflow">if</span> ( !a ) {</div><div class="line"><a name="l01334"></a><span class="lineno"> 1334</span>&#160;            <span class="keywordflow">return</span> XML_NO_ATTRIBUTE;</div><div class="line"><a name="l01335"></a><span class="lineno"> 1335</span>&#160;        }</div><div class="line"><a name="l01336"></a><span class="lineno"> 1336</span>&#160;        <span class="keywordflow">return</span> a-&gt;<a class="code" href="classtinyxml2_1_1_x_m_l_attribute.html#a48a7f3496f1415832e451bd8d09c9cb9">QueryUnsignedValue</a>( value );</div><div class="line"><a name="l01337"></a><span class="lineno"> 1337</span>&#160;    }</div><div class="line"><a name="l01338"></a><span class="lineno"> 1338</span>&#160;</div><div class="line"><a name="l01340"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_element.html#a7c0955d80b6f8d196744eacb0f6e90a8"> 1340</a></span>&#160;    XMLError <a class="code" href="classtinyxml2_1_1_x_m_l_element.html#a7c0955d80b6f8d196744eacb0f6e90a8">QueryInt64Attribute</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>* name, int64_t* value)<span class="keyword"> const </span>{</div><div class="line"><a name="l01341"></a><span class="lineno"> 1341</span>&#160;        <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_attribute.html">XMLAttribute</a>* a = FindAttribute(name);</div><div class="line"><a name="l01342"></a><span class="lineno"> 1342</span>&#160;        <span class="keywordflow">if</span> (!a) {</div><div class="line"><a name="l01343"></a><span class="lineno"> 1343</span>&#160;            <span class="keywordflow">return</span> XML_NO_ATTRIBUTE;</div><div class="line"><a name="l01344"></a><span class="lineno"> 1344</span>&#160;        }</div><div class="line"><a name="l01345"></a><span class="lineno"> 1345</span>&#160;        <span class="keywordflow">return</span> a-&gt;<a class="code" href="classtinyxml2_1_1_x_m_l_attribute.html#a4e25344d6e4159026be34dbddf1dcac2">QueryInt64Value</a>(value);</div><div class="line"><a name="l01346"></a><span class="lineno"> 1346</span>&#160;    }</div><div class="line"><a name="l01347"></a><span class="lineno"> 1347</span>&#160;</div><div class="line"><a name="l01349"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_element.html#a14c1bb77c39689838be01838d86ca872"> 1349</a></span>&#160;    XMLError <a class="code" href="classtinyxml2_1_1_x_m_l_element.html#a14c1bb77c39689838be01838d86ca872">QueryBoolAttribute</a>( <span class="keyword">const</span> <span class="keywordtype">char</span>* name, <span class="keywordtype">bool</span>* value )<span class="keyword"> const              </span>{</div><div class="line"><a name="l01350"></a><span class="lineno"> 1350</span>&#160;        <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_attribute.html">XMLAttribute</a>* a = FindAttribute( name );</div><div class="line"><a name="l01351"></a><span class="lineno"> 1351</span>&#160;        <span class="keywordflow">if</span> ( !a ) {</div><div class="line"><a name="l01352"></a><span class="lineno"> 1352</span>&#160;            <span class="keywordflow">return</span> XML_NO_ATTRIBUTE;</div><div class="line"><a name="l01353"></a><span class="lineno"> 1353</span>&#160;        }</div><div class="line"><a name="l01354"></a><span class="lineno"> 1354</span>&#160;        <span class="keywordflow">return</span> a-&gt;<a class="code" href="classtinyxml2_1_1_x_m_l_attribute.html#a5f32e038954256f61c21ff20fd13a09c">QueryBoolValue</a>( value );</div><div class="line"><a name="l01355"></a><span class="lineno"> 1355</span>&#160;    }</div><div class="line"><a name="l01357"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_element.html#a5f0964e2dbd8e2ee7fce9beab689443c"> 1357</a></span>&#160;    XMLError <a class="code" href="classtinyxml2_1_1_x_m_l_element.html#a5f0964e2dbd8e2ee7fce9beab689443c">QueryDoubleAttribute</a>( <span class="keyword">const</span> <span class="keywordtype">char</span>* name, <span class="keywordtype">double</span>* value )<span class="keyword"> const          </span>{</div><div class="line"><a name="l01358"></a><span class="lineno"> 1358</span>&#160;        <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_attribute.html">XMLAttribute</a>* a = FindAttribute( name );</div><div class="line"><a name="l01359"></a><span class="lineno"> 1359</span>&#160;        <span class="keywordflow">if</span> ( !a ) {</div><div class="line"><a name="l01360"></a><span class="lineno"> 1360</span>&#160;            <span class="keywordflow">return</span> XML_NO_ATTRIBUTE;</div><div class="line"><a name="l01361"></a><span class="lineno"> 1361</span>&#160;        }</div><div class="line"><a name="l01362"></a><span class="lineno"> 1362</span>&#160;        <span class="keywordflow">return</span> a-&gt;<a class="code" href="classtinyxml2_1_1_x_m_l_attribute.html#a2aa6e55e8ea03af0609cf6690bff79b9">QueryDoubleValue</a>( value );</div><div class="line"><a name="l01363"></a><span class="lineno"> 1363</span>&#160;    }</div><div class="line"><a name="l01365"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_element.html#acd5eeddf6002ef90806af794b9d9a5a5"> 1365</a></span>&#160;    XMLError <a class="code" href="classtinyxml2_1_1_x_m_l_element.html#acd5eeddf6002ef90806af794b9d9a5a5">QueryFloatAttribute</a>( <span class="keyword">const</span> <span class="keywordtype">char</span>* name, <span class="keywordtype">float</span>* value )<span class="keyword"> const            </span>{</div><div class="line"><a name="l01366"></a><span class="lineno"> 1366</span>&#160;        <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_attribute.html">XMLAttribute</a>* a = FindAttribute( name );</div><div class="line"><a name="l01367"></a><span class="lineno"> 1367</span>&#160;        <span class="keywordflow">if</span> ( !a ) {</div><div class="line"><a name="l01368"></a><span class="lineno"> 1368</span>&#160;            <span class="keywordflow">return</span> XML_NO_ATTRIBUTE;</div><div class="line"><a name="l01369"></a><span class="lineno"> 1369</span>&#160;        }</div><div class="line"><a name="l01370"></a><span class="lineno"> 1370</span>&#160;        <span class="keywordflow">return</span> a-&gt;<a class="code" href="classtinyxml2_1_1_x_m_l_attribute.html#a049dea6449a6259b6cfed44a9427b607">QueryFloatValue</a>( value );</div><div class="line"><a name="l01371"></a><span class="lineno"> 1371</span>&#160;    }</div><div class="line"><a name="l01372"></a><span class="lineno"> 1372</span>&#160;</div><div class="line"><a name="l01374"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_element.html#adb8ae765f98d0c5037faec48deea78bc"> 1374</a></span>&#160;    XMLError <a class="code" href="classtinyxml2_1_1_x_m_l_element.html#adb8ae765f98d0c5037faec48deea78bc">QueryStringAttribute</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>* name, <span class="keyword">const</span> <span class="keywordtype">char</span>** value)<span class="keyword"> const </span>{</div><div class="line"><a name="l01375"></a><span class="lineno"> 1375</span>&#160;        <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_attribute.html">XMLAttribute</a>* a = FindAttribute(name);</div><div class="line"><a name="l01376"></a><span class="lineno"> 1376</span>&#160;        <span class="keywordflow">if</span> (!a) {</div><div class="line"><a name="l01377"></a><span class="lineno"> 1377</span>&#160;            <span class="keywordflow">return</span> XML_NO_ATTRIBUTE;</div><div class="line"><a name="l01378"></a><span class="lineno"> 1378</span>&#160;        }</div><div class="line"><a name="l01379"></a><span class="lineno"> 1379</span>&#160;        *value = a-&gt;<a class="code" href="classtinyxml2_1_1_x_m_l_attribute.html#a1aab1dd0e43ecbcfa306adbcf3a3d853">Value</a>();</div><div class="line"><a name="l01380"></a><span class="lineno"> 1380</span>&#160;        <span class="keywordflow">return</span> XML_SUCCESS;</div><div class="line"><a name="l01381"></a><span class="lineno"> 1381</span>&#160;    }</div><div class="line"><a name="l01382"></a><span class="lineno"> 1382</span>&#160;</div><div class="line"><a name="l01383"></a><span class="lineno"> 1383</span>&#160;</div><div class="line"><a name="l01384"></a><span class="lineno"> 1384</span>&#160;</div><div class="line"><a name="l01402"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_element.html#a5b7df3bed2b8954eabf227fa204522eb"> 1402</a></span>&#160;    XMLError <a class="code" href="classtinyxml2_1_1_x_m_l_element.html#a5b7df3bed2b8954eabf227fa204522eb">QueryAttribute</a>( <span class="keyword">const</span> <span class="keywordtype">char</span>* name, <span class="keywordtype">int</span>* value )<span class="keyword"> const </span>{</div><div class="line"><a name="l01403"></a><span class="lineno"> 1403</span>&#160;        <span class="keywordflow">return</span> QueryIntAttribute( name, value );</div><div class="line"><a name="l01404"></a><span class="lineno"> 1404</span>&#160;    }</div><div class="line"><a name="l01405"></a><span class="lineno"> 1405</span>&#160;</div><div class="line"><a name="l01406"></a><span class="lineno"> 1406</span>&#160;    XMLError QueryAttribute( <span class="keyword">const</span> <span class="keywordtype">char</span>* name, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span>* value )<span class="keyword"> const </span>{</div><div class="line"><a name="l01407"></a><span class="lineno"> 1407</span>&#160;        <span class="keywordflow">return</span> QueryUnsignedAttribute( name, value );</div><div class="line"><a name="l01408"></a><span class="lineno"> 1408</span>&#160;    }</div><div class="line"><a name="l01409"></a><span class="lineno"> 1409</span>&#160;</div><div class="line"><a name="l01410"></a><span class="lineno"> 1410</span>&#160;    XMLError QueryAttribute(<span class="keyword">const</span> <span class="keywordtype">char</span>* name, int64_t* value)<span class="keyword"> const </span>{</div><div class="line"><a name="l01411"></a><span class="lineno"> 1411</span>&#160;        <span class="keywordflow">return</span> QueryInt64Attribute(name, value);</div><div class="line"><a name="l01412"></a><span class="lineno"> 1412</span>&#160;    }</div><div class="line"><a name="l01413"></a><span class="lineno"> 1413</span>&#160;</div><div class="line"><a name="l01414"></a><span class="lineno"> 1414</span>&#160;    XMLError QueryAttribute( <span class="keyword">const</span> <span class="keywordtype">char</span>* name, <span class="keywordtype">bool</span>* value )<span class="keyword"> const </span>{</div><div class="line"><a name="l01415"></a><span class="lineno"> 1415</span>&#160;        <span class="keywordflow">return</span> QueryBoolAttribute( name, value );</div><div class="line"><a name="l01416"></a><span class="lineno"> 1416</span>&#160;    }</div><div class="line"><a name="l01417"></a><span class="lineno"> 1417</span>&#160;</div><div class="line"><a name="l01418"></a><span class="lineno"> 1418</span>&#160;    XMLError QueryAttribute( <span class="keyword">const</span> <span class="keywordtype">char</span>* name, <span class="keywordtype">double</span>* value )<span class="keyword"> const </span>{</div><div class="line"><a name="l01419"></a><span class="lineno"> 1419</span>&#160;        <span class="keywordflow">return</span> QueryDoubleAttribute( name, value );</div><div class="line"><a name="l01420"></a><span class="lineno"> 1420</span>&#160;    }</div><div class="line"><a name="l01421"></a><span class="lineno"> 1421</span>&#160;</div><div class="line"><a name="l01422"></a><span class="lineno"> 1422</span>&#160;    XMLError QueryAttribute( <span class="keyword">const</span> <span class="keywordtype">char</span>* name, <span class="keywordtype">float</span>* value )<span class="keyword"> const </span>{</div><div class="line"><a name="l01423"></a><span class="lineno"> 1423</span>&#160;        <span class="keywordflow">return</span> QueryFloatAttribute( name, value );</div><div class="line"><a name="l01424"></a><span class="lineno"> 1424</span>&#160;    }</div><div class="line"><a name="l01425"></a><span class="lineno"> 1425</span>&#160;</div><div class="line"><a name="l01427"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_element.html#a11943abf2d0831548c3790dd5d9f119c"> 1427</a></span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classtinyxml2_1_1_x_m_l_element.html#a11943abf2d0831548c3790dd5d9f119c">SetAttribute</a>( <span class="keyword">const</span> <span class="keywordtype">char</span>* name, <span class="keyword">const</span> <span class="keywordtype">char</span>* value )    {</div><div class="line"><a name="l01428"></a><span class="lineno"> 1428</span>&#160;        <a class="code" href="classtinyxml2_1_1_x_m_l_attribute.html">XMLAttribute</a>* a = FindOrCreateAttribute( name );</div><div class="line"><a name="l01429"></a><span class="lineno"> 1429</span>&#160;        a-&gt;<a class="code" href="classtinyxml2_1_1_x_m_l_attribute.html#a406d2c4a13c7af99a65edb59dd9f7581">SetAttribute</a>( value );</div><div class="line"><a name="l01430"></a><span class="lineno"> 1430</span>&#160;    }</div><div class="line"><a name="l01432"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_element.html#aae6568c64c7f1cc88be8461ba41a79cf"> 1432</a></span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classtinyxml2_1_1_x_m_l_element.html#aae6568c64c7f1cc88be8461ba41a79cf">SetAttribute</a>( <span class="keyword">const</span> <span class="keywordtype">char</span>* name, <span class="keywordtype">int</span> value )            {</div><div class="line"><a name="l01433"></a><span class="lineno"> 1433</span>&#160;        <a class="code" href="classtinyxml2_1_1_x_m_l_attribute.html">XMLAttribute</a>* a = FindOrCreateAttribute( name );</div><div class="line"><a name="l01434"></a><span class="lineno"> 1434</span>&#160;        a-&gt;<a class="code" href="classtinyxml2_1_1_x_m_l_attribute.html#a406d2c4a13c7af99a65edb59dd9f7581">SetAttribute</a>( value );</div><div class="line"><a name="l01435"></a><span class="lineno"> 1435</span>&#160;    }</div><div class="line"><a name="l01437"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_element.html#ae143997e90064ba82326b29a9930ea8f"> 1437</a></span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classtinyxml2_1_1_x_m_l_element.html#ae143997e90064ba82326b29a9930ea8f">SetAttribute</a>( <span class="keyword">const</span> <span class="keywordtype">char</span>* name, <span class="keywordtype">unsigned</span> value )       {</div><div class="line"><a name="l01438"></a><span class="lineno"> 1438</span>&#160;        <a class="code" href="classtinyxml2_1_1_x_m_l_attribute.html">XMLAttribute</a>* a = FindOrCreateAttribute( name );</div><div class="line"><a name="l01439"></a><span class="lineno"> 1439</span>&#160;        a-&gt;<a class="code" href="classtinyxml2_1_1_x_m_l_attribute.html#a406d2c4a13c7af99a65edb59dd9f7581">SetAttribute</a>( value );</div><div class="line"><a name="l01440"></a><span class="lineno"> 1440</span>&#160;    }</div><div class="line"><a name="l01441"></a><span class="lineno"> 1441</span>&#160;</div><div class="line"><a name="l01443"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_element.html#aaeefdf9171fec91b13a776b42299b0dd"> 1443</a></span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classtinyxml2_1_1_x_m_l_element.html#aaeefdf9171fec91b13a776b42299b0dd">SetAttribute</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>* name, int64_t value) {</div><div class="line"><a name="l01444"></a><span class="lineno"> 1444</span>&#160;        <a class="code" href="classtinyxml2_1_1_x_m_l_attribute.html">XMLAttribute</a>* a = FindOrCreateAttribute(name);</div><div class="line"><a name="l01445"></a><span class="lineno"> 1445</span>&#160;        a-&gt;<a class="code" href="classtinyxml2_1_1_x_m_l_attribute.html#a406d2c4a13c7af99a65edb59dd9f7581">SetAttribute</a>(value);</div><div class="line"><a name="l01446"></a><span class="lineno"> 1446</span>&#160;    }</div><div class="line"><a name="l01447"></a><span class="lineno"> 1447</span>&#160;</div><div class="line"><a name="l01449"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_element.html#aa848b696e6a75e4e545c6da9893b11e1"> 1449</a></span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classtinyxml2_1_1_x_m_l_element.html#aa848b696e6a75e4e545c6da9893b11e1">SetAttribute</a>( <span class="keyword">const</span> <span class="keywordtype">char</span>* name, <span class="keywordtype">bool</span> value )           {</div><div class="line"><a name="l01450"></a><span class="lineno"> 1450</span>&#160;        <a class="code" href="classtinyxml2_1_1_x_m_l_attribute.html">XMLAttribute</a>* a = FindOrCreateAttribute( name );</div><div class="line"><a name="l01451"></a><span class="lineno"> 1451</span>&#160;        a-&gt;<a class="code" href="classtinyxml2_1_1_x_m_l_attribute.html#a406d2c4a13c7af99a65edb59dd9f7581">SetAttribute</a>( value );</div><div class="line"><a name="l01452"></a><span class="lineno"> 1452</span>&#160;    }</div><div class="line"><a name="l01454"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_element.html#a233397ee81e70eb5d4b814c5f8698533"> 1454</a></span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classtinyxml2_1_1_x_m_l_element.html#a233397ee81e70eb5d4b814c5f8698533">SetAttribute</a>( <span class="keyword">const</span> <span class="keywordtype">char</span>* name, <span class="keywordtype">double</span> value )     {</div><div class="line"><a name="l01455"></a><span class="lineno"> 1455</span>&#160;        <a class="code" href="classtinyxml2_1_1_x_m_l_attribute.html">XMLAttribute</a>* a = FindOrCreateAttribute( name );</div><div class="line"><a name="l01456"></a><span class="lineno"> 1456</span>&#160;        a-&gt;<a class="code" href="classtinyxml2_1_1_x_m_l_attribute.html#a406d2c4a13c7af99a65edb59dd9f7581">SetAttribute</a>( value );</div><div class="line"><a name="l01457"></a><span class="lineno"> 1457</span>&#160;    }</div><div class="line"><a name="l01459"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_element.html#a554b70d882e65b28fc084b23df9b9759"> 1459</a></span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classtinyxml2_1_1_x_m_l_element.html#a554b70d882e65b28fc084b23df9b9759">SetAttribute</a>( <span class="keyword">const</span> <span class="keywordtype">char</span>* name, <span class="keywordtype">float</span> value )      {</div><div class="line"><a name="l01460"></a><span class="lineno"> 1460</span>&#160;        <a class="code" href="classtinyxml2_1_1_x_m_l_attribute.html">XMLAttribute</a>* a = FindOrCreateAttribute( name );</div><div class="line"><a name="l01461"></a><span class="lineno"> 1461</span>&#160;        a-&gt;<a class="code" href="classtinyxml2_1_1_x_m_l_attribute.html#a406d2c4a13c7af99a65edb59dd9f7581">SetAttribute</a>( value );</div><div class="line"><a name="l01462"></a><span class="lineno"> 1462</span>&#160;    }</div><div class="line"><a name="l01463"></a><span class="lineno"> 1463</span>&#160;</div><div class="line"><a name="l01467"></a><span class="lineno"> 1467</span>&#160;    <span class="keywordtype">void</span> DeleteAttribute( <span class="keyword">const</span> <span class="keywordtype">char</span>* name );</div><div class="line"><a name="l01468"></a><span class="lineno"> 1468</span>&#160;</div><div class="line"><a name="l01470"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_element.html#a3e191704c8d499906ec11fe2f60c6686"> 1470</a></span>&#160;    <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_attribute.html">XMLAttribute</a>* <a class="code" href="classtinyxml2_1_1_x_m_l_element.html#a3e191704c8d499906ec11fe2f60c6686">FirstAttribute</a>()<span class="keyword"> const </span>{</div><div class="line"><a name="l01471"></a><span class="lineno"> 1471</span>&#160;        <span class="keywordflow">return</span> _rootAttribute;</div><div class="line"><a name="l01472"></a><span class="lineno"> 1472</span>&#160;    }</div><div class="line"><a name="l01474"></a><span class="lineno"> 1474</span>&#160;    <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_attribute.html">XMLAttribute</a>* FindAttribute( <span class="keyword">const</span> <span class="keywordtype">char</span>* name ) <span class="keyword">const</span>;</div><div class="line"><a name="l01475"></a><span class="lineno"> 1475</span>&#160;</div><div class="line"><a name="l01504"></a><span class="lineno"> 1504</span>&#160;    <span class="keyword">const</span> <span class="keywordtype">char</span>* GetText() <span class="keyword">const</span>;</div><div class="line"><a name="l01505"></a><span class="lineno"> 1505</span>&#160;</div><div class="line"><a name="l01540"></a><span class="lineno"> 1540</span>&#160;    <span class="keywordtype">void</span> SetText( <span class="keyword">const</span> <span class="keywordtype">char</span>* inText );</div><div class="line"><a name="l01542"></a><span class="lineno"> 1542</span>&#160;    <span class="keywordtype">void</span> SetText( <span class="keywordtype">int</span> value );</div><div class="line"><a name="l01544"></a><span class="lineno"> 1544</span>&#160;    <span class="keywordtype">void</span> SetText( <span class="keywordtype">unsigned</span> value );</div><div class="line"><a name="l01546"></a><span class="lineno"> 1546</span>&#160;    <span class="keywordtype">void</span> SetText(int64_t value);</div><div class="line"><a name="l01548"></a><span class="lineno"> 1548</span>&#160;    <span class="keywordtype">void</span> SetText( <span class="keywordtype">bool</span> value );</div><div class="line"><a name="l01550"></a><span class="lineno"> 1550</span>&#160;    <span class="keywordtype">void</span> SetText( <span class="keywordtype">double</span> value );</div><div class="line"><a name="l01552"></a><span class="lineno"> 1552</span>&#160;    <span class="keywordtype">void</span> SetText( <span class="keywordtype">float</span> value );</div><div class="line"><a name="l01553"></a><span class="lineno"> 1553</span>&#160;</div><div class="line"><a name="l01580"></a><span class="lineno"> 1580</span>&#160;    XMLError QueryIntText( <span class="keywordtype">int</span>* ival ) <span class="keyword">const</span>;</div><div class="line"><a name="l01582"></a><span class="lineno"> 1582</span>&#160;    XMLError QueryUnsignedText( <span class="keywordtype">unsigned</span>* uval ) <span class="keyword">const</span>;</div><div class="line"><a name="l01584"></a><span class="lineno"> 1584</span>&#160;    XMLError QueryInt64Text(int64_t* uval) <span class="keyword">const</span>;</div><div class="line"><a name="l01586"></a><span class="lineno"> 1586</span>&#160;    XMLError QueryBoolText( <span class="keywordtype">bool</span>* bval ) <span class="keyword">const</span>;</div><div class="line"><a name="l01588"></a><span class="lineno"> 1588</span>&#160;    XMLError QueryDoubleText( <span class="keywordtype">double</span>* dval ) <span class="keyword">const</span>;</div><div class="line"><a name="l01590"></a><span class="lineno"> 1590</span>&#160;    XMLError QueryFloatText( <span class="keywordtype">float</span>* fval ) <span class="keyword">const</span>;</div><div class="line"><a name="l01591"></a><span class="lineno"> 1591</span>&#160;</div><div class="line"><a name="l01592"></a><span class="lineno"> 1592</span>&#160;    <span class="keywordtype">int</span> IntText(<span class="keywordtype">int</span> defaultValue = 0) <span class="keyword">const</span>;</div><div class="line"><a name="l01593"></a><span class="lineno"> 1593</span>&#160;</div><div class="line"><a name="l01595"></a><span class="lineno"> 1595</span>&#160;    <span class="keywordtype">unsigned</span> UnsignedText(<span class="keywordtype">unsigned</span> defaultValue = 0) <span class="keyword">const</span>;</div><div class="line"><a name="l01597"></a><span class="lineno"> 1597</span>&#160;    int64_t Int64Text(int64_t defaultValue = 0) <span class="keyword">const</span>;</div><div class="line"><a name="l01599"></a><span class="lineno"> 1599</span>&#160;    <span class="keywordtype">bool</span> BoolText(<span class="keywordtype">bool</span> defaultValue = <span class="keyword">false</span>) <span class="keyword">const</span>;</div><div class="line"><a name="l01601"></a><span class="lineno"> 1601</span>&#160;    <span class="keywordtype">double</span> DoubleText(<span class="keywordtype">double</span> defaultValue = 0) <span class="keyword">const</span>;</div><div class="line"><a name="l01603"></a><span class="lineno"> 1603</span>&#160;    <span class="keywordtype">float</span> FloatText(<span class="keywordtype">float</span> defaultValue = 0) <span class="keyword">const</span>;</div><div class="line"><a name="l01604"></a><span class="lineno"> 1604</span>&#160;</div><div class="line"><a name="l01605"></a><span class="lineno"> 1605</span>&#160;    <span class="comment">// internal:</span></div><div class="line"><a name="l01606"></a><span class="lineno"> 1606</span>&#160;    <span class="keyword">enum</span> ElementClosingType {</div><div class="line"><a name="l01607"></a><span class="lineno"> 1607</span>&#160;        OPEN,       <span class="comment">// &lt;foo&gt;</span></div><div class="line"><a name="l01608"></a><span class="lineno"> 1608</span>&#160;        CLOSED,     <span class="comment">// &lt;foo/&gt;</span></div><div class="line"><a name="l01609"></a><span class="lineno"> 1609</span>&#160;        CLOSING     <span class="comment">// &lt;/foo&gt;</span></div><div class="line"><a name="l01610"></a><span class="lineno"> 1610</span>&#160;    };</div><div class="line"><a name="l01611"></a><span class="lineno"> 1611</span>&#160;    ElementClosingType ClosingType()<span class="keyword"> const </span>{</div><div class="line"><a name="l01612"></a><span class="lineno"> 1612</span>&#160;        <span class="keywordflow">return</span> _closingType;</div><div class="line"><a name="l01613"></a><span class="lineno"> 1613</span>&#160;    }</div><div class="line"><a name="l01614"></a><span class="lineno"> 1614</span>&#160;    <span class="keyword">virtual</span> <a class="code" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a>* ShallowClone( <a class="code" href="classtinyxml2_1_1_x_m_l_document.html">XMLDocument</a>* document ) <span class="keyword">const</span>;</div><div class="line"><a name="l01615"></a><span class="lineno"> 1615</span>&#160;    <span class="keyword">virtual</span> <span class="keywordtype">bool</span> ShallowEqual( <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a>* compare ) <span class="keyword">const</span>;</div><div class="line"><a name="l01616"></a><span class="lineno"> 1616</span>&#160;</div><div class="line"><a name="l01617"></a><span class="lineno"> 1617</span>&#160;<span class="keyword">protected</span>:</div><div class="line"><a name="l01618"></a><span class="lineno"> 1618</span>&#160;    <span class="keywordtype">char</span>* ParseDeep( <span class="keywordtype">char</span>* p, StrPair* parentEndTag, <span class="keywordtype">int</span>* curLineNumPtr );</div><div class="line"><a name="l01619"></a><span class="lineno"> 1619</span>&#160;</div><div class="line"><a name="l01620"></a><span class="lineno"> 1620</span>&#160;<span class="keyword">private</span>:</div><div class="line"><a name="l01621"></a><span class="lineno"> 1621</span>&#160;    <a class="code" href="classtinyxml2_1_1_x_m_l_element.html">XMLElement</a>( <a class="code" href="classtinyxml2_1_1_x_m_l_document.html">XMLDocument</a>* doc );</div><div class="line"><a name="l01622"></a><span class="lineno"> 1622</span>&#160;    <span class="keyword">virtual</span> ~<a class="code" href="classtinyxml2_1_1_x_m_l_element.html">XMLElement</a>();</div><div class="line"><a name="l01623"></a><span class="lineno"> 1623</span>&#160;    <a class="code" href="classtinyxml2_1_1_x_m_l_element.html">XMLElement</a>( <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_element.html">XMLElement</a>&amp; );    <span class="comment">// not supported</span></div><div class="line"><a name="l01624"></a><span class="lineno"> 1624</span>&#160;    <span class="keywordtype">void</span> operator=( <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_element.html">XMLElement</a>&amp; );    <span class="comment">// not supported</span></div><div class="line"><a name="l01625"></a><span class="lineno"> 1625</span>&#160;</div><div class="line"><a name="l01626"></a><span class="lineno"> 1626</span>&#160;    <a class="code" href="classtinyxml2_1_1_x_m_l_attribute.html">XMLAttribute</a>* FindOrCreateAttribute( <span class="keyword">const</span> <span class="keywordtype">char</span>* name );</div><div class="line"><a name="l01627"></a><span class="lineno"> 1627</span>&#160;    <span class="keywordtype">char</span>* ParseAttributes( <span class="keywordtype">char</span>* p, <span class="keywordtype">int</span>* curLineNumPtr );</div><div class="line"><a name="l01628"></a><span class="lineno"> 1628</span>&#160;    <span class="keyword">static</span> <span class="keywordtype">void</span> DeleteAttribute( <a class="code" href="classtinyxml2_1_1_x_m_l_attribute.html">XMLAttribute</a>* attribute );</div><div class="line"><a name="l01629"></a><span class="lineno"> 1629</span>&#160;    <a class="code" href="classtinyxml2_1_1_x_m_l_attribute.html">XMLAttribute</a>* CreateAttribute();</div><div class="line"><a name="l01630"></a><span class="lineno"> 1630</span>&#160;</div><div class="line"><a name="l01631"></a><span class="lineno"> 1631</span>&#160;    <span class="keyword">enum</span> { BUF_SIZE = 200 };</div><div class="line"><a name="l01632"></a><span class="lineno"> 1632</span>&#160;    ElementClosingType _closingType;</div><div class="line"><a name="l01633"></a><span class="lineno"> 1633</span>&#160;    <span class="comment">// The attribute list is ordered; there is no &#39;lastAttribute&#39;</span></div><div class="line"><a name="l01634"></a><span class="lineno"> 1634</span>&#160;    <span class="comment">// because the list needs to be scanned for dupes before adding</span></div><div class="line"><a name="l01635"></a><span class="lineno"> 1635</span>&#160;    <span class="comment">// a new attribute.</span></div><div class="line"><a name="l01636"></a><span class="lineno"> 1636</span>&#160;    <a class="code" href="classtinyxml2_1_1_x_m_l_attribute.html">XMLAttribute</a>* _rootAttribute;</div><div class="line"><a name="l01637"></a><span class="lineno"> 1637</span>&#160;};</div><div class="line"><a name="l01638"></a><span class="lineno"> 1638</span>&#160;</div><div class="line"><a name="l01639"></a><span class="lineno"> 1639</span>&#160;</div><div class="line"><a name="l01640"></a><span class="lineno"> 1640</span>&#160;<span class="keyword">enum</span> Whitespace {</div><div class="line"><a name="l01641"></a><span class="lineno"> 1641</span>&#160;    PRESERVE_WHITESPACE,</div><div class="line"><a name="l01642"></a><span class="lineno"> 1642</span>&#160;    COLLAPSE_WHITESPACE</div><div class="line"><a name="l01643"></a><span class="lineno"> 1643</span>&#160;};</div><div class="line"><a name="l01644"></a><span class="lineno"> 1644</span>&#160;</div><div class="line"><a name="l01645"></a><span class="lineno"> 1645</span>&#160;</div><div class="line"><a name="l01651"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_document.html"> 1651</a></span>&#160;<span class="keyword">class </span>TINYXML2_LIB <a class="code" href="classtinyxml2_1_1_x_m_l_document.html">XMLDocument</a> : <span class="keyword">public</span> <a class="code" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a></div><div class="line"><a name="l01652"></a><span class="lineno"> 1652</span>&#160;{</div><div class="line"><a name="l01653"></a><span class="lineno"> 1653</span>&#160;    <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classtinyxml2_1_1_x_m_l_element.html">XMLElement</a>;</div><div class="line"><a name="l01654"></a><span class="lineno"> 1654</span>&#160;    <span class="comment">// Gives access to SetError and Push/PopDepth, but over-access for everything else.</span></div><div class="line"><a name="l01655"></a><span class="lineno"> 1655</span>&#160;    <span class="comment">// Wishing C++ had &quot;internal&quot; scope.</span></div><div class="line"><a name="l01656"></a><span class="lineno"> 1656</span>&#160;    <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a>;</div><div class="line"><a name="l01657"></a><span class="lineno"> 1657</span>&#160;    <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classtinyxml2_1_1_x_m_l_text.html">XMLText</a>;</div><div class="line"><a name="l01658"></a><span class="lineno"> 1658</span>&#160;    <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classtinyxml2_1_1_x_m_l_comment.html">XMLComment</a>;</div><div class="line"><a name="l01659"></a><span class="lineno"> 1659</span>&#160;    <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classtinyxml2_1_1_x_m_l_declaration.html">XMLDeclaration</a>;</div><div class="line"><a name="l01660"></a><span class="lineno"> 1660</span>&#160;    <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classtinyxml2_1_1_x_m_l_unknown.html">XMLUnknown</a>;</div><div class="line"><a name="l01661"></a><span class="lineno"> 1661</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l01663"></a><span class="lineno"> 1663</span>&#160;    <a class="code" href="classtinyxml2_1_1_x_m_l_document.html">XMLDocument</a>( <span class="keywordtype">bool</span> processEntities = <span class="keyword">true</span>, Whitespace whitespaceMode = PRESERVE_WHITESPACE );</div><div class="line"><a name="l01664"></a><span class="lineno"> 1664</span>&#160;    ~<a class="code" href="classtinyxml2_1_1_x_m_l_document.html">XMLDocument</a>();</div><div class="line"><a name="l01665"></a><span class="lineno"> 1665</span>&#160;</div><div class="line"><a name="l01666"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_document.html#a3e185f880882bd978367bb55937735ec"> 1666</a></span>&#160;    <span class="keyword">virtual</span> <a class="code" href="classtinyxml2_1_1_x_m_l_document.html">XMLDocument</a>* <a class="code" href="classtinyxml2_1_1_x_m_l_document.html#a3e185f880882bd978367bb55937735ec">ToDocument</a>()               {</div><div class="line"><a name="l01667"></a><span class="lineno"> 1667</span>&#160;        TIXMLASSERT( <span class="keyword">this</span> == _document );</div><div class="line"><a name="l01668"></a><span class="lineno"> 1668</span>&#160;        <span class="keywordflow">return</span> <span class="keyword">this</span>;</div><div class="line"><a name="l01669"></a><span class="lineno"> 1669</span>&#160;    }</div><div class="line"><a name="l01670"></a><span class="lineno"> 1670</span>&#160;    <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_document.html">XMLDocument</a>* ToDocument()<span class="keyword"> const   </span>{</div><div class="line"><a name="l01671"></a><span class="lineno"> 1671</span>&#160;        TIXMLASSERT( <span class="keyword">this</span> == _document );</div><div class="line"><a name="l01672"></a><span class="lineno"> 1672</span>&#160;        <span class="keywordflow">return</span> <span class="keyword">this</span>;</div><div class="line"><a name="l01673"></a><span class="lineno"> 1673</span>&#160;    }</div><div class="line"><a name="l01674"></a><span class="lineno"> 1674</span>&#160;</div><div class="line"><a name="l01685"></a><span class="lineno"> 1685</span>&#160;    XMLError Parse( <span class="keyword">const</span> <span class="keywordtype">char</span>* xml, <span class="keywordtype">size_t</span> nBytes=(<span class="keywordtype">size_t</span>)(-1) );</div><div class="line"><a name="l01686"></a><span class="lineno"> 1686</span>&#160;</div><div class="line"><a name="l01692"></a><span class="lineno"> 1692</span>&#160;    XMLError LoadFile( <span class="keyword">const</span> <span class="keywordtype">char</span>* filename );</div><div class="line"><a name="l01693"></a><span class="lineno"> 1693</span>&#160;</div><div class="line"><a name="l01705"></a><span class="lineno"> 1705</span>&#160;    XMLError LoadFile( FILE* );</div><div class="line"><a name="l01706"></a><span class="lineno"> 1706</span>&#160;</div><div class="line"><a name="l01712"></a><span class="lineno"> 1712</span>&#160;    XMLError SaveFile( <span class="keyword">const</span> <span class="keywordtype">char</span>* filename, <span class="keywordtype">bool</span> compact = <span class="keyword">false</span> );</div><div class="line"><a name="l01713"></a><span class="lineno"> 1713</span>&#160;</div><div class="line"><a name="l01721"></a><span class="lineno"> 1721</span>&#160;    XMLError SaveFile( FILE* fp, <span class="keywordtype">bool</span> compact = <span class="keyword">false</span> );</div><div class="line"><a name="l01722"></a><span class="lineno"> 1722</span>&#160;</div><div class="line"><a name="l01723"></a><span class="lineno"> 1723</span>&#160;    <span class="keywordtype">bool</span> ProcessEntities()<span class="keyword"> const        </span>{</div><div class="line"><a name="l01724"></a><span class="lineno"> 1724</span>&#160;        <span class="keywordflow">return</span> _processEntities;</div><div class="line"><a name="l01725"></a><span class="lineno"> 1725</span>&#160;    }</div><div class="line"><a name="l01726"></a><span class="lineno"> 1726</span>&#160;    Whitespace WhitespaceMode()<span class="keyword"> const   </span>{</div><div class="line"><a name="l01727"></a><span class="lineno"> 1727</span>&#160;        <span class="keywordflow">return</span> _whitespaceMode;</div><div class="line"><a name="l01728"></a><span class="lineno"> 1728</span>&#160;    }</div><div class="line"><a name="l01729"></a><span class="lineno"> 1729</span>&#160;</div><div class="line"><a name="l01733"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_document.html#a33fc5d159db873a179fa26338adb05bd"> 1733</a></span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="classtinyxml2_1_1_x_m_l_document.html#a33fc5d159db873a179fa26338adb05bd">HasBOM</a>()<span class="keyword"> const </span>{</div><div class="line"><a name="l01734"></a><span class="lineno"> 1734</span>&#160;        <span class="keywordflow">return</span> _writeBOM;</div><div class="line"><a name="l01735"></a><span class="lineno"> 1735</span>&#160;    }</div><div class="line"><a name="l01738"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_document.html#a14419b698f7c4b140df4e80f3f0c93b0"> 1738</a></span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classtinyxml2_1_1_x_m_l_document.html#a14419b698f7c4b140df4e80f3f0c93b0">SetBOM</a>( <span class="keywordtype">bool</span> useBOM ) {</div><div class="line"><a name="l01739"></a><span class="lineno"> 1739</span>&#160;        _writeBOM = useBOM;</div><div class="line"><a name="l01740"></a><span class="lineno"> 1740</span>&#160;    }</div><div class="line"><a name="l01741"></a><span class="lineno"> 1741</span>&#160;</div><div class="line"><a name="l01745"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_document.html#ad2b70320d3c2a071c2f36928edff3e1c"> 1745</a></span>&#160;    <a class="code" href="classtinyxml2_1_1_x_m_l_element.html">XMLElement</a>* <a class="code" href="classtinyxml2_1_1_x_m_l_document.html#ad2b70320d3c2a071c2f36928edff3e1c">RootElement</a>()               {</div><div class="line"><a name="l01746"></a><span class="lineno"> 1746</span>&#160;        <span class="keywordflow">return</span> FirstChildElement();</div><div class="line"><a name="l01747"></a><span class="lineno"> 1747</span>&#160;    }</div><div class="line"><a name="l01748"></a><span class="lineno"> 1748</span>&#160;    <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_element.html">XMLElement</a>* RootElement()<span class="keyword"> const   </span>{</div><div class="line"><a name="l01749"></a><span class="lineno"> 1749</span>&#160;        <span class="keywordflow">return</span> FirstChildElement();</div><div class="line"><a name="l01750"></a><span class="lineno"> 1750</span>&#160;    }</div><div class="line"><a name="l01751"></a><span class="lineno"> 1751</span>&#160;</div><div class="line"><a name="l01766"></a><span class="lineno"> 1766</span>&#160;    <span class="keywordtype">void</span> Print( <a class="code" href="classtinyxml2_1_1_x_m_l_printer.html">XMLPrinter</a>* streamer=0 ) <span class="keyword">const</span>;</div><div class="line"><a name="l01767"></a><span class="lineno"> 1767</span>&#160;    <span class="keyword">virtual</span> <span class="keywordtype">bool</span> Accept( <a class="code" href="classtinyxml2_1_1_x_m_l_visitor.html">XMLVisitor</a>* visitor ) <span class="keyword">const</span>;</div><div class="line"><a name="l01768"></a><span class="lineno"> 1768</span>&#160;</div><div class="line"><a name="l01774"></a><span class="lineno"> 1774</span>&#160;    <a class="code" href="classtinyxml2_1_1_x_m_l_element.html">XMLElement</a>* NewElement( <span class="keyword">const</span> <span class="keywordtype">char</span>* name );</div><div class="line"><a name="l01780"></a><span class="lineno"> 1780</span>&#160;    <a class="code" href="classtinyxml2_1_1_x_m_l_comment.html">XMLComment</a>* NewComment( <span class="keyword">const</span> <span class="keywordtype">char</span>* comment );</div><div class="line"><a name="l01786"></a><span class="lineno"> 1786</span>&#160;    <a class="code" href="classtinyxml2_1_1_x_m_l_text.html">XMLText</a>* NewText( <span class="keyword">const</span> <span class="keywordtype">char</span>* text );</div><div class="line"><a name="l01798"></a><span class="lineno"> 1798</span>&#160;    <a class="code" href="classtinyxml2_1_1_x_m_l_declaration.html">XMLDeclaration</a>* NewDeclaration( <span class="keyword">const</span> <span class="keywordtype">char</span>* text=0 );</div><div class="line"><a name="l01804"></a><span class="lineno"> 1804</span>&#160;    <a class="code" href="classtinyxml2_1_1_x_m_l_unknown.html">XMLUnknown</a>* NewUnknown( <span class="keyword">const</span> <span class="keywordtype">char</span>* text );</div><div class="line"><a name="l01805"></a><span class="lineno"> 1805</span>&#160;</div><div class="line"><a name="l01810"></a><span class="lineno"> 1810</span>&#160;    <span class="keywordtype">void</span> DeleteNode( <a class="code" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a>* node );</div><div class="line"><a name="l01811"></a><span class="lineno"> 1811</span>&#160;</div><div class="line"><a name="l01812"></a><span class="lineno"> 1812</span>&#160;    <span class="keywordtype">void</span> ClearError() {</div><div class="line"><a name="l01813"></a><span class="lineno"> 1813</span>&#160;        SetError(XML_SUCCESS, 0, 0);</div><div class="line"><a name="l01814"></a><span class="lineno"> 1814</span>&#160;    }</div><div class="line"><a name="l01815"></a><span class="lineno"> 1815</span>&#160;</div><div class="line"><a name="l01817"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_document.html#a34e6318e182e40e3cc4f4ba5d59ed9ed"> 1817</a></span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="classtinyxml2_1_1_x_m_l_document.html#a34e6318e182e40e3cc4f4ba5d59ed9ed">Error</a>()<span class="keyword"> const </span>{</div><div class="line"><a name="l01818"></a><span class="lineno"> 1818</span>&#160;        <span class="keywordflow">return</span> _errorID != XML_SUCCESS;</div><div class="line"><a name="l01819"></a><span class="lineno"> 1819</span>&#160;    }</div><div class="line"><a name="l01821"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_document.html#afa3ed33b3107f920ec2b301f805ac17d"> 1821</a></span>&#160;    XMLError  <a class="code" href="classtinyxml2_1_1_x_m_l_document.html#afa3ed33b3107f920ec2b301f805ac17d">ErrorID</a>()<span class="keyword"> const </span>{</div><div class="line"><a name="l01822"></a><span class="lineno"> 1822</span>&#160;        <span class="keywordflow">return</span> _errorID;</div><div class="line"><a name="l01823"></a><span class="lineno"> 1823</span>&#160;    }</div><div class="line"><a name="l01824"></a><span class="lineno"> 1824</span>&#160;    <span class="keyword">const</span> <span class="keywordtype">char</span>* ErrorName() <span class="keyword">const</span>;</div><div class="line"><a name="l01825"></a><span class="lineno"> 1825</span>&#160;    <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">char</span>* ErrorIDToName(XMLError errorID);</div><div class="line"><a name="l01826"></a><span class="lineno"> 1826</span>&#160;</div><div class="line"><a name="l01830"></a><span class="lineno"> 1830</span>&#160;    <span class="keyword">const</span> <span class="keywordtype">char</span>* ErrorStr() <span class="keyword">const</span>;</div><div class="line"><a name="l01831"></a><span class="lineno"> 1831</span>&#160;</div><div class="line"><a name="l01833"></a><span class="lineno"> 1833</span>&#160;    <span class="keywordtype">void</span> PrintError() <span class="keyword">const</span>;</div><div class="line"><a name="l01834"></a><span class="lineno"> 1834</span>&#160;</div><div class="line"><a name="l01836"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_document.html#a57400f816dbe7799ece33615ead9ab76"> 1836</a></span>&#160;    <span class="keywordtype">int</span> <a class="code" href="classtinyxml2_1_1_x_m_l_document.html#a57400f816dbe7799ece33615ead9ab76">ErrorLineNum</a>()<span class="keyword"> const</span></div><div class="line"><a name="l01837"></a><span class="lineno"> 1837</span>&#160;<span class="keyword">    </span>{</div><div class="line"><a name="l01838"></a><span class="lineno"> 1838</span>&#160;        <span class="keywordflow">return</span> _errorLineNum;</div><div class="line"><a name="l01839"></a><span class="lineno"> 1839</span>&#160;    }</div><div class="line"><a name="l01840"></a><span class="lineno"> 1840</span>&#160;</div><div class="line"><a name="l01842"></a><span class="lineno"> 1842</span>&#160;    <span class="keywordtype">void</span> Clear();</div><div class="line"><a name="l01843"></a><span class="lineno"> 1843</span>&#160;</div><div class="line"><a name="l01851"></a><span class="lineno"> 1851</span>&#160;    <span class="keywordtype">void</span> DeepCopy(<a class="code" href="classtinyxml2_1_1_x_m_l_document.html">XMLDocument</a>* target) <span class="keyword">const</span>;</div><div class="line"><a name="l01852"></a><span class="lineno"> 1852</span>&#160;</div><div class="line"><a name="l01853"></a><span class="lineno"> 1853</span>&#160;    <span class="comment">// internal</span></div><div class="line"><a name="l01854"></a><span class="lineno"> 1854</span>&#160;    <span class="keywordtype">char</span>* Identify( <span class="keywordtype">char</span>* p, <a class="code" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a>** node );</div><div class="line"><a name="l01855"></a><span class="lineno"> 1855</span>&#160;</div><div class="line"><a name="l01856"></a><span class="lineno"> 1856</span>&#160;    <span class="comment">// internal</span></div><div class="line"><a name="l01857"></a><span class="lineno"> 1857</span>&#160;    <span class="keywordtype">void</span> MarkInUse(<a class="code" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a>*);</div><div class="line"><a name="l01858"></a><span class="lineno"> 1858</span>&#160;</div><div class="line"><a name="l01859"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_document.html#aa37cc1709d7e1e988bc17dcfb24a69b8"> 1859</a></span>&#160;    <span class="keyword">virtual</span> <a class="code" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a>* <a class="code" href="classtinyxml2_1_1_x_m_l_document.html#aa37cc1709d7e1e988bc17dcfb24a69b8">ShallowClone</a>( <a class="code" href="classtinyxml2_1_1_x_m_l_document.html">XMLDocument</a>* <span class="comment">/*document*/</span> )<span class="keyword"> const    </span>{</div><div class="line"><a name="l01860"></a><span class="lineno"> 1860</span>&#160;        <span class="keywordflow">return</span> 0;</div><div class="line"><a name="l01861"></a><span class="lineno"> 1861</span>&#160;    }</div><div class="line"><a name="l01862"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_document.html#a6fe5ef18699091844fcf64b56ffa5bf9"> 1862</a></span>&#160;    <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classtinyxml2_1_1_x_m_l_document.html#a6fe5ef18699091844fcf64b56ffa5bf9">ShallowEqual</a>( <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a>* <span class="comment">/*compare*/</span> )<span class="keyword"> const   </span>{</div><div class="line"><a name="l01863"></a><span class="lineno"> 1863</span>&#160;        <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l01864"></a><span class="lineno"> 1864</span>&#160;    }</div><div class="line"><a name="l01865"></a><span class="lineno"> 1865</span>&#160;</div><div class="line"><a name="l01866"></a><span class="lineno"> 1866</span>&#160;<span class="keyword">private</span>:</div><div class="line"><a name="l01867"></a><span class="lineno"> 1867</span>&#160;    <a class="code" href="classtinyxml2_1_1_x_m_l_document.html">XMLDocument</a>( <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_document.html">XMLDocument</a>&amp; );  <span class="comment">// not supported</span></div><div class="line"><a name="l01868"></a><span class="lineno"> 1868</span>&#160;    <span class="keywordtype">void</span> operator=( <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_document.html">XMLDocument</a>&amp; );   <span class="comment">// not supported</span></div><div class="line"><a name="l01869"></a><span class="lineno"> 1869</span>&#160;</div><div class="line"><a name="l01870"></a><span class="lineno"> 1870</span>&#160;    <span class="keywordtype">bool</span>            _writeBOM;</div><div class="line"><a name="l01871"></a><span class="lineno"> 1871</span>&#160;    <span class="keywordtype">bool</span>            _processEntities;</div><div class="line"><a name="l01872"></a><span class="lineno"> 1872</span>&#160;    XMLError        _errorID;</div><div class="line"><a name="l01873"></a><span class="lineno"> 1873</span>&#160;    Whitespace      _whitespaceMode;</div><div class="line"><a name="l01874"></a><span class="lineno"> 1874</span>&#160;    <span class="keyword">mutable</span> StrPair _errorStr;</div><div class="line"><a name="l01875"></a><span class="lineno"> 1875</span>&#160;    <span class="keywordtype">int</span>             _errorLineNum;</div><div class="line"><a name="l01876"></a><span class="lineno"> 1876</span>&#160;    <span class="keywordtype">char</span>*           _charBuffer;</div><div class="line"><a name="l01877"></a><span class="lineno"> 1877</span>&#160;    <span class="keywordtype">int</span>             _parseCurLineNum;</div><div class="line"><a name="l01878"></a><span class="lineno"> 1878</span>&#160;    <span class="keywordtype">int</span>             _parsingDepth;</div><div class="line"><a name="l01879"></a><span class="lineno"> 1879</span>&#160;    <span class="comment">// Memory tracking does add some overhead.</span></div><div class="line"><a name="l01880"></a><span class="lineno"> 1880</span>&#160;    <span class="comment">// However, the code assumes that you don&#39;t</span></div><div class="line"><a name="l01881"></a><span class="lineno"> 1881</span>&#160;    <span class="comment">// have a bunch of unlinked nodes around.</span></div><div class="line"><a name="l01882"></a><span class="lineno"> 1882</span>&#160;    <span class="comment">// Therefore it takes less memory to track</span></div><div class="line"><a name="l01883"></a><span class="lineno"> 1883</span>&#160;    <span class="comment">// in the document vs. a linked list in the XMLNode,</span></div><div class="line"><a name="l01884"></a><span class="lineno"> 1884</span>&#160;    <span class="comment">// and the performance is the same.</span></div><div class="line"><a name="l01885"></a><span class="lineno"> 1885</span>&#160;    DynArray&lt;XMLNode*, 10&gt; _unlinked;</div><div class="line"><a name="l01886"></a><span class="lineno"> 1886</span>&#160;</div><div class="line"><a name="l01887"></a><span class="lineno"> 1887</span>&#160;    MemPoolT&lt; sizeof(XMLElement) &gt;   _elementPool;</div><div class="line"><a name="l01888"></a><span class="lineno"> 1888</span>&#160;    MemPoolT&lt; sizeof(XMLAttribute) &gt; _attributePool;</div><div class="line"><a name="l01889"></a><span class="lineno"> 1889</span>&#160;    MemPoolT&lt; sizeof(XMLText) &gt;      _textPool;</div><div class="line"><a name="l01890"></a><span class="lineno"> 1890</span>&#160;    MemPoolT&lt; sizeof(XMLComment) &gt;   _commentPool;</div><div class="line"><a name="l01891"></a><span class="lineno"> 1891</span>&#160;</div><div class="line"><a name="l01892"></a><span class="lineno"> 1892</span>&#160;    <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">char</span>* _errorNames[XML_ERROR_COUNT];</div><div class="line"><a name="l01893"></a><span class="lineno"> 1893</span>&#160;</div><div class="line"><a name="l01894"></a><span class="lineno"> 1894</span>&#160;    <span class="keywordtype">void</span> Parse();</div><div class="line"><a name="l01895"></a><span class="lineno"> 1895</span>&#160;</div><div class="line"><a name="l01896"></a><span class="lineno"> 1896</span>&#160;    <span class="keywordtype">void</span> SetError( XMLError error, <span class="keywordtype">int</span> lineNum, <span class="keyword">const</span> <span class="keywordtype">char</span>* format, ... );</div><div class="line"><a name="l01897"></a><span class="lineno"> 1897</span>&#160;</div><div class="line"><a name="l01898"></a><span class="lineno"> 1898</span>&#160;    <span class="comment">// Something of an obvious security hole, once it was discovered.</span></div><div class="line"><a name="l01899"></a><span class="lineno"> 1899</span>&#160;    <span class="comment">// Either an ill-formed XML or an excessively deep one can overflow</span></div><div class="line"><a name="l01900"></a><span class="lineno"> 1900</span>&#160;    <span class="comment">// the stack. Track stack depth, and error out if needed.</span></div><div class="line"><a name="l01901"></a><span class="lineno"> 1901</span>&#160;    <span class="keyword">class </span>DepthTracker {</div><div class="line"><a name="l01902"></a><span class="lineno"> 1902</span>&#160;    <span class="keyword">public</span>:</div><div class="line"><a name="l01903"></a><span class="lineno"> 1903</span>&#160;        <span class="keyword">explicit</span> DepthTracker(<a class="code" href="classtinyxml2_1_1_x_m_l_document.html">XMLDocument</a> * document) {</div><div class="line"><a name="l01904"></a><span class="lineno"> 1904</span>&#160;            this-&gt;_document = document;</div><div class="line"><a name="l01905"></a><span class="lineno"> 1905</span>&#160;            document-&gt;PushDepth();</div><div class="line"><a name="l01906"></a><span class="lineno"> 1906</span>&#160;        }</div><div class="line"><a name="l01907"></a><span class="lineno"> 1907</span>&#160;        ~DepthTracker() {</div><div class="line"><a name="l01908"></a><span class="lineno"> 1908</span>&#160;            _document-&gt;PopDepth();</div><div class="line"><a name="l01909"></a><span class="lineno"> 1909</span>&#160;        }</div><div class="line"><a name="l01910"></a><span class="lineno"> 1910</span>&#160;    <span class="keyword">private</span>:</div><div class="line"><a name="l01911"></a><span class="lineno"> 1911</span>&#160;        <a class="code" href="classtinyxml2_1_1_x_m_l_document.html">XMLDocument</a> * _document;</div><div class="line"><a name="l01912"></a><span class="lineno"> 1912</span>&#160;    };</div><div class="line"><a name="l01913"></a><span class="lineno"> 1913</span>&#160;    <span class="keywordtype">void</span> PushDepth();</div><div class="line"><a name="l01914"></a><span class="lineno"> 1914</span>&#160;    <span class="keywordtype">void</span> PopDepth();</div><div class="line"><a name="l01915"></a><span class="lineno"> 1915</span>&#160;</div><div class="line"><a name="l01916"></a><span class="lineno"> 1916</span>&#160;    <span class="keyword">template</span>&lt;<span class="keyword">class</span> NodeType, <span class="keywordtype">int</span> PoolElementSize&gt;</div><div class="line"><a name="l01917"></a><span class="lineno"> 1917</span>&#160;    NodeType* CreateUnlinkedNode( MemPoolT&lt;PoolElementSize&gt;&amp; pool );</div><div class="line"><a name="l01918"></a><span class="lineno"> 1918</span>&#160;};</div><div class="line"><a name="l01919"></a><span class="lineno"> 1919</span>&#160;</div><div class="line"><a name="l01920"></a><span class="lineno"> 1920</span>&#160;<span class="keyword">template</span>&lt;<span class="keyword">class</span> NodeType, <span class="keywordtype">int</span> PoolElementSize&gt;</div><div class="line"><a name="l01921"></a><span class="lineno"> 1921</span>&#160;<span class="keyword">inline</span> NodeType* XMLDocument::CreateUnlinkedNode( MemPoolT&lt;PoolElementSize&gt;&amp; pool )</div><div class="line"><a name="l01922"></a><span class="lineno"> 1922</span>&#160;{</div><div class="line"><a name="l01923"></a><span class="lineno"> 1923</span>&#160;    TIXMLASSERT( <span class="keyword">sizeof</span>( NodeType ) == PoolElementSize );</div><div class="line"><a name="l01924"></a><span class="lineno"> 1924</span>&#160;    TIXMLASSERT( <span class="keyword">sizeof</span>( NodeType ) == pool.ItemSize() );</div><div class="line"><a name="l01925"></a><span class="lineno"> 1925</span>&#160;    NodeType* returnNode = <span class="keyword">new</span> (pool.Alloc()) NodeType( <span class="keyword">this</span> );</div><div class="line"><a name="l01926"></a><span class="lineno"> 1926</span>&#160;    TIXMLASSERT( returnNode );</div><div class="line"><a name="l01927"></a><span class="lineno"> 1927</span>&#160;    returnNode-&gt;_memPool = &amp;pool;</div><div class="line"><a name="l01928"></a><span class="lineno"> 1928</span>&#160;</div><div class="line"><a name="l01929"></a><span class="lineno"> 1929</span>&#160;    _unlinked.Push(returnNode);</div><div class="line"><a name="l01930"></a><span class="lineno"> 1930</span>&#160;    <span class="keywordflow">return</span> returnNode;</div><div class="line"><a name="l01931"></a><span class="lineno"> 1931</span>&#160;}</div><div class="line"><a name="l01932"></a><span class="lineno"> 1932</span>&#160;</div><div class="line"><a name="l01988"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_handle.html"> 1988</a></span>&#160;<span class="keyword">class </span>TINYXML2_LIB <a class="code" href="classtinyxml2_1_1_x_m_l_handle.html">XMLHandle</a></div><div class="line"><a name="l01989"></a><span class="lineno"> 1989</span>&#160;{</div><div class="line"><a name="l01990"></a><span class="lineno"> 1990</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l01992"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_handle.html#a9c240a35c18f053509b4b97ddccd9793"> 1992</a></span>&#160;    <span class="keyword">explicit</span> <a class="code" href="classtinyxml2_1_1_x_m_l_handle.html#a9c240a35c18f053509b4b97ddccd9793">XMLHandle</a>( <a class="code" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a>* node ) : _node( node ) {</div><div class="line"><a name="l01993"></a><span class="lineno"> 1993</span>&#160;    }</div><div class="line"><a name="l01995"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_handle.html#aa2edbc1c0d3e3e8259bd98de7f1cf500"> 1995</a></span>&#160;    <span class="keyword">explicit</span> <a class="code" href="classtinyxml2_1_1_x_m_l_handle.html#aa2edbc1c0d3e3e8259bd98de7f1cf500">XMLHandle</a>( <a class="code" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a>&amp; node ) : _node( &amp;node ) {</div><div class="line"><a name="l01996"></a><span class="lineno"> 1996</span>&#160;    }</div><div class="line"><a name="l01998"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_handle.html#afd8e01e6018c07347b8e6d80272466aa"> 1998</a></span>&#160;    <a class="code" href="classtinyxml2_1_1_x_m_l_handle.html#afd8e01e6018c07347b8e6d80272466aa">XMLHandle</a>( <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_handle.html">XMLHandle</a>&amp; ref ) : _node( ref._node ) {</div><div class="line"><a name="l01999"></a><span class="lineno"> 1999</span>&#160;    }</div><div class="line"><a name="l02001"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_handle.html#a75b908322bb4b83be3281b6845252b20"> 2001</a></span>&#160;    <a class="code" href="classtinyxml2_1_1_x_m_l_handle.html">XMLHandle</a>&amp; <a class="code" href="classtinyxml2_1_1_x_m_l_handle.html#a75b908322bb4b83be3281b6845252b20">operator=</a>( <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_handle.html">XMLHandle</a>&amp; ref )                            {</div><div class="line"><a name="l02002"></a><span class="lineno"> 2002</span>&#160;        _node = ref._node;</div><div class="line"><a name="l02003"></a><span class="lineno"> 2003</span>&#160;        <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div><div class="line"><a name="l02004"></a><span class="lineno"> 2004</span>&#160;    }</div><div class="line"><a name="l02005"></a><span class="lineno"> 2005</span>&#160;</div><div class="line"><a name="l02007"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_handle.html#a536447dc7f54c0cd11e031dad94795ae"> 2007</a></span>&#160;    <a class="code" href="classtinyxml2_1_1_x_m_l_handle.html">XMLHandle</a> <a class="code" href="classtinyxml2_1_1_x_m_l_handle.html#a536447dc7f54c0cd11e031dad94795ae">FirstChild</a>()                                                  {</div><div class="line"><a name="l02008"></a><span class="lineno"> 2008</span>&#160;        <span class="keywordflow">return</span> <a class="code" href="classtinyxml2_1_1_x_m_l_handle.html">XMLHandle</a>( _node ? _node-&gt;FirstChild() : 0 );</div><div class="line"><a name="l02009"></a><span class="lineno"> 2009</span>&#160;    }</div><div class="line"><a name="l02011"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_handle.html#a74b04dd0f15e0bf01860e282b840b6a3"> 2011</a></span>&#160;    <a class="code" href="classtinyxml2_1_1_x_m_l_handle.html">XMLHandle</a> <a class="code" href="classtinyxml2_1_1_x_m_l_handle.html#a74b04dd0f15e0bf01860e282b840b6a3">FirstChildElement</a>( <span class="keyword">const</span> <span class="keywordtype">char</span>* name = 0 )                     {</div><div class="line"><a name="l02012"></a><span class="lineno"> 2012</span>&#160;        <span class="keywordflow">return</span> <a class="code" href="classtinyxml2_1_1_x_m_l_handle.html">XMLHandle</a>( _node ? _node-&gt;FirstChildElement( name ) : 0 );</div><div class="line"><a name="l02013"></a><span class="lineno"> 2013</span>&#160;    }</div><div class="line"><a name="l02015"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_handle.html#a9d09f04435f0f2f7d0816b0198d0517b"> 2015</a></span>&#160;    <a class="code" href="classtinyxml2_1_1_x_m_l_handle.html">XMLHandle</a> <a class="code" href="classtinyxml2_1_1_x_m_l_handle.html#a9d09f04435f0f2f7d0816b0198d0517b">LastChild</a>()                                                   {</div><div class="line"><a name="l02016"></a><span class="lineno"> 2016</span>&#160;        <span class="keywordflow">return</span> <a class="code" href="classtinyxml2_1_1_x_m_l_handle.html">XMLHandle</a>( _node ? _node-&gt;LastChild() : 0 );</div><div class="line"><a name="l02017"></a><span class="lineno"> 2017</span>&#160;    }</div><div class="line"><a name="l02019"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_handle.html#a42cccd0ce8b1ce704f431025e9f19e0c"> 2019</a></span>&#160;    <a class="code" href="classtinyxml2_1_1_x_m_l_handle.html">XMLHandle</a> <a class="code" href="classtinyxml2_1_1_x_m_l_handle.html#a42cccd0ce8b1ce704f431025e9f19e0c">LastChildElement</a>( <span class="keyword">const</span> <span class="keywordtype">char</span>* name = 0 )                      {</div><div class="line"><a name="l02020"></a><span class="lineno"> 2020</span>&#160;        <span class="keywordflow">return</span> <a class="code" href="classtinyxml2_1_1_x_m_l_handle.html">XMLHandle</a>( _node ? _node-&gt;LastChildElement( name ) : 0 );</div><div class="line"><a name="l02021"></a><span class="lineno"> 2021</span>&#160;    }</div><div class="line"><a name="l02023"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_handle.html#a428374e756f4db4cbc287fec64eae02c"> 2023</a></span>&#160;    <a class="code" href="classtinyxml2_1_1_x_m_l_handle.html">XMLHandle</a> <a class="code" href="classtinyxml2_1_1_x_m_l_handle.html#a428374e756f4db4cbc287fec64eae02c">PreviousSibling</a>()                                             {</div><div class="line"><a name="l02024"></a><span class="lineno"> 2024</span>&#160;        <span class="keywordflow">return</span> <a class="code" href="classtinyxml2_1_1_x_m_l_handle.html">XMLHandle</a>( _node ? _node-&gt;PreviousSibling() : 0 );</div><div class="line"><a name="l02025"></a><span class="lineno"> 2025</span>&#160;    }</div><div class="line"><a name="l02027"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_handle.html#a786957e498039554ed334cdc36612a7e"> 2027</a></span>&#160;    <a class="code" href="classtinyxml2_1_1_x_m_l_handle.html">XMLHandle</a> <a class="code" href="classtinyxml2_1_1_x_m_l_handle.html#a786957e498039554ed334cdc36612a7e">PreviousSiblingElement</a>( <span class="keyword">const</span> <span class="keywordtype">char</span>* name = 0 )                {</div><div class="line"><a name="l02028"></a><span class="lineno"> 2028</span>&#160;        <span class="keywordflow">return</span> <a class="code" href="classtinyxml2_1_1_x_m_l_handle.html">XMLHandle</a>( _node ? _node-&gt;PreviousSiblingElement( name ) : 0 );</div><div class="line"><a name="l02029"></a><span class="lineno"> 2029</span>&#160;    }</div><div class="line"><a name="l02031"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_handle.html#aad2eccc7c7c7b18145877c978c3850b5"> 2031</a></span>&#160;    <a class="code" href="classtinyxml2_1_1_x_m_l_handle.html">XMLHandle</a> <a class="code" href="classtinyxml2_1_1_x_m_l_handle.html#aad2eccc7c7c7b18145877c978c3850b5">NextSibling</a>()                                                 {</div><div class="line"><a name="l02032"></a><span class="lineno"> 2032</span>&#160;        <span class="keywordflow">return</span> <a class="code" href="classtinyxml2_1_1_x_m_l_handle.html">XMLHandle</a>( _node ? _node-&gt;NextSibling() : 0 );</div><div class="line"><a name="l02033"></a><span class="lineno"> 2033</span>&#160;    }</div><div class="line"><a name="l02035"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_handle.html#ae41d88ee061f3c49a081630ff753b2c5"> 2035</a></span>&#160;    <a class="code" href="classtinyxml2_1_1_x_m_l_handle.html">XMLHandle</a> <a class="code" href="classtinyxml2_1_1_x_m_l_handle.html#ae41d88ee061f3c49a081630ff753b2c5">NextSiblingElement</a>( <span class="keyword">const</span> <span class="keywordtype">char</span>* name = 0 )                    {</div><div class="line"><a name="l02036"></a><span class="lineno"> 2036</span>&#160;        <span class="keywordflow">return</span> <a class="code" href="classtinyxml2_1_1_x_m_l_handle.html">XMLHandle</a>( _node ? _node-&gt;NextSiblingElement( name ) : 0 );</div><div class="line"><a name="l02037"></a><span class="lineno"> 2037</span>&#160;    }</div><div class="line"><a name="l02038"></a><span class="lineno"> 2038</span>&#160;</div><div class="line"><a name="l02040"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_handle.html#a03ea6ec970a021b71bf1219a0f6717df"> 2040</a></span>&#160;    <a class="code" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a>* <a class="code" href="classtinyxml2_1_1_x_m_l_handle.html#a03ea6ec970a021b71bf1219a0f6717df">ToNode</a>()                           {</div><div class="line"><a name="l02041"></a><span class="lineno"> 2041</span>&#160;        <span class="keywordflow">return</span> _node;</div><div class="line"><a name="l02042"></a><span class="lineno"> 2042</span>&#160;    }</div><div class="line"><a name="l02044"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_handle.html#a5e73ed8f3f6f9619d5a8bb1862c47d99"> 2044</a></span>&#160;    <a class="code" href="classtinyxml2_1_1_x_m_l_element.html">XMLElement</a>* <a class="code" href="classtinyxml2_1_1_x_m_l_handle.html#a5e73ed8f3f6f9619d5a8bb1862c47d99">ToElement</a>()                     {</div><div class="line"><a name="l02045"></a><span class="lineno"> 2045</span>&#160;        <span class="keywordflow">return</span> ( _node ? _node-&gt;ToElement() : 0 );</div><div class="line"><a name="l02046"></a><span class="lineno"> 2046</span>&#160;    }</div><div class="line"><a name="l02048"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_handle.html#a6ab9e8cbfb41417246e5657e3842c62a"> 2048</a></span>&#160;    <a class="code" href="classtinyxml2_1_1_x_m_l_text.html">XMLText</a>* <a class="code" href="classtinyxml2_1_1_x_m_l_handle.html#a6ab9e8cbfb41417246e5657e3842c62a">ToText</a>()                           {</div><div class="line"><a name="l02049"></a><span class="lineno"> 2049</span>&#160;        <span class="keywordflow">return</span> ( _node ? _node-&gt;ToText() : 0 );</div><div class="line"><a name="l02050"></a><span class="lineno"> 2050</span>&#160;    }</div><div class="line"><a name="l02052"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_handle.html#aa387368a1ad8d843a9f12df863d298de"> 2052</a></span>&#160;    <a class="code" href="classtinyxml2_1_1_x_m_l_unknown.html">XMLUnknown</a>* <a class="code" href="classtinyxml2_1_1_x_m_l_handle.html#aa387368a1ad8d843a9f12df863d298de">ToUnknown</a>()                     {</div><div class="line"><a name="l02053"></a><span class="lineno"> 2053</span>&#160;        <span class="keywordflow">return</span> ( _node ? _node-&gt;ToUnknown() : 0 );</div><div class="line"><a name="l02054"></a><span class="lineno"> 2054</span>&#160;    }</div><div class="line"><a name="l02056"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_handle.html#a108858be7ee3eb53f73b5194c1aa8ff0"> 2056</a></span>&#160;    <a class="code" href="classtinyxml2_1_1_x_m_l_declaration.html">XMLDeclaration</a>* <a class="code" href="classtinyxml2_1_1_x_m_l_handle.html#a108858be7ee3eb53f73b5194c1aa8ff0">ToDeclaration</a>()             {</div><div class="line"><a name="l02057"></a><span class="lineno"> 2057</span>&#160;        <span class="keywordflow">return</span> ( _node ? _node-&gt;ToDeclaration() : 0 );</div><div class="line"><a name="l02058"></a><span class="lineno"> 2058</span>&#160;    }</div><div class="line"><a name="l02059"></a><span class="lineno"> 2059</span>&#160;</div><div class="line"><a name="l02060"></a><span class="lineno"> 2060</span>&#160;<span class="keyword">private</span>:</div><div class="line"><a name="l02061"></a><span class="lineno"> 2061</span>&#160;    <a class="code" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a>* _node;</div><div class="line"><a name="l02062"></a><span class="lineno"> 2062</span>&#160;};</div><div class="line"><a name="l02063"></a><span class="lineno"> 2063</span>&#160;</div><div class="line"><a name="l02064"></a><span class="lineno"> 2064</span>&#160;</div><div class="line"><a name="l02069"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_const_handle.html"> 2069</a></span>&#160;<span class="keyword">class </span>TINYXML2_LIB <a class="code" href="classtinyxml2_1_1_x_m_l_const_handle.html">XMLConstHandle</a></div><div class="line"><a name="l02070"></a><span class="lineno"> 2070</span>&#160;{</div><div class="line"><a name="l02071"></a><span class="lineno"> 2071</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l02072"></a><span class="lineno"> 2072</span>&#160;    <span class="keyword">explicit</span> <a class="code" href="classtinyxml2_1_1_x_m_l_const_handle.html">XMLConstHandle</a>( <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a>* node ) : _node( node ) {</div><div class="line"><a name="l02073"></a><span class="lineno"> 2073</span>&#160;    }</div><div class="line"><a name="l02074"></a><span class="lineno"> 2074</span>&#160;    <span class="keyword">explicit</span> <a class="code" href="classtinyxml2_1_1_x_m_l_const_handle.html">XMLConstHandle</a>( <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a>&amp; node ) : _node( &amp;node ) {</div><div class="line"><a name="l02075"></a><span class="lineno"> 2075</span>&#160;    }</div><div class="line"><a name="l02076"></a><span class="lineno"> 2076</span>&#160;    <a class="code" href="classtinyxml2_1_1_x_m_l_const_handle.html">XMLConstHandle</a>( <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_const_handle.html">XMLConstHandle</a>&amp; ref ) : _node( ref._node ) {</div><div class="line"><a name="l02077"></a><span class="lineno"> 2077</span>&#160;    }</div><div class="line"><a name="l02078"></a><span class="lineno"> 2078</span>&#160;</div><div class="line"><a name="l02079"></a><span class="lineno"> 2079</span>&#160;    <a class="code" href="classtinyxml2_1_1_x_m_l_const_handle.html">XMLConstHandle</a>&amp; operator=( <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_const_handle.html">XMLConstHandle</a>&amp; ref )                          {</div><div class="line"><a name="l02080"></a><span class="lineno"> 2080</span>&#160;        _node = ref._node;</div><div class="line"><a name="l02081"></a><span class="lineno"> 2081</span>&#160;        <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div><div class="line"><a name="l02082"></a><span class="lineno"> 2082</span>&#160;    }</div><div class="line"><a name="l02083"></a><span class="lineno"> 2083</span>&#160;</div><div class="line"><a name="l02084"></a><span class="lineno"> 2084</span>&#160;    <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_const_handle.html">XMLConstHandle</a> FirstChild()<span class="keyword"> const                                         </span>{</div><div class="line"><a name="l02085"></a><span class="lineno"> 2085</span>&#160;        <span class="keywordflow">return</span> <a class="code" href="classtinyxml2_1_1_x_m_l_const_handle.html">XMLConstHandle</a>( _node ? _node-&gt;FirstChild() : 0 );</div><div class="line"><a name="l02086"></a><span class="lineno"> 2086</span>&#160;    }</div><div class="line"><a name="l02087"></a><span class="lineno"> 2087</span>&#160;    <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_const_handle.html">XMLConstHandle</a> FirstChildElement( <span class="keyword">const</span> <span class="keywordtype">char</span>* name = 0 )<span class="keyword"> const                </span>{</div><div class="line"><a name="l02088"></a><span class="lineno"> 2088</span>&#160;        <span class="keywordflow">return</span> <a class="code" href="classtinyxml2_1_1_x_m_l_const_handle.html">XMLConstHandle</a>( _node ? _node-&gt;FirstChildElement( name ) : 0 );</div><div class="line"><a name="l02089"></a><span class="lineno"> 2089</span>&#160;    }</div><div class="line"><a name="l02090"></a><span class="lineno"> 2090</span>&#160;    <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_const_handle.html">XMLConstHandle</a> LastChild()<span class="keyword">    const                                       </span>{</div><div class="line"><a name="l02091"></a><span class="lineno"> 2091</span>&#160;        <span class="keywordflow">return</span> <a class="code" href="classtinyxml2_1_1_x_m_l_const_handle.html">XMLConstHandle</a>( _node ? _node-&gt;LastChild() : 0 );</div><div class="line"><a name="l02092"></a><span class="lineno"> 2092</span>&#160;    }</div><div class="line"><a name="l02093"></a><span class="lineno"> 2093</span>&#160;    <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_const_handle.html">XMLConstHandle</a> LastChildElement( <span class="keyword">const</span> <span class="keywordtype">char</span>* name = 0 )<span class="keyword"> const             </span>{</div><div class="line"><a name="l02094"></a><span class="lineno"> 2094</span>&#160;        <span class="keywordflow">return</span> <a class="code" href="classtinyxml2_1_1_x_m_l_const_handle.html">XMLConstHandle</a>( _node ? _node-&gt;LastChildElement( name ) : 0 );</div><div class="line"><a name="l02095"></a><span class="lineno"> 2095</span>&#160;    }</div><div class="line"><a name="l02096"></a><span class="lineno"> 2096</span>&#160;    <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_const_handle.html">XMLConstHandle</a> PreviousSibling()<span class="keyword"> const                                    </span>{</div><div class="line"><a name="l02097"></a><span class="lineno"> 2097</span>&#160;        <span class="keywordflow">return</span> <a class="code" href="classtinyxml2_1_1_x_m_l_const_handle.html">XMLConstHandle</a>( _node ? _node-&gt;PreviousSibling() : 0 );</div><div class="line"><a name="l02098"></a><span class="lineno"> 2098</span>&#160;    }</div><div class="line"><a name="l02099"></a><span class="lineno"> 2099</span>&#160;    <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_const_handle.html">XMLConstHandle</a> PreviousSiblingElement( <span class="keyword">const</span> <span class="keywordtype">char</span>* name = 0 )<span class="keyword"> const       </span>{</div><div class="line"><a name="l02100"></a><span class="lineno"> 2100</span>&#160;        <span class="keywordflow">return</span> <a class="code" href="classtinyxml2_1_1_x_m_l_const_handle.html">XMLConstHandle</a>( _node ? _node-&gt;PreviousSiblingElement( name ) : 0 );</div><div class="line"><a name="l02101"></a><span class="lineno"> 2101</span>&#160;    }</div><div class="line"><a name="l02102"></a><span class="lineno"> 2102</span>&#160;    <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_const_handle.html">XMLConstHandle</a> NextSibling()<span class="keyword"> const                                        </span>{</div><div class="line"><a name="l02103"></a><span class="lineno"> 2103</span>&#160;        <span class="keywordflow">return</span> <a class="code" href="classtinyxml2_1_1_x_m_l_const_handle.html">XMLConstHandle</a>( _node ? _node-&gt;NextSibling() : 0 );</div><div class="line"><a name="l02104"></a><span class="lineno"> 2104</span>&#160;    }</div><div class="line"><a name="l02105"></a><span class="lineno"> 2105</span>&#160;    <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_const_handle.html">XMLConstHandle</a> NextSiblingElement( <span class="keyword">const</span> <span class="keywordtype">char</span>* name = 0 )<span class="keyword"> const           </span>{</div><div class="line"><a name="l02106"></a><span class="lineno"> 2106</span>&#160;        <span class="keywordflow">return</span> <a class="code" href="classtinyxml2_1_1_x_m_l_const_handle.html">XMLConstHandle</a>( _node ? _node-&gt;NextSiblingElement( name ) : 0 );</div><div class="line"><a name="l02107"></a><span class="lineno"> 2107</span>&#160;    }</div><div class="line"><a name="l02108"></a><span class="lineno"> 2108</span>&#160;</div><div class="line"><a name="l02109"></a><span class="lineno"> 2109</span>&#160;</div><div class="line"><a name="l02110"></a><span class="lineno"> 2110</span>&#160;    <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a>* ToNode()<span class="keyword"> const               </span>{</div><div class="line"><a name="l02111"></a><span class="lineno"> 2111</span>&#160;        <span class="keywordflow">return</span> _node;</div><div class="line"><a name="l02112"></a><span class="lineno"> 2112</span>&#160;    }</div><div class="line"><a name="l02113"></a><span class="lineno"> 2113</span>&#160;    <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_element.html">XMLElement</a>* ToElement()<span class="keyword"> const         </span>{</div><div class="line"><a name="l02114"></a><span class="lineno"> 2114</span>&#160;        <span class="keywordflow">return</span> ( _node ? _node-&gt;ToElement() : 0 );</div><div class="line"><a name="l02115"></a><span class="lineno"> 2115</span>&#160;    }</div><div class="line"><a name="l02116"></a><span class="lineno"> 2116</span>&#160;    <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_text.html">XMLText</a>* ToText()<span class="keyword"> const               </span>{</div><div class="line"><a name="l02117"></a><span class="lineno"> 2117</span>&#160;        <span class="keywordflow">return</span> ( _node ? _node-&gt;ToText() : 0 );</div><div class="line"><a name="l02118"></a><span class="lineno"> 2118</span>&#160;    }</div><div class="line"><a name="l02119"></a><span class="lineno"> 2119</span>&#160;    <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_unknown.html">XMLUnknown</a>* ToUnknown()<span class="keyword"> const         </span>{</div><div class="line"><a name="l02120"></a><span class="lineno"> 2120</span>&#160;        <span class="keywordflow">return</span> ( _node ? _node-&gt;ToUnknown() : 0 );</div><div class="line"><a name="l02121"></a><span class="lineno"> 2121</span>&#160;    }</div><div class="line"><a name="l02122"></a><span class="lineno"> 2122</span>&#160;    <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_declaration.html">XMLDeclaration</a>* ToDeclaration()<span class="keyword"> const </span>{</div><div class="line"><a name="l02123"></a><span class="lineno"> 2123</span>&#160;        <span class="keywordflow">return</span> ( _node ? _node-&gt;ToDeclaration() : 0 );</div><div class="line"><a name="l02124"></a><span class="lineno"> 2124</span>&#160;    }</div><div class="line"><a name="l02125"></a><span class="lineno"> 2125</span>&#160;</div><div class="line"><a name="l02126"></a><span class="lineno"> 2126</span>&#160;<span class="keyword">private</span>:</div><div class="line"><a name="l02127"></a><span class="lineno"> 2127</span>&#160;    <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_node.html">XMLNode</a>* _node;</div><div class="line"><a name="l02128"></a><span class="lineno"> 2128</span>&#160;};</div><div class="line"><a name="l02129"></a><span class="lineno"> 2129</span>&#160;</div><div class="line"><a name="l02130"></a><span class="lineno"> 2130</span>&#160;</div><div class="line"><a name="l02173"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_printer.html"> 2173</a></span>&#160;<span class="keyword">class </span>TINYXML2_LIB <a class="code" href="classtinyxml2_1_1_x_m_l_printer.html">XMLPrinter</a> : <span class="keyword">public</span> <a class="code" href="classtinyxml2_1_1_x_m_l_visitor.html">XMLVisitor</a></div><div class="line"><a name="l02174"></a><span class="lineno"> 2174</span>&#160;{</div><div class="line"><a name="l02175"></a><span class="lineno"> 2175</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l02182"></a><span class="lineno"> 2182</span>&#160;    <a class="code" href="classtinyxml2_1_1_x_m_l_printer.html">XMLPrinter</a>( FILE* file=0, <span class="keywordtype">bool</span> compact = <span class="keyword">false</span>, <span class="keywordtype">int</span> depth = 0 );</div><div class="line"><a name="l02183"></a><span class="lineno"> 2183</span>&#160;    <span class="keyword">virtual</span> ~<a class="code" href="classtinyxml2_1_1_x_m_l_printer.html">XMLPrinter</a>()   {}</div><div class="line"><a name="l02184"></a><span class="lineno"> 2184</span>&#160;</div><div class="line"><a name="l02186"></a><span class="lineno"> 2186</span>&#160;    <span class="keywordtype">void</span> PushHeader( <span class="keywordtype">bool</span> writeBOM, <span class="keywordtype">bool</span> writeDeclaration );</div><div class="line"><a name="l02190"></a><span class="lineno"> 2190</span>&#160;    <span class="keywordtype">void</span> OpenElement( <span class="keyword">const</span> <span class="keywordtype">char</span>* name, <span class="keywordtype">bool</span> compactMode=<span class="keyword">false</span> );</div><div class="line"><a name="l02192"></a><span class="lineno"> 2192</span>&#160;    <span class="keywordtype">void</span> PushAttribute( <span class="keyword">const</span> <span class="keywordtype">char</span>* name, <span class="keyword">const</span> <span class="keywordtype">char</span>* value );</div><div class="line"><a name="l02193"></a><span class="lineno"> 2193</span>&#160;    <span class="keywordtype">void</span> PushAttribute( <span class="keyword">const</span> <span class="keywordtype">char</span>* name, <span class="keywordtype">int</span> value );</div><div class="line"><a name="l02194"></a><span class="lineno"> 2194</span>&#160;    <span class="keywordtype">void</span> PushAttribute( <span class="keyword">const</span> <span class="keywordtype">char</span>* name, <span class="keywordtype">unsigned</span> value );</div><div class="line"><a name="l02195"></a><span class="lineno"> 2195</span>&#160;    <span class="keywordtype">void</span> PushAttribute(<span class="keyword">const</span> <span class="keywordtype">char</span>* name, int64_t value);</div><div class="line"><a name="l02196"></a><span class="lineno"> 2196</span>&#160;    <span class="keywordtype">void</span> PushAttribute( <span class="keyword">const</span> <span class="keywordtype">char</span>* name, <span class="keywordtype">bool</span> value );</div><div class="line"><a name="l02197"></a><span class="lineno"> 2197</span>&#160;    <span class="keywordtype">void</span> PushAttribute( <span class="keyword">const</span> <span class="keywordtype">char</span>* name, <span class="keywordtype">double</span> value );</div><div class="line"><a name="l02199"></a><span class="lineno"> 2199</span>&#160;    <span class="keyword">virtual</span> <span class="keywordtype">void</span> CloseElement( <span class="keywordtype">bool</span> compactMode=<span class="keyword">false</span> );</div><div class="line"><a name="l02200"></a><span class="lineno"> 2200</span>&#160;</div><div class="line"><a name="l02202"></a><span class="lineno"> 2202</span>&#160;    <span class="keywordtype">void</span> PushText( <span class="keyword">const</span> <span class="keywordtype">char</span>* text, <span class="keywordtype">bool</span> cdata=<span class="keyword">false</span> );</div><div class="line"><a name="l02204"></a><span class="lineno"> 2204</span>&#160;    <span class="keywordtype">void</span> PushText( <span class="keywordtype">int</span> value );</div><div class="line"><a name="l02206"></a><span class="lineno"> 2206</span>&#160;    <span class="keywordtype">void</span> PushText( <span class="keywordtype">unsigned</span> value );</div><div class="line"><a name="l02208"></a><span class="lineno"> 2208</span>&#160;    <span class="keywordtype">void</span> PushText(int64_t value);</div><div class="line"><a name="l02210"></a><span class="lineno"> 2210</span>&#160;    <span class="keywordtype">void</span> PushText( <span class="keywordtype">bool</span> value );</div><div class="line"><a name="l02212"></a><span class="lineno"> 2212</span>&#160;    <span class="keywordtype">void</span> PushText( <span class="keywordtype">float</span> value );</div><div class="line"><a name="l02214"></a><span class="lineno"> 2214</span>&#160;    <span class="keywordtype">void</span> PushText( <span class="keywordtype">double</span> value );</div><div class="line"><a name="l02215"></a><span class="lineno"> 2215</span>&#160;</div><div class="line"><a name="l02217"></a><span class="lineno"> 2217</span>&#160;    <span class="keywordtype">void</span> PushComment( <span class="keyword">const</span> <span class="keywordtype">char</span>* comment );</div><div class="line"><a name="l02218"></a><span class="lineno"> 2218</span>&#160;</div><div class="line"><a name="l02219"></a><span class="lineno"> 2219</span>&#160;    <span class="keywordtype">void</span> PushDeclaration( <span class="keyword">const</span> <span class="keywordtype">char</span>* value );</div><div class="line"><a name="l02220"></a><span class="lineno"> 2220</span>&#160;    <span class="keywordtype">void</span> PushUnknown( <span class="keyword">const</span> <span class="keywordtype">char</span>* value );</div><div class="line"><a name="l02221"></a><span class="lineno"> 2221</span>&#160;</div><div class="line"><a name="l02222"></a><span class="lineno"> 2222</span>&#160;    <span class="keyword">virtual</span> <span class="keywordtype">bool</span> VisitEnter( <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_document.html">XMLDocument</a>&amp; <span class="comment">/*doc*/</span> );</div><div class="line"><a name="l02223"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_printer.html#a15fc1f2b922f540917dcf52808737b29"> 2223</a></span>&#160;    <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classtinyxml2_1_1_x_m_l_printer.html#a15fc1f2b922f540917dcf52808737b29">VisitExit</a>( <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_document.html">XMLDocument</a>&amp; <span class="comment">/*doc*/</span> )            {</div><div class="line"><a name="l02224"></a><span class="lineno"> 2224</span>&#160;        <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l02225"></a><span class="lineno"> 2225</span>&#160;    }</div><div class="line"><a name="l02226"></a><span class="lineno"> 2226</span>&#160;</div><div class="line"><a name="l02227"></a><span class="lineno"> 2227</span>&#160;    <span class="keyword">virtual</span> <span class="keywordtype">bool</span> VisitEnter( <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_element.html">XMLElement</a>&amp; element, <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_attribute.html">XMLAttribute</a>* attribute );</div><div class="line"><a name="l02228"></a><span class="lineno"> 2228</span>&#160;    <span class="keyword">virtual</span> <span class="keywordtype">bool</span> VisitExit( <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_element.html">XMLElement</a>&amp; element );</div><div class="line"><a name="l02229"></a><span class="lineno"> 2229</span>&#160;</div><div class="line"><a name="l02230"></a><span class="lineno"> 2230</span>&#160;    <span class="keyword">virtual</span> <span class="keywordtype">bool</span> Visit( <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_text.html">XMLText</a>&amp; text );</div><div class="line"><a name="l02231"></a><span class="lineno"> 2231</span>&#160;    <span class="keyword">virtual</span> <span class="keywordtype">bool</span> Visit( <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_comment.html">XMLComment</a>&amp; comment );</div><div class="line"><a name="l02232"></a><span class="lineno"> 2232</span>&#160;    <span class="keyword">virtual</span> <span class="keywordtype">bool</span> Visit( <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_declaration.html">XMLDeclaration</a>&amp; declaration );</div><div class="line"><a name="l02233"></a><span class="lineno"> 2233</span>&#160;    <span class="keyword">virtual</span> <span class="keywordtype">bool</span> Visit( <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_unknown.html">XMLUnknown</a>&amp; unknown );</div><div class="line"><a name="l02234"></a><span class="lineno"> 2234</span>&#160;</div><div class="line"><a name="l02239"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_printer.html#a180671d73844f159f2d4aafbc11d106e"> 2239</a></span>&#160;    <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="classtinyxml2_1_1_x_m_l_printer.html#a180671d73844f159f2d4aafbc11d106e">CStr</a>()<span class="keyword"> const </span>{</div><div class="line"><a name="l02240"></a><span class="lineno"> 2240</span>&#160;        <span class="keywordflow">return</span> _buffer.Mem();</div><div class="line"><a name="l02241"></a><span class="lineno"> 2241</span>&#160;    }</div><div class="line"><a name="l02247"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_printer.html#a3256cf3523d4898b91abb18b924be04c"> 2247</a></span>&#160;    <span class="keywordtype">int</span> <a class="code" href="classtinyxml2_1_1_x_m_l_printer.html#a3256cf3523d4898b91abb18b924be04c">CStrSize</a>()<span class="keyword"> const </span>{</div><div class="line"><a name="l02248"></a><span class="lineno"> 2248</span>&#160;        <span class="keywordflow">return</span> _buffer.Size();</div><div class="line"><a name="l02249"></a><span class="lineno"> 2249</span>&#160;    }</div><div class="line"><a name="l02254"></a><span class="lineno"><a class="line" href="classtinyxml2_1_1_x_m_l_printer.html#a216157765b7267bf389975b1cbf9a909"> 2254</a></span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classtinyxml2_1_1_x_m_l_printer.html#a216157765b7267bf389975b1cbf9a909">ClearBuffer</a>() {</div><div class="line"><a name="l02255"></a><span class="lineno"> 2255</span>&#160;        _buffer.Clear();</div><div class="line"><a name="l02256"></a><span class="lineno"> 2256</span>&#160;        _buffer.Push(0);</div><div class="line"><a name="l02257"></a><span class="lineno"> 2257</span>&#160;        _firstElement = <span class="keyword">true</span>;</div><div class="line"><a name="l02258"></a><span class="lineno"> 2258</span>&#160;    }</div><div class="line"><a name="l02259"></a><span class="lineno"> 2259</span>&#160;</div><div class="line"><a name="l02260"></a><span class="lineno"> 2260</span>&#160;<span class="keyword">protected</span>:</div><div class="line"><a name="l02261"></a><span class="lineno"> 2261</span>&#160;    <span class="keyword">virtual</span> <span class="keywordtype">bool</span> CompactMode( <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_element.html">XMLElement</a>&amp; )   { <span class="keywordflow">return</span> _compactMode; }</div><div class="line"><a name="l02262"></a><span class="lineno"> 2262</span>&#160;</div><div class="line"><a name="l02266"></a><span class="lineno"> 2266</span>&#160;    <span class="keyword">virtual</span> <span class="keywordtype">void</span> PrintSpace( <span class="keywordtype">int</span> depth );</div><div class="line"><a name="l02267"></a><span class="lineno"> 2267</span>&#160;    <span class="keywordtype">void</span> Print( <span class="keyword">const</span> <span class="keywordtype">char</span>* format, ... );</div><div class="line"><a name="l02268"></a><span class="lineno"> 2268</span>&#160;    <span class="keywordtype">void</span> Write( <span class="keyword">const</span> <span class="keywordtype">char</span>* data, <span class="keywordtype">size_t</span> size );</div><div class="line"><a name="l02269"></a><span class="lineno"> 2269</span>&#160;    <span class="keyword">inline</span> <span class="keywordtype">void</span> Write( <span class="keyword">const</span> <span class="keywordtype">char</span>* data )           { Write( data, strlen( data ) ); }</div><div class="line"><a name="l02270"></a><span class="lineno"> 2270</span>&#160;    <span class="keywordtype">void</span> Putc( <span class="keywordtype">char</span> ch );</div><div class="line"><a name="l02271"></a><span class="lineno"> 2271</span>&#160;</div><div class="line"><a name="l02272"></a><span class="lineno"> 2272</span>&#160;    <span class="keywordtype">void</span> SealElementIfJustOpened();</div><div class="line"><a name="l02273"></a><span class="lineno"> 2273</span>&#160;    <span class="keywordtype">bool</span> _elementJustOpened;</div><div class="line"><a name="l02274"></a><span class="lineno"> 2274</span>&#160;    DynArray&lt; const char*, 10 &gt; _stack;</div><div class="line"><a name="l02275"></a><span class="lineno"> 2275</span>&#160;</div><div class="line"><a name="l02276"></a><span class="lineno"> 2276</span>&#160;<span class="keyword">private</span>:</div><div class="line"><a name="l02277"></a><span class="lineno"> 2277</span>&#160;    <span class="keywordtype">void</span> PrintString( <span class="keyword">const</span> <span class="keywordtype">char</span>*, <span class="keywordtype">bool</span> restrictedEntitySet );  <span class="comment">// prints out, after detecting entities.</span></div><div class="line"><a name="l02278"></a><span class="lineno"> 2278</span>&#160;</div><div class="line"><a name="l02279"></a><span class="lineno"> 2279</span>&#160;    <span class="keywordtype">bool</span> _firstElement;</div><div class="line"><a name="l02280"></a><span class="lineno"> 2280</span>&#160;    FILE* _fp;</div><div class="line"><a name="l02281"></a><span class="lineno"> 2281</span>&#160;    <span class="keywordtype">int</span> _depth;</div><div class="line"><a name="l02282"></a><span class="lineno"> 2282</span>&#160;    <span class="keywordtype">int</span> _textDepth;</div><div class="line"><a name="l02283"></a><span class="lineno"> 2283</span>&#160;    <span class="keywordtype">bool</span> _processEntities;</div><div class="line"><a name="l02284"></a><span class="lineno"> 2284</span>&#160;    <span class="keywordtype">bool</span> _compactMode;</div><div class="line"><a name="l02285"></a><span class="lineno"> 2285</span>&#160;</div><div class="line"><a name="l02286"></a><span class="lineno"> 2286</span>&#160;    <span class="keyword">enum</span> {</div><div class="line"><a name="l02287"></a><span class="lineno"> 2287</span>&#160;        ENTITY_RANGE = 64,</div><div class="line"><a name="l02288"></a><span class="lineno"> 2288</span>&#160;        BUF_SIZE = 200</div><div class="line"><a name="l02289"></a><span class="lineno"> 2289</span>&#160;    };</div><div class="line"><a name="l02290"></a><span class="lineno"> 2290</span>&#160;    <span class="keywordtype">bool</span> _entityFlag[ENTITY_RANGE];</div><div class="line"><a name="l02291"></a><span class="lineno"> 2291</span>&#160;    <span class="keywordtype">bool</span> _restrictedEntityFlag[ENTITY_RANGE];</div><div class="line"><a name="l02292"></a><span class="lineno"> 2292</span>&#160;</div><div class="line"><a name="l02293"></a><span class="lineno"> 2293</span>&#160;    DynArray&lt; char, 20 &gt; _buffer;</div><div class="line"><a name="l02294"></a><span class="lineno"> 2294</span>&#160;</div><div class="line"><a name="l02295"></a><span class="lineno"> 2295</span>&#160;    <span class="comment">// Prohibit cloning, intentionally not implemented</span></div><div class="line"><a name="l02296"></a><span class="lineno"> 2296</span>&#160;    <a class="code" href="classtinyxml2_1_1_x_m_l_printer.html">XMLPrinter</a>( <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_printer.html">XMLPrinter</a>&amp; );</div><div class="line"><a name="l02297"></a><span class="lineno"> 2297</span>&#160;    <a class="code" href="classtinyxml2_1_1_x_m_l_printer.html">XMLPrinter</a>&amp; operator=( <span class="keyword">const</span> <a class="code" href="classtinyxml2_1_1_x_m_l_printer.html">XMLPrinter</a>&amp; );</div><div class="line"><a name="l02298"></a><span class="lineno"> 2298</span>&#160;};</div><div class="line"><a name="l02299"></a><span class="lineno"> 2299</span>&#160;</div><div class="line"><a name="l02300"></a><span class="lineno"> 2300</span>&#160;</div><div class="line"><a name="l02301"></a><span class="lineno"> 2301</span>&#160;}   <span class="comment">// tinyxml2</span></div><div class="line"><a name="l02302"></a><span class="lineno"> 2302</span>&#160;</div><div class="line"><a name="l02303"></a><span class="lineno"> 2303</span>&#160;<span class="preprocessor">#if defined(_MSC_VER)</span></div><div class="line"><a name="l02304"></a><span class="lineno"> 2304</span>&#160;<span class="preprocessor">#   pragma warning(pop)</span></div><div class="line"><a name="l02305"></a><span class="lineno"> 2305</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l02306"></a><span class="lineno"> 2306</span>&#160;</div><div class="line"><a name="l02307"></a><span class="lineno"> 2307</span>&#160;<span class="preprocessor">#endif // TINYXML2_INCLUDED</span></div><div class="ttc" id="classtinyxml2_1_1_x_m_l_element_html_a7c0955d80b6f8d196744eacb0f6e90a8"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_element.html#a7c0955d80b6f8d196744eacb0f6e90a8">tinyxml2::XMLElement::QueryInt64Attribute</a></div><div class="ttdeci">XMLError QueryInt64Attribute(const char *name, int64_t *value) const</div><div class="ttdoc">See QueryIntAttribute() </div><div class="ttdef"><b>Definition:</b> tinyxml2.h:1340</div></div>
 <div class="ttc" id="classtinyxml2_1_1_x_m_l_attribute_html_a6d5176260db00ea301c01af8457cd993"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_attribute.html#a6d5176260db00ea301c01af8457cd993">tinyxml2::XMLAttribute::QueryIntValue</a></div><div class="ttdeci">XMLError QueryIntValue(int *value) const</div></div>
-<div class="ttc" id="classtinyxml2_1_1_x_m_l_element_html_a14c1bb77c39689838be01838d86ca872"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_element.html#a14c1bb77c39689838be01838d86ca872">tinyxml2::XMLElement::QueryBoolAttribute</a></div><div class="ttdeci">XMLError QueryBoolAttribute(const char *name, bool *value) const</div><div class="ttdoc">See QueryIntAttribute() </div><div class="ttdef"><b>Definition:</b> tinyxml2.h:1340</div></div>
-<div class="ttc" id="classtinyxml2_1_1_x_m_l_visitor_html_a170e9989cd046ba904f302d087e07086"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_visitor.html#a170e9989cd046ba904f302d087e07086">tinyxml2::XMLVisitor::VisitExit</a></div><div class="ttdeci">virtual bool VisitExit(const XMLDocument &amp;)</div><div class="ttdoc">Visit a document. </div><div class="ttdef"><b>Definition:</b> tinyxml2.h:478</div></div>
-<div class="ttc" id="classtinyxml2_1_1_x_m_l_document_html_aa37cc1709d7e1e988bc17dcfb24a69b8"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_document.html#aa37cc1709d7e1e988bc17dcfb24a69b8">tinyxml2::XMLDocument::ShallowClone</a></div><div class="ttdeci">virtual XMLNode * ShallowClone(XMLDocument *) const</div><div class="ttdef"><b>Definition:</b> tinyxml2.h:1843</div></div>
-<div class="ttc" id="classtinyxml2_1_1_x_m_l_document_html_a6fe5ef18699091844fcf64b56ffa5bf9"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_document.html#a6fe5ef18699091844fcf64b56ffa5bf9">tinyxml2::XMLDocument::ShallowEqual</a></div><div class="ttdeci">virtual bool ShallowEqual(const XMLNode *) const</div><div class="ttdef"><b>Definition:</b> tinyxml2.h:1846</div></div>
-<div class="ttc" id="classtinyxml2_1_1_x_m_l_handle_html_a74b04dd0f15e0bf01860e282b840b6a3"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_handle.html#a74b04dd0f15e0bf01860e282b840b6a3">tinyxml2::XMLHandle::FirstChildElement</a></div><div class="ttdeci">XMLHandle FirstChildElement(const char *name=0)</div><div class="ttdoc">Get the first child element of this handle. </div><div class="ttdef"><b>Definition:</b> tinyxml2.h:1976</div></div>
-<div class="ttc" id="classtinyxml2_1_1_x_m_l_handle_html_a6ab9e8cbfb41417246e5657e3842c62a"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_handle.html#a6ab9e8cbfb41417246e5657e3842c62a">tinyxml2::XMLHandle::ToText</a></div><div class="ttdeci">XMLText * ToText()</div><div class="ttdoc">Safe cast to XMLText. This can return null. </div><div class="ttdef"><b>Definition:</b> tinyxml2.h:2013</div></div>
+<div class="ttc" id="classtinyxml2_1_1_x_m_l_element_html_a14c1bb77c39689838be01838d86ca872"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_element.html#a14c1bb77c39689838be01838d86ca872">tinyxml2::XMLElement::QueryBoolAttribute</a></div><div class="ttdeci">XMLError QueryBoolAttribute(const char *name, bool *value) const</div><div class="ttdoc">See QueryIntAttribute() </div><div class="ttdef"><b>Definition:</b> tinyxml2.h:1349</div></div>
+<div class="ttc" id="classtinyxml2_1_1_x_m_l_visitor_html_a170e9989cd046ba904f302d087e07086"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_visitor.html#a170e9989cd046ba904f302d087e07086">tinyxml2::XMLVisitor::VisitExit</a></div><div class="ttdeci">virtual bool VisitExit(const XMLDocument &amp;)</div><div class="ttdoc">Visit a document. </div><div class="ttdef"><b>Definition:</b> tinyxml2.h:488</div></div>
+<div class="ttc" id="classtinyxml2_1_1_x_m_l_document_html_aa37cc1709d7e1e988bc17dcfb24a69b8"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_document.html#aa37cc1709d7e1e988bc17dcfb24a69b8">tinyxml2::XMLDocument::ShallowClone</a></div><div class="ttdeci">virtual XMLNode * ShallowClone(XMLDocument *) const</div><div class="ttdef"><b>Definition:</b> tinyxml2.h:1859</div></div>
+<div class="ttc" id="classtinyxml2_1_1_x_m_l_document_html_a6fe5ef18699091844fcf64b56ffa5bf9"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_document.html#a6fe5ef18699091844fcf64b56ffa5bf9">tinyxml2::XMLDocument::ShallowEqual</a></div><div class="ttdeci">virtual bool ShallowEqual(const XMLNode *) const</div><div class="ttdef"><b>Definition:</b> tinyxml2.h:1862</div></div>
+<div class="ttc" id="classtinyxml2_1_1_x_m_l_handle_html_a74b04dd0f15e0bf01860e282b840b6a3"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_handle.html#a74b04dd0f15e0bf01860e282b840b6a3">tinyxml2::XMLHandle::FirstChildElement</a></div><div class="ttdeci">XMLHandle FirstChildElement(const char *name=0)</div><div class="ttdoc">Get the first child element of this handle. </div><div class="ttdef"><b>Definition:</b> tinyxml2.h:2011</div></div>
+<div class="ttc" id="classtinyxml2_1_1_x_m_l_handle_html_a6ab9e8cbfb41417246e5657e3842c62a"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_handle.html#a6ab9e8cbfb41417246e5657e3842c62a">tinyxml2::XMLHandle::ToText</a></div><div class="ttdeci">XMLText * ToText()</div><div class="ttdoc">Safe cast to XMLText. This can return null. </div><div class="ttdef"><b>Definition:</b> tinyxml2.h:2048</div></div>
 <div class="ttc" id="classtinyxml2_1_1_x_m_l_attribute_html_a049dea6449a6259b6cfed44a9427b607"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_attribute.html#a049dea6449a6259b6cfed44a9427b607">tinyxml2::XMLAttribute::QueryFloatValue</a></div><div class="ttdeci">XMLError QueryFloatValue(float *value) const</div><div class="ttdoc">See QueryIntValue. </div></div>
-<div class="ttc" id="classtinyxml2_1_1_x_m_l_printer_html_a180671d73844f159f2d4aafbc11d106e"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_printer.html#a180671d73844f159f2d4aafbc11d106e">tinyxml2::XMLPrinter::CStr</a></div><div class="ttdeci">const char * CStr() const</div><div class="ttdef"><b>Definition:</b> tinyxml2.h:2204</div></div>
-<div class="ttc" id="classtinyxml2_1_1_x_m_l_document_html_afa3ed33b3107f920ec2b301f805ac17d"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_document.html#afa3ed33b3107f920ec2b301f805ac17d">tinyxml2::XMLDocument::ErrorID</a></div><div class="ttdeci">XMLError ErrorID() const</div><div class="ttdoc">Return the errorID. </div><div class="ttdef"><b>Definition:</b> tinyxml2.h:1805</div></div>
-<div class="ttc" id="classtinyxml2_1_1_x_m_l_handle_html_a5e73ed8f3f6f9619d5a8bb1862c47d99"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_handle.html#a5e73ed8f3f6f9619d5a8bb1862c47d99">tinyxml2::XMLHandle::ToElement</a></div><div class="ttdeci">XMLElement * ToElement()</div><div class="ttdoc">Safe cast to XMLElement. This can return null. </div><div class="ttdef"><b>Definition:</b> tinyxml2.h:2009</div></div>
-<div class="ttc" id="classtinyxml2_1_1_x_m_l_node_html_aab516e699567f75cc9ab2ef2eee501e8"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_node.html#aab516e699567f75cc9ab2ef2eee501e8">tinyxml2::XMLNode::ToElement</a></div><div class="ttdeci">virtual XMLElement * ToElement()</div><div class="ttdoc">Safely cast to an Element, or null. </div><div class="ttdef"><b>Definition:</b> tinyxml2.h:674</div></div>
-<div class="ttc" id="classtinyxml2_1_1_x_m_l_node_html_a41c55dab9162d1eb62db2008430e376b"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_node.html#a41c55dab9162d1eb62db2008430e376b">tinyxml2::XMLNode::ToText</a></div><div class="ttdeci">virtual XMLText * ToText()</div><div class="ttdoc">Safely cast to Text, or null. </div><div class="ttdef"><b>Definition:</b> tinyxml2.h:678</div></div>
-<div class="ttc" id="classtinyxml2_1_1_x_m_l_element_html_a26fc84cbfba6769dafcfbf256c05e22f"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_element.html#a26fc84cbfba6769dafcfbf256c05e22f">tinyxml2::XMLElement::QueryUnsignedAttribute</a></div><div class="ttdeci">XMLError QueryUnsignedAttribute(const char *name, unsigned int *value) const</div><div class="ttdoc">See QueryIntAttribute() </div><div class="ttdef"><b>Definition:</b> tinyxml2.h:1322</div></div>
-<div class="ttc" id="classtinyxml2_1_1_x_m_l_printer_html_a3256cf3523d4898b91abb18b924be04c"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_printer.html#a3256cf3523d4898b91abb18b924be04c">tinyxml2::XMLPrinter::CStrSize</a></div><div class="ttdeci">int CStrSize() const</div><div class="ttdef"><b>Definition:</b> tinyxml2.h:2212</div></div>
-<div class="ttc" id="classtinyxml2_1_1_x_m_l_attribute_html_a27797b45d21c981257720db94f5f8801"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_attribute.html#a27797b45d21c981257720db94f5f8801">tinyxml2::XMLAttribute::FloatValue</a></div><div class="ttdeci">float FloatValue() const</div><div class="ttdoc">Query as a float. See IntValue() </div><div class="ttdef"><b>Definition:</b> tinyxml2.h:1175</div></div>
-<div class="ttc" id="classtinyxml2_1_1_x_m_l_document_html_a3e185f880882bd978367bb55937735ec"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_document.html#a3e185f880882bd978367bb55937735ec">tinyxml2::XMLDocument::ToDocument</a></div><div class="ttdeci">virtual XMLDocument * ToDocument()</div><div class="ttdoc">Safely cast to a Document, or null. </div><div class="ttdef"><b>Definition:</b> tinyxml2.h:1650</div></div>
-<div class="ttc" id="classtinyxml2_1_1_x_m_l_handle_html_aa387368a1ad8d843a9f12df863d298de"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_handle.html#aa387368a1ad8d843a9f12df863d298de">tinyxml2::XMLHandle::ToUnknown</a></div><div class="ttdeci">XMLUnknown * ToUnknown()</div><div class="ttdoc">Safe cast to XMLUnknown. This can return null. </div><div class="ttdef"><b>Definition:</b> tinyxml2.h:2017</div></div>
-<div class="ttc" id="classtinyxml2_1_1_x_m_l_element_html_a63e057fb5baee1dd29f323cb85907b35"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_element.html#a63e057fb5baee1dd29f323cb85907b35">tinyxml2::XMLElement::Name</a></div><div class="ttdeci">const char * Name() const</div><div class="ttdoc">Get the name of an element (which is the Value() of the node.) </div><div class="ttdef"><b>Definition:</b> tinyxml2.h:1241</div></div>
-<div class="ttc" id="classtinyxml2_1_1_x_m_l_handle_html_afd8e01e6018c07347b8e6d80272466aa"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_handle.html#afd8e01e6018c07347b8e6d80272466aa">tinyxml2::XMLHandle::XMLHandle</a></div><div class="ttdeci">XMLHandle(const XMLHandle &amp;ref)</div><div class="ttdoc">Copy constructor. </div><div class="ttdef"><b>Definition:</b> tinyxml2.h:1963</div></div>
-<div class="ttc" id="classtinyxml2_1_1_x_m_l_handle_html_a536447dc7f54c0cd11e031dad94795ae"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_handle.html#a536447dc7f54c0cd11e031dad94795ae">tinyxml2::XMLHandle::FirstChild</a></div><div class="ttdeci">XMLHandle FirstChild()</div><div class="ttdoc">Get the first child of this handle. </div><div class="ttdef"><b>Definition:</b> tinyxml2.h:1972</div></div>
-<div class="ttc" id="classtinyxml2_1_1_x_m_l_text_html_ad080357d76ab7cc59d7651249949329d"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_text.html#ad080357d76ab7cc59d7651249949329d">tinyxml2::XMLText::SetCData</a></div><div class="ttdeci">void SetCData(bool isCData)</div><div class="ttdoc">Declare whether this should be CDATA or standard text. </div><div class="ttdef"><b>Definition:</b> tinyxml2.h:987</div></div>
-<div class="ttc" id="classtinyxml2_1_1_x_m_l_node_html_a002978fc889cc011d143185f2377eca2"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_node.html#a002978fc889cc011d143185f2377eca2">tinyxml2::XMLNode::SetUserData</a></div><div class="ttdeci">void SetUserData(void *userData)</div><div class="ttdef"><b>Definition:</b> tinyxml2.h:921</div></div>
-<div class="ttc" id="classtinyxml2_1_1_x_m_l_node_html_a79db9ef0fe014d27790f2218b87bcbb5"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_node.html#a79db9ef0fe014d27790f2218b87bcbb5">tinyxml2::XMLNode::NextSibling</a></div><div class="ttdeci">const XMLNode * NextSibling() const</div><div class="ttdoc">Get the next (right) sibling node of this node. </div><div class="ttdef"><b>Definition:</b> tinyxml2.h:803</div></div>
-<div class="ttc" id="classtinyxml2_1_1_x_m_l_attribute_html_a0be5343b08a957c42c02c5d32c35d338"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_attribute.html#a0be5343b08a957c42c02c5d32c35d338">tinyxml2::XMLAttribute::UnsignedValue</a></div><div class="ttdeci">unsigned UnsignedValue() const</div><div class="ttdoc">Query as an unsigned integer. See IntValue() </div><div class="ttdef"><b>Definition:</b> tinyxml2.h:1157</div></div>
-<div class="ttc" id="classtinyxml2_1_1_x_m_l_handle_html_a42cccd0ce8b1ce704f431025e9f19e0c"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_handle.html#a42cccd0ce8b1ce704f431025e9f19e0c">tinyxml2::XMLHandle::LastChildElement</a></div><div class="ttdeci">XMLHandle LastChildElement(const char *name=0)</div><div class="ttdoc">Get the last child element of this handle. </div><div class="ttdef"><b>Definition:</b> tinyxml2.h:1984</div></div>
-<div class="ttc" id="classtinyxml2_1_1_x_m_l_handle_html_a9d09f04435f0f2f7d0816b0198d0517b"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_handle.html#a9d09f04435f0f2f7d0816b0198d0517b">tinyxml2::XMLHandle::LastChild</a></div><div class="ttdeci">XMLHandle LastChild()</div><div class="ttdoc">Get the last child of this handle. </div><div class="ttdef"><b>Definition:</b> tinyxml2.h:1980</div></div>
-<div class="ttc" id="classtinyxml2_1_1_x_m_l_handle_html"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_handle.html">tinyxml2::XMLHandle</a></div><div class="ttdef"><b>Definition:</b> tinyxml2.h:1953</div></div>
-<div class="ttc" id="classtinyxml2_1_1_x_m_l_declaration_html"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_declaration.html">tinyxml2::XMLDeclaration</a></div><div class="ttdef"><b>Definition:</b> tinyxml2.h:1052</div></div>
-<div class="ttc" id="classtinyxml2_1_1_x_m_l_document_html_ad2b70320d3c2a071c2f36928edff3e1c"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_document.html#ad2b70320d3c2a071c2f36928edff3e1c">tinyxml2::XMLDocument::RootElement</a></div><div class="ttdeci">XMLElement * RootElement()</div><div class="ttdef"><b>Definition:</b> tinyxml2.h:1729</div></div>
-<div class="ttc" id="classtinyxml2_1_1_x_m_l_element_html_a042fc30504347b84a56cf863ad528a4f"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_element.html#a042fc30504347b84a56cf863ad528a4f">tinyxml2::XMLElement::QueryAttribute</a></div><div class="ttdeci">int QueryAttribute(const char *name, int *value) const</div><div class="ttdef"><b>Definition:</b> tinyxml2.h:1382</div></div>
-<div class="ttc" id="classtinyxml2_1_1_x_m_l_text_html_ab1213b4ddebe9b17ec7e7040e9f1caf7"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_text.html#ab1213b4ddebe9b17ec7e7040e9f1caf7">tinyxml2::XMLText::ToText</a></div><div class="ttdeci">virtual XMLText * ToText()</div><div class="ttdoc">Safely cast to Text, or null. </div><div class="ttdef"><b>Definition:</b> tinyxml2.h:979</div></div>
-<div class="ttc" id="classtinyxml2_1_1_x_m_l_handle_html_aa2edbc1c0d3e3e8259bd98de7f1cf500"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_handle.html#aa2edbc1c0d3e3e8259bd98de7f1cf500">tinyxml2::XMLHandle::XMLHandle</a></div><div class="ttdeci">XMLHandle(XMLNode &amp;node)</div><div class="ttdoc">Create a handle from a node. </div><div class="ttdef"><b>Definition:</b> tinyxml2.h:1960</div></div>
-<div class="ttc" id="classtinyxml2_1_1_x_m_l_element_html_a97712009a530d8cb8a63bf705f02b4f1"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_element.html#a97712009a530d8cb8a63bf705f02b4f1">tinyxml2::XMLElement::SetName</a></div><div class="ttdeci">void SetName(const char *str, bool staticMem=false)</div><div class="ttdoc">Set the name of the element. </div><div class="ttdef"><b>Definition:</b> tinyxml2.h:1245</div></div>
-<div class="ttc" id="classtinyxml2_1_1_x_m_l_document_html_a14419b698f7c4b140df4e80f3f0c93b0"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_document.html#a14419b698f7c4b140df4e80f3f0c93b0">tinyxml2::XMLDocument::SetBOM</a></div><div class="ttdeci">void SetBOM(bool useBOM)</div><div class="ttdef"><b>Definition:</b> tinyxml2.h:1722</div></div>
-<div class="ttc" id="classtinyxml2_1_1_x_m_l_handle_html_a9c240a35c18f053509b4b97ddccd9793"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_handle.html#a9c240a35c18f053509b4b97ddccd9793">tinyxml2::XMLHandle::XMLHandle</a></div><div class="ttdeci">XMLHandle(XMLNode *node)</div><div class="ttdoc">Create a handle from any node (at any depth of the tree.) This can be a null pointer. </div><div class="ttdef"><b>Definition:</b> tinyxml2.h:1957</div></div>
-<div class="ttc" id="classtinyxml2_1_1_x_m_l_printer_html_a216157765b7267bf389975b1cbf9a909"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_printer.html#a216157765b7267bf389975b1cbf9a909">tinyxml2::XMLPrinter::ClearBuffer</a></div><div class="ttdeci">void ClearBuffer()</div><div class="ttdef"><b>Definition:</b> tinyxml2.h:2219</div></div>
-<div class="ttc" id="classtinyxml2_1_1_x_m_l_comment_html_a8093e1dc8a34fa446d9dc3fde0e6c0ee"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_comment.html#a8093e1dc8a34fa446d9dc3fde0e6c0ee">tinyxml2::XMLComment::ToComment</a></div><div class="ttdeci">virtual XMLComment * ToComment()</div><div class="ttdoc">Safely cast to a Comment, or null. </div><div class="ttdef"><b>Definition:</b> tinyxml2.h:1017</div></div>
-<div class="ttc" id="classtinyxml2_1_1_x_m_l_element_html_ad9ff5c2dbc15df36cf664ce1b0ea0a5d"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_element.html#ad9ff5c2dbc15df36cf664ce1b0ea0a5d">tinyxml2::XMLElement::ToElement</a></div><div class="ttdeci">virtual XMLElement * ToElement()</div><div class="ttdoc">Safely cast to an Element, or null. </div><div class="ttdef"><b>Definition:</b> tinyxml2.h:1249</div></div>
-<div class="ttc" id="classtinyxml2_1_1_x_m_l_document_html_a33fc5d159db873a179fa26338adb05bd"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_document.html#a33fc5d159db873a179fa26338adb05bd">tinyxml2::XMLDocument::HasBOM</a></div><div class="ttdeci">bool HasBOM() const</div><div class="ttdef"><b>Definition:</b> tinyxml2.h:1717</div></div>
-<div class="ttc" id="namespacetinyxml2_html"><div class="ttname"><a href="namespacetinyxml2.html">tinyxml2</a></div><div class="ttdef"><b>Definition:</b> tinyxml2.h:105</div></div>
-<div class="ttc" id="classtinyxml2_1_1_x_m_l_element_html_acd5eeddf6002ef90806af794b9d9a5a5"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_element.html#acd5eeddf6002ef90806af794b9d9a5a5">tinyxml2::XMLElement::QueryFloatAttribute</a></div><div class="ttdeci">XMLError QueryFloatAttribute(const char *name, float *value) const</div><div class="ttdoc">See QueryIntAttribute() </div><div class="ttdef"><b>Definition:</b> tinyxml2.h:1356</div></div>
+<div class="ttc" id="classtinyxml2_1_1_x_m_l_printer_html_a180671d73844f159f2d4aafbc11d106e"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_printer.html#a180671d73844f159f2d4aafbc11d106e">tinyxml2::XMLPrinter::CStr</a></div><div class="ttdeci">const char * CStr() const</div><div class="ttdef"><b>Definition:</b> tinyxml2.h:2239</div></div>
+<div class="ttc" id="classtinyxml2_1_1_x_m_l_document_html_afa3ed33b3107f920ec2b301f805ac17d"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_document.html#afa3ed33b3107f920ec2b301f805ac17d">tinyxml2::XMLDocument::ErrorID</a></div><div class="ttdeci">XMLError ErrorID() const</div><div class="ttdoc">Return the errorID. </div><div class="ttdef"><b>Definition:</b> tinyxml2.h:1821</div></div>
+<div class="ttc" id="classtinyxml2_1_1_x_m_l_handle_html_a5e73ed8f3f6f9619d5a8bb1862c47d99"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_handle.html#a5e73ed8f3f6f9619d5a8bb1862c47d99">tinyxml2::XMLHandle::ToElement</a></div><div class="ttdeci">XMLElement * ToElement()</div><div class="ttdoc">Safe cast to XMLElement. This can return null. </div><div class="ttdef"><b>Definition:</b> tinyxml2.h:2044</div></div>
+<div class="ttc" id="classtinyxml2_1_1_x_m_l_node_html_aab516e699567f75cc9ab2ef2eee501e8"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_node.html#aab516e699567f75cc9ab2ef2eee501e8">tinyxml2::XMLNode::ToElement</a></div><div class="ttdeci">virtual XMLElement * ToElement()</div><div class="ttdoc">Safely cast to an Element, or null. </div><div class="ttdef"><b>Definition:</b> tinyxml2.h:683</div></div>
+<div class="ttc" id="classtinyxml2_1_1_x_m_l_element_html_adb8ae765f98d0c5037faec48deea78bc"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_element.html#adb8ae765f98d0c5037faec48deea78bc">tinyxml2::XMLElement::QueryStringAttribute</a></div><div class="ttdeci">XMLError QueryStringAttribute(const char *name, const char **value) const</div><div class="ttdoc">See QueryIntAttribute() </div><div class="ttdef"><b>Definition:</b> tinyxml2.h:1374</div></div>
+<div class="ttc" id="classtinyxml2_1_1_x_m_l_node_html_a41c55dab9162d1eb62db2008430e376b"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_node.html#a41c55dab9162d1eb62db2008430e376b">tinyxml2::XMLNode::ToText</a></div><div class="ttdeci">virtual XMLText * ToText()</div><div class="ttdoc">Safely cast to Text, or null. </div><div class="ttdef"><b>Definition:</b> tinyxml2.h:687</div></div>
+<div class="ttc" id="classtinyxml2_1_1_x_m_l_element_html_a26fc84cbfba6769dafcfbf256c05e22f"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_element.html#a26fc84cbfba6769dafcfbf256c05e22f">tinyxml2::XMLElement::QueryUnsignedAttribute</a></div><div class="ttdeci">XMLError QueryUnsignedAttribute(const char *name, unsigned int *value) const</div><div class="ttdoc">See QueryIntAttribute() </div><div class="ttdef"><b>Definition:</b> tinyxml2.h:1331</div></div>
+<div class="ttc" id="classtinyxml2_1_1_x_m_l_printer_html_a3256cf3523d4898b91abb18b924be04c"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_printer.html#a3256cf3523d4898b91abb18b924be04c">tinyxml2::XMLPrinter::CStrSize</a></div><div class="ttdeci">int CStrSize() const</div><div class="ttdef"><b>Definition:</b> tinyxml2.h:2247</div></div>
+<div class="ttc" id="classtinyxml2_1_1_x_m_l_attribute_html_a27797b45d21c981257720db94f5f8801"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_attribute.html#a27797b45d21c981257720db94f5f8801">tinyxml2::XMLAttribute::FloatValue</a></div><div class="ttdeci">float FloatValue() const</div><div class="ttdoc">Query as a float. See IntValue() </div><div class="ttdef"><b>Definition:</b> tinyxml2.h:1184</div></div>
+<div class="ttc" id="classtinyxml2_1_1_x_m_l_document_html_a3e185f880882bd978367bb55937735ec"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_document.html#a3e185f880882bd978367bb55937735ec">tinyxml2::XMLDocument::ToDocument</a></div><div class="ttdeci">virtual XMLDocument * ToDocument()</div><div class="ttdoc">Safely cast to a Document, or null. </div><div class="ttdef"><b>Definition:</b> tinyxml2.h:1666</div></div>
+<div class="ttc" id="classtinyxml2_1_1_x_m_l_handle_html_aa387368a1ad8d843a9f12df863d298de"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_handle.html#aa387368a1ad8d843a9f12df863d298de">tinyxml2::XMLHandle::ToUnknown</a></div><div class="ttdeci">XMLUnknown * ToUnknown()</div><div class="ttdoc">Safe cast to XMLUnknown. This can return null. </div><div class="ttdef"><b>Definition:</b> tinyxml2.h:2052</div></div>
+<div class="ttc" id="classtinyxml2_1_1_x_m_l_element_html_a63e057fb5baee1dd29f323cb85907b35"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_element.html#a63e057fb5baee1dd29f323cb85907b35">tinyxml2::XMLElement::Name</a></div><div class="ttdeci">const char * Name() const</div><div class="ttdoc">Get the name of an element (which is the Value() of the node.) </div><div class="ttdef"><b>Definition:</b> tinyxml2.h:1250</div></div>
+<div class="ttc" id="classtinyxml2_1_1_x_m_l_handle_html_afd8e01e6018c07347b8e6d80272466aa"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_handle.html#afd8e01e6018c07347b8e6d80272466aa">tinyxml2::XMLHandle::XMLHandle</a></div><div class="ttdeci">XMLHandle(const XMLHandle &amp;ref)</div><div class="ttdoc">Copy constructor. </div><div class="ttdef"><b>Definition:</b> tinyxml2.h:1998</div></div>
+<div class="ttc" id="classtinyxml2_1_1_x_m_l_handle_html_a536447dc7f54c0cd11e031dad94795ae"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_handle.html#a536447dc7f54c0cd11e031dad94795ae">tinyxml2::XMLHandle::FirstChild</a></div><div class="ttdeci">XMLHandle FirstChild()</div><div class="ttdoc">Get the first child of this handle. </div><div class="ttdef"><b>Definition:</b> tinyxml2.h:2007</div></div>
+<div class="ttc" id="classtinyxml2_1_1_x_m_l_text_html_ad080357d76ab7cc59d7651249949329d"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_text.html#ad080357d76ab7cc59d7651249949329d">tinyxml2::XMLText::SetCData</a></div><div class="ttdeci">void SetCData(bool isCData)</div><div class="ttdoc">Declare whether this should be CDATA or standard text. </div><div class="ttdef"><b>Definition:</b> tinyxml2.h:996</div></div>
+<div class="ttc" id="classtinyxml2_1_1_x_m_l_node_html_a002978fc889cc011d143185f2377eca2"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_node.html#a002978fc889cc011d143185f2377eca2">tinyxml2::XMLNode::SetUserData</a></div><div class="ttdeci">void SetUserData(void *userData)</div><div class="ttdef"><b>Definition:</b> tinyxml2.h:930</div></div>
+<div class="ttc" id="classtinyxml2_1_1_x_m_l_node_html_a79db9ef0fe014d27790f2218b87bcbb5"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_node.html#a79db9ef0fe014d27790f2218b87bcbb5">tinyxml2::XMLNode::NextSibling</a></div><div class="ttdeci">const XMLNode * NextSibling() const</div><div class="ttdoc">Get the next (right) sibling node of this node. </div><div class="ttdef"><b>Definition:</b> tinyxml2.h:812</div></div>
+<div class="ttc" id="classtinyxml2_1_1_x_m_l_attribute_html_a0be5343b08a957c42c02c5d32c35d338"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_attribute.html#a0be5343b08a957c42c02c5d32c35d338">tinyxml2::XMLAttribute::UnsignedValue</a></div><div class="ttdeci">unsigned UnsignedValue() const</div><div class="ttdoc">Query as an unsigned integer. See IntValue() </div><div class="ttdef"><b>Definition:</b> tinyxml2.h:1166</div></div>
+<div class="ttc" id="classtinyxml2_1_1_x_m_l_handle_html_a42cccd0ce8b1ce704f431025e9f19e0c"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_handle.html#a42cccd0ce8b1ce704f431025e9f19e0c">tinyxml2::XMLHandle::LastChildElement</a></div><div class="ttdeci">XMLHandle LastChildElement(const char *name=0)</div><div class="ttdoc">Get the last child element of this handle. </div><div class="ttdef"><b>Definition:</b> tinyxml2.h:2019</div></div>
+<div class="ttc" id="classtinyxml2_1_1_x_m_l_handle_html_a9d09f04435f0f2f7d0816b0198d0517b"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_handle.html#a9d09f04435f0f2f7d0816b0198d0517b">tinyxml2::XMLHandle::LastChild</a></div><div class="ttdeci">XMLHandle LastChild()</div><div class="ttdoc">Get the last child of this handle. </div><div class="ttdef"><b>Definition:</b> tinyxml2.h:2015</div></div>
+<div class="ttc" id="classtinyxml2_1_1_x_m_l_handle_html"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_handle.html">tinyxml2::XMLHandle</a></div><div class="ttdef"><b>Definition:</b> tinyxml2.h:1988</div></div>
+<div class="ttc" id="classtinyxml2_1_1_x_m_l_declaration_html"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_declaration.html">tinyxml2::XMLDeclaration</a></div><div class="ttdef"><b>Definition:</b> tinyxml2.h:1061</div></div>
+<div class="ttc" id="classtinyxml2_1_1_x_m_l_document_html_ad2b70320d3c2a071c2f36928edff3e1c"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_document.html#ad2b70320d3c2a071c2f36928edff3e1c">tinyxml2::XMLDocument::RootElement</a></div><div class="ttdeci">XMLElement * RootElement()</div><div class="ttdef"><b>Definition:</b> tinyxml2.h:1745</div></div>
+<div class="ttc" id="classtinyxml2_1_1_x_m_l_text_html_ab1213b4ddebe9b17ec7e7040e9f1caf7"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_text.html#ab1213b4ddebe9b17ec7e7040e9f1caf7">tinyxml2::XMLText::ToText</a></div><div class="ttdeci">virtual XMLText * ToText()</div><div class="ttdoc">Safely cast to Text, or null. </div><div class="ttdef"><b>Definition:</b> tinyxml2.h:988</div></div>
+<div class="ttc" id="classtinyxml2_1_1_x_m_l_handle_html_aa2edbc1c0d3e3e8259bd98de7f1cf500"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_handle.html#aa2edbc1c0d3e3e8259bd98de7f1cf500">tinyxml2::XMLHandle::XMLHandle</a></div><div class="ttdeci">XMLHandle(XMLNode &amp;node)</div><div class="ttdoc">Create a handle from a node. </div><div class="ttdef"><b>Definition:</b> tinyxml2.h:1995</div></div>
+<div class="ttc" id="classtinyxml2_1_1_x_m_l_element_html_a97712009a530d8cb8a63bf705f02b4f1"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_element.html#a97712009a530d8cb8a63bf705f02b4f1">tinyxml2::XMLElement::SetName</a></div><div class="ttdeci">void SetName(const char *str, bool staticMem=false)</div><div class="ttdoc">Set the name of the element. </div><div class="ttdef"><b>Definition:</b> tinyxml2.h:1254</div></div>
+<div class="ttc" id="classtinyxml2_1_1_x_m_l_document_html_a14419b698f7c4b140df4e80f3f0c93b0"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_document.html#a14419b698f7c4b140df4e80f3f0c93b0">tinyxml2::XMLDocument::SetBOM</a></div><div class="ttdeci">void SetBOM(bool useBOM)</div><div class="ttdef"><b>Definition:</b> tinyxml2.h:1738</div></div>
+<div class="ttc" id="classtinyxml2_1_1_x_m_l_handle_html_a9c240a35c18f053509b4b97ddccd9793"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_handle.html#a9c240a35c18f053509b4b97ddccd9793">tinyxml2::XMLHandle::XMLHandle</a></div><div class="ttdeci">XMLHandle(XMLNode *node)</div><div class="ttdoc">Create a handle from any node (at any depth of the tree.) This can be a null pointer. </div><div class="ttdef"><b>Definition:</b> tinyxml2.h:1992</div></div>
+<div class="ttc" id="classtinyxml2_1_1_x_m_l_printer_html_a216157765b7267bf389975b1cbf9a909"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_printer.html#a216157765b7267bf389975b1cbf9a909">tinyxml2::XMLPrinter::ClearBuffer</a></div><div class="ttdeci">void ClearBuffer()</div><div class="ttdef"><b>Definition:</b> tinyxml2.h:2254</div></div>
+<div class="ttc" id="classtinyxml2_1_1_x_m_l_comment_html_a8093e1dc8a34fa446d9dc3fde0e6c0ee"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_comment.html#a8093e1dc8a34fa446d9dc3fde0e6c0ee">tinyxml2::XMLComment::ToComment</a></div><div class="ttdeci">virtual XMLComment * ToComment()</div><div class="ttdoc">Safely cast to a Comment, or null. </div><div class="ttdef"><b>Definition:</b> tinyxml2.h:1026</div></div>
+<div class="ttc" id="classtinyxml2_1_1_x_m_l_element_html_ad9ff5c2dbc15df36cf664ce1b0ea0a5d"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_element.html#ad9ff5c2dbc15df36cf664ce1b0ea0a5d">tinyxml2::XMLElement::ToElement</a></div><div class="ttdeci">virtual XMLElement * ToElement()</div><div class="ttdoc">Safely cast to an Element, or null. </div><div class="ttdef"><b>Definition:</b> tinyxml2.h:1258</div></div>
+<div class="ttc" id="classtinyxml2_1_1_x_m_l_document_html_a33fc5d159db873a179fa26338adb05bd"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_document.html#a33fc5d159db873a179fa26338adb05bd">tinyxml2::XMLDocument::HasBOM</a></div><div class="ttdeci">bool HasBOM() const</div><div class="ttdef"><b>Definition:</b> tinyxml2.h:1733</div></div>
+<div class="ttc" id="namespacetinyxml2_html"><div class="ttname"><a href="namespacetinyxml2.html">tinyxml2</a></div><div class="ttdef"><b>Definition:</b> tinyxml2.h:116</div></div>
+<div class="ttc" id="classtinyxml2_1_1_x_m_l_element_html_acd5eeddf6002ef90806af794b9d9a5a5"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_element.html#acd5eeddf6002ef90806af794b9d9a5a5">tinyxml2::XMLElement::QueryFloatAttribute</a></div><div class="ttdeci">XMLError QueryFloatAttribute(const char *name, float *value) const</div><div class="ttdoc">See QueryIntAttribute() </div><div class="ttdef"><b>Definition:</b> tinyxml2.h:1365</div></div>
 <div class="ttc" id="classtinyxml2_1_1_x_m_l_attribute_html_a48a7f3496f1415832e451bd8d09c9cb9"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_attribute.html#a48a7f3496f1415832e451bd8d09c9cb9">tinyxml2::XMLAttribute::QueryUnsignedValue</a></div><div class="ttdeci">XMLError QueryUnsignedValue(unsigned int *value) const</div><div class="ttdoc">See QueryIntValue. </div></div>
-<div class="ttc" id="classtinyxml2_1_1_x_m_l_handle_html_a03ea6ec970a021b71bf1219a0f6717df"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_handle.html#a03ea6ec970a021b71bf1219a0f6717df">tinyxml2::XMLHandle::ToNode</a></div><div class="ttdeci">XMLNode * ToNode()</div><div class="ttdoc">Safe cast to XMLNode. This can return null. </div><div class="ttdef"><b>Definition:</b> tinyxml2.h:2005</div></div>
-<div class="ttc" id="classtinyxml2_1_1_x_m_l_attribute_html_a98ce5207344ad33a265b0422addae1ff"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_attribute.html#a98ce5207344ad33a265b0422addae1ff">tinyxml2::XMLAttribute::BoolValue</a></div><div class="ttdeci">bool BoolValue() const</div><div class="ttdoc">Query as a boolean. See IntValue() </div><div class="ttdef"><b>Definition:</b> tinyxml2.h:1163</div></div>
-<div class="ttc" id="classtinyxml2_1_1_x_m_l_node_html_ae7dc225e1018cdd685f7563593a1fe08"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_node.html#ae7dc225e1018cdd685f7563593a1fe08">tinyxml2::XMLNode::FirstChild</a></div><div class="ttdeci">const XMLNode * FirstChild() const</div><div class="ttdoc">Get the first child node, or null if none exists. </div><div class="ttdef"><b>Definition:</b> tinyxml2.h:751</div></div>
-<div class="ttc" id="classtinyxml2_1_1_x_m_l_comment_html"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_comment.html">tinyxml2::XMLComment</a></div><div class="ttdef"><b>Definition:</b> tinyxml2.h:1013</div></div>
-<div class="ttc" id="classtinyxml2_1_1_x_m_l_declaration_html_a159d8ac45865215e88059ea1e5b52fc5"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_declaration.html#a159d8ac45865215e88059ea1e5b52fc5">tinyxml2::XMLDeclaration::ToDeclaration</a></div><div class="ttdeci">virtual XMLDeclaration * ToDeclaration()</div><div class="ttdoc">Safely cast to a Declaration, or null. </div><div class="ttdef"><b>Definition:</b> tinyxml2.h:1056</div></div>
-<div class="ttc" id="classtinyxml2_1_1_x_m_l_visitor_html_adc75bd459fc7ba8223b50f0616767f9a"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_visitor.html#adc75bd459fc7ba8223b50f0616767f9a">tinyxml2::XMLVisitor::Visit</a></div><div class="ttdeci">virtual bool Visit(const XMLDeclaration &amp;)</div><div class="ttdoc">Visit a declaration. </div><div class="ttdef"><b>Definition:</b> tinyxml2.h:492</div></div>
-<div class="ttc" id="classtinyxml2_1_1_x_m_l_visitor_html_a14e4748387c34bf53d24e8119bb1f292"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_visitor.html#a14e4748387c34bf53d24e8119bb1f292">tinyxml2::XMLVisitor::Visit</a></div><div class="ttdeci">virtual bool Visit(const XMLUnknown &amp;)</div><div class="ttdoc">Visit an unknown node. </div><div class="ttdef"><b>Definition:</b> tinyxml2.h:504</div></div>
-<div class="ttc" id="classtinyxml2_1_1_x_m_l_element_html_ae143997e90064ba82326b29a9930ea8f"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_element.html#ae143997e90064ba82326b29a9930ea8f">tinyxml2::XMLElement::SetAttribute</a></div><div class="ttdeci">void SetAttribute(const char *name, unsigned value)</div><div class="ttdoc">Sets the named attribute to value. </div><div class="ttdef"><b>Definition:</b> tinyxml2.h:1417</div></div>
-<div class="ttc" id="classtinyxml2_1_1_x_m_l_element_html_a5f0964e2dbd8e2ee7fce9beab689443c"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_element.html#a5f0964e2dbd8e2ee7fce9beab689443c">tinyxml2::XMLElement::QueryDoubleAttribute</a></div><div class="ttdeci">XMLError QueryDoubleAttribute(const char *name, double *value) const</div><div class="ttdoc">See QueryIntAttribute() </div><div class="ttdef"><b>Definition:</b> tinyxml2.h:1348</div></div>
-<div class="ttc" id="classtinyxml2_1_1_x_m_l_element_html"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_element.html">tinyxml2::XMLElement</a></div><div class="ttdef"><b>Definition:</b> tinyxml2.h:1236</div></div>
+<div class="ttc" id="classtinyxml2_1_1_x_m_l_handle_html_a03ea6ec970a021b71bf1219a0f6717df"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_handle.html#a03ea6ec970a021b71bf1219a0f6717df">tinyxml2::XMLHandle::ToNode</a></div><div class="ttdeci">XMLNode * ToNode()</div><div class="ttdoc">Safe cast to XMLNode. This can return null. </div><div class="ttdef"><b>Definition:</b> tinyxml2.h:2040</div></div>
+<div class="ttc" id="classtinyxml2_1_1_x_m_l_attribute_html_a98ce5207344ad33a265b0422addae1ff"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_attribute.html#a98ce5207344ad33a265b0422addae1ff">tinyxml2::XMLAttribute::BoolValue</a></div><div class="ttdeci">bool BoolValue() const</div><div class="ttdoc">Query as a boolean. See IntValue() </div><div class="ttdef"><b>Definition:</b> tinyxml2.h:1172</div></div>
+<div class="ttc" id="classtinyxml2_1_1_x_m_l_node_html_ae7dc225e1018cdd685f7563593a1fe08"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_node.html#ae7dc225e1018cdd685f7563593a1fe08">tinyxml2::XMLNode::FirstChild</a></div><div class="ttdeci">const XMLNode * FirstChild() const</div><div class="ttdoc">Get the first child node, or null if none exists. </div><div class="ttdef"><b>Definition:</b> tinyxml2.h:760</div></div>
+<div class="ttc" id="classtinyxml2_1_1_x_m_l_comment_html"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_comment.html">tinyxml2::XMLComment</a></div><div class="ttdef"><b>Definition:</b> tinyxml2.h:1022</div></div>
+<div class="ttc" id="classtinyxml2_1_1_x_m_l_declaration_html_a159d8ac45865215e88059ea1e5b52fc5"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_declaration.html#a159d8ac45865215e88059ea1e5b52fc5">tinyxml2::XMLDeclaration::ToDeclaration</a></div><div class="ttdeci">virtual XMLDeclaration * ToDeclaration()</div><div class="ttdoc">Safely cast to a Declaration, or null. </div><div class="ttdef"><b>Definition:</b> tinyxml2.h:1065</div></div>
+<div class="ttc" id="classtinyxml2_1_1_x_m_l_visitor_html_adc75bd459fc7ba8223b50f0616767f9a"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_visitor.html#adc75bd459fc7ba8223b50f0616767f9a">tinyxml2::XMLVisitor::Visit</a></div><div class="ttdeci">virtual bool Visit(const XMLDeclaration &amp;)</div><div class="ttdoc">Visit a declaration. </div><div class="ttdef"><b>Definition:</b> tinyxml2.h:502</div></div>
+<div class="ttc" id="classtinyxml2_1_1_x_m_l_visitor_html_a14e4748387c34bf53d24e8119bb1f292"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_visitor.html#a14e4748387c34bf53d24e8119bb1f292">tinyxml2::XMLVisitor::Visit</a></div><div class="ttdeci">virtual bool Visit(const XMLUnknown &amp;)</div><div class="ttdoc">Visit an unknown node. </div><div class="ttdef"><b>Definition:</b> tinyxml2.h:514</div></div>
+<div class="ttc" id="classtinyxml2_1_1_x_m_l_element_html_ae143997e90064ba82326b29a9930ea8f"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_element.html#ae143997e90064ba82326b29a9930ea8f">tinyxml2::XMLElement::SetAttribute</a></div><div class="ttdeci">void SetAttribute(const char *name, unsigned value)</div><div class="ttdoc">Sets the named attribute to value. </div><div class="ttdef"><b>Definition:</b> tinyxml2.h:1437</div></div>
+<div class="ttc" id="classtinyxml2_1_1_x_m_l_element_html_a5f0964e2dbd8e2ee7fce9beab689443c"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_element.html#a5f0964e2dbd8e2ee7fce9beab689443c">tinyxml2::XMLElement::QueryDoubleAttribute</a></div><div class="ttdeci">XMLError QueryDoubleAttribute(const char *name, double *value) const</div><div class="ttdoc">See QueryIntAttribute() </div><div class="ttdef"><b>Definition:</b> tinyxml2.h:1357</div></div>
+<div class="ttc" id="classtinyxml2_1_1_x_m_l_element_html"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_element.html">tinyxml2::XMLElement</a></div><div class="ttdef"><b>Definition:</b> tinyxml2.h:1245</div></div>
 <div class="ttc" id="classtinyxml2_1_1_x_m_l_attribute_html_a4e25344d6e4159026be34dbddf1dcac2"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_attribute.html#a4e25344d6e4159026be34dbddf1dcac2">tinyxml2::XMLAttribute::QueryInt64Value</a></div><div class="ttdeci">XMLError QueryInt64Value(int64_t *value) const</div><div class="ttdoc">See QueryIntValue. </div></div>
-<div class="ttc" id="classtinyxml2_1_1_x_m_l_handle_html_aad2eccc7c7c7b18145877c978c3850b5"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_handle.html#aad2eccc7c7c7b18145877c978c3850b5">tinyxml2::XMLHandle::NextSibling</a></div><div class="ttdeci">XMLHandle NextSibling()</div><div class="ttdoc">Get the next sibling of this handle. </div><div class="ttdef"><b>Definition:</b> tinyxml2.h:1996</div></div>
-<div class="ttc" id="classtinyxml2_1_1_x_m_l_attribute_html_a02d5ea924586e35f9c13857d1671b765"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_attribute.html#a02d5ea924586e35f9c13857d1671b765">tinyxml2::XMLAttribute::GetLineNum</a></div><div class="ttdeci">int GetLineNum() const</div><div class="ttdoc">Gets the line number the attribute is in, if the document was parsed from a file. ...</div><div class="ttdef"><b>Definition:</b> tinyxml2.h:1133</div></div>
-<div class="ttc" id="classtinyxml2_1_1_x_m_l_attribute_html_adfa2433f0fdafd5c3880936de9affa80"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_attribute.html#adfa2433f0fdafd5c3880936de9affa80">tinyxml2::XMLAttribute::IntValue</a></div><div class="ttdeci">int IntValue() const</div><div class="ttdef"><b>Definition:</b> tinyxml2.h:1144</div></div>
-<div class="ttc" id="classtinyxml2_1_1_x_m_l_unknown_html_af4374856421921cad578c8affae872b6"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_unknown.html#af4374856421921cad578c8affae872b6">tinyxml2::XMLUnknown::ToUnknown</a></div><div class="ttdeci">virtual XMLUnknown * ToUnknown()</div><div class="ttdoc">Safely cast to an Unknown, or null. </div><div class="ttdef"><b>Definition:</b> tinyxml2.h:1091</div></div>
-<div class="ttc" id="classtinyxml2_1_1_x_m_l_text_html_ac1bb5ea4166c320882d9e0ad16fd385b"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_text.html#ac1bb5ea4166c320882d9e0ad16fd385b">tinyxml2::XMLText::CData</a></div><div class="ttdeci">bool CData() const</div><div class="ttdoc">Returns true if this is a CDATA text element. </div><div class="ttdef"><b>Definition:</b> tinyxml2.h:991</div></div>
-<div class="ttc" id="classtinyxml2_1_1_x_m_l_handle_html_a428374e756f4db4cbc287fec64eae02c"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_handle.html#a428374e756f4db4cbc287fec64eae02c">tinyxml2::XMLHandle::PreviousSibling</a></div><div class="ttdeci">XMLHandle PreviousSibling()</div><div class="ttdoc">Get the previous sibling of this handle. </div><div class="ttdef"><b>Definition:</b> tinyxml2.h:1988</div></div>
-<div class="ttc" id="classtinyxml2_1_1_x_m_l_const_handle_html"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_const_handle.html">tinyxml2::XMLConstHandle</a></div><div class="ttdef"><b>Definition:</b> tinyxml2.h:2034</div></div>
-<div class="ttc" id="classtinyxml2_1_1_x_m_l_handle_html_a75b908322bb4b83be3281b6845252b20"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_handle.html#a75b908322bb4b83be3281b6845252b20">tinyxml2::XMLHandle::operator=</a></div><div class="ttdeci">XMLHandle &amp; operator=(const XMLHandle &amp;ref)</div><div class="ttdoc">Assignment. </div><div class="ttdef"><b>Definition:</b> tinyxml2.h:1966</div></div>
-<div class="ttc" id="classtinyxml2_1_1_x_m_l_printer_html_a15fc1f2b922f540917dcf52808737b29"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_printer.html#a15fc1f2b922f540917dcf52808737b29">tinyxml2::XMLPrinter::VisitExit</a></div><div class="ttdeci">virtual bool VisitExit(const XMLDocument &amp;)</div><div class="ttdoc">Visit a document. </div><div class="ttdef"><b>Definition:</b> tinyxml2.h:2188</div></div>
-<div class="ttc" id="classtinyxml2_1_1_x_m_l_visitor_html_af97980a17dd4e37448b181f5ddfa92b5"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_visitor.html#af97980a17dd4e37448b181f5ddfa92b5">tinyxml2::XMLVisitor::VisitEnter</a></div><div class="ttdeci">virtual bool VisitEnter(const XMLElement &amp;, const XMLAttribute *)</div><div class="ttdoc">Visit an element. </div><div class="ttdef"><b>Definition:</b> tinyxml2.h:483</div></div>
-<div class="ttc" id="classtinyxml2_1_1_x_m_l_document_html_a34e6318e182e40e3cc4f4ba5d59ed9ed"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_document.html#a34e6318e182e40e3cc4f4ba5d59ed9ed">tinyxml2::XMLDocument::Error</a></div><div class="ttdeci">bool Error() const</div><div class="ttdoc">Return true if there was an error parsing the document. </div><div class="ttdef"><b>Definition:</b> tinyxml2.h:1801</div></div>
-<div class="ttc" id="classtinyxml2_1_1_x_m_l_visitor_html_acb3c22fc5f60eb9db98f533f2761f67d"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_visitor.html#acb3c22fc5f60eb9db98f533f2761f67d">tinyxml2::XMLVisitor::VisitEnter</a></div><div class="ttdeci">virtual bool VisitEnter(const XMLDocument &amp;)</div><div class="ttdoc">Visit a document. </div><div class="ttdef"><b>Definition:</b> tinyxml2.h:474</div></div>
-<div class="ttc" id="classtinyxml2_1_1_x_m_l_unknown_html"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_unknown.html">tinyxml2::XMLUnknown</a></div><div class="ttdef"><b>Definition:</b> tinyxml2.h:1087</div></div>
-<div class="ttc" id="classtinyxml2_1_1_x_m_l_node_html_a836e2966ed736fc3c94f70e12a2a3357"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_node.html#a836e2966ed736fc3c94f70e12a2a3357">tinyxml2::XMLNode::ToDocument</a></div><div class="ttdeci">virtual XMLDocument * ToDocument()</div><div class="ttdoc">Safely cast to a Document, or null. </div><div class="ttdef"><b>Definition:</b> tinyxml2.h:686</div></div>
-<div class="ttc" id="classtinyxml2_1_1_x_m_l_node_html_a9b8583a277e8e26f4cbbb5492786778e"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_node.html#a9b8583a277e8e26f4cbbb5492786778e">tinyxml2::XMLNode::LastChild</a></div><div class="ttdeci">const XMLNode * LastChild() const</div><div class="ttdoc">Get the last child node, or null if none exists. </div><div class="ttdef"><b>Definition:</b> tinyxml2.h:769</div></div>
-<div class="ttc" id="classtinyxml2_1_1_x_m_l_attribute_html"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_attribute.html">tinyxml2::XMLAttribute</a></div><div class="ttdef"><b>Definition:</b> tinyxml2.h:1122</div></div>
-<div class="ttc" id="classtinyxml2_1_1_x_m_l_element_html_aa848b696e6a75e4e545c6da9893b11e1"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_element.html#aa848b696e6a75e4e545c6da9893b11e1">tinyxml2::XMLElement::SetAttribute</a></div><div class="ttdeci">void SetAttribute(const char *name, bool value)</div><div class="ttdoc">Sets the named attribute to value. </div><div class="ttdef"><b>Definition:</b> tinyxml2.h:1429</div></div>
-<div class="ttc" id="classtinyxml2_1_1_x_m_l_handle_html_a108858be7ee3eb53f73b5194c1aa8ff0"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_handle.html#a108858be7ee3eb53f73b5194c1aa8ff0">tinyxml2::XMLHandle::ToDeclaration</a></div><div class="ttdeci">XMLDeclaration * ToDeclaration()</div><div class="ttdoc">Safe cast to XMLDeclaration. This can return null. </div><div class="ttdef"><b>Definition:</b> tinyxml2.h:2021</div></div>
+<div class="ttc" id="classtinyxml2_1_1_x_m_l_handle_html_aad2eccc7c7c7b18145877c978c3850b5"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_handle.html#aad2eccc7c7c7b18145877c978c3850b5">tinyxml2::XMLHandle::NextSibling</a></div><div class="ttdeci">XMLHandle NextSibling()</div><div class="ttdoc">Get the next sibling of this handle. </div><div class="ttdef"><b>Definition:</b> tinyxml2.h:2031</div></div>
+<div class="ttc" id="classtinyxml2_1_1_x_m_l_attribute_html_a02d5ea924586e35f9c13857d1671b765"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_attribute.html#a02d5ea924586e35f9c13857d1671b765">tinyxml2::XMLAttribute::GetLineNum</a></div><div class="ttdeci">int GetLineNum() const</div><div class="ttdoc">Gets the line number the attribute is in, if the document was parsed from a file. ...</div><div class="ttdef"><b>Definition:</b> tinyxml2.h:1142</div></div>
+<div class="ttc" id="classtinyxml2_1_1_x_m_l_attribute_html_adfa2433f0fdafd5c3880936de9affa80"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_attribute.html#adfa2433f0fdafd5c3880936de9affa80">tinyxml2::XMLAttribute::IntValue</a></div><div class="ttdeci">int IntValue() const</div><div class="ttdef"><b>Definition:</b> tinyxml2.h:1153</div></div>
+<div class="ttc" id="classtinyxml2_1_1_x_m_l_unknown_html_af4374856421921cad578c8affae872b6"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_unknown.html#af4374856421921cad578c8affae872b6">tinyxml2::XMLUnknown::ToUnknown</a></div><div class="ttdeci">virtual XMLUnknown * ToUnknown()</div><div class="ttdoc">Safely cast to an Unknown, or null. </div><div class="ttdef"><b>Definition:</b> tinyxml2.h:1100</div></div>
+<div class="ttc" id="classtinyxml2_1_1_x_m_l_text_html_ac1bb5ea4166c320882d9e0ad16fd385b"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_text.html#ac1bb5ea4166c320882d9e0ad16fd385b">tinyxml2::XMLText::CData</a></div><div class="ttdeci">bool CData() const</div><div class="ttdoc">Returns true if this is a CDATA text element. </div><div class="ttdef"><b>Definition:</b> tinyxml2.h:1000</div></div>
+<div class="ttc" id="classtinyxml2_1_1_x_m_l_handle_html_a428374e756f4db4cbc287fec64eae02c"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_handle.html#a428374e756f4db4cbc287fec64eae02c">tinyxml2::XMLHandle::PreviousSibling</a></div><div class="ttdeci">XMLHandle PreviousSibling()</div><div class="ttdoc">Get the previous sibling of this handle. </div><div class="ttdef"><b>Definition:</b> tinyxml2.h:2023</div></div>
+<div class="ttc" id="classtinyxml2_1_1_x_m_l_const_handle_html"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_const_handle.html">tinyxml2::XMLConstHandle</a></div><div class="ttdef"><b>Definition:</b> tinyxml2.h:2069</div></div>
+<div class="ttc" id="classtinyxml2_1_1_x_m_l_handle_html_a75b908322bb4b83be3281b6845252b20"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_handle.html#a75b908322bb4b83be3281b6845252b20">tinyxml2::XMLHandle::operator=</a></div><div class="ttdeci">XMLHandle &amp; operator=(const XMLHandle &amp;ref)</div><div class="ttdoc">Assignment. </div><div class="ttdef"><b>Definition:</b> tinyxml2.h:2001</div></div>
+<div class="ttc" id="classtinyxml2_1_1_x_m_l_printer_html_a15fc1f2b922f540917dcf52808737b29"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_printer.html#a15fc1f2b922f540917dcf52808737b29">tinyxml2::XMLPrinter::VisitExit</a></div><div class="ttdeci">virtual bool VisitExit(const XMLDocument &amp;)</div><div class="ttdoc">Visit a document. </div><div class="ttdef"><b>Definition:</b> tinyxml2.h:2223</div></div>
+<div class="ttc" id="classtinyxml2_1_1_x_m_l_visitor_html_af97980a17dd4e37448b181f5ddfa92b5"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_visitor.html#af97980a17dd4e37448b181f5ddfa92b5">tinyxml2::XMLVisitor::VisitEnter</a></div><div class="ttdeci">virtual bool VisitEnter(const XMLElement &amp;, const XMLAttribute *)</div><div class="ttdoc">Visit an element. </div><div class="ttdef"><b>Definition:</b> tinyxml2.h:493</div></div>
+<div class="ttc" id="classtinyxml2_1_1_x_m_l_document_html_a34e6318e182e40e3cc4f4ba5d59ed9ed"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_document.html#a34e6318e182e40e3cc4f4ba5d59ed9ed">tinyxml2::XMLDocument::Error</a></div><div class="ttdeci">bool Error() const</div><div class="ttdoc">Return true if there was an error parsing the document. </div><div class="ttdef"><b>Definition:</b> tinyxml2.h:1817</div></div>
+<div class="ttc" id="classtinyxml2_1_1_x_m_l_visitor_html_acb3c22fc5f60eb9db98f533f2761f67d"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_visitor.html#acb3c22fc5f60eb9db98f533f2761f67d">tinyxml2::XMLVisitor::VisitEnter</a></div><div class="ttdeci">virtual bool VisitEnter(const XMLDocument &amp;)</div><div class="ttdoc">Visit a document. </div><div class="ttdef"><b>Definition:</b> tinyxml2.h:484</div></div>
+<div class="ttc" id="classtinyxml2_1_1_x_m_l_unknown_html"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_unknown.html">tinyxml2::XMLUnknown</a></div><div class="ttdef"><b>Definition:</b> tinyxml2.h:1096</div></div>
+<div class="ttc" id="classtinyxml2_1_1_x_m_l_node_html_a836e2966ed736fc3c94f70e12a2a3357"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_node.html#a836e2966ed736fc3c94f70e12a2a3357">tinyxml2::XMLNode::ToDocument</a></div><div class="ttdeci">virtual XMLDocument * ToDocument()</div><div class="ttdoc">Safely cast to a Document, or null. </div><div class="ttdef"><b>Definition:</b> tinyxml2.h:695</div></div>
+<div class="ttc" id="classtinyxml2_1_1_x_m_l_node_html_a9b8583a277e8e26f4cbbb5492786778e"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_node.html#a9b8583a277e8e26f4cbbb5492786778e">tinyxml2::XMLNode::LastChild</a></div><div class="ttdeci">const XMLNode * LastChild() const</div><div class="ttdoc">Get the last child node, or null if none exists. </div><div class="ttdef"><b>Definition:</b> tinyxml2.h:778</div></div>
+<div class="ttc" id="classtinyxml2_1_1_x_m_l_attribute_html"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_attribute.html">tinyxml2::XMLAttribute</a></div><div class="ttdef"><b>Definition:</b> tinyxml2.h:1131</div></div>
+<div class="ttc" id="classtinyxml2_1_1_x_m_l_element_html_a5b7df3bed2b8954eabf227fa204522eb"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_element.html#a5b7df3bed2b8954eabf227fa204522eb">tinyxml2::XMLElement::QueryAttribute</a></div><div class="ttdeci">XMLError QueryAttribute(const char *name, int *value) const</div><div class="ttdef"><b>Definition:</b> tinyxml2.h:1402</div></div>
+<div class="ttc" id="classtinyxml2_1_1_x_m_l_element_html_aa848b696e6a75e4e545c6da9893b11e1"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_element.html#aa848b696e6a75e4e545c6da9893b11e1">tinyxml2::XMLElement::SetAttribute</a></div><div class="ttdeci">void SetAttribute(const char *name, bool value)</div><div class="ttdoc">Sets the named attribute to value. </div><div class="ttdef"><b>Definition:</b> tinyxml2.h:1449</div></div>
+<div class="ttc" id="classtinyxml2_1_1_x_m_l_handle_html_a108858be7ee3eb53f73b5194c1aa8ff0"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_handle.html#a108858be7ee3eb53f73b5194c1aa8ff0">tinyxml2::XMLHandle::ToDeclaration</a></div><div class="ttdeci">XMLDeclaration * ToDeclaration()</div><div class="ttdoc">Safe cast to XMLDeclaration. This can return null. </div><div class="ttdef"><b>Definition:</b> tinyxml2.h:2056</div></div>
 <div class="ttc" id="classtinyxml2_1_1_x_m_l_attribute_html_a406d2c4a13c7af99a65edb59dd9f7581"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_attribute.html#a406d2c4a13c7af99a65edb59dd9f7581">tinyxml2::XMLAttribute::SetAttribute</a></div><div class="ttdeci">void SetAttribute(const char *value)</div><div class="ttdoc">Set the attribute to a string value. </div></div>
-<div class="ttc" id="classtinyxml2_1_1_x_m_l_element_html_a11943abf2d0831548c3790dd5d9f119c"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_element.html#a11943abf2d0831548c3790dd5d9f119c">tinyxml2::XMLElement::SetAttribute</a></div><div class="ttdeci">void SetAttribute(const char *name, const char *value)</div><div class="ttdoc">Sets the named attribute to value. </div><div class="ttdef"><b>Definition:</b> tinyxml2.h:1407</div></div>
-<div class="ttc" id="classtinyxml2_1_1_x_m_l_visitor_html_a772f10ddc83f881956d32628faa16eb6"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_visitor.html#a772f10ddc83f881956d32628faa16eb6">tinyxml2::XMLVisitor::VisitExit</a></div><div class="ttdeci">virtual bool VisitExit(const XMLElement &amp;)</div><div class="ttdoc">Visit an element. </div><div class="ttdef"><b>Definition:</b> tinyxml2.h:487</div></div>
-<div class="ttc" id="classtinyxml2_1_1_x_m_l_printer_html"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_printer.html">tinyxml2::XMLPrinter</a></div><div class="ttdef"><b>Definition:</b> tinyxml2.h:2138</div></div>
-<div class="ttc" id="classtinyxml2_1_1_x_m_l_document_html"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_document.html">tinyxml2::XMLDocument</a></div><div class="ttdef"><b>Definition:</b> tinyxml2.h:1635</div></div>
-<div class="ttc" id="classtinyxml2_1_1_x_m_l_node_html_a7f0687574afa03bc479dc44f29db0afe"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_node.html#a7f0687574afa03bc479dc44f29db0afe">tinyxml2::XMLNode::GetUserData</a></div><div class="ttdeci">void * GetUserData() const</div><div class="ttdef"><b>Definition:</b> tinyxml2.h:928</div></div>
-<div class="ttc" id="classtinyxml2_1_1_x_m_l_element_html_aaeefdf9171fec91b13a776b42299b0dd"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_element.html#aaeefdf9171fec91b13a776b42299b0dd">tinyxml2::XMLElement::SetAttribute</a></div><div class="ttdeci">void SetAttribute(const char *name, int64_t value)</div><div class="ttdoc">Sets the named attribute to value. </div><div class="ttdef"><b>Definition:</b> tinyxml2.h:1423</div></div>
-<div class="ttc" id="classtinyxml2_1_1_x_m_l_element_html_a233397ee81e70eb5d4b814c5f8698533"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_element.html#a233397ee81e70eb5d4b814c5f8698533">tinyxml2::XMLElement::SetAttribute</a></div><div class="ttdeci">void SetAttribute(const char *name, double value)</div><div class="ttdoc">Sets the named attribute to value. </div><div class="ttdef"><b>Definition:</b> tinyxml2.h:1434</div></div>
+<div class="ttc" id="classtinyxml2_1_1_x_m_l_element_html_a11943abf2d0831548c3790dd5d9f119c"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_element.html#a11943abf2d0831548c3790dd5d9f119c">tinyxml2::XMLElement::SetAttribute</a></div><div class="ttdeci">void SetAttribute(const char *name, const char *value)</div><div class="ttdoc">Sets the named attribute to value. </div><div class="ttdef"><b>Definition:</b> tinyxml2.h:1427</div></div>
+<div class="ttc" id="classtinyxml2_1_1_x_m_l_visitor_html_a772f10ddc83f881956d32628faa16eb6"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_visitor.html#a772f10ddc83f881956d32628faa16eb6">tinyxml2::XMLVisitor::VisitExit</a></div><div class="ttdeci">virtual bool VisitExit(const XMLElement &amp;)</div><div class="ttdoc">Visit an element. </div><div class="ttdef"><b>Definition:</b> tinyxml2.h:497</div></div>
+<div class="ttc" id="classtinyxml2_1_1_x_m_l_printer_html"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_printer.html">tinyxml2::XMLPrinter</a></div><div class="ttdef"><b>Definition:</b> tinyxml2.h:2173</div></div>
+<div class="ttc" id="classtinyxml2_1_1_x_m_l_document_html"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_document.html">tinyxml2::XMLDocument</a></div><div class="ttdef"><b>Definition:</b> tinyxml2.h:1651</div></div>
+<div class="ttc" id="classtinyxml2_1_1_x_m_l_node_html_a7f0687574afa03bc479dc44f29db0afe"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_node.html#a7f0687574afa03bc479dc44f29db0afe">tinyxml2::XMLNode::GetUserData</a></div><div class="ttdeci">void * GetUserData() const</div><div class="ttdef"><b>Definition:</b> tinyxml2.h:937</div></div>
+<div class="ttc" id="classtinyxml2_1_1_x_m_l_element_html_aaeefdf9171fec91b13a776b42299b0dd"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_element.html#aaeefdf9171fec91b13a776b42299b0dd">tinyxml2::XMLElement::SetAttribute</a></div><div class="ttdeci">void SetAttribute(const char *name, int64_t value)</div><div class="ttdoc">Sets the named attribute to value. </div><div class="ttdef"><b>Definition:</b> tinyxml2.h:1443</div></div>
+<div class="ttc" id="classtinyxml2_1_1_x_m_l_attribute_html_a1aab1dd0e43ecbcfa306adbcf3a3d853"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_attribute.html#a1aab1dd0e43ecbcfa306adbcf3a3d853">tinyxml2::XMLAttribute::Value</a></div><div class="ttdeci">const char * Value() const</div><div class="ttdoc">The value of the attribute. </div></div>
+<div class="ttc" id="classtinyxml2_1_1_x_m_l_element_html_a233397ee81e70eb5d4b814c5f8698533"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_element.html#a233397ee81e70eb5d4b814c5f8698533">tinyxml2::XMLElement::SetAttribute</a></div><div class="ttdeci">void SetAttribute(const char *name, double value)</div><div class="ttdoc">Sets the named attribute to value. </div><div class="ttdef"><b>Definition:</b> tinyxml2.h:1454</div></div>
 <div class="ttc" id="classtinyxml2_1_1_x_m_l_attribute_html_a2aa6e55e8ea03af0609cf6690bff79b9"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_attribute.html#a2aa6e55e8ea03af0609cf6690bff79b9">tinyxml2::XMLAttribute::QueryDoubleValue</a></div><div class="ttdeci">XMLError QueryDoubleValue(double *value) const</div><div class="ttdoc">See QueryIntValue. </div></div>
-<div class="ttc" id="classtinyxml2_1_1_x_m_l_node_html_ae0f62bc186c56c2e0483ebd52dbfbe34"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_node.html#ae0f62bc186c56c2e0483ebd52dbfbe34">tinyxml2::XMLNode::Parent</a></div><div class="ttdeci">const XMLNode * Parent() const</div><div class="ttdoc">Get the parent of this node on the DOM. </div><div class="ttdef"><b>Definition:</b> tinyxml2.h:737</div></div>
-<div class="ttc" id="classtinyxml2_1_1_x_m_l_visitor_html_acc8147fb5a85f6c65721654e427752d7"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_visitor.html#acc8147fb5a85f6c65721654e427752d7">tinyxml2::XMLVisitor::Visit</a></div><div class="ttdeci">virtual bool Visit(const XMLComment &amp;)</div><div class="ttdoc">Visit a comment node. </div><div class="ttdef"><b>Definition:</b> tinyxml2.h:500</div></div>
+<div class="ttc" id="classtinyxml2_1_1_x_m_l_node_html_ae0f62bc186c56c2e0483ebd52dbfbe34"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_node.html#ae0f62bc186c56c2e0483ebd52dbfbe34">tinyxml2::XMLNode::Parent</a></div><div class="ttdeci">const XMLNode * Parent() const</div><div class="ttdoc">Get the parent of this node on the DOM. </div><div class="ttdef"><b>Definition:</b> tinyxml2.h:746</div></div>
+<div class="ttc" id="classtinyxml2_1_1_x_m_l_visitor_html_acc8147fb5a85f6c65721654e427752d7"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_visitor.html#acc8147fb5a85f6c65721654e427752d7">tinyxml2::XMLVisitor::Visit</a></div><div class="ttdeci">virtual bool Visit(const XMLComment &amp;)</div><div class="ttdoc">Visit a comment node. </div><div class="ttdef"><b>Definition:</b> tinyxml2.h:510</div></div>
 <div class="ttc" id="classtinyxml2_1_1_x_m_l_attribute_html_a5f32e038954256f61c21ff20fd13a09c"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_attribute.html#a5f32e038954256f61c21ff20fd13a09c">tinyxml2::XMLAttribute::QueryBoolValue</a></div><div class="ttdeci">XMLError QueryBoolValue(bool *value) const</div><div class="ttdoc">See QueryIntValue. </div></div>
-<div class="ttc" id="classtinyxml2_1_1_x_m_l_node_html_aac667c513d445f8b783e1e15ef9d3551"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_node.html#aac667c513d445f8b783e1e15ef9d3551">tinyxml2::XMLNode::PreviousSibling</a></div><div class="ttdeci">const XMLNode * PreviousSibling() const</div><div class="ttdoc">Get the previous (left) sibling node of this node. </div><div class="ttdef"><b>Definition:</b> tinyxml2.h:787</div></div>
-<div class="ttc" id="classtinyxml2_1_1_x_m_l_handle_html_ae41d88ee061f3c49a081630ff753b2c5"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_handle.html#ae41d88ee061f3c49a081630ff753b2c5">tinyxml2::XMLHandle::NextSiblingElement</a></div><div class="ttdeci">XMLHandle NextSiblingElement(const char *name=0)</div><div class="ttdoc">Get the next sibling element of this handle. </div><div class="ttdef"><b>Definition:</b> tinyxml2.h:2000</div></div>
-<div class="ttc" id="classtinyxml2_1_1_x_m_l_node_html"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_node.html">tinyxml2::XMLNode</a></div><div class="ttdef"><b>Definition:</b> tinyxml2.h:656</div></div>
-<div class="ttc" id="classtinyxml2_1_1_x_m_l_element_html_a8a78bc1187c1c45ad89f2690eab567b1"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_element.html#a8a78bc1187c1c45ad89f2690eab567b1">tinyxml2::XMLElement::QueryIntAttribute</a></div><div class="ttdeci">XMLError QueryIntAttribute(const char *name, int *value) const</div><div class="ttdef"><b>Definition:</b> tinyxml2.h:1313</div></div>
-<div class="ttc" id="classtinyxml2_1_1_x_m_l_node_html_a9b5fc636646fda761d342c72e91cb286"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_node.html#a9b5fc636646fda761d342c72e91cb286">tinyxml2::XMLNode::GetLineNum</a></div><div class="ttdeci">int GetLineNum() const</div><div class="ttdoc">Gets the line number the node is in, if the document was parsed from a file. </div><div class="ttdef"><b>Definition:</b> tinyxml2.h:734</div></div>
-<div class="ttc" id="classtinyxml2_1_1_x_m_l_visitor_html_af30233565856480ea48b6fa0d6dec65b"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_visitor.html#af30233565856480ea48b6fa0d6dec65b">tinyxml2::XMLVisitor::Visit</a></div><div class="ttdeci">virtual bool Visit(const XMLText &amp;)</div><div class="ttdoc">Visit a text node. </div><div class="ttdef"><b>Definition:</b> tinyxml2.h:496</div></div>
-<div class="ttc" id="classtinyxml2_1_1_x_m_l_text_html"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_text.html">tinyxml2::XMLText</a></div><div class="ttdef"><b>Definition:</b> tinyxml2.h:973</div></div>
-<div class="ttc" id="classtinyxml2_1_1_x_m_l_visitor_html"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_visitor.html">tinyxml2::XMLVisitor</a></div><div class="ttdef"><b>Definition:</b> tinyxml2.h:468</div></div>
-<div class="ttc" id="classtinyxml2_1_1_x_m_l_document_html_a57400f816dbe7799ece33615ead9ab76"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_document.html#a57400f816dbe7799ece33615ead9ab76">tinyxml2::XMLDocument::ErrorLineNum</a></div><div class="ttdeci">int ErrorLineNum() const</div><div class="ttdoc">Return the line where the error occured, or zero if unknown. </div><div class="ttdef"><b>Definition:</b> tinyxml2.h:1820</div></div>
-<div class="ttc" id="classtinyxml2_1_1_x_m_l_node_html_af343d1ef0b45c0020e62d784d7e67a68"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_node.html#af343d1ef0b45c0020e62d784d7e67a68">tinyxml2::XMLNode::GetDocument</a></div><div class="ttdeci">XMLDocument * GetDocument()</div><div class="ttdoc">Get the XMLDocument that owns this XMLNode. </div><div class="ttdef"><b>Definition:</b> tinyxml2.h:668</div></div>
-<div class="ttc" id="classtinyxml2_1_1_x_m_l_node_html_a8675a74aa0ada6eccab0c77ef3e5b9bd"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_node.html#a8675a74aa0ada6eccab0c77ef3e5b9bd">tinyxml2::XMLNode::ToUnknown</a></div><div class="ttdeci">virtual XMLUnknown * ToUnknown()</div><div class="ttdoc">Safely cast to an Unknown, or null. </div><div class="ttdef"><b>Definition:</b> tinyxml2.h:694</div></div>
-<div class="ttc" id="classtinyxml2_1_1_x_m_l_element_html_a554b70d882e65b28fc084b23df9b9759"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_element.html#a554b70d882e65b28fc084b23df9b9759">tinyxml2::XMLElement::SetAttribute</a></div><div class="ttdeci">void SetAttribute(const char *name, float value)</div><div class="ttdoc">Sets the named attribute to value. </div><div class="ttdef"><b>Definition:</b> tinyxml2.h:1439</div></div>
-<div class="ttc" id="classtinyxml2_1_1_x_m_l_attribute_html_aee53571b21e7ce5421eb929523a8bbe6"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_attribute.html#aee53571b21e7ce5421eb929523a8bbe6">tinyxml2::XMLAttribute::Next</a></div><div class="ttdeci">const XMLAttribute * Next() const</div><div class="ttdoc">The next attribute in the list. </div><div class="ttdef"><b>Definition:</b> tinyxml2.h:1136</div></div>
-<div class="ttc" id="classtinyxml2_1_1_x_m_l_node_html_ac3ab489e6e202a3cd1762d3b332e89d4"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_node.html#ac3ab489e6e202a3cd1762d3b332e89d4">tinyxml2::XMLNode::NoChildren</a></div><div class="ttdeci">bool NoChildren() const</div><div class="ttdoc">Returns true if this node has no children. </div><div class="ttdef"><b>Definition:</b> tinyxml2.h:746</div></div>
-<div class="ttc" id="classtinyxml2_1_1_x_m_l_attribute_html_a4aa73513f54ff0087d3e804f0f54e30f"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_attribute.html#a4aa73513f54ff0087d3e804f0f54e30f">tinyxml2::XMLAttribute::DoubleValue</a></div><div class="ttdeci">double DoubleValue() const</div><div class="ttdoc">Query as a double. See IntValue() </div><div class="ttdef"><b>Definition:</b> tinyxml2.h:1169</div></div>
-<div class="ttc" id="classtinyxml2_1_1_x_m_l_node_html_a174fd4c22c010b58138c1b84a0dfbd51"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_node.html#a174fd4c22c010b58138c1b84a0dfbd51">tinyxml2::XMLNode::ToDeclaration</a></div><div class="ttdeci">virtual XMLDeclaration * ToDeclaration()</div><div class="ttdoc">Safely cast to a Declaration, or null. </div><div class="ttdef"><b>Definition:</b> tinyxml2.h:690</div></div>
-<div class="ttc" id="classtinyxml2_1_1_x_m_l_node_html_a2de84cfa4ec3fe249bad745069d145f1"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_node.html#a2de84cfa4ec3fe249bad745069d145f1">tinyxml2::XMLNode::GetDocument</a></div><div class="ttdeci">const XMLDocument * GetDocument() const</div><div class="ttdoc">Get the XMLDocument that owns this XMLNode. </div><div class="ttdef"><b>Definition:</b> tinyxml2.h:663</div></div>
-<div class="ttc" id="classtinyxml2_1_1_x_m_l_handle_html_a786957e498039554ed334cdc36612a7e"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_handle.html#a786957e498039554ed334cdc36612a7e">tinyxml2::XMLHandle::PreviousSiblingElement</a></div><div class="ttdeci">XMLHandle PreviousSiblingElement(const char *name=0)</div><div class="ttdoc">Get the previous sibling element of this handle. </div><div class="ttdef"><b>Definition:</b> tinyxml2.h:1992</div></div>
-<div class="ttc" id="classtinyxml2_1_1_x_m_l_element_html_aae6568c64c7f1cc88be8461ba41a79cf"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_element.html#aae6568c64c7f1cc88be8461ba41a79cf">tinyxml2::XMLElement::SetAttribute</a></div><div class="ttdeci">void SetAttribute(const char *name, int value)</div><div class="ttdoc">Sets the named attribute to value. </div><div class="ttdef"><b>Definition:</b> tinyxml2.h:1412</div></div>
-<div class="ttc" id="classtinyxml2_1_1_x_m_l_element_html_a3e191704c8d499906ec11fe2f60c6686"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_element.html#a3e191704c8d499906ec11fe2f60c6686">tinyxml2::XMLElement::FirstAttribute</a></div><div class="ttdeci">const XMLAttribute * FirstAttribute() const</div><div class="ttdoc">Return the first attribute in the list. </div><div class="ttdef"><b>Definition:</b> tinyxml2.h:1450</div></div>
-<div class="ttc" id="classtinyxml2_1_1_x_m_l_node_html_aff47671055aa99840a1c1ebd661e63e3"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_node.html#aff47671055aa99840a1c1ebd661e63e3">tinyxml2::XMLNode::ToComment</a></div><div class="ttdeci">virtual XMLComment * ToComment()</div><div class="ttdoc">Safely cast to a Comment, or null. </div><div class="ttdef"><b>Definition:</b> tinyxml2.h:682</div></div>
+<div class="ttc" id="classtinyxml2_1_1_x_m_l_node_html_aac667c513d445f8b783e1e15ef9d3551"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_node.html#aac667c513d445f8b783e1e15ef9d3551">tinyxml2::XMLNode::PreviousSibling</a></div><div class="ttdeci">const XMLNode * PreviousSibling() const</div><div class="ttdoc">Get the previous (left) sibling node of this node. </div><div class="ttdef"><b>Definition:</b> tinyxml2.h:796</div></div>
+<div class="ttc" id="classtinyxml2_1_1_x_m_l_handle_html_ae41d88ee061f3c49a081630ff753b2c5"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_handle.html#ae41d88ee061f3c49a081630ff753b2c5">tinyxml2::XMLHandle::NextSiblingElement</a></div><div class="ttdeci">XMLHandle NextSiblingElement(const char *name=0)</div><div class="ttdoc">Get the next sibling element of this handle. </div><div class="ttdef"><b>Definition:</b> tinyxml2.h:2035</div></div>
+<div class="ttc" id="classtinyxml2_1_1_x_m_l_node_html"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_node.html">tinyxml2::XMLNode</a></div><div class="ttdef"><b>Definition:</b> tinyxml2.h:665</div></div>
+<div class="ttc" id="classtinyxml2_1_1_x_m_l_element_html_a8a78bc1187c1c45ad89f2690eab567b1"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_element.html#a8a78bc1187c1c45ad89f2690eab567b1">tinyxml2::XMLElement::QueryIntAttribute</a></div><div class="ttdeci">XMLError QueryIntAttribute(const char *name, int *value) const</div><div class="ttdef"><b>Definition:</b> tinyxml2.h:1322</div></div>
+<div class="ttc" id="classtinyxml2_1_1_x_m_l_node_html_a9b5fc636646fda761d342c72e91cb286"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_node.html#a9b5fc636646fda761d342c72e91cb286">tinyxml2::XMLNode::GetLineNum</a></div><div class="ttdeci">int GetLineNum() const</div><div class="ttdoc">Gets the line number the node is in, if the document was parsed from a file. </div><div class="ttdef"><b>Definition:</b> tinyxml2.h:743</div></div>
+<div class="ttc" id="classtinyxml2_1_1_x_m_l_visitor_html_af30233565856480ea48b6fa0d6dec65b"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_visitor.html#af30233565856480ea48b6fa0d6dec65b">tinyxml2::XMLVisitor::Visit</a></div><div class="ttdeci">virtual bool Visit(const XMLText &amp;)</div><div class="ttdoc">Visit a text node. </div><div class="ttdef"><b>Definition:</b> tinyxml2.h:506</div></div>
+<div class="ttc" id="classtinyxml2_1_1_x_m_l_text_html"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_text.html">tinyxml2::XMLText</a></div><div class="ttdef"><b>Definition:</b> tinyxml2.h:982</div></div>
+<div class="ttc" id="classtinyxml2_1_1_x_m_l_visitor_html"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_visitor.html">tinyxml2::XMLVisitor</a></div><div class="ttdef"><b>Definition:</b> tinyxml2.h:478</div></div>
+<div class="ttc" id="classtinyxml2_1_1_x_m_l_document_html_a57400f816dbe7799ece33615ead9ab76"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_document.html#a57400f816dbe7799ece33615ead9ab76">tinyxml2::XMLDocument::ErrorLineNum</a></div><div class="ttdeci">int ErrorLineNum() const</div><div class="ttdoc">Return the line where the error occurred, or zero if unknown. </div><div class="ttdef"><b>Definition:</b> tinyxml2.h:1836</div></div>
+<div class="ttc" id="classtinyxml2_1_1_x_m_l_node_html_af343d1ef0b45c0020e62d784d7e67a68"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_node.html#af343d1ef0b45c0020e62d784d7e67a68">tinyxml2::XMLNode::GetDocument</a></div><div class="ttdeci">XMLDocument * GetDocument()</div><div class="ttdoc">Get the XMLDocument that owns this XMLNode. </div><div class="ttdef"><b>Definition:</b> tinyxml2.h:677</div></div>
+<div class="ttc" id="classtinyxml2_1_1_x_m_l_node_html_a8675a74aa0ada6eccab0c77ef3e5b9bd"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_node.html#a8675a74aa0ada6eccab0c77ef3e5b9bd">tinyxml2::XMLNode::ToUnknown</a></div><div class="ttdeci">virtual XMLUnknown * ToUnknown()</div><div class="ttdoc">Safely cast to an Unknown, or null. </div><div class="ttdef"><b>Definition:</b> tinyxml2.h:703</div></div>
+<div class="ttc" id="classtinyxml2_1_1_x_m_l_element_html_a554b70d882e65b28fc084b23df9b9759"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_element.html#a554b70d882e65b28fc084b23df9b9759">tinyxml2::XMLElement::SetAttribute</a></div><div class="ttdeci">void SetAttribute(const char *name, float value)</div><div class="ttdoc">Sets the named attribute to value. </div><div class="ttdef"><b>Definition:</b> tinyxml2.h:1459</div></div>
+<div class="ttc" id="classtinyxml2_1_1_x_m_l_attribute_html_aee53571b21e7ce5421eb929523a8bbe6"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_attribute.html#aee53571b21e7ce5421eb929523a8bbe6">tinyxml2::XMLAttribute::Next</a></div><div class="ttdeci">const XMLAttribute * Next() const</div><div class="ttdoc">The next attribute in the list. </div><div class="ttdef"><b>Definition:</b> tinyxml2.h:1145</div></div>
+<div class="ttc" id="classtinyxml2_1_1_x_m_l_node_html_ac3ab489e6e202a3cd1762d3b332e89d4"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_node.html#ac3ab489e6e202a3cd1762d3b332e89d4">tinyxml2::XMLNode::NoChildren</a></div><div class="ttdeci">bool NoChildren() const</div><div class="ttdoc">Returns true if this node has no children. </div><div class="ttdef"><b>Definition:</b> tinyxml2.h:755</div></div>
+<div class="ttc" id="classtinyxml2_1_1_x_m_l_attribute_html_a4aa73513f54ff0087d3e804f0f54e30f"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_attribute.html#a4aa73513f54ff0087d3e804f0f54e30f">tinyxml2::XMLAttribute::DoubleValue</a></div><div class="ttdeci">double DoubleValue() const</div><div class="ttdoc">Query as a double. See IntValue() </div><div class="ttdef"><b>Definition:</b> tinyxml2.h:1178</div></div>
+<div class="ttc" id="classtinyxml2_1_1_x_m_l_node_html_a174fd4c22c010b58138c1b84a0dfbd51"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_node.html#a174fd4c22c010b58138c1b84a0dfbd51">tinyxml2::XMLNode::ToDeclaration</a></div><div class="ttdeci">virtual XMLDeclaration * ToDeclaration()</div><div class="ttdoc">Safely cast to a Declaration, or null. </div><div class="ttdef"><b>Definition:</b> tinyxml2.h:699</div></div>
+<div class="ttc" id="classtinyxml2_1_1_x_m_l_node_html_a2de84cfa4ec3fe249bad745069d145f1"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_node.html#a2de84cfa4ec3fe249bad745069d145f1">tinyxml2::XMLNode::GetDocument</a></div><div class="ttdeci">const XMLDocument * GetDocument() const</div><div class="ttdoc">Get the XMLDocument that owns this XMLNode. </div><div class="ttdef"><b>Definition:</b> tinyxml2.h:672</div></div>
+<div class="ttc" id="classtinyxml2_1_1_x_m_l_handle_html_a786957e498039554ed334cdc36612a7e"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_handle.html#a786957e498039554ed334cdc36612a7e">tinyxml2::XMLHandle::PreviousSiblingElement</a></div><div class="ttdeci">XMLHandle PreviousSiblingElement(const char *name=0)</div><div class="ttdoc">Get the previous sibling element of this handle. </div><div class="ttdef"><b>Definition:</b> tinyxml2.h:2027</div></div>
+<div class="ttc" id="classtinyxml2_1_1_x_m_l_element_html_aae6568c64c7f1cc88be8461ba41a79cf"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_element.html#aae6568c64c7f1cc88be8461ba41a79cf">tinyxml2::XMLElement::SetAttribute</a></div><div class="ttdeci">void SetAttribute(const char *name, int value)</div><div class="ttdoc">Sets the named attribute to value. </div><div class="ttdef"><b>Definition:</b> tinyxml2.h:1432</div></div>
+<div class="ttc" id="classtinyxml2_1_1_x_m_l_element_html_a3e191704c8d499906ec11fe2f60c6686"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_element.html#a3e191704c8d499906ec11fe2f60c6686">tinyxml2::XMLElement::FirstAttribute</a></div><div class="ttdeci">const XMLAttribute * FirstAttribute() const</div><div class="ttdoc">Return the first attribute in the list. </div><div class="ttdef"><b>Definition:</b> tinyxml2.h:1470</div></div>
+<div class="ttc" id="classtinyxml2_1_1_x_m_l_node_html_aff47671055aa99840a1c1ebd661e63e3"><div class="ttname"><a href="classtinyxml2_1_1_x_m_l_node.html#aff47671055aa99840a1c1ebd661e63e3">tinyxml2::XMLNode::ToComment</a></div><div class="ttdeci">virtual XMLComment * ToComment()</div><div class="ttdoc">Safely cast to a Comment, or null. </div><div class="ttdef"><b>Definition:</b> tinyxml2.h:691</div></div>
 </div><!-- fragment --></div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
-Generated on Sun Dec 10 2017 20:04:44 for TinyXML-2 by &#160;<a href="http://www.doxygen.org/index.html">
+Generated on Tue Nov 6 2018 09:38:26 for TinyXML-2 by &#160;<a href="http://www.doxygen.org/index.html">
 <img class="footer" src="doxygen.png" alt="doxygen"/>
 </a> 1.8.13
 </small></address>
diff --git a/dox b/dox
index 9756283dff8305258fcf1c9eb2b3124489175782..fd50e799e3865b0cfb35c8302ca6386b9cb40f07 100644 (file)
--- a/dox
+++ b/dox
@@ -39,9 +39,9 @@ PROJECT_NAME           = "TinyXML-2"
 # control system is used.\r
 \r
 <<<<<<< HEAD\r
-PROJECT_NUMBER = 7.0.0\r
+PROJECT_NUMBER = 7.0.1\r
 =======\r
-PROJECT_NUMBER = 7.0.0\r
+PROJECT_NUMBER = 7.0.1\r
 >>>>>>> master\r
 \r
 # Using the PROJECT_BRIEF tag one can provide an optional one line description\r
index a79e0dbd89de97b9de49386db65fcf5c9250f581..ee83d2cc9a4db51b2c945e8a38ffcf078c6f17c3 100755 (executable)
@@ -100,11 +100,11 @@ distribution.
 */\r
 static const int TIXML2_MAJOR_VERSION = 7;\r
 static const int TIXML2_MINOR_VERSION = 0;\r
-static const int TIXML2_PATCH_VERSION = 0;\r
+static const int TIXML2_PATCH_VERSION = 1;\r
 \r
 #define TINYXML2_MAJOR_VERSION 7\r
 #define TINYXML2_MINOR_VERSION 0\r
-#define TINYXML2_PATCH_VERSION 0\r
+#define TINYXML2_PATCH_VERSION 1\r
 \r
 // A fixed element depth limit is problematic. There needs to be a\r
 // limit to avoid a stack overflow. However, that limit varies per\r
@@ -129,8 +129,10 @@ class XMLPrinter;
        pointers into the XML file itself, and will apply normalization\r
        and entity translation if actually read. Can also store (and memory\r
        manage) a traditional char[]\r
+\r
+    Isn't clear why TINYXML2_LIB is needed; but seems to fix #719\r
 */\r
-class StrPair\r
+class TINYXML2_LIB StrPair\r
 {\r
 public:\r
     enum {\r
index 5a44e89ecef2b19b6ecad4ece2dd9fa6a83d02f3..b040b0e29f2ad74250a8bbd96fa38982b7f5b931 100644 (file)
@@ -1,7 +1,7 @@
 prefix=@CMAKE_INSTALL_PREFIX@
 exec_prefix=${prefix}
-libdir=@CMAKE_INSTALL_LIBDIR@
-includedir=@CMAKE_INSTALL_INCLUDEDIR@
+libdir=${exec_prefix}/@CMAKE_INSTALL_LIBDIR@
+includedir=${prefix}/@CMAKE_INSTALL_INCLUDEDIR@
 
 Name: TinyXML2
 Description: simple, small, C++ XML parser