From ea931d7a158e83e8aa55e2042dacbc48ae6d523f Mon Sep 17 00:00:00 2001 From: Valient Gough Date: Sun, 6 Aug 2017 08:55:45 -0700 Subject: [PATCH] Squashed 'vendor/github.com/leethomason/tinyxml2/' changes from 02d2764f..37bc3aca REVERT: 02d2764f Merge pull request #593 from Dmitry-Me/testDeletionViaDocument REVERT: 8d1bfbbf Merge pull request #592 from Dmitry-Me/clarifyTestOutput REVERT: 15295807 Merge pull request #591 from Dmitry-Me/properIndentDirectives REVERT: 48725fa8 Merge pull request #590 from Dmitry-Me/betterVariableName REVERT: e5790dba Test nodes deletion via document REVERT: 6f4c4e72 Clarify and simplify test output REVERT: de381df3 Indent directives consistently with surrounding code REVERT: effab6ff Better variable name REVERT: f3f9925f update docs REVERT: aca4fb16 new docs REVERT: 528986ff update readme REVERT: 75737563 add docs REVERT: 646af8d2 Merge pull request #582 from Dmitry-Me/distinctDefaultAndReplacement REVERT: 05705801 Merge pull request #581 from Dmitry-Me/testQueryingAttributesBetter REVERT: 80379a33 Merge pull request #580 from Dmitry-Me/checkLoadSaveResult REVERT: bf9b3a26 remove code that creates directory. add file in out directory so that git creates the directory REVERT: 3d20c5de Use distinct values as default and replacement values REVERT: 2087a276 Test querying attributes thoroughly REVERT: 46b70ce5 Check result of LoadFile()/SaveFile() REVERT: 3a6e51a1 fix build issue REVERT: e4dc7218 fix an issue on windows REVERT: fc2a0017 Merge pull request #578 from Dmitry-Me/checkReadingResults REVERT: cd336999 Merge pull request #577 from Dmitry-Me/checkParseResult REVERT: 7096e779 Merge pull request #573 from kbinny62/master REVERT: d1b82825 Check various stages of reading the XML file REVERT: 68578f47 Check result of Parse() call REVERT: c1f1de72 Merge pull request #575 from Dmitry-Me/extractDuplicatedString REVERT: 5d1aec10 Extract duplicated text string REVERT: 9720fbaf xmltest.cpp: path separator is '\\' under WIN32 REVERT: bf29a152 xmltest: create dir resources/out to avoid crashes git-subtree-dir: vendor/github.com/leethomason/tinyxml2 git-subtree-split: 37bc3aca429f0164adf68c23444540b4a24b5778 --- docs/_example-1.html | 75 - docs/_example-2.html | 75 - docs/_example-3.html | 104 -- docs/_example-4.html | 81 - docs/annotated.html | 91 - docs/bc_s.png | Bin 676 -> 0 bytes docs/bdwn.png | Bin 147 -> 0 bytes docs/classes.html | 83 - ...stinyxml2_1_1_x_m_l_attribute-members.html | 103 -- docs/classtinyxml2_1_1_x_m_l_attribute.html | 223 --- ...asstinyxml2_1_1_x_m_l_comment-members.html | 113 -- docs/classtinyxml2_1_1_x_m_l_comment.html | 300 ---- docs/classtinyxml2_1_1_x_m_l_comment.png | Bin 650 -> 0 bytes ...nyxml2_1_1_x_m_l_const_handle-members.html | 81 - .../classtinyxml2_1_1_x_m_l_const_handle.html | 87 - ...inyxml2_1_1_x_m_l_declaration-members.html | 113 -- docs/classtinyxml2_1_1_x_m_l_declaration.html | 302 ---- docs/classtinyxml2_1_1_x_m_l_declaration.png | Bin 688 -> 0 bytes ...sstinyxml2_1_1_x_m_l_document-members.html | 137 -- docs/classtinyxml2_1_1_x_m_l_document.html | 730 -------- docs/classtinyxml2_1_1_x_m_l_document.png | Bin 657 -> 0 bytes ...asstinyxml2_1_1_x_m_l_element-members.html | 158 -- docs/classtinyxml2_1_1_x_m_l_element.html | 708 -------- docs/classtinyxml2_1_1_x_m_l_element.png | Bin 618 -> 0 bytes ...lasstinyxml2_1_1_x_m_l_handle-members.html | 98 - docs/classtinyxml2_1_1_x_m_l_handle.html | 189 -- .../classtinyxml2_1_1_x_m_l_node-members.html | 113 -- docs/classtinyxml2_1_1_x_m_l_node.html | 581 ------ docs/classtinyxml2_1_1_x_m_l_node.png | Bin 1845 -> 0 bytes ...asstinyxml2_1_1_x_m_l_printer-members.html | 106 -- docs/classtinyxml2_1_1_x_m_l_printer.html | 410 ----- docs/classtinyxml2_1_1_x_m_l_printer.png | Bin 586 -> 0 bytes .../classtinyxml2_1_1_x_m_l_text-members.html | 115 -- docs/classtinyxml2_1_1_x_m_l_text.html | 310 ---- docs/classtinyxml2_1_1_x_m_l_text.png | Bin 591 -> 0 bytes ...asstinyxml2_1_1_x_m_l_unknown-members.html | 113 -- docs/classtinyxml2_1_1_x_m_l_unknown.html | 301 ---- docs/classtinyxml2_1_1_x_m_l_unknown.png | Bin 647 -> 0 bytes ...asstinyxml2_1_1_x_m_l_visitor-members.html | 89 - docs/classtinyxml2_1_1_x_m_l_visitor.html | 138 -- docs/classtinyxml2_1_1_x_m_l_visitor.png | Bin 592 -> 0 bytes docs/closed.png | Bin 132 -> 0 bytes docs/doc.png | Bin 746 -> 0 bytes docs/doxygen.css | 1596 ----------------- docs/doxygen.png | Bin 3779 -> 0 bytes docs/dynsections.js | 97 - docs/files.html | 79 - docs/folderclosed.png | Bin 616 -> 0 bytes docs/folderopen.png | Bin 597 -> 0 bytes docs/functions.html | 544 ------ docs/functions_func.html | 544 ------ docs/hierarchy.html | 90 - docs/index.html | 230 --- docs/jquery.js | 87 - docs/menu.js | 26 - docs/menudata.js | 52 - docs/nav_f.png | Bin 153 -> 0 bytes docs/nav_g.png | Bin 95 -> 0 bytes docs/nav_h.png | Bin 98 -> 0 bytes docs/open.png | Bin 123 -> 0 bytes docs/pages.html | 82 - docs/search/all_0.html | 26 - docs/search/all_0.js | 5 - docs/search/all_1.html | 26 - docs/search/all_1.js | 6 - docs/search/all_10.html | 26 - docs/search/all_10.js | 11 - docs/search/all_11.html | 26 - docs/search/all_11.js | 6 - docs/search/all_12.html | 26 - docs/search/all_12.js | 7 - docs/search/all_13.html | 26 - docs/search/all_13.js | 15 - docs/search/all_2.html | 26 - docs/search/all_2.js | 9 - docs/search/all_3.html | 26 - docs/search/all_3.js | 12 - docs/search/all_4.html | 26 - docs/search/all_4.js | 5 - docs/search/all_5.html | 26 - docs/search/all_5.js | 10 - docs/search/all_6.html | 26 - docs/search/all_6.js | 11 - docs/search/all_7.html | 26 - docs/search/all_7.js | 4 - docs/search/all_8.html | 26 - docs/search/all_8.js | 10 - docs/search/all_9.html | 26 - docs/search/all_9.js | 7 - docs/search/all_a.html | 26 - docs/search/all_a.js | 13 - docs/search/all_b.html | 26 - docs/search/all_b.js | 5 - docs/search/all_c.html | 26 - docs/search/all_c.js | 15 - docs/search/all_d.html | 26 - docs/search/all_d.js | 22 - docs/search/all_e.html | 26 - docs/search/all_e.js | 5 - docs/search/all_f.html | 26 - docs/search/all_f.js | 13 - docs/search/classes_0.html | 26 - docs/search/classes_0.js | 15 - docs/search/close.png | Bin 273 -> 0 bytes docs/search/functions_0.html | 26 - docs/search/functions_0.js | 5 - docs/search/functions_1.html | 26 - docs/search/functions_1.js | 6 - docs/search/functions_10.html | 26 - docs/search/functions_10.js | 10 - docs/search/functions_11.html | 26 - docs/search/functions_11.js | 6 - docs/search/functions_12.html | 26 - docs/search/functions_12.js | 7 - docs/search/functions_13.html | 26 - docs/search/functions_13.js | 6 - docs/search/functions_2.html | 26 - docs/search/functions_2.js | 9 - docs/search/functions_3.html | 26 - docs/search/functions_3.js | 12 - docs/search/functions_4.html | 26 - docs/search/functions_4.js | 5 - docs/search/functions_5.html | 26 - docs/search/functions_5.js | 10 - docs/search/functions_6.html | 26 - docs/search/functions_6.js | 10 - docs/search/functions_7.html | 26 - docs/search/functions_7.js | 4 - docs/search/functions_8.html | 26 - docs/search/functions_8.js | 10 - docs/search/functions_9.html | 26 - docs/search/functions_9.js | 6 - docs/search/functions_a.html | 26 - docs/search/functions_a.js | 13 - docs/search/functions_b.html | 26 - docs/search/functions_b.js | 5 - docs/search/functions_c.html | 26 - docs/search/functions_c.js | 14 - docs/search/functions_d.html | 26 - docs/search/functions_d.js | 22 - docs/search/functions_e.html | 26 - docs/search/functions_e.js | 4 - docs/search/functions_f.html | 26 - docs/search/functions_f.js | 13 - docs/search/mag_sel.png | Bin 563 -> 0 bytes docs/search/nomatches.html | 12 - docs/search/pages_0.html | 26 - docs/search/pages_0.js | 4 - docs/search/pages_1.html | 26 - docs/search/pages_1.js | 4 - docs/search/pages_2.html | 26 - docs/search/pages_2.js | 4 - docs/search/pages_3.html | 26 - docs/search/pages_3.js | 4 - docs/search/pages_4.html | 26 - docs/search/pages_4.js | 4 - docs/search/search.css | 271 --- docs/search/search.js | 791 -------- docs/search/search_l.png | Bin 604 -> 0 bytes docs/search/search_m.png | Bin 158 -> 0 bytes docs/search/search_r.png | Bin 612 -> 0 bytes docs/search/searchdata.js | 24 - docs/splitbar.png | Bin 314 -> 0 bytes docs/sync_off.png | Bin 853 -> 0 bytes docs/sync_on.png | Bin 845 -> 0 bytes docs/tab_a.png | Bin 142 -> 0 bytes docs/tab_b.png | Bin 169 -> 0 bytes docs/tab_h.png | Bin 177 -> 0 bytes docs/tab_s.png | Bin 184 -> 0 bytes docs/tabs.css | 1 - docs/tinyxml2_8h_source.html | 180 -- dox | 417 ++--- readme.md | 7 +- resources/out/readme.txt | 1 - tinyxml2.h | 4 +- xmltest.cpp | 246 +-- 176 files changed, 201 insertions(+), 12906 deletions(-) delete mode 100644 docs/_example-1.html delete mode 100644 docs/_example-2.html delete mode 100644 docs/_example-3.html delete mode 100644 docs/_example-4.html delete mode 100644 docs/annotated.html delete mode 100644 docs/bc_s.png delete mode 100644 docs/bdwn.png delete mode 100644 docs/classes.html delete mode 100644 docs/classtinyxml2_1_1_x_m_l_attribute-members.html delete mode 100644 docs/classtinyxml2_1_1_x_m_l_attribute.html delete mode 100644 docs/classtinyxml2_1_1_x_m_l_comment-members.html delete mode 100644 docs/classtinyxml2_1_1_x_m_l_comment.html delete mode 100644 docs/classtinyxml2_1_1_x_m_l_comment.png delete mode 100644 docs/classtinyxml2_1_1_x_m_l_const_handle-members.html delete mode 100644 docs/classtinyxml2_1_1_x_m_l_const_handle.html delete mode 100644 docs/classtinyxml2_1_1_x_m_l_declaration-members.html delete mode 100644 docs/classtinyxml2_1_1_x_m_l_declaration.html delete mode 100644 docs/classtinyxml2_1_1_x_m_l_declaration.png delete mode 100644 docs/classtinyxml2_1_1_x_m_l_document-members.html delete mode 100644 docs/classtinyxml2_1_1_x_m_l_document.html delete mode 100644 docs/classtinyxml2_1_1_x_m_l_document.png delete mode 100644 docs/classtinyxml2_1_1_x_m_l_element-members.html delete mode 100644 docs/classtinyxml2_1_1_x_m_l_element.html delete mode 100644 docs/classtinyxml2_1_1_x_m_l_element.png delete mode 100644 docs/classtinyxml2_1_1_x_m_l_handle-members.html delete mode 100644 docs/classtinyxml2_1_1_x_m_l_handle.html delete mode 100644 docs/classtinyxml2_1_1_x_m_l_node-members.html delete mode 100644 docs/classtinyxml2_1_1_x_m_l_node.html delete mode 100644 docs/classtinyxml2_1_1_x_m_l_node.png delete mode 100644 docs/classtinyxml2_1_1_x_m_l_printer-members.html delete mode 100644 docs/classtinyxml2_1_1_x_m_l_printer.html delete mode 100644 docs/classtinyxml2_1_1_x_m_l_printer.png delete mode 100644 docs/classtinyxml2_1_1_x_m_l_text-members.html delete mode 100644 docs/classtinyxml2_1_1_x_m_l_text.html delete mode 100644 docs/classtinyxml2_1_1_x_m_l_text.png delete mode 100644 docs/classtinyxml2_1_1_x_m_l_unknown-members.html delete mode 100644 docs/classtinyxml2_1_1_x_m_l_unknown.html delete mode 100644 docs/classtinyxml2_1_1_x_m_l_unknown.png delete mode 100644 docs/classtinyxml2_1_1_x_m_l_visitor-members.html delete mode 100644 docs/classtinyxml2_1_1_x_m_l_visitor.html delete mode 100644 docs/classtinyxml2_1_1_x_m_l_visitor.png delete mode 100644 docs/closed.png delete mode 100644 docs/doc.png delete mode 100644 docs/doxygen.css delete mode 100644 docs/doxygen.png delete mode 100644 docs/dynsections.js delete mode 100644 docs/files.html delete mode 100644 docs/folderclosed.png delete mode 100644 docs/folderopen.png delete mode 100644 docs/functions.html delete mode 100644 docs/functions_func.html delete mode 100644 docs/hierarchy.html delete mode 100644 docs/index.html delete mode 100644 docs/jquery.js delete mode 100644 docs/menu.js delete mode 100644 docs/menudata.js delete mode 100644 docs/nav_f.png delete mode 100644 docs/nav_g.png delete mode 100644 docs/nav_h.png delete mode 100644 docs/open.png delete mode 100644 docs/pages.html delete mode 100644 docs/search/all_0.html delete mode 100644 docs/search/all_0.js delete mode 100644 docs/search/all_1.html delete mode 100644 docs/search/all_1.js delete mode 100644 docs/search/all_10.html delete mode 100644 docs/search/all_10.js delete mode 100644 docs/search/all_11.html delete mode 100644 docs/search/all_11.js delete mode 100644 docs/search/all_12.html delete mode 100644 docs/search/all_12.js delete mode 100644 docs/search/all_13.html delete mode 100644 docs/search/all_13.js delete mode 100644 docs/search/all_2.html delete mode 100644 docs/search/all_2.js delete mode 100644 docs/search/all_3.html delete mode 100644 docs/search/all_3.js delete mode 100644 docs/search/all_4.html delete mode 100644 docs/search/all_4.js delete mode 100644 docs/search/all_5.html delete mode 100644 docs/search/all_5.js delete mode 100644 docs/search/all_6.html delete mode 100644 docs/search/all_6.js delete mode 100644 docs/search/all_7.html delete mode 100644 docs/search/all_7.js delete mode 100644 docs/search/all_8.html delete mode 100644 docs/search/all_8.js delete mode 100644 docs/search/all_9.html delete mode 100644 docs/search/all_9.js delete mode 100644 docs/search/all_a.html delete mode 100644 docs/search/all_a.js delete mode 100644 docs/search/all_b.html delete mode 100644 docs/search/all_b.js delete mode 100644 docs/search/all_c.html delete mode 100644 docs/search/all_c.js delete mode 100644 docs/search/all_d.html delete mode 100644 docs/search/all_d.js delete mode 100644 docs/search/all_e.html delete mode 100644 docs/search/all_e.js delete mode 100644 docs/search/all_f.html delete mode 100644 docs/search/all_f.js delete mode 100644 docs/search/classes_0.html delete mode 100644 docs/search/classes_0.js delete mode 100644 docs/search/close.png delete mode 100644 docs/search/functions_0.html delete mode 100644 docs/search/functions_0.js delete mode 100644 docs/search/functions_1.html delete mode 100644 docs/search/functions_1.js delete mode 100644 docs/search/functions_10.html delete mode 100644 docs/search/functions_10.js delete mode 100644 docs/search/functions_11.html delete mode 100644 docs/search/functions_11.js delete mode 100644 docs/search/functions_12.html delete mode 100644 docs/search/functions_12.js delete mode 100644 docs/search/functions_13.html delete mode 100644 docs/search/functions_13.js delete mode 100644 docs/search/functions_2.html delete mode 100644 docs/search/functions_2.js delete mode 100644 docs/search/functions_3.html delete mode 100644 docs/search/functions_3.js delete mode 100644 docs/search/functions_4.html delete mode 100644 docs/search/functions_4.js delete mode 100644 docs/search/functions_5.html delete mode 100644 docs/search/functions_5.js delete mode 100644 docs/search/functions_6.html delete mode 100644 docs/search/functions_6.js delete mode 100644 docs/search/functions_7.html delete mode 100644 docs/search/functions_7.js delete mode 100644 docs/search/functions_8.html delete mode 100644 docs/search/functions_8.js delete mode 100644 docs/search/functions_9.html delete mode 100644 docs/search/functions_9.js delete mode 100644 docs/search/functions_a.html delete mode 100644 docs/search/functions_a.js delete mode 100644 docs/search/functions_b.html delete mode 100644 docs/search/functions_b.js delete mode 100644 docs/search/functions_c.html delete mode 100644 docs/search/functions_c.js delete mode 100644 docs/search/functions_d.html delete mode 100644 docs/search/functions_d.js delete mode 100644 docs/search/functions_e.html delete mode 100644 docs/search/functions_e.js delete mode 100644 docs/search/functions_f.html delete mode 100644 docs/search/functions_f.js delete mode 100644 docs/search/mag_sel.png delete mode 100644 docs/search/nomatches.html delete mode 100644 docs/search/pages_0.html delete mode 100644 docs/search/pages_0.js delete mode 100644 docs/search/pages_1.html delete mode 100644 docs/search/pages_1.js delete mode 100644 docs/search/pages_2.html delete mode 100644 docs/search/pages_2.js delete mode 100644 docs/search/pages_3.html delete mode 100644 docs/search/pages_3.js delete mode 100644 docs/search/pages_4.html delete mode 100644 docs/search/pages_4.js delete mode 100644 docs/search/search.css delete mode 100644 docs/search/search.js delete mode 100644 docs/search/search_l.png delete mode 100644 docs/search/search_m.png delete mode 100644 docs/search/search_r.png delete mode 100644 docs/search/searchdata.js delete mode 100644 docs/splitbar.png delete mode 100644 docs/sync_off.png delete mode 100644 docs/sync_on.png delete mode 100644 docs/tab_a.png delete mode 100644 docs/tab_b.png delete mode 100644 docs/tab_h.png delete mode 100644 docs/tab_s.png delete mode 100644 docs/tabs.css delete mode 100644 docs/tinyxml2_8h_source.html delete mode 100644 resources/out/readme.txt diff --git a/docs/_example-1.html b/docs/_example-1.html deleted file mode 100644 index 7eb126b..0000000 --- a/docs/_example-1.html +++ /dev/null @@ -1,75 +0,0 @@ - - - - - - - -TinyXML-2: Load an XML File - - - - - - - - - -
-
- - - - - - -
-
TinyXML-2 -  5.0.1 -
-
-
- - - - - - - - -
-
- - -
- -
- -
-
-
-
Load an XML File
-
-
-
Basic XML file loading. The basic syntax to load an XML file from disk and check for an error. (ErrorID() will return 0 for no error.)
int example_1()
{
XMLDocument doc;
doc.LoadFile( "resources/dream.xml" );
return doc.ErrorID();
}

-
- - - - diff --git a/docs/_example-2.html b/docs/_example-2.html deleted file mode 100644 index e44cf86..0000000 --- a/docs/_example-2.html +++ /dev/null @@ -1,75 +0,0 @@ - - - - - - - -TinyXML-2: Parse an XML from char buffer - - - - - - - - - -
-
- - - - - - -
-
TinyXML-2 -  5.0.1 -
-
-
- - - - - - - - -
-
- - -
- -
- -
-
-
-
Parse an XML from char buffer
-
-
-
Basic XML string parsing. The basic syntax to parse an XML for a char* and check for an error. (ErrorID() will return 0 for no error.)
int example_2()
{
static const char* xml = "<element/>";
XMLDocument doc;
doc.Parse( xml );
return doc.ErrorID();
}

-
- - - - diff --git a/docs/_example-3.html b/docs/_example-3.html deleted file mode 100644 index 9a7787e..0000000 --- a/docs/_example-3.html +++ /dev/null @@ -1,104 +0,0 @@ - - - - - - - -TinyXML-2: Get information out of XML - - - - - - - - - -
-
- - - - - - -
-
TinyXML-2 -  5.0.1 -
-
-
- - - - - - - - -
-
- - -
- -
- -
-
-
-
Get information out of XML
-
-
-
In this example, we navigate a simple XML file, and read some interesting text. Note that this example doesn't use error checking; working code should check for null pointers when walking an XML tree, or use XMLHandle.

-

(The XML is an excerpt from "dream.xml").

-

int example_3()
{
static const char* xml =
"<?xml version=\"1.0\"?>"
"<!DOCTYPE PLAY SYSTEM \"play.dtd\">"
"<PLAY>"
"<TITLE>A Midsummer Night's Dream</TITLE>"
"</PLAY>";

-

The structure of the XML file is:

-
    -
  • -(declaration)
  • -
  • -(dtd stuff)
  • -
  • -Element "PLAY"
      -
    • -Element "TITLE"
        -
      • -Text "A Midsummer Night's Dream"
      • -
      -
    • -
    -
  • -
-

For this example, we want to print out the title of the play. The text of the title (what we want) is child of the "TITLE" element which is a child of the "PLAY" element.

-

We want to skip the declaration and dtd, so the method FirstChildElement() is a good choice. The FirstChildElement() of the Document is the "PLAY" Element, the FirstChildElement() of the "PLAY" Element is the "TITLE" Element.

-

XMLDocument doc;
doc.Parse( xml );
XMLElement* titleElement = doc.FirstChildElement( "PLAY" )->FirstChildElement( "TITLE" );

-

We can then use the convenience function GetText() to get the title of the play.

-

const char* title = titleElement->GetText();
printf( "Name of play (1): %s\n", title );

-

Text is just another Node in the XML DOM. And in fact you should be a little cautious with it, as text nodes can contain elements.

-
Consider: A Midsummer Night's <b>Dream</b>
-

It is more correct to actually query the Text Node if in doubt:

-

XMLText* textNode = titleElement->FirstChild()->ToText();
title = textNode->Value();
printf( "Name of play (2): %s\n", title );

-

Noting that here we use FirstChild() since we are looking for XMLText, not an element, and ToText() is a cast from a Node to a XMLText.

-
- - - - diff --git a/docs/_example-4.html b/docs/_example-4.html deleted file mode 100644 index 67795e6..0000000 --- a/docs/_example-4.html +++ /dev/null @@ -1,81 +0,0 @@ - - - - - - - -TinyXML-2: Read attributes and text information. - - - - - - - - - -
-
- - - - - - -
-
TinyXML-2 -  5.0.1 -
-
-
- - - - - - - - -
-
- - -
- -
- -
-
-
-
Read attributes and text information.
-
-
-

There are fundamentally 2 ways of writing a key-value pair into an XML file. (Something that's always annoyed me about XML.) Either by using attributes, or by writing the key name into an element and the value into the text node wrapped by the element. Both approaches are illustrated in this example, which shows two ways to encode the value "2" into the key "v":

-

bool example_4()
{
static const char* xml =
"<information>"
" <attributeApproach v='2' />"
" <textApproach>"
" <v>2</v>"
" </textApproach>"
"</information>";

-

TinyXML-2 has accessors for both approaches.

-

When using an attribute, you navigate to the XMLElement with that attribute and use the QueryIntAttribute() group of methods. (Also QueryFloatAttribute(), etc.)

-

XMLElement* attributeApproachElement = doc.FirstChildElement()->FirstChildElement( "attributeApproach" );
attributeApproachElement->QueryIntAttribute( "v", &v0 );

-

When using the text approach, you need to navigate down one more step to the XMLElement that contains the text. Note the extra FirstChildElement( "v" ) in the code below. The value of the text can then be safely queried with the QueryIntText() group of methods. (Also QueryFloatText(), etc.)

-

XMLElement* textApproachElement = doc.FirstChildElement()->FirstChildElement( "textApproach" );
textApproachElement->FirstChildElement( "v" )->QueryIntText( &v1 );

-
- - - - diff --git a/docs/annotated.html b/docs/annotated.html deleted file mode 100644 index 14c03a1..0000000 --- a/docs/annotated.html +++ /dev/null @@ -1,91 +0,0 @@ - - - - - - - -TinyXML-2: Class List - - - - - - - - - -
-
- - - - - - -
-
TinyXML-2 -  5.0.1 -
-
-
- - - - - - - -
- -
-
- - -
- -
- -
-
-
Class List
-
-
-
Here are the classes, structs, unions and interfaces with brief descriptions:
-
[detail level 12]
- - - - - - - - - - - - - -
 Ntinyxml2
 CXMLAttribute
 CXMLComment
 CXMLConstHandle
 CXMLDeclaration
 CXMLDocument
 CXMLElement
 CXMLHandle
 CXMLNode
 CXMLPrinter
 CXMLText
 CXMLUnknown
 CXMLVisitor
-
-
- - - - diff --git a/docs/bc_s.png b/docs/bc_s.png deleted file mode 100644 index 224b29aa9847d5a4b3902efd602b7ddf7d33e6c2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 676 zcmV;V0$crwP)y__>=_9%My z{n931IS})GlGUF8K#6VIbs%684A^L3@%PlP2>_sk`UWPq@f;rU*V%rPy_ekbhXT&s z(GN{DxFv}*vZp`F>S!r||M`I*nOwwKX+BC~3P5N3-)Y{65c;ywYiAh-1*hZcToLHK ztpl1xomJ+Yb}K(cfbJr2=GNOnT!UFA7Vy~fBz8?J>XHsbZoDad^8PxfSa0GDgENZS zuLCEqzb*xWX2CG*b&5IiO#NzrW*;`VC9455M`o1NBh+(k8~`XCEEoC1Ybwf;vr4K3 zg|EB<07?SOqHp9DhLpS&bzgo70I+ghB_#)K7H%AMU3v}xuyQq9&Bm~++VYhF09a+U zl7>n7Jjm$K#b*FONz~fj;I->Bf;ule1prFN9FovcDGBkpg>)O*-}eLnC{6oZHZ$o% zXKW$;0_{8hxHQ>l;_*HATI(`7t#^{$(zLe}h*mqwOc*nRY9=?Sx4OOeVIfI|0V(V2 zBrW#G7Ss9wvzr@>H*`r>zE z+e8bOBgqIgldUJlG(YUDviMB`9+DH8n-s9SXRLyJHO1!=wY^79WYZMTa(wiZ!zP66 zA~!21vmF3H2{ngD;+`6j#~6j;$*f*G_2ZD1E;9(yaw7d-QnSCpK(cR1zU3qU0000< KMNUMnLSTYoA~SLT diff --git a/docs/bdwn.png b/docs/bdwn.png deleted file mode 100644 index 940a0b950443a0bb1b216ac03c45b8a16c955452..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 147 zcmeAS@N?(olHy`uVBq!ia0vp^>_E)H!3HEvS)PKZC{Gv1kP61Pb5HX&C2wk~_T - - - - - - -TinyXML-2: Class Index - - - - - - - - - -
-
- - - - - - -
-
TinyXML-2 -  5.0.1 -
-
-
- - - - - - - -
- -
-
- - -
- -
- -
-
-
Class Index
-
-
- - - - - - -
  x  
-
XMLComment (tinyxml2)   XMLDocument (tinyxml2)   XMLNode (tinyxml2)   XMLUnknown (tinyxml2)   
XMLConstHandle (tinyxml2)   XMLElement (tinyxml2)   XMLPrinter (tinyxml2)   XMLVisitor (tinyxml2)   
XMLAttribute (tinyxml2)   XMLDeclaration (tinyxml2)   XMLHandle (tinyxml2)   XMLText (tinyxml2)   
- -
- - - - diff --git a/docs/classtinyxml2_1_1_x_m_l_attribute-members.html b/docs/classtinyxml2_1_1_x_m_l_attribute-members.html deleted file mode 100644 index 4eb1504..0000000 --- a/docs/classtinyxml2_1_1_x_m_l_attribute-members.html +++ /dev/null @@ -1,103 +0,0 @@ - - - - - - - -TinyXML-2: Member List - - - - - - - - - -
-
- - - - - - -
-
TinyXML-2 -  5.0.1 -
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-
tinyxml2::XMLAttribute Member List
-
- - - - - diff --git a/docs/classtinyxml2_1_1_x_m_l_attribute.html b/docs/classtinyxml2_1_1_x_m_l_attribute.html deleted file mode 100644 index d147670..0000000 --- a/docs/classtinyxml2_1_1_x_m_l_attribute.html +++ /dev/null @@ -1,223 +0,0 @@ - - - - - - - -TinyXML-2: tinyxml2::XMLAttribute Class Reference - - - - - - - - - -
-
- - - - - - -
-
TinyXML-2 -  5.0.1 -
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
- -
-
tinyxml2::XMLAttribute Class Reference
-
-
- -

#include <tinyxml2.h>

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Public Member Functions

-const char * Name () const
 The name of the attribute.
 
-const char * Value () const
 The value of the attribute.
 
-int GetLineNum () const
 Gets the line number the attribute is in, if the document was parsed from a file.
 
-const XMLAttributeNext () const
 The next attribute in the list.
 
int IntValue () const
 
-unsigned UnsignedValue () const
 Query as an unsigned integer. See IntValue()
 
-bool BoolValue () const
 Query as a boolean. See IntValue()
 
-double DoubleValue () const
 Query as a double. See IntValue()
 
-float FloatValue () const
 Query as a float. See IntValue()
 
XMLError QueryIntValue (int *value) const
 
-XMLError QueryUnsignedValue (unsigned int *value) const
 See QueryIntValue.
 
-XMLError QueryInt64Value (int64_t *value) const
 See QueryIntValue.
 
-XMLError QueryBoolValue (bool *value) const
 See QueryIntValue.
 
-XMLError QueryDoubleValue (double *value) const
 See QueryIntValue.
 
-XMLError QueryFloatValue (float *value) const
 See QueryIntValue.
 
-void SetAttribute (const char *value)
 Set the attribute to a string value.
 
-void SetAttribute (int value)
 Set the attribute to value.
 
-void SetAttribute (unsigned value)
 Set the attribute to value.
 
-void SetAttribute (int64_t value)
 Set the attribute to value.
 
-void SetAttribute (bool value)
 Set the attribute to value.
 
-void SetAttribute (double value)
 Set the attribute to value.
 
-void SetAttribute (float value)
 Set the attribute to value.
 
-

Detailed Description

-

An attribute is a name-value pair. Elements have an arbitrary number of attributes, each with a unique name.

-
Note
The attributes are not XMLNodes. You may only query the Next() attribute in a list.
-

Member Function Documentation

- -

◆ IntValue()

- -
-
- - - - - -
- - - - - - - -
int tinyxml2::XMLAttribute::IntValue () const
-
-inline
-
-

IntValue interprets the attribute as an integer, and returns the value. If the value isn't an integer, 0 will be returned. There is no error checking; use QueryIntValue() if you need error checking.

- -
-
- -

◆ QueryIntValue()

- -
-
- - - - - - - - -
XMLError tinyxml2::XMLAttribute::QueryIntValue (int * value) const
-
-

QueryIntValue interprets the attribute as an integer, and returns the value in the provided parameter. The function will return XML_SUCCESS on success, and XML_WRONG_ATTRIBUTE_TYPE if the conversion is not successful.

- -
-
-
The documentation for this class was generated from the following file: -
- - - - diff --git a/docs/classtinyxml2_1_1_x_m_l_comment-members.html b/docs/classtinyxml2_1_1_x_m_l_comment-members.html deleted file mode 100644 index 7465cb1..0000000 --- a/docs/classtinyxml2_1_1_x_m_l_comment-members.html +++ /dev/null @@ -1,113 +0,0 @@ - - - - - - - -TinyXML-2: Member List - - - - - - - - - -
-
- - - - - - -
-
TinyXML-2 -  5.0.1 -
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-
tinyxml2::XMLComment Member List
-
-
- -

This is the complete list of members for tinyxml2::XMLComment, including all inherited members.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Accept(XMLVisitor *visitor) consttinyxml2::XMLCommentvirtual
DeepClone(XMLDocument *target) consttinyxml2::XMLNode
DeleteChild(XMLNode *node)tinyxml2::XMLNode
DeleteChildren()tinyxml2::XMLNode
FirstChild() consttinyxml2::XMLNodeinline
FirstChildElement(const char *name=0) consttinyxml2::XMLNode
GetDocument() consttinyxml2::XMLNodeinline
GetDocument()tinyxml2::XMLNodeinline
GetLineNum() consttinyxml2::XMLNodeinline
GetUserData() consttinyxml2::XMLNodeinline
InsertAfterChild(XMLNode *afterThis, XMLNode *addThis)tinyxml2::XMLNode
InsertEndChild(XMLNode *addThis)tinyxml2::XMLNode
InsertFirstChild(XMLNode *addThis)tinyxml2::XMLNode
LastChild() consttinyxml2::XMLNodeinline
LastChildElement(const char *name=0) consttinyxml2::XMLNode
NextSibling() consttinyxml2::XMLNodeinline
NextSiblingElement(const char *name=0) consttinyxml2::XMLNode
NoChildren() consttinyxml2::XMLNodeinline
Parent() consttinyxml2::XMLNodeinline
PreviousSibling() consttinyxml2::XMLNodeinline
PreviousSiblingElement(const char *name=0) consttinyxml2::XMLNode
SetUserData(void *userData)tinyxml2::XMLNodeinline
SetValue(const char *val, bool staticMem=false)tinyxml2::XMLNode
ShallowClone(XMLDocument *document) consttinyxml2::XMLCommentvirtual
ShallowEqual(const XMLNode *compare) consttinyxml2::XMLCommentvirtual
ToComment()tinyxml2::XMLCommentinlinevirtual
ToDeclaration()tinyxml2::XMLNodeinlinevirtual
ToDocument()tinyxml2::XMLNodeinlinevirtual
ToElement()tinyxml2::XMLNodeinlinevirtual
ToText()tinyxml2::XMLNodeinlinevirtual
ToUnknown()tinyxml2::XMLNodeinlinevirtual
Value() consttinyxml2::XMLNode
- - - - diff --git a/docs/classtinyxml2_1_1_x_m_l_comment.html b/docs/classtinyxml2_1_1_x_m_l_comment.html deleted file mode 100644 index 66df8c1..0000000 --- a/docs/classtinyxml2_1_1_x_m_l_comment.html +++ /dev/null @@ -1,300 +0,0 @@ - - - - - - - -TinyXML-2: tinyxml2::XMLComment Class Reference - - - - - - - - - -
-
- - - - - - -
-
TinyXML-2 -  5.0.1 -
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
- -
-
tinyxml2::XMLComment Class Reference
-
-
- -

#include <tinyxml2.h>

-
-Inheritance diagram for tinyxml2::XMLComment:
-
-
- - -tinyxml2::XMLNode - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Public Member Functions

-virtual XMLCommentToComment ()
 Safely cast to a Comment, or null.
 
virtual bool Accept (XMLVisitor *visitor) const
 
virtual XMLNodeShallowClone (XMLDocument *document) const
 
virtual bool ShallowEqual (const XMLNode *compare) const
 
- Public Member Functions inherited from tinyxml2::XMLNode
-const XMLDocumentGetDocument () const
 Get the XMLDocument that owns this XMLNode.
 
-XMLDocumentGetDocument ()
 Get the XMLDocument that owns this XMLNode.
 
-virtual XMLElementToElement ()
 Safely cast to an Element, or null.
 
-virtual XMLTextToText ()
 Safely cast to Text, or null.
 
-virtual XMLDocumentToDocument ()
 Safely cast to a Document, or null.
 
-virtual XMLDeclarationToDeclaration ()
 Safely cast to a Declaration, or null.
 
-virtual XMLUnknownToUnknown ()
 Safely cast to an Unknown, or null.
 
const char * Value () const
 
void SetValue (const char *val, bool staticMem=false)
 
-int GetLineNum () const
 Gets the line number the node is in, if the document was parsed from a file.
 
-const XMLNodeParent () const
 Get the parent of this node on the DOM.
 
-bool NoChildren () const
 Returns true if this node has no children.
 
-const XMLNodeFirstChild () const
 Get the first child node, or null if none exists.
 
const XMLElementFirstChildElement (const char *name=0) const
 
-const XMLNodeLastChild () const
 Get the last child node, or null if none exists.
 
const XMLElementLastChildElement (const char *name=0) const
 
-const XMLNodePreviousSibling () const
 Get the previous (left) sibling node of this node.
 
-const XMLElementPreviousSiblingElement (const char *name=0) const
 Get the previous (left) sibling element of this node, with an optionally supplied name.
 
-const XMLNodeNextSibling () const
 Get the next (right) sibling node of this node.
 
-const XMLElementNextSiblingElement (const char *name=0) const
 Get the next (right) sibling element of this node, with an optionally supplied name.
 
XMLNodeInsertEndChild (XMLNode *addThis)
 
XMLNodeInsertFirstChild (XMLNode *addThis)
 
XMLNodeInsertAfterChild (XMLNode *afterThis, XMLNode *addThis)
 
void DeleteChildren ()
 
void DeleteChild (XMLNode *node)
 
XMLNodeDeepClone (XMLDocument *target) const
 
void SetUserData (void *userData)
 
void * GetUserData () const
 
-

Detailed Description

-

An XML Comment.

-

Member Function Documentation

- -

◆ Accept()

- -
-
- - - - - -
- - - - - - - - -
virtual bool tinyxml2::XMLComment::Accept (XMLVisitorvisitor) const
-
-virtual
-
-

Accept a hierarchical visit of the nodes in the TinyXML-2 DOM. Every node in the XML tree will be conditionally visited and the host will be called back via the XMLVisitor interface.

-

This is essentially a SAX interface for TinyXML-2. (Note however it doesn't re-parse the XML for the callbacks, so the performance of TinyXML-2 is unchanged by using this interface versus any other.)

-

The interface has been based on ideas from:

- -

Which are both good references for "visiting".

-

An example of using Accept():

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

Implements tinyxml2::XMLNode.

- -
-
- -

◆ ShallowClone()

- -
-
- - - - - -
- - - - - - - - -
virtual XMLNode* tinyxml2::XMLComment::ShallowClone (XMLDocumentdocument) const
-
-virtual
-
-

Make a copy of this node, but not its children. You may pass in a Document pointer that will be the owner of the new Node. If the 'document' is null, then the node returned will be allocated from the current Document. (this->GetDocument())

-

Note: if called on a XMLDocument, this will return null.

- -

Implements tinyxml2::XMLNode.

- -
-
- -

◆ ShallowEqual()

- -
-
- - - - - -
- - - - - - - - -
virtual bool tinyxml2::XMLComment::ShallowEqual (const XMLNodecompare) const
-
-virtual
-
-

Test if 2 nodes are the same, but don't test children. The 2 nodes do not need to be in the same Document.

-

Note: if called on a XMLDocument, this will return false.

- -

Implements tinyxml2::XMLNode.

- -
-
-
The documentation for this class was generated from the following file: -
- - - - diff --git a/docs/classtinyxml2_1_1_x_m_l_comment.png b/docs/classtinyxml2_1_1_x_m_l_comment.png deleted file mode 100644 index 3a076f05c0f83dc3e8e2d11062ee57c9d8c2a377..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 650 zcmeAS@N?(olHy`uVBq!ia0vp^y+9nm!3-pY71+{%lth3}i0l9V|AEXGZ@!lHADRGU zf$@O@2Ut7r$OE|?B|(0{3_wL7aP?G(5d#C0q^FBxNCo5Dxexo6Ce`0>f z0k-Im&&;f!T$0WzWSO;z@$czPI;TxGcwACx=~ej&!WL$k+LKC7-kNvmV)lL`=Kj;S zuJBG@BD}9xr~(H=9)QXy)0C>c`CP)|hUd|8DlT7c;t5WK;dOhGx$@Sn^}JvFgcb z?Ca${e+jmk?bkHk@-uYik2dd1tcl8=c9(DJoZfVX=>Y!+rWtK3bK=&|ELpax^0dzq z_!i{ad;5g=07T zI1VVUI+Dm-;6887)tjQ59hARmEX$vK{@3sLxrF>3m;jn6shG>G-nP36nI8mz>>KyChoLWBH}fax=@>dwunTdAd&( z&#s+qzj39%_agnjiodTc%a^|?Q=OD^xz*INxg_vi*eYAAXG#YHv+CZi+h+FEHaRQ& zMTW-gpU-0d%r*bgdUm><_`b8-_r-qXW&gk_%`pFEPLNlo*guA)_HxFp)r-1;35UVc L)z4*}Q$iB}2?{U4 diff --git a/docs/classtinyxml2_1_1_x_m_l_const_handle-members.html b/docs/classtinyxml2_1_1_x_m_l_const_handle-members.html deleted file mode 100644 index 6b25d49..0000000 --- a/docs/classtinyxml2_1_1_x_m_l_const_handle-members.html +++ /dev/null @@ -1,81 +0,0 @@ - - - - - - - -TinyXML-2: Member List - - - - - - - - - -
-
- - - - - - -
-
TinyXML-2 -  5.0.1 -
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-
tinyxml2::XMLConstHandle Member List
-
-
- -

This is the complete list of members for tinyxml2::XMLConstHandle, including all inherited members.

- -
- - - - diff --git a/docs/classtinyxml2_1_1_x_m_l_const_handle.html b/docs/classtinyxml2_1_1_x_m_l_const_handle.html deleted file mode 100644 index 0b2c8b6..0000000 --- a/docs/classtinyxml2_1_1_x_m_l_const_handle.html +++ /dev/null @@ -1,87 +0,0 @@ - - - - - - - -TinyXML-2: tinyxml2::XMLConstHandle Class Reference - - - - - - - - - -
-
- - - - - - -
-
TinyXML-2 -  5.0.1 -
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
- -
-
tinyxml2::XMLConstHandle Class Reference
-
-
- -

#include <tinyxml2.h>

-

Detailed Description

-

A variant of the XMLHandle class for working with const XMLNodes and Documents. It is the same in all regards, except for the 'const' qualifiers. See XMLHandle for API.

-

The documentation for this class was generated from the following file: -
- - - - diff --git a/docs/classtinyxml2_1_1_x_m_l_declaration-members.html b/docs/classtinyxml2_1_1_x_m_l_declaration-members.html deleted file mode 100644 index 4e1bee2..0000000 --- a/docs/classtinyxml2_1_1_x_m_l_declaration-members.html +++ /dev/null @@ -1,113 +0,0 @@ - - - - - - - -TinyXML-2: Member List - - - - - - - - - -
-
- - - - - - -
-
TinyXML-2 -  5.0.1 -
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-
tinyxml2::XMLDeclaration Member List
-
-
- -

This is the complete list of members for tinyxml2::XMLDeclaration, including all inherited members.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Accept(XMLVisitor *visitor) consttinyxml2::XMLDeclarationvirtual
DeepClone(XMLDocument *target) consttinyxml2::XMLNode
DeleteChild(XMLNode *node)tinyxml2::XMLNode
DeleteChildren()tinyxml2::XMLNode
FirstChild() consttinyxml2::XMLNodeinline
FirstChildElement(const char *name=0) consttinyxml2::XMLNode
GetDocument() consttinyxml2::XMLNodeinline
GetDocument()tinyxml2::XMLNodeinline
GetLineNum() consttinyxml2::XMLNodeinline
GetUserData() consttinyxml2::XMLNodeinline
InsertAfterChild(XMLNode *afterThis, XMLNode *addThis)tinyxml2::XMLNode
InsertEndChild(XMLNode *addThis)tinyxml2::XMLNode
InsertFirstChild(XMLNode *addThis)tinyxml2::XMLNode
LastChild() consttinyxml2::XMLNodeinline
LastChildElement(const char *name=0) consttinyxml2::XMLNode
NextSibling() consttinyxml2::XMLNodeinline
NextSiblingElement(const char *name=0) consttinyxml2::XMLNode
NoChildren() consttinyxml2::XMLNodeinline
Parent() consttinyxml2::XMLNodeinline
PreviousSibling() consttinyxml2::XMLNodeinline
PreviousSiblingElement(const char *name=0) consttinyxml2::XMLNode
SetUserData(void *userData)tinyxml2::XMLNodeinline
SetValue(const char *val, bool staticMem=false)tinyxml2::XMLNode
ShallowClone(XMLDocument *document) consttinyxml2::XMLDeclarationvirtual
ShallowEqual(const XMLNode *compare) consttinyxml2::XMLDeclarationvirtual
ToComment()tinyxml2::XMLNodeinlinevirtual
ToDeclaration()tinyxml2::XMLDeclarationinlinevirtual
ToDocument()tinyxml2::XMLNodeinlinevirtual
ToElement()tinyxml2::XMLNodeinlinevirtual
ToText()tinyxml2::XMLNodeinlinevirtual
ToUnknown()tinyxml2::XMLNodeinlinevirtual
Value() consttinyxml2::XMLNode
- - - - diff --git a/docs/classtinyxml2_1_1_x_m_l_declaration.html b/docs/classtinyxml2_1_1_x_m_l_declaration.html deleted file mode 100644 index 1aa2eab..0000000 --- a/docs/classtinyxml2_1_1_x_m_l_declaration.html +++ /dev/null @@ -1,302 +0,0 @@ - - - - - - - -TinyXML-2: tinyxml2::XMLDeclaration Class Reference - - - - - - - - - -
-
- - - - - - -
-
TinyXML-2 -  5.0.1 -
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
- -
-
tinyxml2::XMLDeclaration Class Reference
-
-
- -

#include <tinyxml2.h>

-
-Inheritance diagram for tinyxml2::XMLDeclaration:
-
-
- - -tinyxml2::XMLNode - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Public Member Functions

-virtual XMLDeclarationToDeclaration ()
 Safely cast to a Declaration, or null.
 
virtual bool Accept (XMLVisitor *visitor) const
 
virtual XMLNodeShallowClone (XMLDocument *document) const
 
virtual bool ShallowEqual (const XMLNode *compare) const
 
- Public Member Functions inherited from tinyxml2::XMLNode
-const XMLDocumentGetDocument () const
 Get the XMLDocument that owns this XMLNode.
 
-XMLDocumentGetDocument ()
 Get the XMLDocument that owns this XMLNode.
 
-virtual XMLElementToElement ()
 Safely cast to an Element, or null.
 
-virtual XMLTextToText ()
 Safely cast to Text, or null.
 
-virtual XMLCommentToComment ()
 Safely cast to a Comment, or null.
 
-virtual XMLDocumentToDocument ()
 Safely cast to a Document, or null.
 
-virtual XMLUnknownToUnknown ()
 Safely cast to an Unknown, or null.
 
const char * Value () const
 
void SetValue (const char *val, bool staticMem=false)
 
-int GetLineNum () const
 Gets the line number the node is in, if the document was parsed from a file.
 
-const XMLNodeParent () const
 Get the parent of this node on the DOM.
 
-bool NoChildren () const
 Returns true if this node has no children.
 
-const XMLNodeFirstChild () const
 Get the first child node, or null if none exists.
 
const XMLElementFirstChildElement (const char *name=0) const
 
-const XMLNodeLastChild () const
 Get the last child node, or null if none exists.
 
const XMLElementLastChildElement (const char *name=0) const
 
-const XMLNodePreviousSibling () const
 Get the previous (left) sibling node of this node.
 
-const XMLElementPreviousSiblingElement (const char *name=0) const
 Get the previous (left) sibling element of this node, with an optionally supplied name.
 
-const XMLNodeNextSibling () const
 Get the next (right) sibling node of this node.
 
-const XMLElementNextSiblingElement (const char *name=0) const
 Get the next (right) sibling element of this node, with an optionally supplied name.
 
XMLNodeInsertEndChild (XMLNode *addThis)
 
XMLNodeInsertFirstChild (XMLNode *addThis)
 
XMLNodeInsertAfterChild (XMLNode *afterThis, XMLNode *addThis)
 
void DeleteChildren ()
 
void DeleteChild (XMLNode *node)
 
XMLNodeDeepClone (XMLDocument *target) const
 
void SetUserData (void *userData)
 
void * GetUserData () const
 
-

Detailed Description

-

In correct XML the declaration is the first entry in the file.

    <?xml version="1.0" standalone="yes"?>
-

TinyXML-2 will happily read or write files without a declaration, however.

-

The text of the declaration isn't interpreted. It is parsed and written as a string.

-

Member Function Documentation

- -

◆ Accept()

- -
-
- - - - - -
- - - - - - - - -
virtual bool tinyxml2::XMLDeclaration::Accept (XMLVisitorvisitor) const
-
-virtual
-
-

Accept a hierarchical visit of the nodes in the TinyXML-2 DOM. Every node in the XML tree will be conditionally visited and the host will be called back via the XMLVisitor interface.

-

This is essentially a SAX interface for TinyXML-2. (Note however it doesn't re-parse the XML for the callbacks, so the performance of TinyXML-2 is unchanged by using this interface versus any other.)

-

The interface has been based on ideas from:

- -

Which are both good references for "visiting".

-

An example of using Accept():

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

Implements tinyxml2::XMLNode.

- -
-
- -

◆ ShallowClone()

- -
-
- - - - - -
- - - - - - - - -
virtual XMLNode* tinyxml2::XMLDeclaration::ShallowClone (XMLDocumentdocument) const
-
-virtual
-
-

Make a copy of this node, but not its children. You may pass in a Document pointer that will be the owner of the new Node. If the 'document' is null, then the node returned will be allocated from the current Document. (this->GetDocument())

-

Note: if called on a XMLDocument, this will return null.

- -

Implements tinyxml2::XMLNode.

- -
-
- -

◆ ShallowEqual()

- -
-
- - - - - -
- - - - - - - - -
virtual bool tinyxml2::XMLDeclaration::ShallowEqual (const XMLNodecompare) const
-
-virtual
-
-

Test if 2 nodes are the same, but don't test children. The 2 nodes do not need to be in the same Document.

-

Note: if called on a XMLDocument, this will return false.

- -

Implements tinyxml2::XMLNode.

- -
-
-
The documentation for this class was generated from the following file: -
- - - - diff --git a/docs/classtinyxml2_1_1_x_m_l_declaration.png b/docs/classtinyxml2_1_1_x_m_l_declaration.png deleted file mode 100644 index c7aa6319fcb939dc39dc72310971fd68db7611eb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 688 zcmV;h0#E&kP)vTJkN^MxkN^Mxkifve1&Q1r00008bW%=J0RR90|NsC0)yh;d0006%Nklb)L9y(^B)#yTuZ-F8Vj(?>Q*`lJ-Pg^R%Pr(xT#53#-TvAf>AMkW7g zq07kyn^}u)(u_&Fq{gmln%pPHWiEpopaO1425iRDA?=c^U9z>M%So(@!#a)Fh7KQM z%axFVu>)G>&0wbP_AKPf`%jWay2;kmBuLi!#&xkt(wSUr^(PyM(B_HE4G;FIBx^Tbcarp^?y`LW?JnCl(EjMRUXs46#U@F9P0qG$+cu{Fp3@J& zq?(xR=VxBHiP>Ig)56Wnw)zy{H(G1}el0ctzZM&SUyBXEuf+!7*J1`>vBc;UVnFw{oQP=!`Nm3jm8nq zLR&U~Pf9*oxCoqpD%;rQDI35+nJv9dUjItK93U;UaqqC%M8}Jr*uCys(u*wLQWD

!f9COP3$EE_MaT40qVt%(rLs82S@is>ERT z@kGSKaD<2j>q?!vBv;zaRx&}Lx4v;N*!qM8pwn;I%$dDp8x^mc?jtzZ+IBR90M+^` z^zrfy<^4A7(|Tt1*Ff8+M>fFP3}1^AwkbYjW41ZIv47%Q4=|Y)8-QPvvxN}Cocaes W_8~7%yCIwa0000 - - - - - - -TinyXML-2: Member List - - - - - - - - - -

-
- - - - - - -
-
TinyXML-2 -  5.0.1 -
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-
tinyxml2::XMLDocument Member List
-
-
- -

This is the complete list of members for tinyxml2::XMLDocument, including all inherited members.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Accept(XMLVisitor *visitor) consttinyxml2::XMLDocumentvirtual
Clear()tinyxml2::XMLDocument
DeepClone(XMLDocument *target) consttinyxml2::XMLNode
DeepCopy(XMLDocument *target)tinyxml2::XMLDocument
DeleteChild(XMLNode *node)tinyxml2::XMLNode
DeleteChildren()tinyxml2::XMLNode
DeleteNode(XMLNode *node)tinyxml2::XMLDocument
Error() consttinyxml2::XMLDocumentinline
ErrorID() consttinyxml2::XMLDocumentinline
FirstChild() consttinyxml2::XMLNodeinline
FirstChildElement(const char *name=0) consttinyxml2::XMLNode
GetDocument() consttinyxml2::XMLNodeinline
GetDocument()tinyxml2::XMLNodeinline
GetErrorLineNum() consttinyxml2::XMLDocumentinline
GetErrorStr1() consttinyxml2::XMLDocument
GetErrorStr2() consttinyxml2::XMLDocument
GetLineNum() consttinyxml2::XMLNodeinline
GetUserData() consttinyxml2::XMLNodeinline
HasBOM() consttinyxml2::XMLDocumentinline
InsertAfterChild(XMLNode *afterThis, XMLNode *addThis)tinyxml2::XMLNode
InsertEndChild(XMLNode *addThis)tinyxml2::XMLNode
InsertFirstChild(XMLNode *addThis)tinyxml2::XMLNode
LastChild() consttinyxml2::XMLNodeinline
LastChildElement(const char *name=0) consttinyxml2::XMLNode
LoadFile(const char *filename)tinyxml2::XMLDocument
LoadFile(FILE *)tinyxml2::XMLDocument
NewComment(const char *comment)tinyxml2::XMLDocument
NewDeclaration(const char *text=0)tinyxml2::XMLDocument
NewElement(const char *name)tinyxml2::XMLDocument
NewText(const char *text)tinyxml2::XMLDocument
NewUnknown(const char *text)tinyxml2::XMLDocument
NextSibling() consttinyxml2::XMLNodeinline
NextSiblingElement(const char *name=0) consttinyxml2::XMLNode
NoChildren() consttinyxml2::XMLNodeinline
Parent() consttinyxml2::XMLNodeinline
Parse(const char *xml, size_t nBytes=(size_t)(-1))tinyxml2::XMLDocument
PreviousSibling() consttinyxml2::XMLNodeinline
PreviousSiblingElement(const char *name=0) consttinyxml2::XMLNode
Print(XMLPrinter *streamer=0) consttinyxml2::XMLDocument
PrintError() consttinyxml2::XMLDocument
RootElement()tinyxml2::XMLDocumentinline
SaveFile(const char *filename, bool compact=false)tinyxml2::XMLDocument
SaveFile(FILE *fp, bool compact=false)tinyxml2::XMLDocument
SetBOM(bool useBOM)tinyxml2::XMLDocumentinline
SetUserData(void *userData)tinyxml2::XMLNodeinline
SetValue(const char *val, bool staticMem=false)tinyxml2::XMLNode
ShallowClone(XMLDocument *) consttinyxml2::XMLDocumentinlinevirtual
ShallowEqual(const XMLNode *) consttinyxml2::XMLDocumentinlinevirtual
ToComment()tinyxml2::XMLNodeinlinevirtual
ToDeclaration()tinyxml2::XMLNodeinlinevirtual
ToDocument()tinyxml2::XMLDocumentinlinevirtual
ToElement()tinyxml2::XMLNodeinlinevirtual
ToText()tinyxml2::XMLNodeinlinevirtual
ToUnknown()tinyxml2::XMLNodeinlinevirtual
Value() consttinyxml2::XMLNode
XMLDocument(bool processEntities=true, Whitespace whitespaceMode=PRESERVE_WHITESPACE)tinyxml2::XMLDocument
- - - - diff --git a/docs/classtinyxml2_1_1_x_m_l_document.html b/docs/classtinyxml2_1_1_x_m_l_document.html deleted file mode 100644 index 0e1c409..0000000 --- a/docs/classtinyxml2_1_1_x_m_l_document.html +++ /dev/null @@ -1,730 +0,0 @@ - - - - - - - -TinyXML-2: tinyxml2::XMLDocument Class Reference - - - - - - - - - -
-
- - - - - - -
-
TinyXML-2 -  5.0.1 -
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
- -
-
tinyxml2::XMLDocument Class Reference
-
-
- -

#include <tinyxml2.h>

-
-Inheritance diagram for tinyxml2::XMLDocument:
-
-
- - -tinyxml2::XMLNode - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Public Member Functions

XMLDocument (bool processEntities=true, Whitespace whitespaceMode=PRESERVE_WHITESPACE)
 constructor
 
-virtual XMLDocumentToDocument ()
 Safely cast to a Document, or null.
 
XMLError Parse (const char *xml, size_t nBytes=(size_t)(-1))
 
XMLError LoadFile (const char *filename)
 
XMLError LoadFile (FILE *)
 
XMLError SaveFile (const char *filename, bool compact=false)
 
XMLError SaveFile (FILE *fp, bool compact=false)
 
bool HasBOM () const
 
void SetBOM (bool useBOM)
 
XMLElementRootElement ()
 
void Print (XMLPrinter *streamer=0) const
 
virtual bool Accept (XMLVisitor *visitor) const
 
XMLElementNewElement (const char *name)
 
XMLCommentNewComment (const char *comment)
 
XMLTextNewText (const char *text)
 
XMLDeclarationNewDeclaration (const char *text=0)
 
XMLUnknownNewUnknown (const char *text)
 
void DeleteNode (XMLNode *node)
 
-bool Error () const
 Return true if there was an error parsing the document.
 
-XMLError ErrorID () const
 Return the errorID.
 
-const char * GetErrorStr1 () const
 Return a possibly helpful diagnostic location or string.
 
-const char * GetErrorStr2 () const
 Return a possibly helpful secondary diagnostic location or string.
 
-int GetErrorLineNum () const
 Return the line where the error occured, or zero if unknown.
 
-void PrintError () const
 If there is an error, print it to stdout.
 
-void Clear ()
 Clear the document, resetting it to the initial state.
 
void DeepCopy (XMLDocument *target)
 
virtual XMLNodeShallowClone (XMLDocument *) const
 
virtual bool ShallowEqual (const XMLNode *) const
 
- Public Member Functions inherited from tinyxml2::XMLNode
-const XMLDocumentGetDocument () const
 Get the XMLDocument that owns this XMLNode.
 
-XMLDocumentGetDocument ()
 Get the XMLDocument that owns this XMLNode.
 
-virtual XMLElementToElement ()
 Safely cast to an Element, or null.
 
-virtual XMLTextToText ()
 Safely cast to Text, or null.
 
-virtual XMLCommentToComment ()
 Safely cast to a Comment, or null.
 
-virtual XMLDeclarationToDeclaration ()
 Safely cast to a Declaration, or null.
 
-virtual XMLUnknownToUnknown ()
 Safely cast to an Unknown, or null.
 
const char * Value () const
 
void SetValue (const char *val, bool staticMem=false)
 
-int GetLineNum () const
 Gets the line number the node is in, if the document was parsed from a file.
 
-const XMLNodeParent () const
 Get the parent of this node on the DOM.
 
-bool NoChildren () const
 Returns true if this node has no children.
 
-const XMLNodeFirstChild () const
 Get the first child node, or null if none exists.
 
const XMLElementFirstChildElement (const char *name=0) const
 
-const XMLNodeLastChild () const
 Get the last child node, or null if none exists.
 
const XMLElementLastChildElement (const char *name=0) const
 
-const XMLNodePreviousSibling () const
 Get the previous (left) sibling node of this node.
 
-const XMLElementPreviousSiblingElement (const char *name=0) const
 Get the previous (left) sibling element of this node, with an optionally supplied name.
 
-const XMLNodeNextSibling () const
 Get the next (right) sibling node of this node.
 
-const XMLElementNextSiblingElement (const char *name=0) const
 Get the next (right) sibling element of this node, with an optionally supplied name.
 
XMLNodeInsertEndChild (XMLNode *addThis)
 
XMLNodeInsertFirstChild (XMLNode *addThis)
 
XMLNodeInsertAfterChild (XMLNode *afterThis, XMLNode *addThis)
 
void DeleteChildren ()
 
void DeleteChild (XMLNode *node)
 
XMLNodeDeepClone (XMLDocument *target) const
 
void SetUserData (void *userData)
 
void * GetUserData () const
 
-

Detailed Description

-

A Document binds together all the functionality. It can be saved, loaded, and printed to the screen. All Nodes are connected and allocated to a Document. If the Document is deleted, all its Nodes are also deleted.

-

Member Function Documentation

- -

◆ Accept()

- -
-
- - - - - -
- - - - - - - - -
virtual bool tinyxml2::XMLDocument::Accept (XMLVisitorvisitor) const
-
-virtual
-
-

Accept a hierarchical visit of the nodes in the TinyXML-2 DOM. Every node in the XML tree will be conditionally visited and the host will be called back via the XMLVisitor interface.

-

This is essentially a SAX interface for TinyXML-2. (Note however it doesn't re-parse the XML for the callbacks, so the performance of TinyXML-2 is unchanged by using this interface versus any other.)

-

The interface has been based on ideas from:

- -

Which are both good references for "visiting".

-

An example of using Accept():

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

Implements tinyxml2::XMLNode.

- -
-
- -

◆ DeepCopy()

- -
-
- - - - - - - - -
void tinyxml2::XMLDocument::DeepCopy (XMLDocumenttarget)
-
-

Copies this document to a target document. The target will be completely cleared before the copy. If you want to copy a sub-tree, see XMLNode::DeepClone().

-

NOTE: that the 'target' must be non-null.

- -
-
- -

◆ DeleteNode()

- -
-
- - - - - - - - -
void tinyxml2::XMLDocument::DeleteNode (XMLNodenode)
-
-

Delete a node associated with this document. It will be unlinked from the DOM.

- -
-
- -

◆ HasBOM()

- -
-
- - - - - -
- - - - - - - -
bool tinyxml2::XMLDocument::HasBOM () const
-
-inline
-
-

Returns true if this document has a leading Byte Order Mark of UTF8.

- -
-
- -

◆ LoadFile() [1/2]

- -
-
- - - - - - - - -
XMLError tinyxml2::XMLDocument::LoadFile (const char * filename)
-
-

Load an XML file from disk. Returns XML_SUCCESS (0) on success, or an errorID.

- -
-
- -

◆ LoadFile() [2/2]

- -
-
- - - - - - - - -
XMLError tinyxml2::XMLDocument::LoadFile (FILE * )
-
-

Load an XML file from disk. You are responsible for providing and closing the FILE*.

-

NOTE: The file should be opened as binary ("rb") not text in order for TinyXML-2 to correctly do newline normalization.

-

Returns XML_SUCCESS (0) on success, or an errorID.

- -
-
- -

◆ NewComment()

- -
-
- - - - - - - - -
XMLComment* tinyxml2::XMLDocument::NewComment (const char * comment)
-
-

Create a new Comment associated with this Document. The memory for the Comment is managed by the Document.

- -
-
- -

◆ NewDeclaration()

- -
-
- - - - - - - - -
XMLDeclaration* tinyxml2::XMLDocument::NewDeclaration (const char * text = 0)
-
-

Create a new Declaration associated with this Document. The memory for the object is managed by the Document.

-

If the 'text' param is null, the standard declaration is used.:

    <?xml version="1.0" encoding="UTF-8"?>
-
-
-
- -

◆ NewElement()

- -
-
- - - - - - - - -
XMLElement* tinyxml2::XMLDocument::NewElement (const char * name)
-
-

Create a new Element associated with this Document. The memory for the Element is managed by the Document.

- -
-
- -

◆ NewText()

- -
-
- - - - - - - - -
XMLText* tinyxml2::XMLDocument::NewText (const char * text)
-
-

Create a new Text associated with this Document. The memory for the Text is managed by the Document.

- -
-
- -

◆ NewUnknown()

- -
-
- - - - - - - - -
XMLUnknown* tinyxml2::XMLDocument::NewUnknown (const char * text)
-
-

Create a new Unknown associated with this Document. The memory for the object is managed by the Document.

- -
-
- -

◆ Parse()

- -
-
- - - - - - - - - - - - - - - - - - -
XMLError tinyxml2::XMLDocument::Parse (const char * xml,
size_t nBytes = (size_t)(-1) 
)
-
-

Parse an XML file from a character string. Returns XML_SUCCESS (0) on success, or an errorID.

-

You may optionally pass in the 'nBytes', which is the number of bytes which will be parsed. If not specified, TinyXML-2 will assume 'xml' points to a null terminated string.

- -
-
- -

◆ Print()

- -
-
- - - - - - - - -
void tinyxml2::XMLDocument::Print (XMLPrinterstreamer = 0) const
-
-

Print the Document. If the Printer is not provided, it will print to stdout. If you provide Printer, this can print to a file:

XMLPrinter printer( fp );
-doc.Print( &printer );
-

Or you can use a printer to print to memory:

XMLPrinter printer;
-doc.Print( &printer );
-// printer.CStr() has a const char* to the XML
-
-
-
- -

◆ RootElement()

- -
-
- - - - - -
- - - - - - - -
XMLElement* tinyxml2::XMLDocument::RootElement ()
-
-inline
-
-

Return the root element of DOM. Equivalent to FirstChildElement(). To get the first node, use FirstChild().

- -
-
- -

◆ SaveFile() [1/2]

- -
-
- - - - - - - - - - - - - - - - - - -
XMLError tinyxml2::XMLDocument::SaveFile (const char * filename,
bool compact = false 
)
-
-

Save the XML file to disk. Returns XML_SUCCESS (0) on success, or an errorID.

- -
-
- -

◆ SaveFile() [2/2]

- -
-
- - - - - - - - - - - - - - - - - - -
XMLError tinyxml2::XMLDocument::SaveFile (FILE * fp,
bool compact = false 
)
-
-

Save the XML file to disk. You are responsible for providing and closing the FILE*.

-

Returns XML_SUCCESS (0) on success, or an errorID.

- -
-
- -

◆ SetBOM()

- -
-
- - - - - -
- - - - - - - - -
void tinyxml2::XMLDocument::SetBOM (bool useBOM)
-
-inline
-
-

Sets whether to write the BOM when writing the file.

- -
-
- -

◆ ShallowClone()

- -
-
- - - - - -
- - - - - - - - -
virtual XMLNode* tinyxml2::XMLDocument::ShallowClone (XMLDocumentdocument) const
-
-inlinevirtual
-
-

Make a copy of this node, but not its children. You may pass in a Document pointer that will be the owner of the new Node. If the 'document' is null, then the node returned will be allocated from the current Document. (this->GetDocument())

-

Note: if called on a XMLDocument, this will return null.

- -

Implements tinyxml2::XMLNode.

- -
-
- -

◆ ShallowEqual()

- -
-
- - - - - -
- - - - - - - - -
virtual bool tinyxml2::XMLDocument::ShallowEqual (const XMLNodecompare) const
-
-inlinevirtual
-
-

Test if 2 nodes are the same, but don't test children. The 2 nodes do not need to be in the same Document.

-

Note: if called on a XMLDocument, this will return false.

- -

Implements tinyxml2::XMLNode.

- -
-
-
The documentation for this class was generated from the following file: -
- - - - diff --git a/docs/classtinyxml2_1_1_x_m_l_document.png b/docs/classtinyxml2_1_1_x_m_l_document.png deleted file mode 100644 index 4fcf9f466dbe8299ecf452e000e909c62318e62f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 657 zcmeAS@N?(olHy`uVBq!ia0vp^lYlsYgBeI3ZM_4cBm#UwT>t<74`jZ0^R=}9&;%e0 zj1L?*z}k679?0b=3GxeO04f53tEWPY7#NroJY5_^Dj46+ecSh1frqtSc;);5C$@9O zw_P#~U9DSwv}?F>}esYbgapp0WN~6M) zS)0P28LfY)v4<_8Aw|cQrBZ0+S%1FBSQ)kC788>nazT9CMSQ9iPR*EkT;;l&P5JZr zDy6d=vY6ymZvPUh;q;uuHp^|*_apAF=1h~=UpoEPA){u6t76LeKW8=1V86HC!gHJN zo@FX8oo6}zid`hRBwp=Tz1{9fUrcjVJU?wwyHqH1Jc#K>PaZ>drtOm3xt7bmPI%|C z+EBM+i#FeZ>uyXRwoGKO$yH(Sm*zZh88^3HO0z}anh;}xDpYN-=q?bo;)` z%un}T35oeSsob>nMyO1}ZSngr{U_}EIaN}*_UrELpVGw>ctJkNR%#VE6!eQdTuk2O UU-YshVESS3boFyt=akR{09U0V`2YX_ diff --git a/docs/classtinyxml2_1_1_x_m_l_element-members.html b/docs/classtinyxml2_1_1_x_m_l_element-members.html deleted file mode 100644 index 276d6f9..0000000 --- a/docs/classtinyxml2_1_1_x_m_l_element-members.html +++ /dev/null @@ -1,158 +0,0 @@ - - - - - - - -TinyXML-2: Member List - - - - - - - - - -
-
- - - - - - -
-
TinyXML-2 -  5.0.1 -
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-
tinyxml2::XMLElement Member List
-
-
- -

This is the complete list of members for tinyxml2::XMLElement, including all inherited members.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Accept(XMLVisitor *visitor) consttinyxml2::XMLElementvirtual
Attribute(const char *name, const char *value=0) consttinyxml2::XMLElement
BoolAttribute(const char *name, bool defaultValue=false) consttinyxml2::XMLElement
BoolText(bool defaultValue=false) consttinyxml2::XMLElement
DeepClone(XMLDocument *target) consttinyxml2::XMLNode
DeleteAttribute(const char *name)tinyxml2::XMLElement
DeleteChild(XMLNode *node)tinyxml2::XMLNode
DeleteChildren()tinyxml2::XMLNode
DoubleAttribute(const char *name, double defaultValue=0) consttinyxml2::XMLElement
DoubleText(double defaultValue=0) consttinyxml2::XMLElement
FindAttribute(const char *name) consttinyxml2::XMLElement
FirstAttribute() consttinyxml2::XMLElementinline
FirstChild() consttinyxml2::XMLNodeinline
FirstChildElement(const char *name=0) consttinyxml2::XMLNode
FloatAttribute(const char *name, float defaultValue=0) consttinyxml2::XMLElement
FloatText(float defaultValue=0) consttinyxml2::XMLElement
GetDocument() consttinyxml2::XMLNodeinline
GetDocument()tinyxml2::XMLNodeinline
GetLineNum() consttinyxml2::XMLNodeinline
GetText() consttinyxml2::XMLElement
GetUserData() consttinyxml2::XMLNodeinline
InsertAfterChild(XMLNode *afterThis, XMLNode *addThis)tinyxml2::XMLNode
InsertEndChild(XMLNode *addThis)tinyxml2::XMLNode
InsertFirstChild(XMLNode *addThis)tinyxml2::XMLNode
Int64Attribute(const char *name, int64_t defaultValue=0) consttinyxml2::XMLElement
Int64Text(int64_t defaultValue=0) consttinyxml2::XMLElement
IntAttribute(const char *name, int defaultValue=0) consttinyxml2::XMLElement
LastChild() consttinyxml2::XMLNodeinline
LastChildElement(const char *name=0) consttinyxml2::XMLNode
Name() consttinyxml2::XMLElementinline
NextSibling() consttinyxml2::XMLNodeinline
NextSiblingElement(const char *name=0) consttinyxml2::XMLNode
NoChildren() consttinyxml2::XMLNodeinline
Parent() consttinyxml2::XMLNodeinline
PreviousSibling() consttinyxml2::XMLNodeinline
PreviousSiblingElement(const char *name=0) consttinyxml2::XMLNode
QueryAttribute(const char *name, int *value) consttinyxml2::XMLElementinline
QueryBoolAttribute(const char *name, bool *value) consttinyxml2::XMLElementinline
QueryBoolText(bool *bval) consttinyxml2::XMLElement
QueryDoubleAttribute(const char *name, double *value) consttinyxml2::XMLElementinline
QueryDoubleText(double *dval) consttinyxml2::XMLElement
QueryFloatAttribute(const char *name, float *value) consttinyxml2::XMLElementinline
QueryFloatText(float *fval) consttinyxml2::XMLElement
QueryInt64Attribute(const char *name, int64_t *value) consttinyxml2::XMLElementinline
QueryInt64Text(int64_t *uval) consttinyxml2::XMLElement
QueryIntAttribute(const char *name, int *value) consttinyxml2::XMLElementinline
QueryIntText(int *ival) consttinyxml2::XMLElement
QueryUnsignedAttribute(const char *name, unsigned int *value) consttinyxml2::XMLElementinline
QueryUnsignedText(unsigned *uval) consttinyxml2::XMLElement
SetAttribute(const char *name, const char *value)tinyxml2::XMLElementinline
SetAttribute(const char *name, int value)tinyxml2::XMLElementinline
SetAttribute(const char *name, unsigned value)tinyxml2::XMLElementinline
SetAttribute(const char *name, int64_t value)tinyxml2::XMLElementinline
SetAttribute(const char *name, bool value)tinyxml2::XMLElementinline
SetAttribute(const char *name, double value)tinyxml2::XMLElementinline
SetAttribute(const char *name, float value)tinyxml2::XMLElementinline
SetName(const char *str, bool staticMem=false)tinyxml2::XMLElementinline
SetText(const char *inText)tinyxml2::XMLElement
SetText(int value)tinyxml2::XMLElement
SetText(unsigned value)tinyxml2::XMLElement
SetText(int64_t value)tinyxml2::XMLElement
SetText(bool value)tinyxml2::XMLElement
SetText(double value)tinyxml2::XMLElement
SetText(float value)tinyxml2::XMLElement
SetUserData(void *userData)tinyxml2::XMLNodeinline
SetValue(const char *val, bool staticMem=false)tinyxml2::XMLNode
ShallowClone(XMLDocument *document) consttinyxml2::XMLElementvirtual
ShallowEqual(const XMLNode *compare) consttinyxml2::XMLElementvirtual
ToComment()tinyxml2::XMLNodeinlinevirtual
ToDeclaration()tinyxml2::XMLNodeinlinevirtual
ToDocument()tinyxml2::XMLNodeinlinevirtual
ToElement()tinyxml2::XMLElementinlinevirtual
ToText()tinyxml2::XMLNodeinlinevirtual
ToUnknown()tinyxml2::XMLNodeinlinevirtual
UnsignedAttribute(const char *name, unsigned defaultValue=0) consttinyxml2::XMLElement
UnsignedText(unsigned defaultValue=0) consttinyxml2::XMLElement
Value() consttinyxml2::XMLNode
- - - - diff --git a/docs/classtinyxml2_1_1_x_m_l_element.html b/docs/classtinyxml2_1_1_x_m_l_element.html deleted file mode 100644 index b6e8d70..0000000 --- a/docs/classtinyxml2_1_1_x_m_l_element.html +++ /dev/null @@ -1,708 +0,0 @@ - - - - - - - -TinyXML-2: tinyxml2::XMLElement Class Reference - - - - - - - - - -
-
- - - - - - -
-
TinyXML-2 -  5.0.1 -
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
- -
-
tinyxml2::XMLElement Class Reference
-
-
- -

#include <tinyxml2.h>

-
-Inheritance diagram for tinyxml2::XMLElement:
-
-
- - -tinyxml2::XMLNode - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Public Member Functions

-const char * Name () const
 Get the name of an element (which is the Value() of the node.)
 
-void SetName (const char *str, bool staticMem=false)
 Set the name of the element.
 
-virtual XMLElementToElement ()
 Safely cast to an Element, or null.
 
virtual bool Accept (XMLVisitor *visitor) const
 
const char * Attribute (const char *name, const char *value=0) const
 
int IntAttribute (const char *name, int defaultValue=0) const
 
-unsigned UnsignedAttribute (const char *name, unsigned defaultValue=0) const
 See IntAttribute()
 
-int64_t Int64Attribute (const char *name, int64_t defaultValue=0) const
 See IntAttribute()
 
-bool BoolAttribute (const char *name, bool defaultValue=false) const
 See IntAttribute()
 
-double DoubleAttribute (const char *name, double defaultValue=0) const
 See IntAttribute()
 
-float FloatAttribute (const char *name, float defaultValue=0) const
 See IntAttribute()
 
XMLError QueryIntAttribute (const char *name, int *value) const
 
-XMLError QueryUnsignedAttribute (const char *name, unsigned int *value) const
 See QueryIntAttribute()
 
-XMLError QueryInt64Attribute (const char *name, int64_t *value) const
 See QueryIntAttribute()
 
-XMLError QueryBoolAttribute (const char *name, bool *value) const
 See QueryIntAttribute()
 
-XMLError QueryDoubleAttribute (const char *name, double *value) const
 See QueryIntAttribute()
 
-XMLError QueryFloatAttribute (const char *name, float *value) const
 See QueryIntAttribute()
 
int QueryAttribute (const char *name, int *value) const
 
-void SetAttribute (const char *name, const char *value)
 Sets the named attribute to value.
 
-void SetAttribute (const char *name, int value)
 Sets the named attribute to value.
 
-void SetAttribute (const char *name, unsigned value)
 Sets the named attribute to value.
 
-void SetAttribute (const char *name, int64_t value)
 Sets the named attribute to value.
 
-void SetAttribute (const char *name, bool value)
 Sets the named attribute to value.
 
-void SetAttribute (const char *name, double value)
 Sets the named attribute to value.
 
-void SetAttribute (const char *name, float value)
 Sets the named attribute to value.
 
void DeleteAttribute (const char *name)
 
-const XMLAttributeFirstAttribute () const
 Return the first attribute in the list.
 
-const XMLAttributeFindAttribute (const char *name) const
 Query a specific attribute in the list.
 
const char * GetText () const
 
void SetText (const char *inText)
 
-void SetText (int value)
 Convenience method for setting text inside an element. See SetText() for important limitations.
 
-void SetText (unsigned value)
 Convenience method for setting text inside an element. See SetText() for important limitations.
 
-void SetText (int64_t value)
 Convenience method for setting text inside an element. See SetText() for important limitations.
 
-void SetText (bool value)
 Convenience method for setting text inside an element. See SetText() for important limitations.
 
-void SetText (double value)
 Convenience method for setting text inside an element. See SetText() for important limitations.
 
-void SetText (float value)
 Convenience method for setting text inside an element. See SetText() for important limitations.
 
XMLError QueryIntText (int *ival) const
 
-XMLError QueryUnsignedText (unsigned *uval) const
 See QueryIntText()
 
-XMLError QueryInt64Text (int64_t *uval) const
 See QueryIntText()
 
-XMLError QueryBoolText (bool *bval) const
 See QueryIntText()
 
-XMLError QueryDoubleText (double *dval) const
 See QueryIntText()
 
-XMLError QueryFloatText (float *fval) const
 See QueryIntText()
 
-unsigned UnsignedText (unsigned defaultValue=0) const
 See QueryIntText()
 
-int64_t Int64Text (int64_t defaultValue=0) const
 See QueryIntText()
 
-bool BoolText (bool defaultValue=false) const
 See QueryIntText()
 
-double DoubleText (double defaultValue=0) const
 See QueryIntText()
 
-float FloatText (float defaultValue=0) const
 See QueryIntText()
 
virtual XMLNodeShallowClone (XMLDocument *document) const
 
virtual bool ShallowEqual (const XMLNode *compare) const
 
- Public Member Functions inherited from tinyxml2::XMLNode
-const XMLDocumentGetDocument () const
 Get the XMLDocument that owns this XMLNode.
 
-XMLDocumentGetDocument ()
 Get the XMLDocument that owns this XMLNode.
 
-virtual XMLTextToText ()
 Safely cast to Text, or null.
 
-virtual XMLCommentToComment ()
 Safely cast to a Comment, or null.
 
-virtual XMLDocumentToDocument ()
 Safely cast to a Document, or null.
 
-virtual XMLDeclarationToDeclaration ()
 Safely cast to a Declaration, or null.
 
-virtual XMLUnknownToUnknown ()
 Safely cast to an Unknown, or null.
 
const char * Value () const
 
void SetValue (const char *val, bool staticMem=false)
 
-int GetLineNum () const
 Gets the line number the node is in, if the document was parsed from a file.
 
-const XMLNodeParent () const
 Get the parent of this node on the DOM.
 
-bool NoChildren () const
 Returns true if this node has no children.
 
-const XMLNodeFirstChild () const
 Get the first child node, or null if none exists.
 
const XMLElementFirstChildElement (const char *name=0) const
 
-const XMLNodeLastChild () const
 Get the last child node, or null if none exists.
 
const XMLElementLastChildElement (const char *name=0) const
 
-const XMLNodePreviousSibling () const
 Get the previous (left) sibling node of this node.
 
-const XMLElementPreviousSiblingElement (const char *name=0) const
 Get the previous (left) sibling element of this node, with an optionally supplied name.
 
-const XMLNodeNextSibling () const
 Get the next (right) sibling node of this node.
 
-const XMLElementNextSiblingElement (const char *name=0) const
 Get the next (right) sibling element of this node, with an optionally supplied name.
 
XMLNodeInsertEndChild (XMLNode *addThis)
 
XMLNodeInsertFirstChild (XMLNode *addThis)
 
XMLNodeInsertAfterChild (XMLNode *afterThis, XMLNode *addThis)
 
void DeleteChildren ()
 
void DeleteChild (XMLNode *node)
 
XMLNodeDeepClone (XMLDocument *target) const
 
void SetUserData (void *userData)
 
void * GetUserData () const
 
-

Detailed Description

-

The element is a container class. It has a value, the element name, and can contain other elements, text, comments, and unknowns. Elements also contain an arbitrary number of attributes.

-

Member Function Documentation

- -

◆ Accept()

- -
-
- - - - - -
- - - - - - - - -
virtual bool tinyxml2::XMLElement::Accept (XMLVisitorvisitor) const
-
-virtual
-
-

Accept a hierarchical visit of the nodes in the TinyXML-2 DOM. Every node in the XML tree will be conditionally visited and the host will be called back via the XMLVisitor interface.

-

This is essentially a SAX interface for TinyXML-2. (Note however it doesn't re-parse the XML for the callbacks, so the performance of TinyXML-2 is unchanged by using this interface versus any other.)

-

The interface has been based on ideas from:

- -

Which are both good references for "visiting".

-

An example of using Accept():

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

Implements tinyxml2::XMLNode.

- -
-
- -

◆ Attribute()

- -
-
- - - - - - - - - - - - - - - - - - -
const char* tinyxml2::XMLElement::Attribute (const char * name,
const char * value = 0 
) const
-
-

Given an attribute name, Attribute() returns the value for the attribute of that name, or null if none exists. For example:

-
const char* value = ele->Attribute( "foo" );
-

The 'value' parameter is normally null. However, if specified, the attribute will only be returned if the 'name' and 'value' match. This allow you to write code:

-
if ( ele->Attribute( "foo", "bar" ) ) callFooIsBar();
-

rather than:

if ( ele->Attribute( "foo" ) ) {
-    if ( strcmp( ele->Attribute( "foo" ), "bar" ) == 0 ) callFooIsBar();
-}
-
-
-
- -

◆ DeleteAttribute()

- -
-
- - - - - - - - -
void tinyxml2::XMLElement::DeleteAttribute (const char * name)
-
-

Delete an attribute.

- -
-
- -

◆ GetText()

- -
-
- - - - - - - -
const char* tinyxml2::XMLElement::GetText () const
-
-

Convenience function for easy access to the text inside an element. Although easy and concise, GetText() is limited compared to getting the XMLText child and accessing it directly.

-

If the first child of 'this' is a XMLText, the GetText() returns the character string of the Text node, else null is returned.

-

This is a convenient method for getting the text of simple contained text:

<foo>This is text</foo>
-    const char* str = fooElement->GetText();
-

'str' will be a pointer to "This is text".

-

Note that this function can be misleading. If the element foo was created from this XML:

    <foo><b>This is text</b></foo>
-

then the value of str would be null. The first child node isn't a text node, it is another element. From this XML:

    <foo>This is <b>text</b></foo>
-

GetText() will return "This is ".

- -
-
- -

◆ IntAttribute()

- -
-
- - - - - - - - - - - - - - - - - - -
int tinyxml2::XMLElement::IntAttribute (const char * name,
int defaultValue = 0 
) const
-
-

Given an attribute name, IntAttribute() returns the value of the attribute interpreted as an integer. The default value will be returned if the attribute isn't present, or if there is an error. (For a method with error checking, see QueryIntAttribute()).

- -
-
- -

◆ QueryAttribute()

- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
int tinyxml2::XMLElement::QueryAttribute (const char * name,
int * value 
) const
-
-inline
-
-

Given an attribute name, QueryAttribute() 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 QueryIntAttribute() and related functions.

-

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:

-
int value = 10;
-QueryAttribute( "foo", &value );        // if "foo" isn't found, value will still be 10
-
-
-
- -

◆ QueryIntAttribute()

- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
XMLError tinyxml2::XMLElement::QueryIntAttribute (const char * name,
int * value 
) const
-
-inline
-
-

Given an attribute name, QueryIntAttribute() returns XML_SUCCESS, XML_WRONG_ATTRIBUTE_TYPE if the conversion can't be performed, or XML_NO_ATTRIBUTE if the attribute doesn't exist. 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:

-
int value = 10;
-QueryIntAttribute( "foo", &value );     // if "foo" isn't found, value will still be 10
-
-
-
- -

◆ QueryIntText()

- -
-
- - - - - - - - -
XMLError tinyxml2::XMLElement::QueryIntText (int * ival) const
-
-

Convenience method to query the value of a child text node. This is probably best shown by example. Given you have a document is this form:

    <point>
-        <x>1</x>
-        <y>1.4</y>
-    </point>
-

The QueryIntText() and similar functions provide a safe and easier way to get to the "value" of x and y.

-
    int x = 0;
-    float y = 0;    // types of x and y are contrived for example
-    const XMLElement* xElement = pointElement->FirstChildElement( "x" );
-    const XMLElement* yElement = pointElement->FirstChildElement( "y" );
-    xElement->QueryIntText( &x );
-    yElement->QueryFloatText( &y );
-
Returns
XML_SUCCESS (0) on success, XML_CAN_NOT_CONVERT_TEXT if the text cannot be converted to the requested type, and XML_NO_TEXT_NODE if there is no child text to query.
- -
-
- -

◆ SetText()

- -
-
- - - - - - - - -
void tinyxml2::XMLElement::SetText (const char * inText)
-
-

Convenience function for easy access to the text inside an element. Although easy and concise, SetText() is limited compared to creating an XMLText child and mutating it directly.

-

If the first child of 'this' is a XMLText, SetText() sets its value to the given string, otherwise it will create a first child that is an XMLText.

-

This is a convenient method for setting the text of simple contained text:

<foo>This is text</foo>
-    fooElement->SetText( "Hullaballoo!" );
-<foo>Hullaballoo!</foo>
-

Note that this function can be misleading. If the element foo was created from this XML:

    <foo><b>This is text</b></foo>
-

then it will not change "This is text", but rather prefix it with a text element:

    <foo>Hullaballoo!<b>This is text</b></foo>
-

For this XML:

    <foo />
-

SetText() will generate

    <foo>Hullaballoo!</foo>
-
-
-
- -

◆ ShallowClone()

- -
-
- - - - - -
- - - - - - - - -
virtual XMLNode* tinyxml2::XMLElement::ShallowClone (XMLDocumentdocument) const
-
-virtual
-
-

Make a copy of this node, but not its children. You may pass in a Document pointer that will be the owner of the new Node. If the 'document' is null, then the node returned will be allocated from the current Document. (this->GetDocument())

-

Note: if called on a XMLDocument, this will return null.

- -

Implements tinyxml2::XMLNode.

- -
-
- -

◆ ShallowEqual()

- -
-
- - - - - -
- - - - - - - - -
virtual bool tinyxml2::XMLElement::ShallowEqual (const XMLNodecompare) const
-
-virtual
-
-

Test if 2 nodes are the same, but don't test children. The 2 nodes do not need to be in the same Document.

-

Note: if called on a XMLDocument, this will return false.

- -

Implements tinyxml2::XMLNode.

- -
-
-
The documentation for this class was generated from the following file: -
- - - - diff --git a/docs/classtinyxml2_1_1_x_m_l_element.png b/docs/classtinyxml2_1_1_x_m_l_element.png deleted file mode 100644 index b76dc5b5465b9f7c5586846f92b117a0035c0983..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 618 zcmV-w0+s!VP)%jey0000OP)t-s|Ns90 z008Lh^>vTJkN^MxkN^Mxkifve1&Q1r00008bW%=J0RR90|NsC0)yh;d0005`NklyGOn41~vn)c1en)0CU-dP8znN}`o3Pk{jThk@iTN-5=jp^)U=N{qxH$w(eU zK1Py1YU>x7qiRh}oYm3grjw*mfI*UbYEdjlWvfkv@hQ(^Y^(fu`8cR*u3Cp%=>kLb zRX6R4O6Ja{G*8XPc-9$J?7^sl1{liIS2A}nZ0>t%W@nh_2qScO9;2s{6lGr&9j!B{ zjnkXii|t2p+AfAks*u|J)j5Shl12wG=Dx2nT%eK5(`Un82vresTFt6vGVp4^|J@Xl z+77%%Nb=X($GD1OALBBL{KAr)mKe{(D5aF!1pvR*3jprdGcaDSM{qm?<4y4dj)!36 zO#z@RF%km+A|*y*06?U~NDKgolo*Kt0Fe?SF#sS^V*F7I5s~`^0f4)e7>NM@kp{-Q zSOIPQ+o9HNGjUei@n5fTM4uP{u&3tMa#Xe!Te&^x)nT-&`~DlgYtL5L_-8R{0*9B` z-X8R+c2kh0Ff zc0Z{*Z_$h2tv_H~{f3V*F8|Kt7d9~fAkuR%L_}`aKX!Q>!ZILyHvj+t07*qoM6N<$ Ef;>?j^Z)<= diff --git a/docs/classtinyxml2_1_1_x_m_l_handle-members.html b/docs/classtinyxml2_1_1_x_m_l_handle-members.html deleted file mode 100644 index 24b4a12..0000000 --- a/docs/classtinyxml2_1_1_x_m_l_handle-members.html +++ /dev/null @@ -1,98 +0,0 @@ - - - - - - - -TinyXML-2: Member List - - - - - - - - - -
-
- - - - - - -
-
TinyXML-2 -  5.0.1 -
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-
tinyxml2::XMLHandle Member List
-
-
- -

This is the complete list of members for tinyxml2::XMLHandle, including all inherited members.

- - - - - - - - - - - - - - - - - - -
FirstChild()tinyxml2::XMLHandleinline
FirstChildElement(const char *name=0)tinyxml2::XMLHandleinline
LastChild()tinyxml2::XMLHandleinline
LastChildElement(const char *name=0)tinyxml2::XMLHandleinline
NextSibling()tinyxml2::XMLHandleinline
NextSiblingElement(const char *name=0)tinyxml2::XMLHandleinline
operator=(const XMLHandle &ref)tinyxml2::XMLHandleinline
PreviousSibling()tinyxml2::XMLHandleinline
PreviousSiblingElement(const char *name=0)tinyxml2::XMLHandleinline
ToDeclaration()tinyxml2::XMLHandleinline
ToElement()tinyxml2::XMLHandleinline
ToNode()tinyxml2::XMLHandleinline
ToText()tinyxml2::XMLHandleinline
ToUnknown()tinyxml2::XMLHandleinline
XMLHandle(XMLNode *node)tinyxml2::XMLHandleinline
XMLHandle(XMLNode &node)tinyxml2::XMLHandleinline
XMLHandle(const XMLHandle &ref)tinyxml2::XMLHandleinline
- - - - diff --git a/docs/classtinyxml2_1_1_x_m_l_handle.html b/docs/classtinyxml2_1_1_x_m_l_handle.html deleted file mode 100644 index 7662050..0000000 --- a/docs/classtinyxml2_1_1_x_m_l_handle.html +++ /dev/null @@ -1,189 +0,0 @@ - - - - - - - -TinyXML-2: tinyxml2::XMLHandle Class Reference - - - - - - - - - -
-
- - - - - - -
-
TinyXML-2 -  5.0.1 -
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
- -
-
tinyxml2::XMLHandle Class Reference
-
-
- -

#include <tinyxml2.h>

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Public Member Functions

XMLHandle (XMLNode *node)
 Create a handle from any node (at any depth of the tree.) This can be a null pointer.
 
XMLHandle (XMLNode &node)
 Create a handle from a node.
 
XMLHandle (const XMLHandle &ref)
 Copy constructor.
 
-XMLHandleoperator= (const XMLHandle &ref)
 Assignment.
 
-XMLHandle FirstChild ()
 Get the first child of this handle.
 
-XMLHandle FirstChildElement (const char *name=0)
 Get the first child element of this handle.
 
-XMLHandle LastChild ()
 Get the last child of this handle.
 
-XMLHandle LastChildElement (const char *name=0)
 Get the last child element of this handle.
 
-XMLHandle PreviousSibling ()
 Get the previous sibling of this handle.
 
-XMLHandle PreviousSiblingElement (const char *name=0)
 Get the previous sibling element of this handle.
 
-XMLHandle NextSibling ()
 Get the next sibling of this handle.
 
-XMLHandle NextSiblingElement (const char *name=0)
 Get the next sibling element of this handle.
 
-XMLNodeToNode ()
 Safe cast to XMLNode. This can return null.
 
-XMLElementToElement ()
 Safe cast to XMLElement. This can return null.
 
-XMLTextToText ()
 Safe cast to XMLText. This can return null.
 
-XMLUnknownToUnknown ()
 Safe cast to XMLUnknown. This can return null.
 
-XMLDeclarationToDeclaration ()
 Safe cast to XMLDeclaration. This can return null.
 
-

Detailed Description

-

A XMLHandle is a class that wraps a node pointer with null checks; this is an incredibly useful thing. Note that XMLHandle is not part of the TinyXML-2 DOM structure. It is a separate utility class.

-

Take an example:

<Document>
-    <Element attributeA = "valueA">
-        <Child attributeB = "value1" />
-        <Child attributeB = "value2" />
-    </Element>
-</Document>
-

Assuming you want the value of "attributeB" in the 2nd "Child" element, it's very easy to write a lot of code that looks like:

-
XMLElement* root = document.FirstChildElement( "Document" );
-if ( root )
-{
-    XMLElement* element = root->FirstChildElement( "Element" );
-    if ( element )
-    {
-        XMLElement* child = element->FirstChildElement( "Child" );
-        if ( child )
-        {
-            XMLElement* child2 = child->NextSiblingElement( "Child" );
-            if ( child2 )
-            {
-                // Finally do something useful.
-

And that doesn't even cover "else" cases. XMLHandle addresses the verbosity of such code. A XMLHandle checks for null pointers so it is perfectly safe and correct to use:

-
XMLHandle docHandle( &document );
-XMLElement* child2 = docHandle.FirstChildElement( "Document" ).FirstChildElement( "Element" ).FirstChildElement().NextSiblingElement();
-if ( child2 )
-{
-    // do something useful
-

Which is MUCH more concise and useful.

-

It is also safe to copy handles - internally they are nothing more than node pointers.

XMLHandle handleCopy = handle;
-

See also XMLConstHandle, which is the same as XMLHandle, but operates on const objects.

-

The documentation for this class was generated from the following file: -
- - - - diff --git a/docs/classtinyxml2_1_1_x_m_l_node-members.html b/docs/classtinyxml2_1_1_x_m_l_node-members.html deleted file mode 100644 index 46d4609..0000000 --- a/docs/classtinyxml2_1_1_x_m_l_node-members.html +++ /dev/null @@ -1,113 +0,0 @@ - - - - - - - -TinyXML-2: Member List - - - - - - - - - -
-
- - - - - - -
-
TinyXML-2 -  5.0.1 -
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-
tinyxml2::XMLNode Member List
-
-
- -

This is the complete list of members for tinyxml2::XMLNode, including all inherited members.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Accept(XMLVisitor *visitor) const =0tinyxml2::XMLNodepure virtual
DeepClone(XMLDocument *target) consttinyxml2::XMLNode
DeleteChild(XMLNode *node)tinyxml2::XMLNode
DeleteChildren()tinyxml2::XMLNode
FirstChild() consttinyxml2::XMLNodeinline
FirstChildElement(const char *name=0) consttinyxml2::XMLNode
GetDocument() consttinyxml2::XMLNodeinline
GetDocument()tinyxml2::XMLNodeinline
GetLineNum() consttinyxml2::XMLNodeinline
GetUserData() consttinyxml2::XMLNodeinline
InsertAfterChild(XMLNode *afterThis, XMLNode *addThis)tinyxml2::XMLNode
InsertEndChild(XMLNode *addThis)tinyxml2::XMLNode
InsertFirstChild(XMLNode *addThis)tinyxml2::XMLNode
LastChild() consttinyxml2::XMLNodeinline
LastChildElement(const char *name=0) consttinyxml2::XMLNode
NextSibling() consttinyxml2::XMLNodeinline
NextSiblingElement(const char *name=0) consttinyxml2::XMLNode
NoChildren() consttinyxml2::XMLNodeinline
Parent() consttinyxml2::XMLNodeinline
PreviousSibling() consttinyxml2::XMLNodeinline
PreviousSiblingElement(const char *name=0) consttinyxml2::XMLNode
SetUserData(void *userData)tinyxml2::XMLNodeinline
SetValue(const char *val, bool staticMem=false)tinyxml2::XMLNode
ShallowClone(XMLDocument *document) const =0tinyxml2::XMLNodepure virtual
ShallowEqual(const XMLNode *compare) const =0tinyxml2::XMLNodepure virtual
ToComment()tinyxml2::XMLNodeinlinevirtual
ToDeclaration()tinyxml2::XMLNodeinlinevirtual
ToDocument()tinyxml2::XMLNodeinlinevirtual
ToElement()tinyxml2::XMLNodeinlinevirtual
ToText()tinyxml2::XMLNodeinlinevirtual
ToUnknown()tinyxml2::XMLNodeinlinevirtual
Value() consttinyxml2::XMLNode
- - - - diff --git a/docs/classtinyxml2_1_1_x_m_l_node.html b/docs/classtinyxml2_1_1_x_m_l_node.html deleted file mode 100644 index aa1dc30..0000000 --- a/docs/classtinyxml2_1_1_x_m_l_node.html +++ /dev/null @@ -1,581 +0,0 @@ - - - - - - - -TinyXML-2: tinyxml2::XMLNode Class Reference - - - - - - - - - -
-
- - - - - - -
-
TinyXML-2 -  5.0.1 -
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
- -
-
tinyxml2::XMLNode Class Referenceabstract
-
-
- -

#include <tinyxml2.h>

-
-Inheritance diagram for tinyxml2::XMLNode:
-
-
- - -tinyxml2::XMLComment -tinyxml2::XMLDeclaration -tinyxml2::XMLDocument -tinyxml2::XMLElement -tinyxml2::XMLText -tinyxml2::XMLUnknown - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Public Member Functions

-const XMLDocumentGetDocument () const
 Get the XMLDocument that owns this XMLNode.
 
-XMLDocumentGetDocument ()
 Get the XMLDocument that owns this XMLNode.
 
-virtual XMLElementToElement ()
 Safely cast to an Element, or null.
 
-virtual XMLTextToText ()
 Safely cast to Text, or null.
 
-virtual XMLCommentToComment ()
 Safely cast to a Comment, or null.
 
-virtual XMLDocumentToDocument ()
 Safely cast to a Document, or null.
 
-virtual XMLDeclarationToDeclaration ()
 Safely cast to a Declaration, or null.
 
-virtual XMLUnknownToUnknown ()
 Safely cast to an Unknown, or null.
 
const char * Value () const
 
void SetValue (const char *val, bool staticMem=false)
 
-int GetLineNum () const
 Gets the line number the node is in, if the document was parsed from a file.
 
-const XMLNodeParent () const
 Get the parent of this node on the DOM.
 
-bool NoChildren () const
 Returns true if this node has no children.
 
-const XMLNodeFirstChild () const
 Get the first child node, or null if none exists.
 
const XMLElementFirstChildElement (const char *name=0) const
 
-const XMLNodeLastChild () const
 Get the last child node, or null if none exists.
 
const XMLElementLastChildElement (const char *name=0) const
 
-const XMLNodePreviousSibling () const
 Get the previous (left) sibling node of this node.
 
-const XMLElementPreviousSiblingElement (const char *name=0) const
 Get the previous (left) sibling element of this node, with an optionally supplied name.
 
-const XMLNodeNextSibling () const
 Get the next (right) sibling node of this node.
 
-const XMLElementNextSiblingElement (const char *name=0) const
 Get the next (right) sibling element of this node, with an optionally supplied name.
 
XMLNodeInsertEndChild (XMLNode *addThis)
 
XMLNodeInsertFirstChild (XMLNode *addThis)
 
XMLNodeInsertAfterChild (XMLNode *afterThis, XMLNode *addThis)
 
void DeleteChildren ()
 
void DeleteChild (XMLNode *node)
 
virtual XMLNodeShallowClone (XMLDocument *document) const =0
 
XMLNodeDeepClone (XMLDocument *target) const
 
virtual bool ShallowEqual (const XMLNode *compare) const =0
 
virtual bool Accept (XMLVisitor *visitor) const =0
 
void SetUserData (void *userData)
 
void * GetUserData () const
 
-

Detailed Description

-

XMLNode is a base class for every object that is in the XML Document Object Model (DOM), except XMLAttributes. Nodes have siblings, a parent, and children which can be navigated. A node is always in a XMLDocument. The type of a XMLNode can be queried, and it can be cast to its more defined type.

-

A XMLDocument allocates memory for all its Nodes. When the XMLDocument gets deleted, all its Nodes will also be deleted.

-
A Document can contain: Element (container or leaf)
-                        Comment (leaf)
-                        Unknown (leaf)
-                        Declaration( leaf )
-
-An Element can contain: Element (container or leaf)
-                        Text    (leaf)
-                        Attributes (not on tree)
-                        Comment (leaf)
-                        Unknown (leaf)

Member Function Documentation

- -

◆ Accept()

- -
-
- - - - - -
- - - - - - - - -
virtual bool tinyxml2::XMLNode::Accept (XMLVisitorvisitor) const
-
-pure virtual
-
-

Accept a hierarchical visit of the nodes in the TinyXML-2 DOM. Every node in the XML tree will be conditionally visited and the host will be called back via the XMLVisitor interface.

-

This is essentially a SAX interface for TinyXML-2. (Note however it doesn't re-parse the XML for the callbacks, so the performance of TinyXML-2 is unchanged by using this interface versus any other.)

-

The interface has been based on ideas from:

- -

Which are both good references for "visiting".

-

An example of using Accept():

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

Implemented in tinyxml2::XMLDocument, tinyxml2::XMLElement, tinyxml2::XMLUnknown, tinyxml2::XMLDeclaration, tinyxml2::XMLComment, and tinyxml2::XMLText.

- -
-
- -

◆ DeepClone()

- -
-
- - - - - - - - -
XMLNode* tinyxml2::XMLNode::DeepClone (XMLDocumenttarget) const
-
-

Make a copy of this node and all its children.

-

If the 'target' is null, then the nodes will be allocated in the current document. If 'target' is specified, the memory will be allocated is the specified XMLDocument.

-

NOTE: This is probably not the correct tool to copy a document, since XMLDocuments can have multiple top level XMLNodes. You probably want to use XMLDocument::DeepCopy()

- -
-
- -

◆ DeleteChild()

- -
-
- - - - - - - - -
void tinyxml2::XMLNode::DeleteChild (XMLNodenode)
-
-

Delete a child of this node.

- -
-
- -

◆ DeleteChildren()

- -
-
- - - - - - - -
void tinyxml2::XMLNode::DeleteChildren ()
-
-

Delete all the children of this node.

- -
-
- -

◆ FirstChildElement()

- -
-
- - - - - - - - -
const XMLElement* tinyxml2::XMLNode::FirstChildElement (const char * name = 0) const
-
-

Get the first child element, or optionally the first child element with the specified name.

- -
-
- -

◆ GetUserData()

- -
-
- - - - - -
- - - - - - - -
void* tinyxml2::XMLNode::GetUserData () const
-
-inline
-
-

Get user data set into the XMLNode. TinyXML-2 in no way processes or interprets user data. It is initially 0.

- -
-
- -

◆ InsertAfterChild()

- -
-
- - - - - - - - - - - - - - - - - - -
XMLNode* tinyxml2::XMLNode::InsertAfterChild (XMLNodeafterThis,
XMLNodeaddThis 
)
-
-

Add a node after the specified child node. If the child node is already part of the document, it is moved from its old location to the new location. Returns the addThis argument or 0 if the afterThis node is not a child of this node, or if the node does not belong to the same document.

- -
-
- -

◆ InsertEndChild()

- -
-
- - - - - - - - -
XMLNode* tinyxml2::XMLNode::InsertEndChild (XMLNodeaddThis)
-
-

Add a child node as the last (right) child. If the child node is already part of the document, it is moved from its old location to the new location. Returns the addThis argument or 0 if the node does not belong to the same document.

- -
-
- -

◆ InsertFirstChild()

- -
-
- - - - - - - - -
XMLNode* tinyxml2::XMLNode::InsertFirstChild (XMLNodeaddThis)
-
-

Add a child node as the first (left) child. If the child node is already part of the document, it is moved from its old location to the new location. Returns the addThis argument or 0 if the node does not belong to the same document.

- -
-
- -

◆ LastChildElement()

- -
-
- - - - - - - - -
const XMLElement* tinyxml2::XMLNode::LastChildElement (const char * name = 0) const
-
-

Get the last child element or optionally the last child element with the specified name.

- -
-
- -

◆ SetUserData()

- -
-
- - - - - -
- - - - - - - - -
void tinyxml2::XMLNode::SetUserData (void * userData)
-
-inline
-
-

Set user data into the XMLNode. TinyXML-2 in no way processes or interprets user data. It is initially 0.

- -
-
- -

◆ SetValue()

- -
-
- - - - - - - - - - - - - - - - - - -
void tinyxml2::XMLNode::SetValue (const char * val,
bool staticMem = false 
)
-
-

Set the Value of an XML node.

See also
Value()
- -
-
- -

◆ ShallowClone()

- -
-
- - - - - -
- - - - - - - - -
virtual XMLNode* tinyxml2::XMLNode::ShallowClone (XMLDocumentdocument) const
-
-pure virtual
-
-

Make a copy of this node, but not its children. You may pass in a Document pointer that will be the owner of the new Node. If the 'document' is null, then the node returned will be allocated from the current Document. (this->GetDocument())

-

Note: if called on a XMLDocument, this will return null.

- -

Implemented in tinyxml2::XMLDocument, tinyxml2::XMLElement, tinyxml2::XMLUnknown, tinyxml2::XMLDeclaration, tinyxml2::XMLComment, and tinyxml2::XMLText.

- -
-
- -

◆ ShallowEqual()

- -
-
- - - - - -
- - - - - - - - -
virtual bool tinyxml2::XMLNode::ShallowEqual (const XMLNodecompare) const
-
-pure virtual
-
-

Test if 2 nodes are the same, but don't test children. The 2 nodes do not need to be in the same Document.

-

Note: if called on a XMLDocument, this will return false.

- -

Implemented in tinyxml2::XMLDocument, tinyxml2::XMLElement, tinyxml2::XMLUnknown, tinyxml2::XMLDeclaration, tinyxml2::XMLComment, and tinyxml2::XMLText.

- -
-
- -

◆ Value()

- -
-
- - - - - - - -
const char* tinyxml2::XMLNode::Value () const
-
-

The meaning of 'value' changes for the specific type.

Document:   empty (NULL is returned, not an empty string)
-Element:    name of the element
-Comment:    the comment text
-Unknown:    the tag contents
-Text:       the text string
-
-
-
-
The documentation for this class was generated from the following file: -
- - - - diff --git a/docs/classtinyxml2_1_1_x_m_l_node.png b/docs/classtinyxml2_1_1_x_m_l_node.png deleted file mode 100644 index cb1e7ce191b61a5d9696a6ad4e8d0851896e182b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1845 zcmb_dc~BE)6b~R^X=ADt)SzVOghQfGsmdj{N0!?VP)3fHN~1sv0YXigERx8TmcCc{a*H>-?o#j7Y^U;&C06I&#^jV%lw#RoLd`IG zV^?1SJDS@{b&|^$!kJ)vHUn*7SyrrH;X-_Ui7K#G7B^Nqx;h!x^{L@E!xlsNwD8kA zFnU#s%BF*<s~2<2lKq1GjGtk(cDdtdNpFB1GG>r)O;0Em*3z)ma8az#Kq%$*}!ymwgx}#18DFJHWz1EP!7!4T`Z4 z59V1NLt6l1!mQ9Yqc9*YPzIbj94dP)Fnj7NEJd{~^l4s9WzD;2L>IUsUfnD6dvSbj z>?yv$4dd}!z%%iu?=i!m?3aUb|b*2gg5?XzsZgQsGnQsoG@GNZ15p+Z4tNkz}cdB;` z86P3ThK!EmguXIv<{N=rL0;UgXMg0!)505OE~NoHm+LkxlT`8P(&8N-sPdC|^YcYf z{8_R5z`(*VeR#}jEwZ=jVd(5z04FS}S@srNQ^tSdF`O$y$rHgHB%jgSqRGyDrF|E5 z7+0W9c{V=&Y*KPSwXe5+DYvlSsk8XZ!U09B!!XNB>@2=r&1riPYm*hy9##vAw$+oZ z6-1fEU6tpoNiDc%zWdrpWFGSkI;McXbg+B5Wcu-Bdl4%Ss7m&f{rq5`fA)DJBT+Qd zahLT#f2F&uZqoWVJM6}pg@lO|f~)HUy=yS%VJw}03RH-2PAO>|Od&r|QV9mKd>JuA zO#b*a8`L9t1L@%|<4PBB8E2d_`~BYbk$W+8b-jN2hm_o;&iAWd7Tx$t=$&Cj;g-n> z(p#M;DrR^i+4f6?v`lbtuDkC?F1V*^)`8$3l#cHn=qD%A6el@7>?UvVUU9=VXRO0# znP6IG-6@$ov40<>$uMH*p$K#>pe0J8R)1O?#Pa&gDeUvNY*YyrCJNTIuuih&2w2iYHn{($h9S^Iu^rzE0x3K(YKz~N) z+pQd@yQ+aPC(UIsC_ht_=~zfr-WK+f z-3{`o3QbPg3(KXkgdmybWY6eOgbbqD>{)%)d65^X{DQOm*fD&}rpu1Rc>UcV!J@dS z!4n6RJ`)F}pXZ-w9I44XtezXVgZd^lOwvcUF(N66K8!+goVK)evMMN@+M65^zEgRE zu$C-&Oy?Sr%m%aVMp^HqzFU1J_;;myNg6c@WaC%m)Ikqn=&i-T13)?xvqucfm8?q* z)?7XaJh%i)ZC!H=M*#X7KvG-R9CWnx{#m8185~I9QfB|A>!bEU3&VunPwwk)*fm5p Xzr(?>R=o-O$02}Yen;y(KKc3&bpL#% diff --git a/docs/classtinyxml2_1_1_x_m_l_printer-members.html b/docs/classtinyxml2_1_1_x_m_l_printer-members.html deleted file mode 100644 index c22d03d..0000000 --- a/docs/classtinyxml2_1_1_x_m_l_printer-members.html +++ /dev/null @@ -1,106 +0,0 @@ - - - - - - - -TinyXML-2: Member List - - - - - - - - - -
-
- - - - - - -
-
TinyXML-2 -  5.0.1 -
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-
tinyxml2::XMLPrinter Member List
-
-
- -

This is the complete list of members for tinyxml2::XMLPrinter, including all inherited members.

- - - - - - - - - - - - - - - - - - - - - - - - - - -
ClearBuffer()tinyxml2::XMLPrinterinline
CloseElement(bool compactMode=false)tinyxml2::XMLPrintervirtual
CStr() consttinyxml2::XMLPrinterinline
CStrSize() consttinyxml2::XMLPrinterinline
OpenElement(const char *name, bool compactMode=false)tinyxml2::XMLPrinter
PrintSpace(int depth)tinyxml2::XMLPrinterprotectedvirtual
PushAttribute(const char *name, const char *value)tinyxml2::XMLPrinter
PushComment(const char *comment)tinyxml2::XMLPrinter
PushHeader(bool writeBOM, bool writeDeclaration)tinyxml2::XMLPrinter
PushText(const char *text, bool cdata=false)tinyxml2::XMLPrinter
PushText(int value)tinyxml2::XMLPrinter
PushText(unsigned value)tinyxml2::XMLPrinter
PushText(int64_t value)tinyxml2::XMLPrinter
PushText(bool value)tinyxml2::XMLPrinter
PushText(float value)tinyxml2::XMLPrinter
PushText(double value)tinyxml2::XMLPrinter
Visit(const XMLText &text)tinyxml2::XMLPrintervirtual
Visit(const XMLComment &comment)tinyxml2::XMLPrintervirtual
Visit(const XMLDeclaration &declaration)tinyxml2::XMLPrintervirtual
Visit(const XMLUnknown &unknown)tinyxml2::XMLPrintervirtual
VisitEnter(const XMLDocument &)tinyxml2::XMLPrintervirtual
VisitEnter(const XMLElement &element, const XMLAttribute *attribute)tinyxml2::XMLPrintervirtual
VisitExit(const XMLDocument &)tinyxml2::XMLPrinterinlinevirtual
VisitExit(const XMLElement &element)tinyxml2::XMLPrintervirtual
XMLPrinter(FILE *file=0, bool compact=false, int depth=0)tinyxml2::XMLPrinter
- - - - diff --git a/docs/classtinyxml2_1_1_x_m_l_printer.html b/docs/classtinyxml2_1_1_x_m_l_printer.html deleted file mode 100644 index 693cce3..0000000 --- a/docs/classtinyxml2_1_1_x_m_l_printer.html +++ /dev/null @@ -1,410 +0,0 @@ - - - - - - - -TinyXML-2: tinyxml2::XMLPrinter Class Reference - - - - - - - - - -
-
- - - - - - -
-
TinyXML-2 -  5.0.1 -
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
- -
-
tinyxml2::XMLPrinter Class Reference
-
-
- -

#include <tinyxml2.h>

-
-Inheritance diagram for tinyxml2::XMLPrinter:
-
-
- - -tinyxml2::XMLVisitor - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Public Member Functions

 XMLPrinter (FILE *file=0, bool compact=false, int depth=0)
 
void PushHeader (bool writeBOM, bool writeDeclaration)
 
void OpenElement (const char *name, bool compactMode=false)
 
-void PushAttribute (const char *name, const char *value)
 If streaming, add an attribute to an open element.
 
-virtual void CloseElement (bool compactMode=false)
 If streaming, close the Element.
 
-void PushText (const char *text, bool cdata=false)
 Add a text node.
 
-void PushText (int value)
 Add a text node from an integer.
 
-void PushText (unsigned value)
 Add a text node from an unsigned.
 
-void PushText (int64_t value)
 Add a text node from an unsigned.
 
-void PushText (bool value)
 Add a text node from a bool.
 
-void PushText (float value)
 Add a text node from a float.
 
-void PushText (double value)
 Add a text node from a double.
 
-void PushComment (const char *comment)
 Add a comment.
 
-virtual bool VisitEnter (const XMLDocument &)
 Visit a document.
 
-virtual bool VisitExit (const XMLDocument &)
 Visit a document.
 
-virtual bool VisitEnter (const XMLElement &element, const XMLAttribute *attribute)
 Visit an element.
 
-virtual bool VisitExit (const XMLElement &element)
 Visit an element.
 
-virtual bool Visit (const XMLText &text)
 Visit a text node.
 
-virtual bool Visit (const XMLComment &comment)
 Visit a comment node.
 
-virtual bool Visit (const XMLDeclaration &declaration)
 Visit a declaration.
 
-virtual bool Visit (const XMLUnknown &unknown)
 Visit an unknown node.
 
const char * CStr () const
 
int CStrSize () const
 
void ClearBuffer ()
 
- - - -

-Protected Member Functions

virtual void PrintSpace (int depth)
 
-

Detailed Description

-

Printing functionality. The XMLPrinter gives you more options than the XMLDocument::Print() method.

-

It can:

    -
  1. Print to memory.
  2. -
  3. Print to a file you provide.
  4. -
  5. Print XML without a XMLDocument.
  6. -
-

Print to Memory

-
XMLPrinter printer;
-doc.Print( &printer );
-SomeFunction( printer.CStr() );
-

Print to a File

-

You provide the file pointer.

XMLPrinter printer( fp );
-doc.Print( &printer );
-

Print without a XMLDocument

-

When loading, an XML parser is very useful. However, sometimes when saving, it just gets in the way. The code is often set up for streaming, and constructing the DOM is just overhead.

-

The Printer supports the streaming case. The following code prints out a trivially simple XML file without ever creating an XML document.

-
XMLPrinter printer( fp );
-printer.OpenElement( "foo" );
-printer.PushAttribute( "foo", "bar" );
-printer.CloseElement();
-

Constructor & Destructor Documentation

- -

◆ XMLPrinter()

- -
-
- - - - - - - - - - - - - - - - - - - - - - - - -
tinyxml2::XMLPrinter::XMLPrinter (FILE * file = 0,
bool compact = false,
int depth = 0 
)
-
-

Construct the printer. If the FILE* is specified, this will print to the FILE. Else it will print to memory, and the result is available in CStr(). If 'compact' is set to true, then output is created with only required whitespace and newlines.

- -
-
-

Member Function Documentation

- -

◆ ClearBuffer()

- -
-
- - - - - -
- - - - - - - -
void tinyxml2::XMLPrinter::ClearBuffer ()
-
-inline
-
-

If in print to memory mode, reset the buffer to the beginning.

- -
-
- -

◆ CStr()

- -
-
- - - - - -
- - - - - - - -
const char* tinyxml2::XMLPrinter::CStr () const
-
-inline
-
-

If in print to memory mode, return a pointer to the XML file in memory.

- -
-
- -

◆ CStrSize()

- -
-
- - - - - -
- - - - - - - -
int tinyxml2::XMLPrinter::CStrSize () const
-
-inline
-
-

If in print to memory mode, return the size of the XML file in memory. (Note the size returned includes the terminating null.)

- -
-
- -

◆ OpenElement()

- -
-
- - - - - - - - - - - - - - - - - - -
void tinyxml2::XMLPrinter::OpenElement (const char * name,
bool compactMode = false 
)
-
-

If streaming, start writing an element. The element must be closed with CloseElement()

- -
-
- -

◆ PrintSpace()

- -
-
- - - - - -
- - - - - - - - -
virtual void tinyxml2::XMLPrinter::PrintSpace (int depth)
-
-protectedvirtual
-
-

Prints out the space before an element. You may override to change the space and tabs used. A PrintSpace() override should call Print().

- -
-
- -

◆ PushHeader()

- -
-
- - - - - - - - - - - - - - - - - - -
void tinyxml2::XMLPrinter::PushHeader (bool writeBOM,
bool writeDeclaration 
)
-
-

If streaming, write the BOM and declaration.

- -
-
-
The documentation for this class was generated from the following file: -
- - - - diff --git a/docs/classtinyxml2_1_1_x_m_l_printer.png b/docs/classtinyxml2_1_1_x_m_l_printer.png deleted file mode 100644 index 9bc674855364f4b2b9731ddf08f0b2af7159034e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 586 zcmeAS@N?(olHy`uVBq!ia0vp^4L}^g!3-py-Rr#uq$C1-LR|m<{|{uoc=NTi|Ih>= z3ycpOIKbL@M;^%KC<*clW&kPzfvcxNj2IXgZ+f~ohEy=VotxcvSb?YIt>de|{d-hx z{&2K}Om*5?)G8fy_{U+1Pt$|EGM5K3HPnhRFe)(Am@v$U`euB3#id~3rPW1ezwk0J z#6(`*z|y+vj|{^PRtAH$%ulAue&*kpbiC!yhKcVPI#%!8T=Z@F#?U`|SVI^4z5Q=$ zrMkBClyk2k1J8?P6WJNeF6+uZDyhuz;bvH`uT|V2^p@qpWAhbav7)ihw`y%?_%-Xm zhqLnCrVIyG)iNmj-p#h*r(Am+!;PeHS+*rl`o}Xpdb7U zXUo3fVRf*b z@P7TeTOq3scim@wahX5;e^BFFv5?+Xcm8LWXsrs< - - - - - - -TinyXML-2: Member List - - - - - - - - - -
-
- - - - - - -
-
TinyXML-2 -  5.0.1 -
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-
tinyxml2::XMLText Member List
-
-
- -

This is the complete list of members for tinyxml2::XMLText, including all inherited members.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Accept(XMLVisitor *visitor) consttinyxml2::XMLTextvirtual
CData() consttinyxml2::XMLTextinline
DeepClone(XMLDocument *target) consttinyxml2::XMLNode
DeleteChild(XMLNode *node)tinyxml2::XMLNode
DeleteChildren()tinyxml2::XMLNode
FirstChild() consttinyxml2::XMLNodeinline
FirstChildElement(const char *name=0) consttinyxml2::XMLNode
GetDocument() consttinyxml2::XMLNodeinline
GetDocument()tinyxml2::XMLNodeinline
GetLineNum() consttinyxml2::XMLNodeinline
GetUserData() consttinyxml2::XMLNodeinline
InsertAfterChild(XMLNode *afterThis, XMLNode *addThis)tinyxml2::XMLNode
InsertEndChild(XMLNode *addThis)tinyxml2::XMLNode
InsertFirstChild(XMLNode *addThis)tinyxml2::XMLNode
LastChild() consttinyxml2::XMLNodeinline
LastChildElement(const char *name=0) consttinyxml2::XMLNode
NextSibling() consttinyxml2::XMLNodeinline
NextSiblingElement(const char *name=0) consttinyxml2::XMLNode
NoChildren() consttinyxml2::XMLNodeinline
Parent() consttinyxml2::XMLNodeinline
PreviousSibling() consttinyxml2::XMLNodeinline
PreviousSiblingElement(const char *name=0) consttinyxml2::XMLNode
SetCData(bool isCData)tinyxml2::XMLTextinline
SetUserData(void *userData)tinyxml2::XMLNodeinline
SetValue(const char *val, bool staticMem=false)tinyxml2::XMLNode
ShallowClone(XMLDocument *document) consttinyxml2::XMLTextvirtual
ShallowEqual(const XMLNode *compare) consttinyxml2::XMLTextvirtual
ToComment()tinyxml2::XMLNodeinlinevirtual
ToDeclaration()tinyxml2::XMLNodeinlinevirtual
ToDocument()tinyxml2::XMLNodeinlinevirtual
ToElement()tinyxml2::XMLNodeinlinevirtual
ToText()tinyxml2::XMLTextinlinevirtual
ToUnknown()tinyxml2::XMLNodeinlinevirtual
Value() consttinyxml2::XMLNode
- - - - diff --git a/docs/classtinyxml2_1_1_x_m_l_text.html b/docs/classtinyxml2_1_1_x_m_l_text.html deleted file mode 100644 index 7a47230..0000000 --- a/docs/classtinyxml2_1_1_x_m_l_text.html +++ /dev/null @@ -1,310 +0,0 @@ - - - - - - - -TinyXML-2: tinyxml2::XMLText Class Reference - - - - - - - - - -
-
- - - - - - -
-
TinyXML-2 -  5.0.1 -
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
- -
-
tinyxml2::XMLText Class Reference
-
-
- -

#include <tinyxml2.h>

-
-Inheritance diagram for tinyxml2::XMLText:
-
-
- - -tinyxml2::XMLNode - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Public Member Functions

virtual bool Accept (XMLVisitor *visitor) const
 
-virtual XMLTextToText ()
 Safely cast to Text, or null.
 
-void SetCData (bool isCData)
 Declare whether this should be CDATA or standard text.
 
-bool CData () const
 Returns true if this is a CDATA text element.
 
virtual XMLNodeShallowClone (XMLDocument *document) const
 
virtual bool ShallowEqual (const XMLNode *compare) const
 
- Public Member Functions inherited from tinyxml2::XMLNode
-const XMLDocumentGetDocument () const
 Get the XMLDocument that owns this XMLNode.
 
-XMLDocumentGetDocument ()
 Get the XMLDocument that owns this XMLNode.
 
-virtual XMLElementToElement ()
 Safely cast to an Element, or null.
 
-virtual XMLCommentToComment ()
 Safely cast to a Comment, or null.
 
-virtual XMLDocumentToDocument ()
 Safely cast to a Document, or null.
 
-virtual XMLDeclarationToDeclaration ()
 Safely cast to a Declaration, or null.
 
-virtual XMLUnknownToUnknown ()
 Safely cast to an Unknown, or null.
 
const char * Value () const
 
void SetValue (const char *val, bool staticMem=false)
 
-int GetLineNum () const
 Gets the line number the node is in, if the document was parsed from a file.
 
-const XMLNodeParent () const
 Get the parent of this node on the DOM.
 
-bool NoChildren () const
 Returns true if this node has no children.
 
-const XMLNodeFirstChild () const
 Get the first child node, or null if none exists.
 
const XMLElementFirstChildElement (const char *name=0) const
 
-const XMLNodeLastChild () const
 Get the last child node, or null if none exists.
 
const XMLElementLastChildElement (const char *name=0) const
 
-const XMLNodePreviousSibling () const
 Get the previous (left) sibling node of this node.
 
-const XMLElementPreviousSiblingElement (const char *name=0) const
 Get the previous (left) sibling element of this node, with an optionally supplied name.
 
-const XMLNodeNextSibling () const
 Get the next (right) sibling node of this node.
 
-const XMLElementNextSiblingElement (const char *name=0) const
 Get the next (right) sibling element of this node, with an optionally supplied name.
 
XMLNodeInsertEndChild (XMLNode *addThis)
 
XMLNodeInsertFirstChild (XMLNode *addThis)
 
XMLNodeInsertAfterChild (XMLNode *afterThis, XMLNode *addThis)
 
void DeleteChildren ()
 
void DeleteChild (XMLNode *node)
 
XMLNodeDeepClone (XMLDocument *target) const
 
void SetUserData (void *userData)
 
void * GetUserData () const
 
-

Detailed Description

-

XML text.

-

Note that a text node can have child element nodes, for example:

<root>This is <b>bold</b></root>
-

A text node can have 2 ways to output the next. "normal" output and CDATA. It will default to the mode it was parsed from the XML file and you generally want to leave it alone, but you can change the output mode with SetCData() and query it with CData().

-

Member Function Documentation

- -

◆ Accept()

- -
-
- - - - - -
- - - - - - - - -
virtual bool tinyxml2::XMLText::Accept (XMLVisitorvisitor) const
-
-virtual
-
-

Accept a hierarchical visit of the nodes in the TinyXML-2 DOM. Every node in the XML tree will be conditionally visited and the host will be called back via the XMLVisitor interface.

-

This is essentially a SAX interface for TinyXML-2. (Note however it doesn't re-parse the XML for the callbacks, so the performance of TinyXML-2 is unchanged by using this interface versus any other.)

-

The interface has been based on ideas from:

- -

Which are both good references for "visiting".

-

An example of using Accept():

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

Implements tinyxml2::XMLNode.

- -
-
- -

◆ ShallowClone()

- -
-
- - - - - -
- - - - - - - - -
virtual XMLNode* tinyxml2::XMLText::ShallowClone (XMLDocumentdocument) const
-
-virtual
-
-

Make a copy of this node, but not its children. You may pass in a Document pointer that will be the owner of the new Node. If the 'document' is null, then the node returned will be allocated from the current Document. (this->GetDocument())

-

Note: if called on a XMLDocument, this will return null.

- -

Implements tinyxml2::XMLNode.

- -
-
- -

◆ ShallowEqual()

- -
-
- - - - - -
- - - - - - - - -
virtual bool tinyxml2::XMLText::ShallowEqual (const XMLNodecompare) const
-
-virtual
-
-

Test if 2 nodes are the same, but don't test children. The 2 nodes do not need to be in the same Document.

-

Note: if called on a XMLDocument, this will return false.

- -

Implements tinyxml2::XMLNode.

- -
-
-
The documentation for this class was generated from the following file: -
- - - - diff --git a/docs/classtinyxml2_1_1_x_m_l_text.png b/docs/classtinyxml2_1_1_x_m_l_text.png deleted file mode 100644 index 5a9863acc475a4164a359cdca7f2ba64ba74433f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 591 zcmeAS@N?(olHy`uVBq!ia0vp^6+j%o!3-pyx;pL#QW60^A+G=b{|7Q(y!l$%e`o@b z1;z&s9ANFdBM;un$8s_wr3PH5_!%PyN|NpG0hop@<-(1vAKPMTLvO}Er` z){c}s!+68x)64A%@fY{}v8s&Nr~D!DfLwvzgjEv1A3RGjx|-8|cTvsFf9npc3t5!4 zHuv-T1Iy=6X1@M+H@o>l@4Z&vZkVr^?8w?0p*_3R`}&>>x38|sTKjl&Sm@u~eh2!C z{STZkzJ7kus#g+!RV-Qr)HoiTuVOrNLFdD3(@q=iKhMr7`ZNDe2-i0_Afan;Kma>- z*zV$z#=$7Do|R2v(SN2ta(7cVp3Rrdd_Ol?^4UGsRWon1@f0i-x&He|j?g)ux?|RC z%ky9VUGLI8`Swxa{fzHV_Z8Nxy%n_ld(e?jI_aqys;i3(-=}QoFW!1wEi1C?`xn(S zJ7b!&C9MyvwA0=3^x2P@w;F;QcOOjU#YMK&OXfDq+j;pP^p}75I$bcKqfSUi$;k0PgPVlp+Lc99 R9f7gW;OXk;vd$@?2>?U}6ovo* diff --git a/docs/classtinyxml2_1_1_x_m_l_unknown-members.html b/docs/classtinyxml2_1_1_x_m_l_unknown-members.html deleted file mode 100644 index f22b3f1..0000000 --- a/docs/classtinyxml2_1_1_x_m_l_unknown-members.html +++ /dev/null @@ -1,113 +0,0 @@ - - - - - - - -TinyXML-2: Member List - - - - - - - - - -
-
- - - - - - -
-
TinyXML-2 -  5.0.1 -
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-
tinyxml2::XMLUnknown Member List
-
-
- -

This is the complete list of members for tinyxml2::XMLUnknown, including all inherited members.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Accept(XMLVisitor *visitor) consttinyxml2::XMLUnknownvirtual
DeepClone(XMLDocument *target) consttinyxml2::XMLNode
DeleteChild(XMLNode *node)tinyxml2::XMLNode
DeleteChildren()tinyxml2::XMLNode
FirstChild() consttinyxml2::XMLNodeinline
FirstChildElement(const char *name=0) consttinyxml2::XMLNode
GetDocument() consttinyxml2::XMLNodeinline
GetDocument()tinyxml2::XMLNodeinline
GetLineNum() consttinyxml2::XMLNodeinline
GetUserData() consttinyxml2::XMLNodeinline
InsertAfterChild(XMLNode *afterThis, XMLNode *addThis)tinyxml2::XMLNode
InsertEndChild(XMLNode *addThis)tinyxml2::XMLNode
InsertFirstChild(XMLNode *addThis)tinyxml2::XMLNode
LastChild() consttinyxml2::XMLNodeinline
LastChildElement(const char *name=0) consttinyxml2::XMLNode
NextSibling() consttinyxml2::XMLNodeinline
NextSiblingElement(const char *name=0) consttinyxml2::XMLNode
NoChildren() consttinyxml2::XMLNodeinline
Parent() consttinyxml2::XMLNodeinline
PreviousSibling() consttinyxml2::XMLNodeinline
PreviousSiblingElement(const char *name=0) consttinyxml2::XMLNode
SetUserData(void *userData)tinyxml2::XMLNodeinline
SetValue(const char *val, bool staticMem=false)tinyxml2::XMLNode
ShallowClone(XMLDocument *document) consttinyxml2::XMLUnknownvirtual
ShallowEqual(const XMLNode *compare) consttinyxml2::XMLUnknownvirtual
ToComment()tinyxml2::XMLNodeinlinevirtual
ToDeclaration()tinyxml2::XMLNodeinlinevirtual
ToDocument()tinyxml2::XMLNodeinlinevirtual
ToElement()tinyxml2::XMLNodeinlinevirtual
ToText()tinyxml2::XMLNodeinlinevirtual
ToUnknown()tinyxml2::XMLUnknowninlinevirtual
Value() consttinyxml2::XMLNode
- - - - diff --git a/docs/classtinyxml2_1_1_x_m_l_unknown.html b/docs/classtinyxml2_1_1_x_m_l_unknown.html deleted file mode 100644 index 8bd53e4..0000000 --- a/docs/classtinyxml2_1_1_x_m_l_unknown.html +++ /dev/null @@ -1,301 +0,0 @@ - - - - - - - -TinyXML-2: tinyxml2::XMLUnknown Class Reference - - - - - - - - - -
-
- - - - - - -
-
TinyXML-2 -  5.0.1 -
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
- -
-
tinyxml2::XMLUnknown Class Reference
-
-
- -

#include <tinyxml2.h>

-
-Inheritance diagram for tinyxml2::XMLUnknown:
-
-
- - -tinyxml2::XMLNode - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Public Member Functions

-virtual XMLUnknownToUnknown ()
 Safely cast to an Unknown, or null.
 
virtual bool Accept (XMLVisitor *visitor) const
 
virtual XMLNodeShallowClone (XMLDocument *document) const
 
virtual bool ShallowEqual (const XMLNode *compare) const
 
- Public Member Functions inherited from tinyxml2::XMLNode
-const XMLDocumentGetDocument () const
 Get the XMLDocument that owns this XMLNode.
 
-XMLDocumentGetDocument ()
 Get the XMLDocument that owns this XMLNode.
 
-virtual XMLElementToElement ()
 Safely cast to an Element, or null.
 
-virtual XMLTextToText ()
 Safely cast to Text, or null.
 
-virtual XMLCommentToComment ()
 Safely cast to a Comment, or null.
 
-virtual XMLDocumentToDocument ()
 Safely cast to a Document, or null.
 
-virtual XMLDeclarationToDeclaration ()
 Safely cast to a Declaration, or null.
 
const char * Value () const
 
void SetValue (const char *val, bool staticMem=false)
 
-int GetLineNum () const
 Gets the line number the node is in, if the document was parsed from a file.
 
-const XMLNodeParent () const
 Get the parent of this node on the DOM.
 
-bool NoChildren () const
 Returns true if this node has no children.
 
-const XMLNodeFirstChild () const
 Get the first child node, or null if none exists.
 
const XMLElementFirstChildElement (const char *name=0) const
 
-const XMLNodeLastChild () const
 Get the last child node, or null if none exists.
 
const XMLElementLastChildElement (const char *name=0) const
 
-const XMLNodePreviousSibling () const
 Get the previous (left) sibling node of this node.
 
-const XMLElementPreviousSiblingElement (const char *name=0) const
 Get the previous (left) sibling element of this node, with an optionally supplied name.
 
-const XMLNodeNextSibling () const
 Get the next (right) sibling node of this node.
 
-const XMLElementNextSiblingElement (const char *name=0) const
 Get the next (right) sibling element of this node, with an optionally supplied name.
 
XMLNodeInsertEndChild (XMLNode *addThis)
 
XMLNodeInsertFirstChild (XMLNode *addThis)
 
XMLNodeInsertAfterChild (XMLNode *afterThis, XMLNode *addThis)
 
void DeleteChildren ()
 
void DeleteChild (XMLNode *node)
 
XMLNodeDeepClone (XMLDocument *target) const
 
void SetUserData (void *userData)
 
void * GetUserData () const
 
-

Detailed Description

-

Any tag that TinyXML-2 doesn't recognize is saved as an unknown. It is a tag of text, but should not be modified. It will be written back to the XML, unchanged, when the file is saved.

-

DTD tags get thrown into XMLUnknowns.

-

Member Function Documentation

- -

◆ Accept()

- -
-
- - - - - -
- - - - - - - - -
virtual bool tinyxml2::XMLUnknown::Accept (XMLVisitorvisitor) const
-
-virtual
-
-

Accept a hierarchical visit of the nodes in the TinyXML-2 DOM. Every node in the XML tree will be conditionally visited and the host will be called back via the XMLVisitor interface.

-

This is essentially a SAX interface for TinyXML-2. (Note however it doesn't re-parse the XML for the callbacks, so the performance of TinyXML-2 is unchanged by using this interface versus any other.)

-

The interface has been based on ideas from:

- -

Which are both good references for "visiting".

-

An example of using Accept():

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

Implements tinyxml2::XMLNode.

- -
-
- -

◆ ShallowClone()

- -
-
- - - - - -
- - - - - - - - -
virtual XMLNode* tinyxml2::XMLUnknown::ShallowClone (XMLDocumentdocument) const
-
-virtual
-
-

Make a copy of this node, but not its children. You may pass in a Document pointer that will be the owner of the new Node. If the 'document' is null, then the node returned will be allocated from the current Document. (this->GetDocument())

-

Note: if called on a XMLDocument, this will return null.

- -

Implements tinyxml2::XMLNode.

- -
-
- -

◆ ShallowEqual()

- -
-
- - - - - -
- - - - - - - - -
virtual bool tinyxml2::XMLUnknown::ShallowEqual (const XMLNodecompare) const
-
-virtual
-
-

Test if 2 nodes are the same, but don't test children. The 2 nodes do not need to be in the same Document.

-

Note: if called on a XMLDocument, this will return false.

- -

Implements tinyxml2::XMLNode.

- -
-
-
The documentation for this class was generated from the following file: -
- - - - diff --git a/docs/classtinyxml2_1_1_x_m_l_unknown.png b/docs/classtinyxml2_1_1_x_m_l_unknown.png deleted file mode 100644 index 217b62c5590fd41f7e30a49d292a0a03662d9083..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 647 zcmeAS@N?(olHy`uVBq!ia0vp^y+9nm!3-pY71+{%lth3}i0l9V|AEXGZ@!lHADRGU zf$@O@2Ut7r$OE|?B|(0{3_wL7aP?G(5d#C0n5Tv(X1Z$W+JwA7hwVxF^FwoF_y1B4GO%W<8g7x~-!<>GJCc5XC} zzFx3fWo}2V%1hBwqxGA$-`V$`4f}s1t@fGj4YBm)Zfj%@7vH}zW1p?h-lU-F{XwP) zyjR!Bu5w$ra@I~}Y2lYsZdFU~S8!icl|JL|2{oP{$+MOB2N^z9DVC7aN;7@SC4cpo zx@VuY^z@fXH;v>r?cX$UiSYZIUu+BWjn7;+`hB_faerT?$ja%qSHsTQHcNi+PxqRn zo4=<{<)!kSTYr|FS$lTqkezT*3o63I7ytn1$$6x)n`^#ocd!M-Um4$TT z-m(=^t;=p{885qS(w}!*e(Sb3x%ZCgcT{gM{9E=q=2po{!yVk!>A}TTw|b1yJQv0O z5u82mB$Klw|IKK#x{Tdr_a z{mLr|b}?(vy - - - - - - -TinyXML-2: Member List - - - - - - - - - -
-
- - - - - - -
-
TinyXML-2 -  5.0.1 -
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
-
-
tinyxml2::XMLVisitor Member List
-
-
- -

This is the complete list of members for tinyxml2::XMLVisitor, including all inherited members.

- - - - - - - - - -
Visit(const XMLDeclaration &)tinyxml2::XMLVisitorinlinevirtual
Visit(const XMLText &)tinyxml2::XMLVisitorinlinevirtual
Visit(const XMLComment &)tinyxml2::XMLVisitorinlinevirtual
Visit(const XMLUnknown &)tinyxml2::XMLVisitorinlinevirtual
VisitEnter(const XMLDocument &)tinyxml2::XMLVisitorinlinevirtual
VisitEnter(const XMLElement &, const XMLAttribute *)tinyxml2::XMLVisitorinlinevirtual
VisitExit(const XMLDocument &)tinyxml2::XMLVisitorinlinevirtual
VisitExit(const XMLElement &)tinyxml2::XMLVisitorinlinevirtual
- - - - diff --git a/docs/classtinyxml2_1_1_x_m_l_visitor.html b/docs/classtinyxml2_1_1_x_m_l_visitor.html deleted file mode 100644 index 4e46128..0000000 --- a/docs/classtinyxml2_1_1_x_m_l_visitor.html +++ /dev/null @@ -1,138 +0,0 @@ - - - - - - - -TinyXML-2: tinyxml2::XMLVisitor Class Reference - - - - - - - - - -
-
- - - - - - -
-
TinyXML-2 -  5.0.1 -
-
-
- - - - - - - - -
-
- - -
- -
- - -
-
- -
-
tinyxml2::XMLVisitor Class Reference
-
-
- -

#include <tinyxml2.h>

-
-Inheritance diagram for tinyxml2::XMLVisitor:
-
-
- - -tinyxml2::XMLPrinter - -
- - - - - - - - - - - - - - - - - - - - - - - - - - -

-Public Member Functions

-virtual bool VisitEnter (const XMLDocument &)
 Visit a document.
 
-virtual bool VisitExit (const XMLDocument &)
 Visit a document.
 
-virtual bool VisitEnter (const XMLElement &, const XMLAttribute *)
 Visit an element.
 
-virtual bool VisitExit (const XMLElement &)
 Visit an element.
 
-virtual bool Visit (const XMLDeclaration &)
 Visit a declaration.
 
-virtual bool Visit (const XMLText &)
 Visit a text node.
 
-virtual bool Visit (const XMLComment &)
 Visit a comment node.
 
-virtual bool Visit (const XMLUnknown &)
 Visit an unknown node.
 
-

Detailed Description

-

Implements the interface to the "Visitor pattern" (see the Accept() method.) If you call the Accept() method, it requires being passed a XMLVisitor class to handle callbacks. For nodes that contain other nodes (Document, Element) you will get called with a VisitEnter/VisitExit pair. Nodes that are always leafs are simply called with Visit().

-

If you return 'true' from a Visit method, recursive parsing will continue. If you return false, no children of this node or its siblings will be visited.

-

All flavors of Visit methods have a default implementation that returns 'true' (continue visiting). You need to only override methods that are interesting to you.

-

Generally Accept() is called on the XMLDocument, although all nodes support visiting.

-

You should never change the document from a callback.

-
See also
XMLNode::Accept()
-

The documentation for this class was generated from the following file: -
- - - - diff --git a/docs/classtinyxml2_1_1_x_m_l_visitor.png b/docs/classtinyxml2_1_1_x_m_l_visitor.png deleted file mode 100644 index 8ae4c23cfa5be521ed0b30b0fa6a8048f73e4ee2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 592 zcmeAS@N?(olHy`uVBq!ia0vp^4L}^g!3-py-Rr#uq$C1-LR|m<{|{uoc=NTi|Ih>= z3ycpOIKbL@M;^%KC<*clW&kPzfvcxNj2IXg?|Zs9hEy=Vo%?!Sivmx}a@CK2<$tb- zsS-SLR&A4I=B0IObT6Oh`XTP(qAkn9@Y;rf$${b9>z=0_@~^}Gn+vB_aQ1%TWnj2d zd2s{FOs)TK8Gf)cB&=baBD?dy$yFIEy=|X_891+gSXgtUc-@uKx7t#vS-ZnuPT6wp zr1;ci2968MCR#IWyS!CasHAp{k1)gf_0x}WD1`53`0-10RoM4a*N<1QT$snnl3y2n zhLIuY8)L(s`<4xF%lCg_IiOc&s^IYEPlKeCcC^qLznt|B@0)IV{&i0R7CQWtETEz3+#Pf^sj7T451LOOZ7q?f^s3g+MMWYF*Gn&mGu(c8i;r`cUf42j zhgjyY0PpYO3w_@J{k+v{?YsEPq6-$>W!{pWlmzs34cCKfk7dEWj+8QPsAGSV6waI^ zcAEE!Nmz)`E`}=cJM&xk`&iSSy{~2X5cQYwK=s$h*%A!)j1z*qxc~CcJ|-QRW+x*J PjD7}BS3j3^P61|%O$WD@{V-kvUwAr*{o@8{^CZMh(5KoB^r_<4^zF@3)Cp&&t3hdujKf f*?bjBoY!V+E))@{xMcbjXe@)LtDnm{r-UW|*e5JT diff --git a/docs/doc.png b/docs/doc.png deleted file mode 100644 index 17edabff95f7b8da13c9516a04efe05493c29501..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 746 zcmV7=@pnbNXRFEm&G8P!&WHG=d)>K?YZ1bzou)2{$)) zumDct!>4SyxL;zgaG>wy`^Hv*+}0kUfCrz~BCOViSb$_*&;{TGGn2^x9K*!Sf0=lV zpP=7O;GA0*Jm*tTYj$IoXvimpnV4S1Z5f$p*f$Db2iq2zrVGQUz~yq`ahn7ck(|CE z7Gz;%OP~J6)tEZWDzjhL9h2hdfoU2)Nd%T<5Kt;Y0XLt&<@6pQx!nw*5`@bq#?l*?3z{Hlzoc=Pr>oB5(9i6~_&-}A(4{Q$>c>%rV&E|a(r&;?i5cQB=} zYSDU5nXG)NS4HEs0it2AHe2>shCyr7`6@4*6{r@8fXRbTA?=IFVWAQJL&H5H{)DpM#{W(GL+Idzf^)uRV@oB8u$ z8v{MfJbTiiRg4bza<41NAzrl{=3fl_D+$t+^!xlQ8S}{UtY`e z;;&9UhyZqQRN%2pot{*Ei0*4~hSF_3AH2@fKU!$NSflS>{@tZpDT4`M2WRTTVH+D? z)GFlEGGHe?koB}i|1w45!BF}N_q&^HJ&-tyR{(afC6H7|aml|tBBbv}55C5DNP8p3 z)~jLEO4Z&2hZmP^i-e%(@d!(E|KRafiU8Q5u(wU((j8un3OR*Hvj+t diff --git a/docs/doxygen.css b/docs/doxygen.css deleted file mode 100644 index 4f1ab91..0000000 --- a/docs/doxygen.css +++ /dev/null @@ -1,1596 +0,0 @@ -/* The standard CSS for doxygen 1.8.13 */ - -body, table, div, p, dl { - font: 400 14px/22px Roboto,sans-serif; -} - -p.reference, p.definition { - font: 400 14px/22px Roboto,sans-serif; -} - -/* @group Heading Levels */ - -h1.groupheader { - font-size: 150%; -} - -.title { - font: 400 14px/28px Roboto,sans-serif; - font-size: 150%; - font-weight: bold; - margin: 10px 2px; -} - -h2.groupheader { - border-bottom: 1px solid #879ECB; - color: #354C7B; - font-size: 150%; - font-weight: normal; - margin-top: 1.75em; - padding-top: 8px; - padding-bottom: 4px; - width: 100%; -} - -h3.groupheader { - font-size: 100%; -} - -h1, h2, h3, h4, h5, h6 { - -webkit-transition: text-shadow 0.5s linear; - -moz-transition: text-shadow 0.5s linear; - -ms-transition: text-shadow 0.5s linear; - -o-transition: text-shadow 0.5s linear; - transition: text-shadow 0.5s linear; - margin-right: 15px; -} - -h1.glow, h2.glow, h3.glow, h4.glow, h5.glow, h6.glow { - text-shadow: 0 0 15px cyan; -} - -dt { - font-weight: bold; -} - -div.multicol { - -moz-column-gap: 1em; - -webkit-column-gap: 1em; - -moz-column-count: 3; - -webkit-column-count: 3; -} - -p.startli, p.startdd { - margin-top: 2px; -} - -p.starttd { - margin-top: 0px; -} - -p.endli { - margin-bottom: 0px; -} - -p.enddd { - margin-bottom: 4px; -} - -p.endtd { - margin-bottom: 2px; -} - -/* @end */ - -caption { - font-weight: bold; -} - -span.legend { - font-size: 70%; - text-align: center; -} - -h3.version { - font-size: 90%; - text-align: center; -} - -div.qindex, div.navtab{ - background-color: #EBEFF6; - border: 1px solid #A3B4D7; - text-align: center; -} - -div.qindex, div.navpath { - width: 100%; - line-height: 140%; -} - -div.navtab { - margin-right: 15px; -} - -/* @group Link Styling */ - -a { - color: #3D578C; - font-weight: normal; - text-decoration: none; -} - -.contents a:visited { - color: #4665A2; -} - -a:hover { - text-decoration: underline; -} - -a.qindex { - font-weight: bold; -} - -a.qindexHL { - font-weight: bold; - background-color: #9CAFD4; - color: #ffffff; - border: 1px double #869DCA; -} - -.contents a.qindexHL:visited { - color: #ffffff; -} - -a.el { - font-weight: bold; -} - -a.elRef { -} - -a.code, a.code:visited, a.line, a.line:visited { - color: #4665A2; -} - -a.codeRef, a.codeRef:visited, a.lineRef, a.lineRef:visited { - color: #4665A2; -} - -/* @end */ - -dl.el { - margin-left: -1cm; -} - -pre.fragment { - border: 1px solid #C4CFE5; - background-color: #FBFCFD; - padding: 4px 6px; - margin: 4px 8px 4px 2px; - overflow: auto; - word-wrap: break-word; - font-size: 9pt; - line-height: 125%; - font-family: monospace, fixed; - font-size: 105%; -} - -div.fragment { - padding: 0px; - margin: 4px 8px 4px 2px; - background-color: #FBFCFD; - border: 1px solid #C4CFE5; -} - -div.line { - font-family: monospace, fixed; - font-size: 13px; - min-height: 13px; - line-height: 1.0; - text-wrap: unrestricted; - white-space: -moz-pre-wrap; /* Moz */ - white-space: -pre-wrap; /* Opera 4-6 */ - white-space: -o-pre-wrap; /* Opera 7 */ - white-space: pre-wrap; /* CSS3 */ - word-wrap: break-word; /* IE 5.5+ */ - text-indent: -53px; - padding-left: 53px; - padding-bottom: 0px; - margin: 0px; - -webkit-transition-property: background-color, box-shadow; - -webkit-transition-duration: 0.5s; - -moz-transition-property: background-color, box-shadow; - -moz-transition-duration: 0.5s; - -ms-transition-property: background-color, box-shadow; - -ms-transition-duration: 0.5s; - -o-transition-property: background-color, box-shadow; - -o-transition-duration: 0.5s; - transition-property: background-color, box-shadow; - transition-duration: 0.5s; -} - -div.line:after { - content:"\000A"; - white-space: pre; -} - -div.line.glow { - background-color: cyan; - box-shadow: 0 0 10px cyan; -} - - -span.lineno { - padding-right: 4px; - text-align: right; - border-right: 2px solid #0F0; - background-color: #E8E8E8; - white-space: pre; -} -span.lineno a { - background-color: #D8D8D8; -} - -span.lineno a:hover { - background-color: #C8C8C8; -} - -.lineno { - -webkit-touch-callout: none; - -webkit-user-select: none; - -khtml-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; -} - -div.ah, span.ah { - background-color: black; - font-weight: bold; - color: #ffffff; - margin-bottom: 3px; - margin-top: 3px; - padding: 0.2em; - border: solid thin #333; - border-radius: 0.5em; - -webkit-border-radius: .5em; - -moz-border-radius: .5em; - box-shadow: 2px 2px 3px #999; - -webkit-box-shadow: 2px 2px 3px #999; - -moz-box-shadow: rgba(0, 0, 0, 0.15) 2px 2px 2px; - background-image: -webkit-gradient(linear, left top, left bottom, from(#eee), to(#000),color-stop(0.3, #444)); - background-image: -moz-linear-gradient(center top, #eee 0%, #444 40%, #000 110%); -} - -div.classindex ul { - list-style: none; - padding-left: 0; -} - -div.classindex span.ai { - display: inline-block; -} - -div.groupHeader { - margin-left: 16px; - margin-top: 12px; - font-weight: bold; -} - -div.groupText { - margin-left: 16px; - font-style: italic; -} - -body { - background-color: white; - color: black; - margin: 0; -} - -div.contents { - margin-top: 10px; - margin-left: 12px; - margin-right: 8px; -} - -td.indexkey { - background-color: #EBEFF6; - font-weight: bold; - border: 1px solid #C4CFE5; - margin: 2px 0px 2px 0; - padding: 2px 10px; - white-space: nowrap; - vertical-align: top; -} - -td.indexvalue { - background-color: #EBEFF6; - border: 1px solid #C4CFE5; - padding: 2px 10px; - margin: 2px 0px; -} - -tr.memlist { - background-color: #EEF1F7; -} - -p.formulaDsp { - text-align: center; -} - -img.formulaDsp { - -} - -img.formulaInl { - vertical-align: middle; -} - -div.center { - text-align: center; - margin-top: 0px; - margin-bottom: 0px; - padding: 0px; -} - -div.center img { - border: 0px; -} - -address.footer { - text-align: right; - padding-right: 12px; -} - -img.footer { - border: 0px; - vertical-align: middle; -} - -/* @group Code Colorization */ - -span.keyword { - color: #008000 -} - -span.keywordtype { - color: #604020 -} - -span.keywordflow { - color: #e08000 -} - -span.comment { - color: #800000 -} - -span.preprocessor { - color: #806020 -} - -span.stringliteral { - color: #002080 -} - -span.charliteral { - color: #008080 -} - -span.vhdldigit { - color: #ff00ff -} - -span.vhdlchar { - color: #000000 -} - -span.vhdlkeyword { - color: #700070 -} - -span.vhdllogic { - color: #ff0000 -} - -blockquote { - background-color: #F7F8FB; - border-left: 2px solid #9CAFD4; - margin: 0 24px 0 4px; - padding: 0 12px 0 16px; -} - -/* @end */ - -/* -.search { - color: #003399; - font-weight: bold; -} - -form.search { - margin-bottom: 0px; - margin-top: 0px; -} - -input.search { - font-size: 75%; - color: #000080; - font-weight: normal; - background-color: #e8eef2; -} -*/ - -td.tiny { - font-size: 75%; -} - -.dirtab { - padding: 4px; - border-collapse: collapse; - border: 1px solid #A3B4D7; -} - -th.dirtab { - background: #EBEFF6; - font-weight: bold; -} - -hr { - height: 0px; - border: none; - border-top: 1px solid #4A6AAA; -} - -hr.footer { - height: 1px; -} - -/* @group Member Descriptions */ - -table.memberdecls { - border-spacing: 0px; - padding: 0px; -} - -.memberdecls td, .fieldtable tr { - -webkit-transition-property: background-color, box-shadow; - -webkit-transition-duration: 0.5s; - -moz-transition-property: background-color, box-shadow; - -moz-transition-duration: 0.5s; - -ms-transition-property: background-color, box-shadow; - -ms-transition-duration: 0.5s; - -o-transition-property: background-color, box-shadow; - -o-transition-duration: 0.5s; - transition-property: background-color, box-shadow; - transition-duration: 0.5s; -} - -.memberdecls td.glow, .fieldtable tr.glow { - background-color: cyan; - box-shadow: 0 0 15px cyan; -} - -.mdescLeft, .mdescRight, -.memItemLeft, .memItemRight, -.memTemplItemLeft, .memTemplItemRight, .memTemplParams { - background-color: #F9FAFC; - border: none; - margin: 4px; - padding: 1px 0 0 8px; -} - -.mdescLeft, .mdescRight { - padding: 0px 8px 4px 8px; - color: #555; -} - -.memSeparator { - border-bottom: 1px solid #DEE4F0; - line-height: 1px; - margin: 0px; - padding: 0px; -} - -.memItemLeft, .memTemplItemLeft { - white-space: nowrap; -} - -.memItemRight { - width: 100%; -} - -.memTemplParams { - color: #4665A2; - white-space: nowrap; - font-size: 80%; -} - -/* @end */ - -/* @group Member Details */ - -/* Styles for detailed member documentation */ - -.memtitle { - padding: 8px; - border-top: 1px solid #A8B8D9; - border-left: 1px solid #A8B8D9; - border-right: 1px solid #A8B8D9; - border-top-right-radius: 4px; - border-top-left-radius: 4px; - margin-bottom: -1px; - background-image: url('nav_f.png'); - background-repeat: repeat-x; - background-color: #E2E8F2; - line-height: 1.25; - font-weight: 300; - float:left; -} - -.permalink -{ - font-size: 65%; - display: inline-block; - vertical-align: middle; -} - -.memtemplate { - font-size: 80%; - color: #4665A2; - font-weight: normal; - margin-left: 9px; -} - -.memnav { - background-color: #EBEFF6; - border: 1px solid #A3B4D7; - text-align: center; - margin: 2px; - margin-right: 15px; - padding: 2px; -} - -.mempage { - width: 100%; -} - -.memitem { - padding: 0; - margin-bottom: 10px; - margin-right: 5px; - -webkit-transition: box-shadow 0.5s linear; - -moz-transition: box-shadow 0.5s linear; - -ms-transition: box-shadow 0.5s linear; - -o-transition: box-shadow 0.5s linear; - transition: box-shadow 0.5s linear; - display: table !important; - width: 100%; -} - -.memitem.glow { - box-shadow: 0 0 15px cyan; -} - -.memname { - font-weight: 400; - margin-left: 6px; -} - -.memname td { - vertical-align: bottom; -} - -.memproto, dl.reflist dt { - border-top: 1px solid #A8B8D9; - border-left: 1px solid #A8B8D9; - border-right: 1px solid #A8B8D9; - padding: 6px 0px 6px 0px; - color: #253555; - font-weight: bold; - text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9); - background-color: #DFE5F1; - /* opera specific markup */ - box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); - border-top-right-radius: 4px; - /* firefox specific markup */ - -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px; - -moz-border-radius-topright: 4px; - /* webkit specific markup */ - -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); - -webkit-border-top-right-radius: 4px; - -} - -.overload { - font-family: "courier new",courier,monospace; - font-size: 65%; -} - -.memdoc, dl.reflist dd { - border-bottom: 1px solid #A8B8D9; - border-left: 1px solid #A8B8D9; - border-right: 1px solid #A8B8D9; - padding: 6px 10px 2px 10px; - background-color: #FBFCFD; - border-top-width: 0; - background-image:url('nav_g.png'); - background-repeat:repeat-x; - background-color: #FFFFFF; - /* opera specific markup */ - border-bottom-left-radius: 4px; - border-bottom-right-radius: 4px; - box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); - /* firefox specific markup */ - -moz-border-radius-bottomleft: 4px; - -moz-border-radius-bottomright: 4px; - -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px; - /* webkit specific markup */ - -webkit-border-bottom-left-radius: 4px; - -webkit-border-bottom-right-radius: 4px; - -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); -} - -dl.reflist dt { - padding: 5px; -} - -dl.reflist dd { - margin: 0px 0px 10px 0px; - padding: 5px; -} - -.paramkey { - text-align: right; -} - -.paramtype { - white-space: nowrap; -} - -.paramname { - color: #602020; - white-space: nowrap; -} -.paramname em { - font-style: normal; -} -.paramname code { - line-height: 14px; -} - -.params, .retval, .exception, .tparams { - margin-left: 0px; - padding-left: 0px; -} - -.params .paramname, .retval .paramname { - font-weight: bold; - vertical-align: top; -} - -.params .paramtype { - font-style: italic; - vertical-align: top; -} - -.params .paramdir { - font-family: "courier new",courier,monospace; - vertical-align: top; -} - -table.mlabels { - border-spacing: 0px; -} - -td.mlabels-left { - width: 100%; - padding: 0px; -} - -td.mlabels-right { - vertical-align: bottom; - padding: 0px; - white-space: nowrap; -} - -span.mlabels { - margin-left: 8px; -} - -span.mlabel { - background-color: #728DC1; - border-top:1px solid #5373B4; - border-left:1px solid #5373B4; - border-right:1px solid #C4CFE5; - border-bottom:1px solid #C4CFE5; - text-shadow: none; - color: white; - margin-right: 4px; - padding: 2px 3px; - border-radius: 3px; - font-size: 7pt; - white-space: nowrap; - vertical-align: middle; -} - - - -/* @end */ - -/* these are for tree view inside a (index) page */ - -div.directory { - margin: 10px 0px; - border-top: 1px solid #9CAFD4; - border-bottom: 1px solid #9CAFD4; - width: 100%; -} - -.directory table { - border-collapse:collapse; -} - -.directory td { - margin: 0px; - padding: 0px; - vertical-align: top; -} - -.directory td.entry { - white-space: nowrap; - padding-right: 6px; - padding-top: 3px; -} - -.directory td.entry a { - outline:none; -} - -.directory td.entry a img { - border: none; -} - -.directory td.desc { - width: 100%; - padding-left: 6px; - padding-right: 6px; - padding-top: 3px; - border-left: 1px solid rgba(0,0,0,0.05); -} - -.directory tr.even { - padding-left: 6px; - background-color: #F7F8FB; -} - -.directory img { - vertical-align: -30%; -} - -.directory .levels { - white-space: nowrap; - width: 100%; - text-align: right; - font-size: 9pt; -} - -.directory .levels span { - cursor: pointer; - padding-left: 2px; - padding-right: 2px; - color: #3D578C; -} - -.arrow { - color: #9CAFD4; - -webkit-user-select: none; - -khtml-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; - cursor: pointer; - font-size: 80%; - display: inline-block; - width: 16px; - height: 22px; -} - -.icon { - font-family: Arial, Helvetica; - font-weight: bold; - font-size: 12px; - height: 14px; - width: 16px; - display: inline-block; - background-color: #728DC1; - color: white; - text-align: center; - border-radius: 4px; - margin-left: 2px; - margin-right: 2px; -} - -.icona { - width: 24px; - height: 22px; - display: inline-block; -} - -.iconfopen { - width: 24px; - height: 18px; - margin-bottom: 4px; - background-image:url('folderopen.png'); - background-position: 0px -4px; - background-repeat: repeat-y; - vertical-align:top; - display: inline-block; -} - -.iconfclosed { - width: 24px; - height: 18px; - margin-bottom: 4px; - background-image:url('folderclosed.png'); - background-position: 0px -4px; - background-repeat: repeat-y; - vertical-align:top; - display: inline-block; -} - -.icondoc { - width: 24px; - height: 18px; - margin-bottom: 4px; - background-image:url('doc.png'); - background-position: 0px -4px; - background-repeat: repeat-y; - vertical-align:top; - display: inline-block; -} - -table.directory { - font: 400 14px Roboto,sans-serif; -} - -/* @end */ - -div.dynheader { - margin-top: 8px; - -webkit-touch-callout: none; - -webkit-user-select: none; - -khtml-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; -} - -address { - font-style: normal; - color: #2A3D61; -} - -table.doxtable caption { - caption-side: top; -} - -table.doxtable { - border-collapse:collapse; - margin-top: 4px; - margin-bottom: 4px; -} - -table.doxtable td, table.doxtable th { - border: 1px solid #2D4068; - padding: 3px 7px 2px; -} - -table.doxtable th { - background-color: #374F7F; - color: #FFFFFF; - font-size: 110%; - padding-bottom: 4px; - padding-top: 5px; -} - -table.fieldtable { - /*width: 100%;*/ - margin-bottom: 10px; - border: 1px solid #A8B8D9; - border-spacing: 0px; - -moz-border-radius: 4px; - -webkit-border-radius: 4px; - border-radius: 4px; - -moz-box-shadow: rgba(0, 0, 0, 0.15) 2px 2px 2px; - -webkit-box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.15); - box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.15); -} - -.fieldtable td, .fieldtable th { - padding: 3px 7px 2px; -} - -.fieldtable td.fieldtype, .fieldtable td.fieldname { - white-space: nowrap; - border-right: 1px solid #A8B8D9; - border-bottom: 1px solid #A8B8D9; - vertical-align: top; -} - -.fieldtable td.fieldname { - padding-top: 3px; -} - -.fieldtable td.fielddoc { - border-bottom: 1px solid #A8B8D9; - /*width: 100%;*/ -} - -.fieldtable td.fielddoc p:first-child { - margin-top: 0px; -} - -.fieldtable td.fielddoc p:last-child { - margin-bottom: 2px; -} - -.fieldtable tr:last-child td { - border-bottom: none; -} - -.fieldtable th { - background-image:url('nav_f.png'); - background-repeat:repeat-x; - background-color: #E2E8F2; - font-size: 90%; - color: #253555; - padding-bottom: 4px; - padding-top: 5px; - text-align:left; - font-weight: 400; - -moz-border-radius-topleft: 4px; - -moz-border-radius-topright: 4px; - -webkit-border-top-left-radius: 4px; - -webkit-border-top-right-radius: 4px; - border-top-left-radius: 4px; - border-top-right-radius: 4px; - border-bottom: 1px solid #A8B8D9; -} - - -.tabsearch { - top: 0px; - left: 10px; - height: 36px; - background-image: url('tab_b.png'); - z-index: 101; - overflow: hidden; - font-size: 13px; -} - -.navpath ul -{ - font-size: 11px; - background-image:url('tab_b.png'); - background-repeat:repeat-x; - background-position: 0 -5px; - height:30px; - line-height:30px; - color:#8AA0CC; - border:solid 1px #C2CDE4; - overflow:hidden; - margin:0px; - padding:0px; -} - -.navpath li -{ - list-style-type:none; - float:left; - padding-left:10px; - padding-right:15px; - background-image:url('bc_s.png'); - background-repeat:no-repeat; - background-position:right; - color:#364D7C; -} - -.navpath li.navelem a -{ - height:32px; - display:block; - text-decoration: none; - outline: none; - color: #283A5D; - font-family: 'Lucida Grande',Geneva,Helvetica,Arial,sans-serif; - text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9); - text-decoration: none; -} - -.navpath li.navelem a:hover -{ - color:#6884BD; -} - -.navpath li.footer -{ - list-style-type:none; - float:right; - padding-left:10px; - padding-right:15px; - background-image:none; - background-repeat:no-repeat; - background-position:right; - color:#364D7C; - font-size: 8pt; -} - - -div.summary -{ - float: right; - font-size: 8pt; - padding-right: 5px; - width: 50%; - text-align: right; -} - -div.summary a -{ - white-space: nowrap; -} - -table.classindex -{ - margin: 10px; - white-space: nowrap; - margin-left: 3%; - margin-right: 3%; - width: 94%; - border: 0; - border-spacing: 0; - padding: 0; -} - -div.ingroups -{ - font-size: 8pt; - width: 50%; - text-align: left; -} - -div.ingroups a -{ - white-space: nowrap; -} - -div.header -{ - background-image:url('nav_h.png'); - background-repeat:repeat-x; - background-color: #F9FAFC; - margin: 0px; - border-bottom: 1px solid #C4CFE5; -} - -div.headertitle -{ - padding: 5px 5px 5px 10px; -} - -dl -{ - padding: 0 0 0 10px; -} - -/* dl.note, dl.warning, dl.attention, dl.pre, dl.post, dl.invariant, dl.deprecated, dl.todo, dl.test, dl.bug */ -dl.section -{ - margin-left: 0px; - padding-left: 0px; -} - -dl.note -{ - margin-left:-7px; - padding-left: 3px; - border-left:4px solid; - border-color: #D0C000; -} - -dl.warning, dl.attention -{ - margin-left:-7px; - padding-left: 3px; - border-left:4px solid; - border-color: #FF0000; -} - -dl.pre, dl.post, dl.invariant -{ - margin-left:-7px; - padding-left: 3px; - border-left:4px solid; - border-color: #00D000; -} - -dl.deprecated -{ - margin-left:-7px; - padding-left: 3px; - border-left:4px solid; - border-color: #505050; -} - -dl.todo -{ - margin-left:-7px; - padding-left: 3px; - border-left:4px solid; - border-color: #00C0E0; -} - -dl.test -{ - margin-left:-7px; - padding-left: 3px; - border-left:4px solid; - border-color: #3030E0; -} - -dl.bug -{ - margin-left:-7px; - padding-left: 3px; - border-left:4px solid; - border-color: #C08050; -} - -dl.section dd { - margin-bottom: 6px; -} - - -#projectlogo -{ - text-align: center; - vertical-align: bottom; - border-collapse: separate; -} - -#projectlogo img -{ - border: 0px none; -} - -#projectalign -{ - vertical-align: middle; -} - -#projectname -{ - font: 300% Tahoma, Arial,sans-serif; - margin: 0px; - padding: 2px 0px; -} - -#projectbrief -{ - font: 120% Tahoma, Arial,sans-serif; - margin: 0px; - padding: 0px; -} - -#projectnumber -{ - font: 50% Tahoma, Arial,sans-serif; - margin: 0px; - padding: 0px; -} - -#titlearea -{ - padding: 0px; - margin: 0px; - width: 100%; - border-bottom: 1px solid #5373B4; -} - -.image -{ - text-align: center; -} - -.dotgraph -{ - text-align: center; -} - -.mscgraph -{ - text-align: center; -} - -.plantumlgraph -{ - text-align: center; -} - -.diagraph -{ - text-align: center; -} - -.caption -{ - font-weight: bold; -} - -div.zoom -{ - border: 1px solid #90A5CE; -} - -dl.citelist { - margin-bottom:50px; -} - -dl.citelist dt { - color:#334975; - float:left; - font-weight:bold; - margin-right:10px; - padding:5px; -} - -dl.citelist dd { - margin:2px 0; - padding:5px 0; -} - -div.toc { - padding: 14px 25px; - background-color: #F4F6FA; - border: 1px solid #D8DFEE; - border-radius: 7px 7px 7px 7px; - float: right; - height: auto; - margin: 0 8px 10px 10px; - width: 200px; -} - -div.toc li { - background: url("bdwn.png") no-repeat scroll 0 5px transparent; - font: 10px/1.2 Verdana,DejaVu Sans,Geneva,sans-serif; - margin-top: 5px; - padding-left: 10px; - padding-top: 2px; -} - -div.toc h3 { - font: bold 12px/1.2 Arial,FreeSans,sans-serif; - color: #4665A2; - border-bottom: 0 none; - margin: 0; -} - -div.toc ul { - list-style: none outside none; - border: medium none; - padding: 0px; -} - -div.toc li.level1 { - margin-left: 0px; -} - -div.toc li.level2 { - margin-left: 15px; -} - -div.toc li.level3 { - margin-left: 30px; -} - -div.toc li.level4 { - margin-left: 45px; -} - -.inherit_header { - font-weight: bold; - color: gray; - cursor: pointer; - -webkit-touch-callout: none; - -webkit-user-select: none; - -khtml-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; -} - -.inherit_header td { - padding: 6px 0px 2px 5px; -} - -.inherit { - display: none; -} - -tr.heading h2 { - margin-top: 12px; - margin-bottom: 4px; -} - -/* tooltip related style info */ - -.ttc { - position: absolute; - display: none; -} - -#powerTip { - cursor: default; - white-space: nowrap; - background-color: white; - border: 1px solid gray; - border-radius: 4px 4px 4px 4px; - box-shadow: 1px 1px 7px gray; - display: none; - font-size: smaller; - max-width: 80%; - opacity: 0.9; - padding: 1ex 1em 1em; - position: absolute; - z-index: 2147483647; -} - -#powerTip div.ttdoc { - color: grey; - font-style: italic; -} - -#powerTip div.ttname a { - font-weight: bold; -} - -#powerTip div.ttname { - font-weight: bold; -} - -#powerTip div.ttdeci { - color: #006318; -} - -#powerTip div { - margin: 0px; - padding: 0px; - font: 12px/16px Roboto,sans-serif; -} - -#powerTip:before, #powerTip:after { - content: ""; - position: absolute; - margin: 0px; -} - -#powerTip.n:after, #powerTip.n:before, -#powerTip.s:after, #powerTip.s:before, -#powerTip.w:after, #powerTip.w:before, -#powerTip.e:after, #powerTip.e:before, -#powerTip.ne:after, #powerTip.ne:before, -#powerTip.se:after, #powerTip.se:before, -#powerTip.nw:after, #powerTip.nw:before, -#powerTip.sw:after, #powerTip.sw:before { - border: solid transparent; - content: " "; - height: 0; - width: 0; - position: absolute; -} - -#powerTip.n:after, #powerTip.s:after, -#powerTip.w:after, #powerTip.e:after, -#powerTip.nw:after, #powerTip.ne:after, -#powerTip.sw:after, #powerTip.se:after { - border-color: rgba(255, 255, 255, 0); -} - -#powerTip.n:before, #powerTip.s:before, -#powerTip.w:before, #powerTip.e:before, -#powerTip.nw:before, #powerTip.ne:before, -#powerTip.sw:before, #powerTip.se:before { - border-color: rgba(128, 128, 128, 0); -} - -#powerTip.n:after, #powerTip.n:before, -#powerTip.ne:after, #powerTip.ne:before, -#powerTip.nw:after, #powerTip.nw:before { - top: 100%; -} - -#powerTip.n:after, #powerTip.ne:after, #powerTip.nw:after { - border-top-color: #ffffff; - border-width: 10px; - margin: 0px -10px; -} -#powerTip.n:before { - border-top-color: #808080; - border-width: 11px; - margin: 0px -11px; -} -#powerTip.n:after, #powerTip.n:before { - left: 50%; -} - -#powerTip.nw:after, #powerTip.nw:before { - right: 14px; -} - -#powerTip.ne:after, #powerTip.ne:before { - left: 14px; -} - -#powerTip.s:after, #powerTip.s:before, -#powerTip.se:after, #powerTip.se:before, -#powerTip.sw:after, #powerTip.sw:before { - bottom: 100%; -} - -#powerTip.s:after, #powerTip.se:after, #powerTip.sw:after { - border-bottom-color: #ffffff; - border-width: 10px; - margin: 0px -10px; -} - -#powerTip.s:before, #powerTip.se:before, #powerTip.sw:before { - border-bottom-color: #808080; - border-width: 11px; - margin: 0px -11px; -} - -#powerTip.s:after, #powerTip.s:before { - left: 50%; -} - -#powerTip.sw:after, #powerTip.sw:before { - right: 14px; -} - -#powerTip.se:after, #powerTip.se:before { - left: 14px; -} - -#powerTip.e:after, #powerTip.e:before { - left: 100%; -} -#powerTip.e:after { - border-left-color: #ffffff; - border-width: 10px; - top: 50%; - margin-top: -10px; -} -#powerTip.e:before { - border-left-color: #808080; - border-width: 11px; - top: 50%; - margin-top: -11px; -} - -#powerTip.w:after, #powerTip.w:before { - right: 100%; -} -#powerTip.w:after { - border-right-color: #ffffff; - border-width: 10px; - top: 50%; - margin-top: -10px; -} -#powerTip.w:before { - border-right-color: #808080; - border-width: 11px; - top: 50%; - margin-top: -11px; -} - -@media print -{ - #top { display: none; } - #side-nav { display: none; } - #nav-path { display: none; } - body { overflow:visible; } - h1, h2, h3, h4, h5, h6 { page-break-after: avoid; } - .summary { display: none; } - .memitem { page-break-inside: avoid; } - #doc-content - { - margin-left:0 !important; - height:auto !important; - width:auto !important; - overflow:inherit; - display:inline; - } -} - -/* @group Markdown */ - -/* -table.markdownTable { - border-collapse:collapse; - margin-top: 4px; - margin-bottom: 4px; -} - -table.markdownTable td, table.markdownTable th { - border: 1px solid #2D4068; - padding: 3px 7px 2px; -} - -table.markdownTableHead tr { -} - -table.markdownTableBodyLeft td, table.markdownTable th { - border: 1px solid #2D4068; - padding: 3px 7px 2px; -} - -th.markdownTableHeadLeft th.markdownTableHeadRight th.markdownTableHeadCenter th.markdownTableHeadNone { - background-color: #374F7F; - color: #FFFFFF; - font-size: 110%; - padding-bottom: 4px; - padding-top: 5px; -} - -th.markdownTableHeadLeft { - text-align: left -} - -th.markdownTableHeadRight { - text-align: right -} - -th.markdownTableHeadCenter { - text-align: center -} -*/ - -table.markdownTable { - border-collapse:collapse; - margin-top: 4px; - margin-bottom: 4px; -} - -table.markdownTable td, table.markdownTable th { - border: 1px solid #2D4068; - padding: 3px 7px 2px; -} - -table.markdownTable tr { -} - -th.markdownTableHeadLeft, th.markdownTableHeadRight, th.markdownTableHeadCenter, th.markdownTableHeadNone { - background-color: #374F7F; - color: #FFFFFF; - font-size: 110%; - padding-bottom: 4px; - padding-top: 5px; -} - -th.markdownTableHeadLeft, td.markdownTableBodyLeft { - text-align: left -} - -th.markdownTableHeadRight, td.markdownTableBodyRight { - text-align: right -} - -th.markdownTableHeadCenter, td.markdownTableBodyCenter { - text-align: center -} - - -/* @end */ diff --git a/docs/doxygen.png b/docs/doxygen.png deleted file mode 100644 index 3ff17d807fd8aa003bed8bb2a69e8f0909592fd1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3779 zcmV;!4m|ORP)tMIv#Q0*~7*`IBSO7_x;@a8#Zk6_PeKR_s92J&)(m+);m9Iz3blw)z#Gi zP!9lj4$%+*>Hz@HCmM9L9|8c+0u=!H$O3?R0Kgx|#WP<6fKfC8fM-CQZT|_r@`>VO zX^Hgb|9cJqpdJA5$MCEK`F_2@2Y@s>^+;pF`~jdI0Pvr|vl4`=C)EH@1IFe7pdJ8F zH(qGi004~QnF)Ggga~8v08kGAs2hKTATxr7pwfNk|4#_AaT>w8P6TV+R2kbS$v==} zAjf`s0g#V8lB+b3)5oEI*q+{Yt$MZDruD2^;$+(_%Qn+%v0X-bJO=;@kiJ^ygLBnC z?1OVv_%aex1M@jKU|Z~$eI?PoF4Vj>fDzyo zAiLfpXY*a^Sj-S5D0S3@#V$sRW)g)_1e#$%8xdM>Jm7?!h zu0P2X=xoN>^!4DoPRgph2(2va07yfpXF+WH7EOg1GY%Zn z7~1A<(z7Q$ktEXhW_?GMpHp9l_UL18F3KOsxu81pqoBiNbFSGsof-W z6~eloMoz=4?OOnl2J268x5rOY`dCk0us(uS#Ud4yqOr@?=Q57a}tit|BhY>}~frH1sP`ScHS_d)oqH^lYy zZ%VP`#10MlE~P?cE(%(#(AUSv_T{+;t@$U}El}(1ig`vZo`Rm;+5&(AYzJ^Ae=h2X z@Re%vHwZU>|f0NI&%$*4eJweC5OROQrpPMA@*w|o z()A==l}(@bv^&>H1Ob3C=<^|hob?0+xJ?QQ3-ueQC}zy&JQNib!OqSO@-=>XzxlSF zAZ^U*1l6EEmg3r};_HY>&Jo_{dOPEFTWPmt=U&F#+0(O59^UIlHbNX+eF8UzyDR*T z(=5X$VF3!gm@RooS-&iiUYGG^`hMR(07zr_xP`d!^BH?uD>Phl8Rdifx3Af^Zr`Ku ztL+~HkVeL#bJ)7;`=>;{KNRvjmc}1}c58Sr#Treq=4{xo!ATy|c>iRSp4`dzMMVd@ zL8?uwXDY}Wqgh4mH`|$BTXpUIu6A1-cSq%hJw;@^Zr8TP=GMh*p(m(tN7@!^D~sl$ zz^tf4II4|};+irE$Fnm4NTc5%p{PRA`%}Zk`CE5?#h3|xcyQsS#iONZ z6H(@^i9td!$z~bZiJLTax$o>r(p}3o@< zyD7%(>ZYvy=6$U3e!F{Z`uSaYy`xQyl?b{}eg|G3&fz*`QH@mDUn)1%#5u`0m$%D} z?;tZ0u(mWeMV0QtzjgN!lT*pNRj;6510Wwx?Yi_=tYw|J#7@(Xe7ifDzXuK;JB;QO z#bg~K$cgm$@{QiL_3yr}y&~wuv=P=#O&Tj=Sr)aCUlYmZMcw?)T?c%0rUe1cS+o!qs_ zQ6Gp)-{)V!;=q}llyK3|^WeLKyjf%y;xHku;9(vM!j|~<7w1c*Mk-;P{T&yG) z@C-8E?QPynNQ<8f01D`2qexcVEIOU?y}MG)TAE6&VT5`rK8s(4PE;uQ92LTXUQ<>^ ztyQ@=@kRdh@ebUG^Z6NWWIL;_IGJ2ST>$t!$m$qvtj0Qmw8moN6GUV^!QKNK zHBXCtUH8)RY9++gH_TUV4^=-j$t}dD3qsN7GclJ^Zc&(j6&a_!$jCf}%c5ey`pm~1)@{yI3 zTdWyB+*X{JFw#z;PwRr5evb2!ueWF;v`B0HoUu4-(~aL=z;OXUUEtG`_$)Oxw6FKg zEzY`CyKaSBK3xt#8gA|r_|Kehn_HYVBMpEwbn9-fI*!u*eTA1ef8Mkl1=!jV4oYwWYM}i`A>_F4nhmlCIC6WLa zY%;4&@AlnaG11ejl61Jev21|r*m+?Kru3;1tFDl}#!OzUp6c>go4{C|^erwpG*&h6bspUPJag}oOkN2912Y3I?(eRc@U9>z#HPBHC?nps7H5!zP``90!Q1n80jo+B3TWXp!8Pe zwuKuLLI6l3Gv@+QH*Y}2wPLPQ1^EZhT#+Ed8q8Wo z1pTmIBxv14-{l&QVKxAyQF#8Q@NeJwWdKk>?cpiJLkJr+aZ!Me+Cfp!?FWSRf^j2k z73BRR{WSKaMkJ>1Nbx5dan5hg^_}O{Tj6u%iV%#QGz0Q@j{R^Ik)Z*+(YvY2ziBG)?AmJa|JV%4UT$k`hcOg5r9R?5>?o~JzK zJCrj&{i#hG>N7!B4kNX(%igb%kDj0fOQThC-8mtfap82PNRXr1D>lbgg)dYTQ(kbx z`Ee5kXG~Bh+BHQBf|kJEy6(ga%WfhvdQNDuOfQoe377l#ht&DrMGeIsI5C<&ai zWG$|hop2@@q5YDa)_-A?B02W;#fH!%k`daQLEItaJJ8Yf1L%8x;kg?)k)00P-lH+w z)5$QNV6r2$YtnV(4o=0^3{kmaXn*Dm0F*fU(@o)yVVjk|ln8ea6BMy%vZAhW9|wvA z8RoDkVoMEz1d>|5(k0Nw>22ZT){V<3$^C-cN+|~hKt2)){+l-?3m@-$c?-dlzQ)q- zZ)j%n^gerV{|+t}9m1_&&Ly!9$rtG4XX|WQ8`xYzGC~U@nYh~g(z9)bdAl#xH)xd5a=@|qql z|FzEil{P5(@gy!4ek05i$>`E^G~{;pnf6ftpLh$h#W?^#4UkPfa;;?bsIe&kz!+40 zI|6`F2n020)-r`pFaZ38F!S-lJM-o&inOw|66=GMeP@xQU5ghQH{~5Uh~TMTd;I9` z>YhVB`e^EVj*S7JF39ZgNf}A-0DwOcTT63ydN$I3b?yBQtUI*_fae~kPvzoD$zjX3 zoqBe#>12im4WzZ=f^4+u=!lA|#r%1`WB0-6*3BL#at`47#ebPpR|D1b)3BjT34nYY z%Ds%d?5$|{LgOIaRO{{oC&RK`O91$fqwM0(C_TALcozu*fWHb%%q&p-q{_8*2Zsi^ zh1ZCnr^UYa;4vQEtHk{~zi>wwMC5o{S=$P0X681y`SXwFH?Ewn{x-MOZynmc)JT5v zuHLwh;tLfxRrr%|k370}GofLl7thg>ACWWY&msqaVu&ry+`7+Ss>NL^%T1|z{IGMA zW-SKl=V-^{(f!Kf^#3(|T2W47d(%JVCI4JgRrT1pNz>+ietmFToNv^`gzC@&O-)+i zPQ~RwK8%C_vf%;%e>NyTp~dM5;!C|N0Q^6|CEb7Bw=Vz~$1#FA;Z*?mKSC)Hl-20s t8QyHj(g6VK0RYbl8UjE)0O0w=e*@m04r>stuEhWV002ovPDHLkV1hl;dM*F} diff --git a/docs/dynsections.js b/docs/dynsections.js deleted file mode 100644 index 85e1836..0000000 --- a/docs/dynsections.js +++ /dev/null @@ -1,97 +0,0 @@ -function toggleVisibility(linkObj) -{ - var base = $(linkObj).attr('id'); - var summary = $('#'+base+'-summary'); - var content = $('#'+base+'-content'); - var trigger = $('#'+base+'-trigger'); - var src=$(trigger).attr('src'); - if (content.is(':visible')===true) { - content.hide(); - summary.show(); - $(linkObj).addClass('closed').removeClass('opened'); - $(trigger).attr('src',src.substring(0,src.length-8)+'closed.png'); - } else { - content.show(); - summary.hide(); - $(linkObj).removeClass('closed').addClass('opened'); - $(trigger).attr('src',src.substring(0,src.length-10)+'open.png'); - } - return false; -} - -function updateStripes() -{ - $('table.directory tr'). - removeClass('even').filter(':visible:even').addClass('even'); -} - -function toggleLevel(level) -{ - $('table.directory tr').each(function() { - var l = this.id.split('_').length-1; - var i = $('#img'+this.id.substring(3)); - var a = $('#arr'+this.id.substring(3)); - if (l - - - - - - -TinyXML-2: File List - - - - - - - - - -
-
- - - - - - -
-
TinyXML-2 -  5.0.1 -
-
-
- - - - - - - -
- -
-
- - -
- -
- -
-
-
File List
-
-
-
Here is a list of all documented files with brief descriptions:
- - -
 tinyxml2.h
-
-
- - - - diff --git a/docs/folderclosed.png b/docs/folderclosed.png deleted file mode 100644 index bb8ab35edce8e97554e360005ee9fc5bffb36e66..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 616 zcmV-u0+;=XP)a9#ETzayK)T~Jw&MMH>OIr#&;dC}is*2Mqdf&akCc=O@`qC+4i z5Iu3w#1M@KqXCz8TIZd1wli&kkl2HVcAiZ8PUn5z_kG@-y;?yK06=cA0U%H0PH+kU zl6dp}OR(|r8-RG+YLu`zbI}5TlOU6ToR41{9=uz^?dGTNL;wIMf|V3`d1Wj3y!#6` zBLZ?xpKR~^2x}?~zA(_NUu3IaDB$tKma*XUdOZN~c=dLt_h_k!dbxm_*ibDM zlFX`g{k$X}yIe%$N)cn1LNu=q9_CS)*>A zsX_mM4L@`(cSNQKMFc$RtYbx{79#j-J7hk*>*+ZZhM4Hw?I?rsXCi#mRWJ=-0LGV5a-WR0Qgt<|Nqf)C-@80`5gIz45^_20000IqP)X=#(TiCT&PiIIVc55T}TU}EUh*{q$|`3@{d>{Tc9Bo>e= zfmF3!f>fbI9#GoEHh0f`i5)wkLpva0ztf%HpZneK?w-7AK@b4Itw{y|Zd3k!fH?q2 zlhckHd_V2M_X7+)U&_Xcfvtw60l;--DgZmLSw-Y?S>)zIqMyJ1#FwLU*%bl38ok+! zh78H87n`ZTS;uhzAR$M`zZ`bVhq=+%u9^$5jDplgxd44}9;IRqUH1YHH|@6oFe%z( zo4)_>E$F&^P-f(#)>(TrnbE>Pefs9~@iN=|)Rz|V`sGfHNrJ)0gJb8xx+SBmRf@1l zvuzt=vGfI)<-F9!o&3l?>9~0QbUDT(wFdnQPv%xdD)m*g%!20>Bc9iYmGAp<9YAa( z0QgYgTWqf1qN++Gqp z8@AYPTB3E|6s=WLG?xw0tm|U!o=&zd+H0oRYE;Dbx+Na9s^STqX|Gnq%H8s(nGDGJ j8vwW|`Ts`)fSK|Kx=IK@RG@g200000NkvXXu0mjfauFEA diff --git a/docs/functions.html b/docs/functions.html deleted file mode 100644 index 1e61737..0000000 --- a/docs/functions.html +++ /dev/null @@ -1,544 +0,0 @@ - - - - - - - -TinyXML-2: Class Members - - - - - - - - - -
-
- - - - - - -
-
TinyXML-2 -  5.0.1 -
-
-
- - - - - - - -
- -
-
- - -
- -
- -
-
Here is a list of all documented class members with links to the class documentation for each member:
- -

- a -

- - -

- b -

- - -

- c -

- - -

- d -

- - -

- e -

- - -

- f -

- - -

- g -

- - -

- h -

- - -

- i -

- - -

- l -

- - -

- n -

- - -

- o -

- - -

- p -

- - -

- q -

- - -

- r -

- - -

- s -

- - -

- t -

- - -

- u -

- - -

- v -

- - -

- x -

-
- - - - diff --git a/docs/functions_func.html b/docs/functions_func.html deleted file mode 100644 index f82f7cb..0000000 --- a/docs/functions_func.html +++ /dev/null @@ -1,544 +0,0 @@ - - - - - - - -TinyXML-2: Class Members - Functions - - - - - - - - - -
-
- - - - - - -
-
TinyXML-2 -  5.0.1 -
-
-
- - - - - - - -
- -
-
- - -
- -
- -
-  - -

- a -

- - -

- b -

- - -

- c -

- - -

- d -

- - -

- e -

- - -

- f -

- - -

- g -

- - -

- h -

- - -

- i -

- - -

- l -

- - -

- n -

- - -

- o -

- - -

- p -

- - -

- q -

- - -

- r -

- - -

- s -

- - -

- t -

- - -

- u -

- - -

- v -

- - -

- x -

-
- - - - diff --git a/docs/hierarchy.html b/docs/hierarchy.html deleted file mode 100644 index 97c3cd4..0000000 --- a/docs/hierarchy.html +++ /dev/null @@ -1,90 +0,0 @@ - - - - - - - -TinyXML-2: Class Hierarchy - - - - - - - - - -
-
- - - - - - -
-
TinyXML-2 -  5.0.1 -
-
-
- - - - - - - -
- -
-
- - -
- -
- -
-
-
Class Hierarchy
-
-
-
This inheritance list is sorted roughly, but not completely, alphabetically:
-
- - - - diff --git a/docs/index.html b/docs/index.html deleted file mode 100644 index a3808ea..0000000 --- a/docs/index.html +++ /dev/null @@ -1,230 +0,0 @@ - - - - - - - -TinyXML-2: TinyXML-2 - - - - - - - - - -
-
- - - - - - -
-
TinyXML-2 -  5.0.1 -
-
-
- - - - - - - -
- -
-
- - -
- -
- -
-
-
TinyXML-2
-
-
-

-
-TinyXML-2 Logo -
-

TinyXML-2 is a simple, small, efficient, C++ XML parser that can be easily integrated into other programs.

-

The master is hosted on github: https://github.com/leethomason/tinyxml2

-

The online HTML version of these docs: http://leethomason.github.io/tinyxml2/

-

Examples are in the "related pages" tab of the HTML docs.

-

What it does.

-

In brief, TinyXML-2 parses an XML document, and builds from that a Document Object Model (DOM) that can be read, modified, and saved.

-

XML stands for "eXtensible Markup Language." It is a general purpose human and machine readable markup language to describe arbitrary data. All those random file formats created to store application data can all be replaced with XML. One parser for everything.

-

http://en.wikipedia.org/wiki/XML

-

There are different ways to access and interact with XML data. TinyXML-2 uses a Document Object Model (DOM), meaning the XML data is parsed into a C++ objects that can be browsed and manipulated, and then written to disk or another output stream. You can also construct an XML document from scratch with C++ objects and write this to disk or another output stream. You can even use TinyXML-2 to stream XML programmatically from code without creating a document first.

-

TinyXML-2 is designed to be easy and fast to learn. It is one header and one cpp file. Simply add these to your project and off you go. There is an example file - xmltest.cpp - to get you started.

-

TinyXML-2 is released under the ZLib license, so you can use it in open source or commercial code. The details of the license are at the top of every source file.

-

TinyXML-2 attempts to be a flexible parser, but with truly correct and compliant XML output. TinyXML-2 should compile on any reasonably C++ compliant system. It does not rely on exceptions, RTTI, or the STL.

-

What it doesn't do.

-

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.

-

TinyXML-1 vs. TinyXML-2

-

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.

-

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.

-

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.

-

Both parsers:

-
    -
  1. Simple to use with similar APIs.
  2. -
  3. DOM based parser.
  4. -
  5. UTF-8 Unicode support. http://en.wikipedia.org/wiki/UTF-8
  6. -
-

Advantages of TinyXML-2

-
    -
  1. The focus of all future dev.
  2. -
  3. Many fewer memory allocation (1/10th to 1/100th), uses less memory (about 40% of TinyXML-1), and faster.
  4. -
  5. No STL requirement.
  6. -
  7. More modern C++, including a proper namespace.
  8. -
  9. Proper and useful handling of whitespace
  10. -
-

Advantages of TinyXML-1

-
    -
  1. Support for some C++ STL conventions: streams and strings
  2. -
  3. Very mature and well debugged code base.
  4. -
-

Features

-

Memory Model

-

An XMLDocument is a C++ object like any other, that can be on the stack, or new'd and deleted on the heap.

-

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.

-

White Space

-

Whitespace Preservation (default)

-

Microsoft has an excellent article on white space: http://msdn.microsoft.com/en-us/library/ms256097.aspx

-

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.)

-

As a first step, all newlines / carriage-returns / line-feeds are normalized to a line-feed character, as required by the XML spec.

-

White space in text is preserved. For example:

<element> Hello,  World</element>
-

The leading space before the "Hello" and the double space after the comma are preserved. Line-feeds are preserved, as in this example:

<element> Hello again,  
-          World</element>
-

However, white space between elements is not 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:

<document>
-    <data>1</data>
-    <data>2</data>
-    <data>3</data>
-</document>
-
-<document><data>1</data><data>2</data><data>3</data></document>
-

Whitespace Collapse

-

For some applications, it is preferable to collapse whitespace. Collapsing whitespace gives you "HTML-like" behavior, which is sometimes more suitable for hand typed documents.

-

TinyXML-2 supports this with the 'whitespace' parameter to the XMLDocument constructor. (The default is to preserve whitespace, as described above.)

-

However, you may also use COLLAPSE_WHITESPACE, which will:

-
    -
  • Remove leading and trailing whitespace
  • -
  • Convert newlines and line-feeds into a space character
  • -
  • Collapse a run of any number of space characters into a single space character
  • -
-

Note that (currently) there is a performance impact for using COLLAPSE_WHITESPACE. It essentially causes the XML to be parsed twice.

-

Error Reporting

-

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.

-

Entities

-

TinyXML-2 recognizes the pre-defined "character entities", meaning special characters. Namely:

&amp;   &
-&lt;    <
-&gt;    >
-&quot;  "
-&apos;  '
-

These are recognized when the XML document is read, and translated to their UTF-8 equivalents. For instance, text with the XML of:

Far &amp; Away
-

will have the Value() of "Far & Away" when queried from the XMLText object, and will be written back to the XML stream/file as an ampersand.

-

Additionally, any character can be specified by its Unicode code point: The syntax &#xA0; or &#160; are both to the non-breaking space character. This is called a 'numeric character reference'. Any numeric character reference that isn't one of the special entities above, will be read, but written as a regular code point. The output is correct, but the entity syntax isn't preserved.

-

Printing

-

Print to file

-

You can directly use the convenience function:

XMLDocument doc;
-...
-doc.SaveFile( "foo.xml" );
-

Or the XMLPrinter class:

XMLPrinter printer( fp );
-doc.Print( &printer );
-

Print to memory

-

Printing to memory is supported by the XMLPrinter.

XMLPrinter printer;
-doc.Print( &printer );
-// printer.CStr() has a const char* to the XML
-

Print without an XMLDocument

-

When loading, an XML parser is very useful. However, sometimes when saving, it just gets in the way. The code is often set up for streaming, and constructing the DOM is just overhead.

-

The Printer supports the streaming case. The following code prints out a trivially simple XML file without ever creating an XML document.

XMLPrinter printer( fp );
-printer.OpenElement( "foo" );
-printer.PushAttribute( "foo", "bar" );
-printer.CloseElement();
-

Examples

-

Load and parse an XML file.

-
/* ------ Example 1: Load and parse an XML file. ---- */    
-{
-    XMLDocument doc;
-    doc.LoadFile( "dream.xml" );
-}
-

Lookup information.

-
/* ------ Example 2: Lookup information. ---- */    
-{
-    XMLDocument doc;
-    doc.LoadFile( "dream.xml" );
-
-    // Structure of the XML file:
-    // - 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
-
-    // Navigate to the title, using the convenience function,
-    // with a dangerous lack of error checking.
-    const char* title = doc.FirstChildElement( "PLAY" )->FirstChildElement( "TITLE" )->GetText();
-    printf( "Name of play (1): %s\n", title );
-
-    // Text is just another Node to TinyXML-2. The more
-    // general way to get to the XMLText:
-    XMLText* textNode = doc.FirstChildElement( "PLAY" )->FirstChildElement( "TITLE" )->FirstChild()->ToText();
-    title = textNode->Value();
-    printf( "Name of play (2): %s\n", title );
-}
-

Using and Installing

-

There are 2 files in TinyXML-2:

-

And additionally a test file:

    -
  • xmltest.cpp
  • -
-

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.

-

Versioning

-

TinyXML-2 uses semantic versioning. http://semver.org/ Releases are now tagged in github.

-

Note that the major version will (probably) change fairly rapidly. API changes are fairly common.

-

Documentation

-

The documentation is build with Doxygen, using the 'dox' configuration file.

-

License

-

TinyXML-2 is released under the zlib license:

-

This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software.

-

Permission is granted to anyone to use this software for any purpose, including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions:

-
    -
  1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.
  2. -
  3. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software.
  4. -
  5. This notice may not be removed or altered from any source distribution.
  6. -
-

Contributors

-

Thanks very much to everyone who sends suggestions, bugs, ideas, and encouragement. It all helps, and makes this project fun.

-

The original TinyXML-1 has many contributors, who all deserve thanks in shaping what is a very successful library. Extra thanks to Yves Berquin and Andrew Ellerton who were key contributors.

-

TinyXML-2 grew from that effort. Lee Thomason is the original author of TinyXML-2 (and TinyXML-1) but TinyXML-2 has been and is being improved by many contributors.

-

Thanks to John Mackay at http://john.mackay.rosalilastudio.com for the TinyXML-2 logo!

-
- - - - diff --git a/docs/jquery.js b/docs/jquery.js deleted file mode 100644 index f5343ed..0000000 --- a/docs/jquery.js +++ /dev/null @@ -1,87 +0,0 @@ -/*! - * jQuery JavaScript Library v1.7.1 - * http://jquery.com/ - * - * Copyright 2011, John Resig - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * Includes Sizzle.js - * http://sizzlejs.com/ - * Copyright 2011, The Dojo Foundation - * Released under the MIT, BSD, and GPL Licenses. - * - * Date: Mon Nov 21 21:11:03 2011 -0500 - */ -(function(bb,L){var av=bb.document,bu=bb.navigator,bl=bb.location;var b=(function(){var bF=function(b0,b1){return new bF.fn.init(b0,b1,bD)},bU=bb.jQuery,bH=bb.$,bD,bY=/^(?:[^#<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/,bM=/\S/,bI=/^\s+/,bE=/\s+$/,bA=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,bN=/^[\],:{}\s]*$/,bW=/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,bP=/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,bJ=/(?:^|:|,)(?:\s*\[)+/g,by=/(webkit)[ \/]([\w.]+)/,bR=/(opera)(?:.*version)?[ \/]([\w.]+)/,bQ=/(msie) ([\w.]+)/,bS=/(mozilla)(?:.*? rv:([\w.]+))?/,bB=/-([a-z]|[0-9])/ig,bZ=/^-ms-/,bT=function(b0,b1){return(b1+"").toUpperCase()},bX=bu.userAgent,bV,bC,e,bL=Object.prototype.toString,bG=Object.prototype.hasOwnProperty,bz=Array.prototype.push,bK=Array.prototype.slice,bO=String.prototype.trim,bv=Array.prototype.indexOf,bx={};bF.fn=bF.prototype={constructor:bF,init:function(b0,b4,b3){var b2,b5,b1,b6;if(!b0){return this}if(b0.nodeType){this.context=this[0]=b0;this.length=1;return this}if(b0==="body"&&!b4&&av.body){this.context=av;this[0]=av.body;this.selector=b0;this.length=1;return this}if(typeof b0==="string"){if(b0.charAt(0)==="<"&&b0.charAt(b0.length-1)===">"&&b0.length>=3){b2=[null,b0,null]}else{b2=bY.exec(b0)}if(b2&&(b2[1]||!b4)){if(b2[1]){b4=b4 instanceof bF?b4[0]:b4;b6=(b4?b4.ownerDocument||b4:av);b1=bA.exec(b0);if(b1){if(bF.isPlainObject(b4)){b0=[av.createElement(b1[1])];bF.fn.attr.call(b0,b4,true)}else{b0=[b6.createElement(b1[1])]}}else{b1=bF.buildFragment([b2[1]],[b6]);b0=(b1.cacheable?bF.clone(b1.fragment):b1.fragment).childNodes}return bF.merge(this,b0)}else{b5=av.getElementById(b2[2]);if(b5&&b5.parentNode){if(b5.id!==b2[2]){return b3.find(b0)}this.length=1;this[0]=b5}this.context=av;this.selector=b0;return this}}else{if(!b4||b4.jquery){return(b4||b3).find(b0)}else{return this.constructor(b4).find(b0)}}}else{if(bF.isFunction(b0)){return b3.ready(b0)}}if(b0.selector!==L){this.selector=b0.selector;this.context=b0.context}return bF.makeArray(b0,this)},selector:"",jquery:"1.7.1",length:0,size:function(){return this.length},toArray:function(){return bK.call(this,0)},get:function(b0){return b0==null?this.toArray():(b0<0?this[this.length+b0]:this[b0])},pushStack:function(b1,b3,b0){var b2=this.constructor();if(bF.isArray(b1)){bz.apply(b2,b1)}else{bF.merge(b2,b1)}b2.prevObject=this;b2.context=this.context;if(b3==="find"){b2.selector=this.selector+(this.selector?" ":"")+b0}else{if(b3){b2.selector=this.selector+"."+b3+"("+b0+")"}}return b2},each:function(b1,b0){return bF.each(this,b1,b0)},ready:function(b0){bF.bindReady();bC.add(b0);return this},eq:function(b0){b0=+b0;return b0===-1?this.slice(b0):this.slice(b0,b0+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(bK.apply(this,arguments),"slice",bK.call(arguments).join(","))},map:function(b0){return this.pushStack(bF.map(this,function(b2,b1){return b0.call(b2,b1,b2)}))},end:function(){return this.prevObject||this.constructor(null)},push:bz,sort:[].sort,splice:[].splice};bF.fn.init.prototype=bF.fn;bF.extend=bF.fn.extend=function(){var b9,b2,b0,b1,b6,b7,b5=arguments[0]||{},b4=1,b3=arguments.length,b8=false;if(typeof b5==="boolean"){b8=b5;b5=arguments[1]||{};b4=2}if(typeof b5!=="object"&&!bF.isFunction(b5)){b5={}}if(b3===b4){b5=this;--b4}for(;b40){return}bC.fireWith(av,[bF]);if(bF.fn.trigger){bF(av).trigger("ready").off("ready")}}},bindReady:function(){if(bC){return}bC=bF.Callbacks("once memory");if(av.readyState==="complete"){return setTimeout(bF.ready,1)}if(av.addEventListener){av.addEventListener("DOMContentLoaded",e,false);bb.addEventListener("load",bF.ready,false)}else{if(av.attachEvent){av.attachEvent("onreadystatechange",e);bb.attachEvent("onload",bF.ready);var b0=false;try{b0=bb.frameElement==null}catch(b1){}if(av.documentElement.doScroll&&b0){bw()}}}},isFunction:function(b0){return bF.type(b0)==="function"},isArray:Array.isArray||function(b0){return bF.type(b0)==="array"},isWindow:function(b0){return b0&&typeof b0==="object"&&"setInterval" in b0},isNumeric:function(b0){return !isNaN(parseFloat(b0))&&isFinite(b0)},type:function(b0){return b0==null?String(b0):bx[bL.call(b0)]||"object"},isPlainObject:function(b2){if(!b2||bF.type(b2)!=="object"||b2.nodeType||bF.isWindow(b2)){return false}try{if(b2.constructor&&!bG.call(b2,"constructor")&&!bG.call(b2.constructor.prototype,"isPrototypeOf")){return false}}catch(b1){return false}var b0;for(b0 in b2){}return b0===L||bG.call(b2,b0)},isEmptyObject:function(b1){for(var b0 in b1){return false}return true},error:function(b0){throw new Error(b0)},parseJSON:function(b0){if(typeof b0!=="string"||!b0){return null}b0=bF.trim(b0);if(bb.JSON&&bb.JSON.parse){return bb.JSON.parse(b0)}if(bN.test(b0.replace(bW,"@").replace(bP,"]").replace(bJ,""))){return(new Function("return "+b0))()}bF.error("Invalid JSON: "+b0)},parseXML:function(b2){var b0,b1;try{if(bb.DOMParser){b1=new DOMParser();b0=b1.parseFromString(b2,"text/xml")}else{b0=new ActiveXObject("Microsoft.XMLDOM");b0.async="false";b0.loadXML(b2)}}catch(b3){b0=L}if(!b0||!b0.documentElement||b0.getElementsByTagName("parsererror").length){bF.error("Invalid XML: "+b2)}return b0},noop:function(){},globalEval:function(b0){if(b0&&bM.test(b0)){(bb.execScript||function(b1){bb["eval"].call(bb,b1)})(b0)}},camelCase:function(b0){return b0.replace(bZ,"ms-").replace(bB,bT)},nodeName:function(b1,b0){return b1.nodeName&&b1.nodeName.toUpperCase()===b0.toUpperCase()},each:function(b3,b6,b2){var b1,b4=0,b5=b3.length,b0=b5===L||bF.isFunction(b3);if(b2){if(b0){for(b1 in b3){if(b6.apply(b3[b1],b2)===false){break}}}else{for(;b40&&b0[0]&&b0[b1-1])||b1===0||bF.isArray(b0));if(b3){for(;b21?aJ.call(arguments,0):bG;if(!(--bw)){bC.resolveWith(bC,bx)}}}function bz(bF){return function(bG){bB[bF]=arguments.length>1?aJ.call(arguments,0):bG;bC.notifyWith(bE,bB)}}if(e>1){for(;bv
a";bI=bv.getElementsByTagName("*");bF=bv.getElementsByTagName("a")[0];if(!bI||!bI.length||!bF){return{}}bG=av.createElement("select");bx=bG.appendChild(av.createElement("option"));bE=bv.getElementsByTagName("input")[0];bJ={leadingWhitespace:(bv.firstChild.nodeType===3),tbody:!bv.getElementsByTagName("tbody").length,htmlSerialize:!!bv.getElementsByTagName("link").length,style:/top/.test(bF.getAttribute("style")),hrefNormalized:(bF.getAttribute("href")==="/a"),opacity:/^0.55/.test(bF.style.opacity),cssFloat:!!bF.style.cssFloat,checkOn:(bE.value==="on"),optSelected:bx.selected,getSetAttribute:bv.className!=="t",enctype:!!av.createElement("form").enctype,html5Clone:av.createElement("nav").cloneNode(true).outerHTML!=="<:nav>",submitBubbles:true,changeBubbles:true,focusinBubbles:false,deleteExpando:true,noCloneEvent:true,inlineBlockNeedsLayout:false,shrinkWrapBlocks:false,reliableMarginRight:true};bE.checked=true;bJ.noCloneChecked=bE.cloneNode(true).checked;bG.disabled=true;bJ.optDisabled=!bx.disabled;try{delete bv.test}catch(bC){bJ.deleteExpando=false}if(!bv.addEventListener&&bv.attachEvent&&bv.fireEvent){bv.attachEvent("onclick",function(){bJ.noCloneEvent=false});bv.cloneNode(true).fireEvent("onclick")}bE=av.createElement("input");bE.value="t";bE.setAttribute("type","radio");bJ.radioValue=bE.value==="t";bE.setAttribute("checked","checked");bv.appendChild(bE);bD=av.createDocumentFragment();bD.appendChild(bv.lastChild);bJ.checkClone=bD.cloneNode(true).cloneNode(true).lastChild.checked;bJ.appendChecked=bE.checked;bD.removeChild(bE);bD.appendChild(bv);bv.innerHTML="";if(bb.getComputedStyle){bA=av.createElement("div");bA.style.width="0";bA.style.marginRight="0";bv.style.width="2px";bv.appendChild(bA);bJ.reliableMarginRight=(parseInt((bb.getComputedStyle(bA,null)||{marginRight:0}).marginRight,10)||0)===0}if(bv.attachEvent){for(by in {submit:1,change:1,focusin:1}){bB="on"+by;bw=(bB in bv);if(!bw){bv.setAttribute(bB,"return;");bw=(typeof bv[bB]==="function")}bJ[by+"Bubbles"]=bw}}bD.removeChild(bv);bD=bG=bx=bA=bv=bE=null;b(function(){var bM,bU,bV,bT,bN,bO,bL,bS,bR,e,bP,bQ=av.getElementsByTagName("body")[0];if(!bQ){return}bL=1;bS="position:absolute;top:0;left:0;width:1px;height:1px;margin:0;";bR="visibility:hidden;border:0;";e="style='"+bS+"border:5px solid #000;padding:0;'";bP="
";bM=av.createElement("div");bM.style.cssText=bR+"width:0;height:0;position:static;top:0;margin-top:"+bL+"px";bQ.insertBefore(bM,bQ.firstChild);bv=av.createElement("div");bM.appendChild(bv);bv.innerHTML="
t
";bz=bv.getElementsByTagName("td");bw=(bz[0].offsetHeight===0);bz[0].style.display="";bz[1].style.display="none";bJ.reliableHiddenOffsets=bw&&(bz[0].offsetHeight===0);bv.innerHTML="";bv.style.width=bv.style.paddingLeft="1px";b.boxModel=bJ.boxModel=bv.offsetWidth===2;if(typeof bv.style.zoom!=="undefined"){bv.style.display="inline";bv.style.zoom=1;bJ.inlineBlockNeedsLayout=(bv.offsetWidth===2);bv.style.display="";bv.innerHTML="
";bJ.shrinkWrapBlocks=(bv.offsetWidth!==2)}bv.style.cssText=bS+bR;bv.innerHTML=bP;bU=bv.firstChild;bV=bU.firstChild;bN=bU.nextSibling.firstChild.firstChild;bO={doesNotAddBorder:(bV.offsetTop!==5),doesAddBorderForTableAndCells:(bN.offsetTop===5)};bV.style.position="fixed";bV.style.top="20px";bO.fixedPosition=(bV.offsetTop===20||bV.offsetTop===15);bV.style.position=bV.style.top="";bU.style.overflow="hidden";bU.style.position="relative";bO.subtractsBorderForOverflowNotVisible=(bV.offsetTop===-5);bO.doesNotIncludeMarginInBodyOffset=(bQ.offsetTop!==bL);bQ.removeChild(bM);bv=bM=null;b.extend(bJ,bO)});return bJ})();var aS=/^(?:\{.*\}|\[.*\])$/,aA=/([A-Z])/g;b.extend({cache:{},uuid:0,expando:"jQuery"+(b.fn.jquery+Math.random()).replace(/\D/g,""),noData:{embed:true,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:true},hasData:function(e){e=e.nodeType?b.cache[e[b.expando]]:e[b.expando];return !!e&&!S(e)},data:function(bx,bv,bz,by){if(!b.acceptData(bx)){return}var bG,bA,bD,bE=b.expando,bC=typeof bv==="string",bF=bx.nodeType,e=bF?b.cache:bx,bw=bF?bx[bE]:bx[bE]&&bE,bB=bv==="events";if((!bw||!e[bw]||(!bB&&!by&&!e[bw].data))&&bC&&bz===L){return}if(!bw){if(bF){bx[bE]=bw=++b.uuid}else{bw=bE}}if(!e[bw]){e[bw]={};if(!bF){e[bw].toJSON=b.noop}}if(typeof bv==="object"||typeof bv==="function"){if(by){e[bw]=b.extend(e[bw],bv)}else{e[bw].data=b.extend(e[bw].data,bv)}}bG=bA=e[bw];if(!by){if(!bA.data){bA.data={}}bA=bA.data}if(bz!==L){bA[b.camelCase(bv)]=bz}if(bB&&!bA[bv]){return bG.events}if(bC){bD=bA[bv];if(bD==null){bD=bA[b.camelCase(bv)]}}else{bD=bA}return bD},removeData:function(bx,bv,by){if(!b.acceptData(bx)){return}var bB,bA,bz,bC=b.expando,bD=bx.nodeType,e=bD?b.cache:bx,bw=bD?bx[bC]:bC;if(!e[bw]){return}if(bv){bB=by?e[bw]:e[bw].data;if(bB){if(!b.isArray(bv)){if(bv in bB){bv=[bv]}else{bv=b.camelCase(bv);if(bv in bB){bv=[bv]}else{bv=bv.split(" ")}}}for(bA=0,bz=bv.length;bA-1){return true}}return false},val:function(bx){var e,bv,by,bw=this[0];if(!arguments.length){if(bw){e=b.valHooks[bw.nodeName.toLowerCase()]||b.valHooks[bw.type];if(e&&"get" in e&&(bv=e.get(bw,"value"))!==L){return bv}bv=bw.value;return typeof bv==="string"?bv.replace(aU,""):bv==null?"":bv}return}by=b.isFunction(bx);return this.each(function(bA){var bz=b(this),bB;if(this.nodeType!==1){return}if(by){bB=bx.call(this,bA,bz.val())}else{bB=bx}if(bB==null){bB=""}else{if(typeof bB==="number"){bB+=""}else{if(b.isArray(bB)){bB=b.map(bB,function(bC){return bC==null?"":bC+""})}}}e=b.valHooks[this.nodeName.toLowerCase()]||b.valHooks[this.type];if(!e||!("set" in e)||e.set(this,bB,"value")===L){this.value=bB}})}});b.extend({valHooks:{option:{get:function(e){var bv=e.attributes.value;return !bv||bv.specified?e.value:e.text}},select:{get:function(e){var bA,bv,bz,bx,by=e.selectedIndex,bB=[],bC=e.options,bw=e.type==="select-one";if(by<0){return null}bv=bw?by:0;bz=bw?by+1:bC.length;for(;bv=0});if(!e.length){bv.selectedIndex=-1}return e}}},attrFn:{val:true,css:true,html:true,text:true,data:true,width:true,height:true,offset:true},attr:function(bA,bx,bB,bz){var bw,e,by,bv=bA.nodeType;if(!bA||bv===3||bv===8||bv===2){return}if(bz&&bx in b.attrFn){return b(bA)[bx](bB)}if(typeof bA.getAttribute==="undefined"){return b.prop(bA,bx,bB)}by=bv!==1||!b.isXMLDoc(bA);if(by){bx=bx.toLowerCase();e=b.attrHooks[bx]||(ao.test(bx)?aY:be)}if(bB!==L){if(bB===null){b.removeAttr(bA,bx);return}else{if(e&&"set" in e&&by&&(bw=e.set(bA,bB,bx))!==L){return bw}else{bA.setAttribute(bx,""+bB);return bB}}}else{if(e&&"get" in e&&by&&(bw=e.get(bA,bx))!==null){return bw}else{bw=bA.getAttribute(bx);return bw===null?L:bw}}},removeAttr:function(bx,bz){var by,bA,bv,e,bw=0;if(bz&&bx.nodeType===1){bA=bz.toLowerCase().split(af);e=bA.length;for(;bw=0)}}})});var bd=/^(?:textarea|input|select)$/i,n=/^([^\.]*)?(?:\.(.+))?$/,J=/\bhover(\.\S+)?\b/,aO=/^key/,bf=/^(?:mouse|contextmenu)|click/,T=/^(?:focusinfocus|focusoutblur)$/,U=/^(\w*)(?:#([\w\-]+))?(?:\.([\w\-]+))?$/,Y=function(e){var bv=U.exec(e);if(bv){bv[1]=(bv[1]||"").toLowerCase();bv[3]=bv[3]&&new RegExp("(?:^|\\s)"+bv[3]+"(?:\\s|$)")}return bv},j=function(bw,e){var bv=bw.attributes||{};return((!e[1]||bw.nodeName.toLowerCase()===e[1])&&(!e[2]||(bv.id||{}).value===e[2])&&(!e[3]||e[3].test((bv["class"]||{}).value)))},bt=function(e){return b.event.special.hover?e:e.replace(J,"mouseenter$1 mouseleave$1")};b.event={add:function(bx,bC,bJ,bA,by){var bD,bB,bK,bI,bH,bF,e,bG,bv,bz,bw,bE;if(bx.nodeType===3||bx.nodeType===8||!bC||!bJ||!(bD=b._data(bx))){return}if(bJ.handler){bv=bJ;bJ=bv.handler}if(!bJ.guid){bJ.guid=b.guid++}bK=bD.events;if(!bK){bD.events=bK={}}bB=bD.handle;if(!bB){bD.handle=bB=function(bL){return typeof b!=="undefined"&&(!bL||b.event.triggered!==bL.type)?b.event.dispatch.apply(bB.elem,arguments):L};bB.elem=bx}bC=b.trim(bt(bC)).split(" ");for(bI=0;bI=0){bG=bG.slice(0,-1);bw=true}if(bG.indexOf(".")>=0){bx=bG.split(".");bG=bx.shift();bx.sort()}if((!bA||b.event.customEvent[bG])&&!b.event.global[bG]){return}bv=typeof bv==="object"?bv[b.expando]?bv:new b.Event(bG,bv):new b.Event(bG);bv.type=bG;bv.isTrigger=true;bv.exclusive=bw;bv.namespace=bx.join(".");bv.namespace_re=bv.namespace?new RegExp("(^|\\.)"+bx.join("\\.(?:.*\\.)?")+"(\\.|$)"):null;by=bG.indexOf(":")<0?"on"+bG:"";if(!bA){e=b.cache;for(bC in e){if(e[bC].events&&e[bC].events[bG]){b.event.trigger(bv,bD,e[bC].handle.elem,true)}}return}bv.result=L;if(!bv.target){bv.target=bA}bD=bD!=null?b.makeArray(bD):[];bD.unshift(bv);bF=b.event.special[bG]||{};if(bF.trigger&&bF.trigger.apply(bA,bD)===false){return}bB=[[bA,bF.bindType||bG]];if(!bJ&&!bF.noBubble&&!b.isWindow(bA)){bI=bF.delegateType||bG;bH=T.test(bI+bG)?bA:bA.parentNode;bz=null;for(;bH;bH=bH.parentNode){bB.push([bH,bI]);bz=bH}if(bz&&bz===bA.ownerDocument){bB.push([bz.defaultView||bz.parentWindow||bb,bI])}}for(bC=0;bCbA){bH.push({elem:this,matches:bz.slice(bA)})}for(bC=0;bC0?this.on(e,null,bx,bw):this.trigger(e)};if(b.attrFn){b.attrFn[e]=true}if(aO.test(e)){b.event.fixHooks[e]=b.event.keyHooks}if(bf.test(e)){b.event.fixHooks[e]=b.event.mouseHooks}}); -/*! - * Sizzle CSS Selector Engine - * Copyright 2011, The Dojo Foundation - * Released under the MIT, BSD, and GPL Licenses. - * More information: http://sizzlejs.com/ - */ -(function(){var bH=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^\[\]]*\]|['"][^'"]*['"]|[^\[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,bC="sizcache"+(Math.random()+"").replace(".",""),bI=0,bL=Object.prototype.toString,bB=false,bA=true,bK=/\\/g,bO=/\r\n/g,bQ=/\W/;[0,0].sort(function(){bA=false;return 0});var by=function(bV,e,bY,bZ){bY=bY||[];e=e||av;var b1=e;if(e.nodeType!==1&&e.nodeType!==9){return[]}if(!bV||typeof bV!=="string"){return bY}var bS,b3,b6,bR,b2,b5,b4,bX,bU=true,bT=by.isXML(e),bW=[],b0=bV;do{bH.exec("");bS=bH.exec(b0);if(bS){b0=bS[3];bW.push(bS[1]);if(bS[2]){bR=bS[3];break}}}while(bS);if(bW.length>1&&bD.exec(bV)){if(bW.length===2&&bE.relative[bW[0]]){b3=bM(bW[0]+bW[1],e,bZ)}else{b3=bE.relative[bW[0]]?[e]:by(bW.shift(),e);while(bW.length){bV=bW.shift();if(bE.relative[bV]){bV+=bW.shift()}b3=bM(bV,b3,bZ)}}}else{if(!bZ&&bW.length>1&&e.nodeType===9&&!bT&&bE.match.ID.test(bW[0])&&!bE.match.ID.test(bW[bW.length-1])){b2=by.find(bW.shift(),e,bT);e=b2.expr?by.filter(b2.expr,b2.set)[0]:b2.set[0]}if(e){b2=bZ?{expr:bW.pop(),set:bF(bZ)}:by.find(bW.pop(),bW.length===1&&(bW[0]==="~"||bW[0]==="+")&&e.parentNode?e.parentNode:e,bT);b3=b2.expr?by.filter(b2.expr,b2.set):b2.set;if(bW.length>0){b6=bF(b3)}else{bU=false}while(bW.length){b5=bW.pop();b4=b5;if(!bE.relative[b5]){b5=""}else{b4=bW.pop()}if(b4==null){b4=e}bE.relative[b5](b6,b4,bT)}}else{b6=bW=[]}}if(!b6){b6=b3}if(!b6){by.error(b5||bV)}if(bL.call(b6)==="[object Array]"){if(!bU){bY.push.apply(bY,b6)}else{if(e&&e.nodeType===1){for(bX=0;b6[bX]!=null;bX++){if(b6[bX]&&(b6[bX]===true||b6[bX].nodeType===1&&by.contains(e,b6[bX]))){bY.push(b3[bX])}}}else{for(bX=0;b6[bX]!=null;bX++){if(b6[bX]&&b6[bX].nodeType===1){bY.push(b3[bX])}}}}}else{bF(b6,bY)}if(bR){by(bR,b1,bY,bZ);by.uniqueSort(bY)}return bY};by.uniqueSort=function(bR){if(bJ){bB=bA;bR.sort(bJ);if(bB){for(var e=1;e0};by.find=function(bX,e,bY){var bW,bS,bU,bT,bV,bR;if(!bX){return[]}for(bS=0,bU=bE.order.length;bS":function(bW,bR){var bV,bU=typeof bR==="string",bS=0,e=bW.length;if(bU&&!bQ.test(bR)){bR=bR.toLowerCase();for(;bS=0)){if(!bS){e.push(bV)}}else{if(bS){bR[bU]=false}}}}return false},ID:function(e){return e[1].replace(bK,"")},TAG:function(bR,e){return bR[1].replace(bK,"").toLowerCase()},CHILD:function(e){if(e[1]==="nth"){if(!e[2]){by.error(e[0])}e[2]=e[2].replace(/^\+|\s*/g,"");var bR=/(-?)(\d*)(?:n([+\-]?\d*))?/.exec(e[2]==="even"&&"2n"||e[2]==="odd"&&"2n+1"||!/\D/.test(e[2])&&"0n+"+e[2]||e[2]);e[2]=(bR[1]+(bR[2]||1))-0;e[3]=bR[3]-0}else{if(e[2]){by.error(e[0])}}e[0]=bI++;return e},ATTR:function(bU,bR,bS,e,bV,bW){var bT=bU[1]=bU[1].replace(bK,"");if(!bW&&bE.attrMap[bT]){bU[1]=bE.attrMap[bT]}bU[4]=(bU[4]||bU[5]||"").replace(bK,"");if(bU[2]==="~="){bU[4]=" "+bU[4]+" "}return bU},PSEUDO:function(bU,bR,bS,e,bV){if(bU[1]==="not"){if((bH.exec(bU[3])||"").length>1||/^\w/.test(bU[3])){bU[3]=by(bU[3],null,null,bR)}else{var bT=by.filter(bU[3],bR,bS,true^bV);if(!bS){e.push.apply(e,bT)}return false}}else{if(bE.match.POS.test(bU[0])||bE.match.CHILD.test(bU[0])){return true}}return bU},POS:function(e){e.unshift(true);return e}},filters:{enabled:function(e){return e.disabled===false&&e.type!=="hidden"},disabled:function(e){return e.disabled===true},checked:function(e){return e.checked===true},selected:function(e){if(e.parentNode){e.parentNode.selectedIndex}return e.selected===true},parent:function(e){return !!e.firstChild},empty:function(e){return !e.firstChild},has:function(bS,bR,e){return !!by(e[3],bS).length},header:function(e){return(/h\d/i).test(e.nodeName)},text:function(bS){var e=bS.getAttribute("type"),bR=bS.type;return bS.nodeName.toLowerCase()==="input"&&"text"===bR&&(e===bR||e===null)},radio:function(e){return e.nodeName.toLowerCase()==="input"&&"radio"===e.type},checkbox:function(e){return e.nodeName.toLowerCase()==="input"&&"checkbox"===e.type},file:function(e){return e.nodeName.toLowerCase()==="input"&&"file"===e.type},password:function(e){return e.nodeName.toLowerCase()==="input"&&"password"===e.type},submit:function(bR){var e=bR.nodeName.toLowerCase();return(e==="input"||e==="button")&&"submit"===bR.type},image:function(e){return e.nodeName.toLowerCase()==="input"&&"image"===e.type},reset:function(bR){var e=bR.nodeName.toLowerCase();return(e==="input"||e==="button")&&"reset"===bR.type},button:function(bR){var e=bR.nodeName.toLowerCase();return e==="input"&&"button"===bR.type||e==="button"},input:function(e){return(/input|select|textarea|button/i).test(e.nodeName)},focus:function(e){return e===e.ownerDocument.activeElement}},setFilters:{first:function(bR,e){return e===0},last:function(bS,bR,e,bT){return bR===bT.length-1},even:function(bR,e){return e%2===0},odd:function(bR,e){return e%2===1},lt:function(bS,bR,e){return bRe[3]-0},nth:function(bS,bR,e){return e[3]-0===bR},eq:function(bS,bR,e){return e[3]-0===bR}},filter:{PSEUDO:function(bS,bX,bW,bY){var e=bX[1],bR=bE.filters[e];if(bR){return bR(bS,bW,bX,bY)}else{if(e==="contains"){return(bS.textContent||bS.innerText||bw([bS])||"").indexOf(bX[3])>=0}else{if(e==="not"){var bT=bX[3];for(var bV=0,bU=bT.length;bV=0)}}},ID:function(bR,e){return bR.nodeType===1&&bR.getAttribute("id")===e},TAG:function(bR,e){return(e==="*"&&bR.nodeType===1)||!!bR.nodeName&&bR.nodeName.toLowerCase()===e},CLASS:function(bR,e){return(" "+(bR.className||bR.getAttribute("class"))+" ").indexOf(e)>-1},ATTR:function(bV,bT){var bS=bT[1],e=by.attr?by.attr(bV,bS):bE.attrHandle[bS]?bE.attrHandle[bS](bV):bV[bS]!=null?bV[bS]:bV.getAttribute(bS),bW=e+"",bU=bT[2],bR=bT[4];return e==null?bU==="!=":!bU&&by.attr?e!=null:bU==="="?bW===bR:bU==="*="?bW.indexOf(bR)>=0:bU==="~="?(" "+bW+" ").indexOf(bR)>=0:!bR?bW&&e!==false:bU==="!="?bW!==bR:bU==="^="?bW.indexOf(bR)===0:bU==="$="?bW.substr(bW.length-bR.length)===bR:bU==="|="?bW===bR||bW.substr(0,bR.length+1)===bR+"-":false},POS:function(bU,bR,bS,bV){var e=bR[2],bT=bE.setFilters[e];if(bT){return bT(bU,bS,bR,bV)}}}};var bD=bE.match.POS,bx=function(bR,e){return"\\"+(e-0+1)};for(var bz in bE.match){bE.match[bz]=new RegExp(bE.match[bz].source+(/(?![^\[]*\])(?![^\(]*\))/.source));bE.leftMatch[bz]=new RegExp(/(^(?:.|\r|\n)*?)/.source+bE.match[bz].source.replace(/\\(\d+)/g,bx))}var bF=function(bR,e){bR=Array.prototype.slice.call(bR,0);if(e){e.push.apply(e,bR);return e}return bR};try{Array.prototype.slice.call(av.documentElement.childNodes,0)[0].nodeType}catch(bP){bF=function(bU,bT){var bS=0,bR=bT||[];if(bL.call(bU)==="[object Array]"){Array.prototype.push.apply(bR,bU)}else{if(typeof bU.length==="number"){for(var e=bU.length;bS";e.insertBefore(bR,e.firstChild);if(av.getElementById(bS)){bE.find.ID=function(bU,bV,bW){if(typeof bV.getElementById!=="undefined"&&!bW){var bT=bV.getElementById(bU[1]);return bT?bT.id===bU[1]||typeof bT.getAttributeNode!=="undefined"&&bT.getAttributeNode("id").nodeValue===bU[1]?[bT]:L:[]}};bE.filter.ID=function(bV,bT){var bU=typeof bV.getAttributeNode!=="undefined"&&bV.getAttributeNode("id");return bV.nodeType===1&&bU&&bU.nodeValue===bT}}e.removeChild(bR);e=bR=null})();(function(){var e=av.createElement("div");e.appendChild(av.createComment(""));if(e.getElementsByTagName("*").length>0){bE.find.TAG=function(bR,bV){var bU=bV.getElementsByTagName(bR[1]);if(bR[1]==="*"){var bT=[];for(var bS=0;bU[bS];bS++){if(bU[bS].nodeType===1){bT.push(bU[bS])}}bU=bT}return bU}}e.innerHTML="";if(e.firstChild&&typeof e.firstChild.getAttribute!=="undefined"&&e.firstChild.getAttribute("href")!=="#"){bE.attrHandle.href=function(bR){return bR.getAttribute("href",2)}}e=null})();if(av.querySelectorAll){(function(){var e=by,bT=av.createElement("div"),bS="__sizzle__";bT.innerHTML="

";if(bT.querySelectorAll&&bT.querySelectorAll(".TEST").length===0){return}by=function(b4,bV,bZ,b3){bV=bV||av;if(!b3&&!by.isXML(bV)){var b2=/^(\w+$)|^\.([\w\-]+$)|^#([\w\-]+$)/.exec(b4);if(b2&&(bV.nodeType===1||bV.nodeType===9)){if(b2[1]){return bF(bV.getElementsByTagName(b4),bZ)}else{if(b2[2]&&bE.find.CLASS&&bV.getElementsByClassName){return bF(bV.getElementsByClassName(b2[2]),bZ)}}}if(bV.nodeType===9){if(b4==="body"&&bV.body){return bF([bV.body],bZ)}else{if(b2&&b2[3]){var bY=bV.getElementById(b2[3]);if(bY&&bY.parentNode){if(bY.id===b2[3]){return bF([bY],bZ)}}else{return bF([],bZ)}}}try{return bF(bV.querySelectorAll(b4),bZ)}catch(b0){}}else{if(bV.nodeType===1&&bV.nodeName.toLowerCase()!=="object"){var bW=bV,bX=bV.getAttribute("id"),bU=bX||bS,b6=bV.parentNode,b5=/^\s*[+~]/.test(b4);if(!bX){bV.setAttribute("id",bU)}else{bU=bU.replace(/'/g,"\\$&")}if(b5&&b6){bV=bV.parentNode}try{if(!b5||b6){return bF(bV.querySelectorAll("[id='"+bU+"'] "+b4),bZ)}}catch(b1){}finally{if(!bX){bW.removeAttribute("id")}}}}}return e(b4,bV,bZ,b3)};for(var bR in e){by[bR]=e[bR]}bT=null})()}(function(){var e=av.documentElement,bS=e.matchesSelector||e.mozMatchesSelector||e.webkitMatchesSelector||e.msMatchesSelector;if(bS){var bU=!bS.call(av.createElement("div"),"div"),bR=false;try{bS.call(av.documentElement,"[test!='']:sizzle")}catch(bT){bR=true}by.matchesSelector=function(bW,bY){bY=bY.replace(/\=\s*([^'"\]]*)\s*\]/g,"='$1']");if(!by.isXML(bW)){try{if(bR||!bE.match.PSEUDO.test(bY)&&!/!=/.test(bY)){var bV=bS.call(bW,bY);if(bV||!bU||bW.document&&bW.document.nodeType!==11){return bV}}}catch(bX){}}return by(bY,null,null,[bW]).length>0}}})();(function(){var e=av.createElement("div");e.innerHTML="
";if(!e.getElementsByClassName||e.getElementsByClassName("e").length===0){return}e.lastChild.className="e";if(e.getElementsByClassName("e").length===1){return}bE.order.splice(1,0,"CLASS");bE.find.CLASS=function(bR,bS,bT){if(typeof bS.getElementsByClassName!=="undefined"&&!bT){return bS.getElementsByClassName(bR[1])}};e=null})();function bv(bR,bW,bV,bZ,bX,bY){for(var bT=0,bS=bZ.length;bT0){bU=e;break}}}e=e[bR]}bZ[bT]=bU}}}if(av.documentElement.contains){by.contains=function(bR,e){return bR!==e&&(bR.contains?bR.contains(e):true)}}else{if(av.documentElement.compareDocumentPosition){by.contains=function(bR,e){return !!(bR.compareDocumentPosition(e)&16)}}else{by.contains=function(){return false}}}by.isXML=function(e){var bR=(e?e.ownerDocument||e:0).documentElement;return bR?bR.nodeName!=="HTML":false};var bM=function(bS,e,bW){var bV,bX=[],bU="",bY=e.nodeType?[e]:e;while((bV=bE.match.PSEUDO.exec(bS))){bU+=bV[0];bS=bS.replace(bE.match.PSEUDO,"")}bS=bE.relative[bS]?bS+"*":bS;for(var bT=0,bR=bY.length;bT0){for(bB=bA;bB=0:b.filter(e,this).length>0:this.filter(e).length>0)},closest:function(by,bx){var bv=[],bw,e,bz=this[0];if(b.isArray(by)){var bB=1;while(bz&&bz.ownerDocument&&bz!==bx){for(bw=0;bw-1:b.find.matchesSelector(bz,by)){bv.push(bz);break}else{bz=bz.parentNode;if(!bz||!bz.ownerDocument||bz===bx||bz.nodeType===11){break}}}}bv=bv.length>1?b.unique(bv):bv;return this.pushStack(bv,"closest",by)},index:function(e){if(!e){return(this[0]&&this[0].parentNode)?this.prevAll().length:-1}if(typeof e==="string"){return b.inArray(this[0],b(e))}return b.inArray(e.jquery?e[0]:e,this)},add:function(e,bv){var bx=typeof e==="string"?b(e,bv):b.makeArray(e&&e.nodeType?[e]:e),bw=b.merge(this.get(),bx);return this.pushStack(C(bx[0])||C(bw[0])?bw:b.unique(bw))},andSelf:function(){return this.add(this.prevObject)}});function C(e){return !e||!e.parentNode||e.parentNode.nodeType===11}b.each({parent:function(bv){var e=bv.parentNode;return e&&e.nodeType!==11?e:null},parents:function(e){return b.dir(e,"parentNode")},parentsUntil:function(bv,e,bw){return b.dir(bv,"parentNode",bw)},next:function(e){return b.nth(e,2,"nextSibling")},prev:function(e){return b.nth(e,2,"previousSibling")},nextAll:function(e){return b.dir(e,"nextSibling")},prevAll:function(e){return b.dir(e,"previousSibling")},nextUntil:function(bv,e,bw){return b.dir(bv,"nextSibling",bw)},prevUntil:function(bv,e,bw){return b.dir(bv,"previousSibling",bw)},siblings:function(e){return b.sibling(e.parentNode.firstChild,e)},children:function(e){return b.sibling(e.firstChild)},contents:function(e){return b.nodeName(e,"iframe")?e.contentDocument||e.contentWindow.document:b.makeArray(e.childNodes)}},function(e,bv){b.fn[e]=function(by,bw){var bx=b.map(this,bv,by);if(!ab.test(e)){bw=by}if(bw&&typeof bw==="string"){bx=b.filter(bw,bx)}bx=this.length>1&&!ay[e]?b.unique(bx):bx;if((this.length>1||a9.test(bw))&&aq.test(e)){bx=bx.reverse()}return this.pushStack(bx,e,P.call(arguments).join(","))}});b.extend({filter:function(bw,e,bv){if(bv){bw=":not("+bw+")"}return e.length===1?b.find.matchesSelector(e[0],bw)?[e[0]]:[]:b.find.matches(bw,e)},dir:function(bw,bv,by){var e=[],bx=bw[bv];while(bx&&bx.nodeType!==9&&(by===L||bx.nodeType!==1||!b(bx).is(by))){if(bx.nodeType===1){e.push(bx)}bx=bx[bv]}return e},nth:function(by,e,bw,bx){e=e||1;var bv=0;for(;by;by=by[bw]){if(by.nodeType===1&&++bv===e){break}}return by},sibling:function(bw,bv){var e=[];for(;bw;bw=bw.nextSibling){if(bw.nodeType===1&&bw!==bv){e.push(bw)}}return e}});function aG(bx,bw,e){bw=bw||0;if(b.isFunction(bw)){return b.grep(bx,function(bz,by){var bA=!!bw.call(bz,by,bz);return bA===e})}else{if(bw.nodeType){return b.grep(bx,function(bz,by){return(bz===bw)===e})}else{if(typeof bw==="string"){var bv=b.grep(bx,function(by){return by.nodeType===1});if(bp.test(bw)){return b.filter(bw,bv,!e)}else{bw=b.filter(bw,bv)}}}}return b.grep(bx,function(bz,by){return(b.inArray(bz,bw)>=0)===e})}function a(e){var bw=aR.split("|"),bv=e.createDocumentFragment();if(bv.createElement){while(bw.length){bv.createElement(bw.pop())}}return bv}var aR="abbr|article|aside|audio|canvas|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",ag=/ jQuery\d+="(?:\d+|null)"/g,ar=/^\s+/,R=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig,d=/<([\w:]+)/,w=/",""],legend:[1,"
","
"],thead:[1,"","
"],tr:[2,"","
"],td:[3,"","
"],col:[2,"","
"],area:[1,"",""],_default:[0,"",""]},ac=a(av);ax.optgroup=ax.option;ax.tbody=ax.tfoot=ax.colgroup=ax.caption=ax.thead;ax.th=ax.td;if(!b.support.htmlSerialize){ax._default=[1,"div
","
"]}b.fn.extend({text:function(e){if(b.isFunction(e)){return this.each(function(bw){var bv=b(this);bv.text(e.call(this,bw,bv.text()))})}if(typeof e!=="object"&&e!==L){return this.empty().append((this[0]&&this[0].ownerDocument||av).createTextNode(e))}return b.text(this)},wrapAll:function(e){if(b.isFunction(e)){return this.each(function(bw){b(this).wrapAll(e.call(this,bw))})}if(this[0]){var bv=b(e,this[0].ownerDocument).eq(0).clone(true);if(this[0].parentNode){bv.insertBefore(this[0])}bv.map(function(){var bw=this;while(bw.firstChild&&bw.firstChild.nodeType===1){bw=bw.firstChild}return bw}).append(this)}return this},wrapInner:function(e){if(b.isFunction(e)){return this.each(function(bv){b(this).wrapInner(e.call(this,bv))})}return this.each(function(){var bv=b(this),bw=bv.contents();if(bw.length){bw.wrapAll(e)}else{bv.append(e)}})},wrap:function(e){var bv=b.isFunction(e);return this.each(function(bw){b(this).wrapAll(bv?e.call(this,bw):e)})},unwrap:function(){return this.parent().each(function(){if(!b.nodeName(this,"body")){b(this).replaceWith(this.childNodes)}}).end()},append:function(){return this.domManip(arguments,true,function(e){if(this.nodeType===1){this.appendChild(e)}})},prepend:function(){return this.domManip(arguments,true,function(e){if(this.nodeType===1){this.insertBefore(e,this.firstChild)}})},before:function(){if(this[0]&&this[0].parentNode){return this.domManip(arguments,false,function(bv){this.parentNode.insertBefore(bv,this)})}else{if(arguments.length){var e=b.clean(arguments);e.push.apply(e,this.toArray());return this.pushStack(e,"before",arguments)}}},after:function(){if(this[0]&&this[0].parentNode){return this.domManip(arguments,false,function(bv){this.parentNode.insertBefore(bv,this.nextSibling)})}else{if(arguments.length){var e=this.pushStack(this,"after",arguments);e.push.apply(e,b.clean(arguments));return e}}},remove:function(e,bx){for(var bv=0,bw;(bw=this[bv])!=null;bv++){if(!e||b.filter(e,[bw]).length){if(!bx&&bw.nodeType===1){b.cleanData(bw.getElementsByTagName("*"));b.cleanData([bw])}if(bw.parentNode){bw.parentNode.removeChild(bw)}}}return this},empty:function(){for(var e=0,bv;(bv=this[e])!=null;e++){if(bv.nodeType===1){b.cleanData(bv.getElementsByTagName("*"))}while(bv.firstChild){bv.removeChild(bv.firstChild)}}return this},clone:function(bv,e){bv=bv==null?false:bv;e=e==null?bv:e;return this.map(function(){return b.clone(this,bv,e)})},html:function(bx){if(bx===L){return this[0]&&this[0].nodeType===1?this[0].innerHTML.replace(ag,""):null}else{if(typeof bx==="string"&&!ae.test(bx)&&(b.support.leadingWhitespace||!ar.test(bx))&&!ax[(d.exec(bx)||["",""])[1].toLowerCase()]){bx=bx.replace(R,"<$1>");try{for(var bw=0,bv=this.length;bw1&&bw0?this.clone(true):this).get();b(bC[bA])[bv](by);bz=bz.concat(by)}return this.pushStack(bz,e,bC.selector)}}});function bg(e){if(typeof e.getElementsByTagName!=="undefined"){return e.getElementsByTagName("*")}else{if(typeof e.querySelectorAll!=="undefined"){return e.querySelectorAll("*")}else{return[]}}}function az(e){if(e.type==="checkbox"||e.type==="radio"){e.defaultChecked=e.checked}}function E(e){var bv=(e.nodeName||"").toLowerCase();if(bv==="input"){az(e)}else{if(bv!=="script"&&typeof e.getElementsByTagName!=="undefined"){b.grep(e.getElementsByTagName("input"),az)}}}function al(e){var bv=av.createElement("div");ac.appendChild(bv);bv.innerHTML=e.outerHTML;return bv.firstChild}b.extend({clone:function(by,bA,bw){var e,bv,bx,bz=b.support.html5Clone||!ah.test("<"+by.nodeName)?by.cloneNode(true):al(by);if((!b.support.noCloneEvent||!b.support.noCloneChecked)&&(by.nodeType===1||by.nodeType===11)&&!b.isXMLDoc(by)){ai(by,bz);e=bg(by);bv=bg(bz);for(bx=0;e[bx];++bx){if(bv[bx]){ai(e[bx],bv[bx])}}}if(bA){t(by,bz);if(bw){e=bg(by);bv=bg(bz);for(bx=0;e[bx];++bx){t(e[bx],bv[bx])}}}e=bv=null;return bz},clean:function(bw,by,bH,bA){var bF;by=by||av;if(typeof by.createElement==="undefined"){by=by.ownerDocument||by[0]&&by[0].ownerDocument||av}var bI=[],bB;for(var bE=0,bz;(bz=bw[bE])!=null;bE++){if(typeof bz==="number"){bz+=""}if(!bz){continue}if(typeof bz==="string"){if(!W.test(bz)){bz=by.createTextNode(bz)}else{bz=bz.replace(R,"<$1>");var bK=(d.exec(bz)||["",""])[1].toLowerCase(),bx=ax[bK]||ax._default,bD=bx[0],bv=by.createElement("div");if(by===av){ac.appendChild(bv)}else{a(by).appendChild(bv)}bv.innerHTML=bx[1]+bz+bx[2];while(bD--){bv=bv.lastChild}if(!b.support.tbody){var e=w.test(bz),bC=bK==="table"&&!e?bv.firstChild&&bv.firstChild.childNodes:bx[1]===""&&!e?bv.childNodes:[];for(bB=bC.length-1;bB>=0;--bB){if(b.nodeName(bC[bB],"tbody")&&!bC[bB].childNodes.length){bC[bB].parentNode.removeChild(bC[bB])}}}if(!b.support.leadingWhitespace&&ar.test(bz)){bv.insertBefore(by.createTextNode(ar.exec(bz)[0]),bv.firstChild)}bz=bv.childNodes}}var bG;if(!b.support.appendChecked){if(bz[0]&&typeof(bG=bz.length)==="number"){for(bB=0;bB=0){return bx+"px"}}else{return bx}}}});if(!b.support.opacity){b.cssHooks.opacity={get:function(bv,e){return au.test((e&&bv.currentStyle?bv.currentStyle.filter:bv.style.filter)||"")?(parseFloat(RegExp.$1)/100)+"":e?"1":""},set:function(by,bz){var bx=by.style,bv=by.currentStyle,e=b.isNumeric(bz)?"alpha(opacity="+bz*100+")":"",bw=bv&&bv.filter||bx.filter||"";bx.zoom=1;if(bz>=1&&b.trim(bw.replace(ak,""))===""){bx.removeAttribute("filter");if(bv&&!bv.filter){return}}bx.filter=ak.test(bw)?bw.replace(ak,e):bw+" "+e}}}b(function(){if(!b.support.reliableMarginRight){b.cssHooks.marginRight={get:function(bw,bv){var e;b.swap(bw,{display:"inline-block"},function(){if(bv){e=Z(bw,"margin-right","marginRight")}else{e=bw.style.marginRight}});return e}}}});if(av.defaultView&&av.defaultView.getComputedStyle){aI=function(by,bw){var bv,bx,e;bw=bw.replace(z,"-$1").toLowerCase();if((bx=by.ownerDocument.defaultView)&&(e=bx.getComputedStyle(by,null))){bv=e.getPropertyValue(bw);if(bv===""&&!b.contains(by.ownerDocument.documentElement,by)){bv=b.style(by,bw)}}return bv}}if(av.documentElement.currentStyle){aX=function(bz,bw){var bA,e,by,bv=bz.currentStyle&&bz.currentStyle[bw],bx=bz.style;if(bv===null&&bx&&(by=bx[bw])){bv=by}if(!bc.test(bv)&&bn.test(bv)){bA=bx.left;e=bz.runtimeStyle&&bz.runtimeStyle.left;if(e){bz.runtimeStyle.left=bz.currentStyle.left}bx.left=bw==="fontSize"?"1em":(bv||0);bv=bx.pixelLeft+"px";bx.left=bA;if(e){bz.runtimeStyle.left=e}}return bv===""?"auto":bv}}Z=aI||aX;function p(by,bw,bv){var bA=bw==="width"?by.offsetWidth:by.offsetHeight,bz=bw==="width"?an:a1,bx=0,e=bz.length;if(bA>0){if(bv!=="border"){for(;bx)<[^<]*)*<\/script>/gi,q=/^(?:select|textarea)/i,h=/\s+/,br=/([?&])_=[^&]*/,K=/^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+))?)?/,A=b.fn.load,aa={},r={},aE,s,aV=["*/"]+["*"];try{aE=bl.href}catch(aw){aE=av.createElement("a");aE.href="";aE=aE.href}s=K.exec(aE.toLowerCase())||[];function f(e){return function(by,bA){if(typeof by!=="string"){bA=by;by="*"}if(b.isFunction(bA)){var bx=by.toLowerCase().split(h),bw=0,bz=bx.length,bv,bB,bC;for(;bw=0){var e=bw.slice(by,bw.length);bw=bw.slice(0,by)}var bx="GET";if(bz){if(b.isFunction(bz)){bA=bz;bz=L}else{if(typeof bz==="object"){bz=b.param(bz,b.ajaxSettings.traditional);bx="POST"}}}var bv=this;b.ajax({url:bw,type:bx,dataType:"html",data:bz,complete:function(bC,bB,bD){bD=bC.responseText;if(bC.isResolved()){bC.done(function(bE){bD=bE});bv.html(e?b("
").append(bD.replace(a6,"")).find(e):bD)}if(bA){bv.each(bA,[bD,bB,bC])}}});return this},serialize:function(){return b.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?b.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||q.test(this.nodeName)||aZ.test(this.type))}).map(function(e,bv){var bw=b(this).val();return bw==null?null:b.isArray(bw)?b.map(bw,function(by,bx){return{name:bv.name,value:by.replace(bs,"\r\n")}}):{name:bv.name,value:bw.replace(bs,"\r\n")}}).get()}});b.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(e,bv){b.fn[bv]=function(bw){return this.on(bv,bw)}});b.each(["get","post"],function(e,bv){b[bv]=function(bw,by,bz,bx){if(b.isFunction(by)){bx=bx||bz;bz=by;by=L}return b.ajax({type:bv,url:bw,data:by,success:bz,dataType:bx})}});b.extend({getScript:function(e,bv){return b.get(e,L,bv,"script")},getJSON:function(e,bv,bw){return b.get(e,bv,bw,"json")},ajaxSetup:function(bv,e){if(e){am(bv,b.ajaxSettings)}else{e=bv;bv=b.ajaxSettings}am(bv,e);return bv},ajaxSettings:{url:aE,isLocal:aM.test(s[1]),global:true,type:"GET",contentType:"application/x-www-form-urlencoded",processData:true,async:true,accepts:{xml:"application/xml, text/xml",html:"text/html",text:"text/plain",json:"application/json, text/javascript","*":aV},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText"},converters:{"* text":bb.String,"text html":true,"text json":b.parseJSON,"text xml":b.parseXML},flatOptions:{context:true,url:true}},ajaxPrefilter:f(aa),ajaxTransport:f(r),ajax:function(bz,bx){if(typeof bz==="object"){bx=bz;bz=L}bx=bx||{};var bD=b.ajaxSetup({},bx),bS=bD.context||bD,bG=bS!==bD&&(bS.nodeType||bS instanceof b)?b(bS):b.event,bR=b.Deferred(),bN=b.Callbacks("once memory"),bB=bD.statusCode||{},bC,bH={},bO={},bQ,by,bL,bE,bI,bA=0,bw,bK,bJ={readyState:0,setRequestHeader:function(bT,bU){if(!bA){var e=bT.toLowerCase();bT=bO[e]=bO[e]||bT;bH[bT]=bU}return this},getAllResponseHeaders:function(){return bA===2?bQ:null},getResponseHeader:function(bT){var e;if(bA===2){if(!by){by={};while((e=aD.exec(bQ))){by[e[1].toLowerCase()]=e[2]}}e=by[bT.toLowerCase()]}return e===L?null:e},overrideMimeType:function(e){if(!bA){bD.mimeType=e}return this},abort:function(e){e=e||"abort";if(bL){bL.abort(e)}bF(0,e);return this}};function bF(bZ,bU,b0,bW){if(bA===2){return}bA=2;if(bE){clearTimeout(bE)}bL=L;bQ=bW||"";bJ.readyState=bZ>0?4:0;var bT,b4,b3,bX=bU,bY=b0?bj(bD,bJ,b0):L,bV,b2;if(bZ>=200&&bZ<300||bZ===304){if(bD.ifModified){if((bV=bJ.getResponseHeader("Last-Modified"))){b.lastModified[bC]=bV}if((b2=bJ.getResponseHeader("Etag"))){b.etag[bC]=b2}}if(bZ===304){bX="notmodified";bT=true}else{try{b4=G(bD,bY);bX="success";bT=true}catch(b1){bX="parsererror";b3=b1}}}else{b3=bX;if(!bX||bZ){bX="error";if(bZ<0){bZ=0}}}bJ.status=bZ;bJ.statusText=""+(bU||bX);if(bT){bR.resolveWith(bS,[b4,bX,bJ])}else{bR.rejectWith(bS,[bJ,bX,b3])}bJ.statusCode(bB);bB=L;if(bw){bG.trigger("ajax"+(bT?"Success":"Error"),[bJ,bD,bT?b4:b3])}bN.fireWith(bS,[bJ,bX]);if(bw){bG.trigger("ajaxComplete",[bJ,bD]);if(!(--b.active)){b.event.trigger("ajaxStop")}}}bR.promise(bJ);bJ.success=bJ.done;bJ.error=bJ.fail;bJ.complete=bN.add;bJ.statusCode=function(bT){if(bT){var e;if(bA<2){for(e in bT){bB[e]=[bB[e],bT[e]]}}else{e=bT[bJ.status];bJ.then(e,e)}}return this};bD.url=((bz||bD.url)+"").replace(bq,"").replace(c,s[1]+"//");bD.dataTypes=b.trim(bD.dataType||"*").toLowerCase().split(h);if(bD.crossDomain==null){bI=K.exec(bD.url.toLowerCase());bD.crossDomain=!!(bI&&(bI[1]!=s[1]||bI[2]!=s[2]||(bI[3]||(bI[1]==="http:"?80:443))!=(s[3]||(s[1]==="http:"?80:443))))}if(bD.data&&bD.processData&&typeof bD.data!=="string"){bD.data=b.param(bD.data,bD.traditional)}aW(aa,bD,bx,bJ);if(bA===2){return false}bw=bD.global;bD.type=bD.type.toUpperCase();bD.hasContent=!aQ.test(bD.type);if(bw&&b.active++===0){b.event.trigger("ajaxStart")}if(!bD.hasContent){if(bD.data){bD.url+=(M.test(bD.url)?"&":"?")+bD.data;delete bD.data}bC=bD.url;if(bD.cache===false){var bv=b.now(),bP=bD.url.replace(br,"$1_="+bv);bD.url=bP+((bP===bD.url)?(M.test(bD.url)?"&":"?")+"_="+bv:"")}}if(bD.data&&bD.hasContent&&bD.contentType!==false||bx.contentType){bJ.setRequestHeader("Content-Type",bD.contentType)}if(bD.ifModified){bC=bC||bD.url;if(b.lastModified[bC]){bJ.setRequestHeader("If-Modified-Since",b.lastModified[bC])}if(b.etag[bC]){bJ.setRequestHeader("If-None-Match",b.etag[bC])}}bJ.setRequestHeader("Accept",bD.dataTypes[0]&&bD.accepts[bD.dataTypes[0]]?bD.accepts[bD.dataTypes[0]]+(bD.dataTypes[0]!=="*"?", "+aV+"; q=0.01":""):bD.accepts["*"]);for(bK in bD.headers){bJ.setRequestHeader(bK,bD.headers[bK])}if(bD.beforeSend&&(bD.beforeSend.call(bS,bJ,bD)===false||bA===2)){bJ.abort();return false}for(bK in {success:1,error:1,complete:1}){bJ[bK](bD[bK])}bL=aW(r,bD,bx,bJ);if(!bL){bF(-1,"No Transport")}else{bJ.readyState=1;if(bw){bG.trigger("ajaxSend",[bJ,bD])}if(bD.async&&bD.timeout>0){bE=setTimeout(function(){bJ.abort("timeout")},bD.timeout)}try{bA=1;bL.send(bH,bF)}catch(bM){if(bA<2){bF(-1,bM)}else{throw bM}}}return bJ},param:function(e,bw){var bv=[],by=function(bz,bA){bA=b.isFunction(bA)?bA():bA;bv[bv.length]=encodeURIComponent(bz)+"="+encodeURIComponent(bA)};if(bw===L){bw=b.ajaxSettings.traditional}if(b.isArray(e)||(e.jquery&&!b.isPlainObject(e))){b.each(e,function(){by(this.name,this.value)})}else{for(var bx in e){v(bx,e[bx],bw,by)}}return bv.join("&").replace(k,"+")}});function v(bw,by,bv,bx){if(b.isArray(by)){b.each(by,function(bA,bz){if(bv||ap.test(bw)){bx(bw,bz)}else{v(bw+"["+(typeof bz==="object"||b.isArray(bz)?bA:"")+"]",bz,bv,bx)}})}else{if(!bv&&by!=null&&typeof by==="object"){for(var e in by){v(bw+"["+e+"]",by[e],bv,bx)}}else{bx(bw,by)}}}b.extend({active:0,lastModified:{},etag:{}});function bj(bD,bC,bz){var bv=bD.contents,bB=bD.dataTypes,bw=bD.responseFields,by,bA,bx,e;for(bA in bw){if(bA in bz){bC[bw[bA]]=bz[bA]}}while(bB[0]==="*"){bB.shift();if(by===L){by=bD.mimeType||bC.getResponseHeader("content-type")}}if(by){for(bA in bv){if(bv[bA]&&bv[bA].test(by)){bB.unshift(bA);break}}}if(bB[0] in bz){bx=bB[0]}else{for(bA in bz){if(!bB[0]||bD.converters[bA+" "+bB[0]]){bx=bA;break}if(!e){e=bA}}bx=bx||e}if(bx){if(bx!==bB[0]){bB.unshift(bx)}return bz[bx]}}function G(bH,bz){if(bH.dataFilter){bz=bH.dataFilter(bz,bH.dataType)}var bD=bH.dataTypes,bG={},bA,bE,bw=bD.length,bB,bC=bD[0],bx,by,bF,bv,e;for(bA=1;bA=bw.duration+this.startTime){this.now=this.end;this.pos=this.state=1;this.update();bw.animatedProperties[this.prop]=true;for(bA in bw.animatedProperties){if(bw.animatedProperties[bA]!==true){e=false}}if(e){if(bw.overflow!=null&&!b.support.shrinkWrapBlocks){b.each(["","X","Y"],function(bC,bD){bz.style["overflow"+bD]=bw.overflow[bC]})}if(bw.hide){b(bz).hide()}if(bw.hide||bw.show){for(bA in bw.animatedProperties){b.style(bz,bA,bw.orig[bA]);b.removeData(bz,"fxshow"+bA,true);b.removeData(bz,"toggle"+bA,true)}}bv=bw.complete;if(bv){bw.complete=false;bv.call(bz)}}return false}else{if(bw.duration==Infinity){this.now=bx}else{bB=bx-this.startTime;this.state=bB/bw.duration;this.pos=b.easing[bw.animatedProperties[this.prop]](this.state,bB,0,1,bw.duration);this.now=this.start+((this.end-this.start)*this.pos)}this.update()}return true}};b.extend(b.fx,{tick:function(){var bw,bv=b.timers,e=0;for(;e").appendTo(e),bw=bv.css("display");bv.remove();if(bw==="none"||bw===""){if(!a8){a8=av.createElement("iframe");a8.frameBorder=a8.width=a8.height=0}e.appendChild(a8);if(!m||!a8.createElement){m=(a8.contentWindow||a8.contentDocument).document;m.write((av.compatMode==="CSS1Compat"?"":"")+"");m.close()}bv=m.createElement(bx);m.body.appendChild(bv);bw=b.css(bv,"display");e.removeChild(a8)}Q[bx]=bw}return Q[bx]}var V=/^t(?:able|d|h)$/i,ad=/^(?:body|html)$/i;if("getBoundingClientRect" in av.documentElement){b.fn.offset=function(bI){var by=this[0],bB;if(bI){return this.each(function(e){b.offset.setOffset(this,bI,e)})}if(!by||!by.ownerDocument){return null}if(by===by.ownerDocument.body){return b.offset.bodyOffset(by)}try{bB=by.getBoundingClientRect()}catch(bF){}var bH=by.ownerDocument,bw=bH.documentElement;if(!bB||!b.contains(bw,by)){return bB?{top:bB.top,left:bB.left}:{top:0,left:0}}var bC=bH.body,bD=aK(bH),bA=bw.clientTop||bC.clientTop||0,bE=bw.clientLeft||bC.clientLeft||0,bv=bD.pageYOffset||b.support.boxModel&&bw.scrollTop||bC.scrollTop,bz=bD.pageXOffset||b.support.boxModel&&bw.scrollLeft||bC.scrollLeft,bG=bB.top+bv-bA,bx=bB.left+bz-bE;return{top:bG,left:bx}}}else{b.fn.offset=function(bF){var bz=this[0];if(bF){return this.each(function(bG){b.offset.setOffset(this,bF,bG)})}if(!bz||!bz.ownerDocument){return null}if(bz===bz.ownerDocument.body){return b.offset.bodyOffset(bz)}var bC,bw=bz.offsetParent,bv=bz,bE=bz.ownerDocument,bx=bE.documentElement,bA=bE.body,bB=bE.defaultView,e=bB?bB.getComputedStyle(bz,null):bz.currentStyle,bD=bz.offsetTop,by=bz.offsetLeft;while((bz=bz.parentNode)&&bz!==bA&&bz!==bx){if(b.support.fixedPosition&&e.position==="fixed"){break}bC=bB?bB.getComputedStyle(bz,null):bz.currentStyle;bD-=bz.scrollTop;by-=bz.scrollLeft;if(bz===bw){bD+=bz.offsetTop;by+=bz.offsetLeft;if(b.support.doesNotAddBorder&&!(b.support.doesAddBorderForTableAndCells&&V.test(bz.nodeName))){bD+=parseFloat(bC.borderTopWidth)||0;by+=parseFloat(bC.borderLeftWidth)||0}bv=bw;bw=bz.offsetParent}if(b.support.subtractsBorderForOverflowNotVisible&&bC.overflow!=="visible"){bD+=parseFloat(bC.borderTopWidth)||0;by+=parseFloat(bC.borderLeftWidth)||0}e=bC}if(e.position==="relative"||e.position==="static"){bD+=bA.offsetTop;by+=bA.offsetLeft}if(b.support.fixedPosition&&e.position==="fixed"){bD+=Math.max(bx.scrollTop,bA.scrollTop);by+=Math.max(bx.scrollLeft,bA.scrollLeft)}return{top:bD,left:by}}}b.offset={bodyOffset:function(e){var bw=e.offsetTop,bv=e.offsetLeft;if(b.support.doesNotIncludeMarginInBodyOffset){bw+=parseFloat(b.css(e,"marginTop"))||0;bv+=parseFloat(b.css(e,"marginLeft"))||0}return{top:bw,left:bv}},setOffset:function(bx,bG,bA){var bB=b.css(bx,"position");if(bB==="static"){bx.style.position="relative"}var bz=b(bx),bv=bz.offset(),e=b.css(bx,"top"),bE=b.css(bx,"left"),bF=(bB==="absolute"||bB==="fixed")&&b.inArray("auto",[e,bE])>-1,bD={},bC={},bw,by;if(bF){bC=bz.position();bw=bC.top;by=bC.left}else{bw=parseFloat(e)||0;by=parseFloat(bE)||0}if(b.isFunction(bG)){bG=bG.call(bx,bA,bv)}if(bG.top!=null){bD.top=(bG.top-bv.top)+bw}if(bG.left!=null){bD.left=(bG.left-bv.left)+by}if("using" in bG){bG.using.call(bx,bD)}else{bz.css(bD)}}};b.fn.extend({position:function(){if(!this[0]){return null}var bw=this[0],bv=this.offsetParent(),bx=this.offset(),e=ad.test(bv[0].nodeName)?{top:0,left:0}:bv.offset();bx.top-=parseFloat(b.css(bw,"marginTop"))||0;bx.left-=parseFloat(b.css(bw,"marginLeft"))||0;e.top+=parseFloat(b.css(bv[0],"borderTopWidth"))||0;e.left+=parseFloat(b.css(bv[0],"borderLeftWidth"))||0;return{top:bx.top-e.top,left:bx.left-e.left}},offsetParent:function(){return this.map(function(){var e=this.offsetParent||av.body;while(e&&(!ad.test(e.nodeName)&&b.css(e,"position")==="static")){e=e.offsetParent}return e})}});b.each(["Left","Top"],function(bv,e){var bw="scroll"+e;b.fn[bw]=function(bz){var bx,by;if(bz===L){bx=this[0];if(!bx){return null}by=aK(bx);return by?("pageXOffset" in by)?by[bv?"pageYOffset":"pageXOffset"]:b.support.boxModel&&by.document.documentElement[bw]||by.document.body[bw]:bx[bw]}return this.each(function(){by=aK(this);if(by){by.scrollTo(!bv?bz:b(by).scrollLeft(),bv?bz:b(by).scrollTop())}else{this[bw]=bz}})}});function aK(e){return b.isWindow(e)?e:e.nodeType===9?e.defaultView||e.parentWindow:false}b.each(["Height","Width"],function(bv,e){var bw=e.toLowerCase();b.fn["inner"+e]=function(){var bx=this[0];return bx?bx.style?parseFloat(b.css(bx,bw,"padding")):this[bw]():null};b.fn["outer"+e]=function(by){var bx=this[0];return bx?bx.style?parseFloat(b.css(bx,bw,by?"margin":"border")):this[bw]():null};b.fn[bw]=function(bz){var bA=this[0];if(!bA){return bz==null?null:this}if(b.isFunction(bz)){return this.each(function(bE){var bD=b(this);bD[bw](bz.call(this,bE,bD[bw]()))})}if(b.isWindow(bA)){var bB=bA.document.documentElement["client"+e],bx=bA.document.body;return bA.document.compatMode==="CSS1Compat"&&bB||bx&&bx["client"+e]||bB}else{if(bA.nodeType===9){return Math.max(bA.documentElement["client"+e],bA.body["scroll"+e],bA.documentElement["scroll"+e],bA.body["offset"+e],bA.documentElement["offset"+e])}else{if(bz===L){var bC=b.css(bA,bw),by=parseFloat(bC);return b.isNumeric(by)?by:bC}else{return this.css(bw,typeof bz==="string"?bz:bz+"px")}}}}});bb.jQuery=bb.$=b;if(typeof define==="function"&&define.amd&&define.amd.jQuery){define("jquery",[],function(){return b})}})(window);/*! - * jQuery UI 1.8.18 - * - * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * http://docs.jquery.com/UI - */ -(function(a,d){a.ui=a.ui||{};if(a.ui.version){return}a.extend(a.ui,{version:"1.8.18",keyCode:{ALT:18,BACKSPACE:8,CAPS_LOCK:20,COMMA:188,COMMAND:91,COMMAND_LEFT:91,COMMAND_RIGHT:93,CONTROL:17,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,INSERT:45,LEFT:37,MENU:93,NUMPAD_ADD:107,NUMPAD_DECIMAL:110,NUMPAD_DIVIDE:111,NUMPAD_ENTER:108,NUMPAD_MULTIPLY:106,NUMPAD_SUBTRACT:109,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SHIFT:16,SPACE:32,TAB:9,UP:38,WINDOWS:91}});a.fn.extend({propAttr:a.fn.prop||a.fn.attr,_focus:a.fn.focus,focus:function(e,f){return typeof e==="number"?this.each(function(){var g=this;setTimeout(function(){a(g).focus();if(f){f.call(g)}},e)}):this._focus.apply(this,arguments)},scrollParent:function(){var e;if((a.browser.msie&&(/(static|relative)/).test(this.css("position")))||(/absolute/).test(this.css("position"))){e=this.parents().filter(function(){return(/(relative|absolute|fixed)/).test(a.curCSS(this,"position",1))&&(/(auto|scroll)/).test(a.curCSS(this,"overflow",1)+a.curCSS(this,"overflow-y",1)+a.curCSS(this,"overflow-x",1))}).eq(0)}else{e=this.parents().filter(function(){return(/(auto|scroll)/).test(a.curCSS(this,"overflow",1)+a.curCSS(this,"overflow-y",1)+a.curCSS(this,"overflow-x",1))}).eq(0)}return(/fixed/).test(this.css("position"))||!e.length?a(document):e},zIndex:function(h){if(h!==d){return this.css("zIndex",h)}if(this.length){var f=a(this[0]),e,g;while(f.length&&f[0]!==document){e=f.css("position");if(e==="absolute"||e==="relative"||e==="fixed"){g=parseInt(f.css("zIndex"),10);if(!isNaN(g)&&g!==0){return g}}f=f.parent()}}return 0},disableSelection:function(){return this.bind((a.support.selectstart?"selectstart":"mousedown")+".ui-disableSelection",function(e){e.preventDefault()})},enableSelection:function(){return this.unbind(".ui-disableSelection")}});a.each(["Width","Height"],function(g,e){var f=e==="Width"?["Left","Right"]:["Top","Bottom"],h=e.toLowerCase(),k={innerWidth:a.fn.innerWidth,innerHeight:a.fn.innerHeight,outerWidth:a.fn.outerWidth,outerHeight:a.fn.outerHeight};function j(m,l,i,n){a.each(f,function(){l-=parseFloat(a.curCSS(m,"padding"+this,true))||0;if(i){l-=parseFloat(a.curCSS(m,"border"+this+"Width",true))||0}if(n){l-=parseFloat(a.curCSS(m,"margin"+this,true))||0}});return l}a.fn["inner"+e]=function(i){if(i===d){return k["inner"+e].call(this)}return this.each(function(){a(this).css(h,j(this,i)+"px")})};a.fn["outer"+e]=function(i,l){if(typeof i!=="number"){return k["outer"+e].call(this,i)}return this.each(function(){a(this).css(h,j(this,i,true,l)+"px")})}});function c(g,e){var j=g.nodeName.toLowerCase();if("area"===j){var i=g.parentNode,h=i.name,f;if(!g.href||!h||i.nodeName.toLowerCase()!=="map"){return false}f=a("img[usemap=#"+h+"]")[0];return !!f&&b(f)}return(/input|select|textarea|button|object/.test(j)?!g.disabled:"a"==j?g.href||e:e)&&b(g)}function b(e){return !a(e).parents().andSelf().filter(function(){return a.curCSS(this,"visibility")==="hidden"||a.expr.filters.hidden(this)}).length}a.extend(a.expr[":"],{data:function(g,f,e){return !!a.data(g,e[3])},focusable:function(e){return c(e,!isNaN(a.attr(e,"tabindex")))},tabbable:function(g){var e=a.attr(g,"tabindex"),f=isNaN(e);return(f||e>=0)&&c(g,!f)}});a(function(){var e=document.body,f=e.appendChild(f=document.createElement("div"));f.offsetHeight;a.extend(f.style,{minHeight:"100px",height:"auto",padding:0,borderWidth:0});a.support.minHeight=f.offsetHeight===100;a.support.selectstart="onselectstart" in f;e.removeChild(f).style.display="none"});a.extend(a.ui,{plugin:{add:function(f,g,j){var h=a.ui[f].prototype;for(var e in j){h.plugins[e]=h.plugins[e]||[];h.plugins[e].push([g,j[e]])}},call:function(e,g,f){var j=e.plugins[g];if(!j||!e.element[0].parentNode){return}for(var h=0;h0){return true}h[e]=1;g=(h[e]>0);h[e]=0;return g},isOverAxis:function(f,e,g){return(f>e)&&(f<(e+g))},isOver:function(j,f,i,h,e,g){return a.ui.isOverAxis(j,i,e)&&a.ui.isOverAxis(f,h,g)}})})(jQuery);/*! - * jQuery UI Widget 1.8.18 - * - * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * http://docs.jquery.com/UI/Widget - */ -(function(b,d){if(b.cleanData){var c=b.cleanData;b.cleanData=function(f){for(var g=0,h;(h=f[g])!=null;g++){try{b(h).triggerHandler("remove")}catch(j){}}c(f)}}else{var a=b.fn.remove;b.fn.remove=function(e,f){return this.each(function(){if(!f){if(!e||b.filter(e,[this]).length){b("*",this).add([this]).each(function(){try{b(this).triggerHandler("remove")}catch(g){}})}}return a.call(b(this),e,f)})}}b.widget=function(f,h,e){var g=f.split(".")[0],j;f=f.split(".")[1];j=g+"-"+f;if(!e){e=h;h=b.Widget}b.expr[":"][j]=function(k){return !!b.data(k,f)};b[g]=b[g]||{};b[g][f]=function(k,l){if(arguments.length){this._createWidget(k,l)}};var i=new h();i.options=b.extend(true,{},i.options);b[g][f].prototype=b.extend(true,i,{namespace:g,widgetName:f,widgetEventPrefix:b[g][f].prototype.widgetEventPrefix||f,widgetBaseClass:j},e);b.widget.bridge(f,b[g][f])};b.widget.bridge=function(f,e){b.fn[f]=function(i){var g=typeof i==="string",h=Array.prototype.slice.call(arguments,1),j=this;i=!g&&h.length?b.extend.apply(null,[true,i].concat(h)):i;if(g&&i.charAt(0)==="_"){return j}if(g){this.each(function(){var k=b.data(this,f),l=k&&b.isFunction(k[i])?k[i].apply(k,h):k;if(l!==k&&l!==d){j=l;return false}})}else{this.each(function(){var k=b.data(this,f);if(k){k.option(i||{})._init()}else{b.data(this,f,new e(i,this))}})}return j}};b.Widget=function(e,f){if(arguments.length){this._createWidget(e,f)}};b.Widget.prototype={widgetName:"widget",widgetEventPrefix:"",options:{disabled:false},_createWidget:function(f,g){b.data(g,this.widgetName,this);this.element=b(g);this.options=b.extend(true,{},this.options,this._getCreateOptions(),f);var e=this;this.element.bind("remove."+this.widgetName,function(){e.destroy()});this._create();this._trigger("create");this._init()},_getCreateOptions:function(){return b.metadata&&b.metadata.get(this.element[0])[this.widgetName]},_create:function(){},_init:function(){},destroy:function(){this.element.unbind("."+this.widgetName).removeData(this.widgetName);this.widget().unbind("."+this.widgetName).removeAttr("aria-disabled").removeClass(this.widgetBaseClass+"-disabled ui-state-disabled")},widget:function(){return this.element},option:function(f,g){var e=f;if(arguments.length===0){return b.extend({},this.options)}if(typeof f==="string"){if(g===d){return this.options[f]}e={};e[f]=g}this._setOptions(e);return this},_setOptions:function(f){var e=this;b.each(f,function(g,h){e._setOption(g,h)});return this},_setOption:function(e,f){this.options[e]=f;if(e==="disabled"){this.widget()[f?"addClass":"removeClass"](this.widgetBaseClass+"-disabled ui-state-disabled").attr("aria-disabled",f)}return this},enable:function(){return this._setOption("disabled",false)},disable:function(){return this._setOption("disabled",true)},_trigger:function(e,f,g){var j,i,h=this.options[e];g=g||{};f=b.Event(f);f.type=(e===this.widgetEventPrefix?e:this.widgetEventPrefix+e).toLowerCase();f.target=this.element[0];i=f.originalEvent;if(i){for(j in i){if(!(j in f)){f[j]=i[j]}}}this.element.trigger(f,g);return !(b.isFunction(h)&&h.call(this.element[0],f,g)===false||f.isDefaultPrevented())}}})(jQuery);/*! - * jQuery UI Mouse 1.8.18 - * - * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://jquery.org/license - * - * http://docs.jquery.com/UI/Mouse - * - * Depends: - * jquery.ui.widget.js - */ -(function(b,c){var a=false;b(document).mouseup(function(d){a=false});b.widget("ui.mouse",{options:{cancel:":input,option",distance:1,delay:0},_mouseInit:function(){var d=this;this.element.bind("mousedown."+this.widgetName,function(e){return d._mouseDown(e)}).bind("click."+this.widgetName,function(e){if(true===b.data(e.target,d.widgetName+".preventClickEvent")){b.removeData(e.target,d.widgetName+".preventClickEvent");e.stopImmediatePropagation();return false}});this.started=false},_mouseDestroy:function(){this.element.unbind("."+this.widgetName)},_mouseDown:function(f){if(a){return}(this._mouseStarted&&this._mouseUp(f));this._mouseDownEvent=f;var e=this,g=(f.which==1),d=(typeof this.options.cancel=="string"&&f.target.nodeName?b(f.target).closest(this.options.cancel).length:false);if(!g||d||!this._mouseCapture(f)){return true}this.mouseDelayMet=!this.options.delay;if(!this.mouseDelayMet){this._mouseDelayTimer=setTimeout(function(){e.mouseDelayMet=true},this.options.delay)}if(this._mouseDistanceMet(f)&&this._mouseDelayMet(f)){this._mouseStarted=(this._mouseStart(f)!==false);if(!this._mouseStarted){f.preventDefault();return true}}if(true===b.data(f.target,this.widgetName+".preventClickEvent")){b.removeData(f.target,this.widgetName+".preventClickEvent")}this._mouseMoveDelegate=function(h){return e._mouseMove(h)};this._mouseUpDelegate=function(h){return e._mouseUp(h)};b(document).bind("mousemove."+this.widgetName,this._mouseMoveDelegate).bind("mouseup."+this.widgetName,this._mouseUpDelegate);f.preventDefault();a=true;return true},_mouseMove:function(d){if(b.browser.msie&&!(document.documentMode>=9)&&!d.button){return this._mouseUp(d)}if(this._mouseStarted){this._mouseDrag(d);return d.preventDefault()}if(this._mouseDistanceMet(d)&&this._mouseDelayMet(d)){this._mouseStarted=(this._mouseStart(this._mouseDownEvent,d)!==false);(this._mouseStarted?this._mouseDrag(d):this._mouseUp(d))}return !this._mouseStarted},_mouseUp:function(d){b(document).unbind("mousemove."+this.widgetName,this._mouseMoveDelegate).unbind("mouseup."+this.widgetName,this._mouseUpDelegate);if(this._mouseStarted){this._mouseStarted=false;if(d.target==this._mouseDownEvent.target){b.data(d.target,this.widgetName+".preventClickEvent",true)}this._mouseStop(d)}return false},_mouseDistanceMet:function(d){return(Math.max(Math.abs(this._mouseDownEvent.pageX-d.pageX),Math.abs(this._mouseDownEvent.pageY-d.pageY))>=this.options.distance)},_mouseDelayMet:function(d){return this.mouseDelayMet},_mouseStart:function(d){},_mouseDrag:function(d){},_mouseStop:function(d){},_mouseCapture:function(d){return true}})})(jQuery);(function(c,d){c.widget("ui.resizable",c.ui.mouse,{widgetEventPrefix:"resize",options:{alsoResize:false,animate:false,animateDuration:"slow",animateEasing:"swing",aspectRatio:false,autoHide:false,containment:false,ghost:false,grid:false,handles:"e,s,se",helper:false,maxHeight:null,maxWidth:null,minHeight:10,minWidth:10,zIndex:1000},_create:function(){var f=this,k=this.options;this.element.addClass("ui-resizable");c.extend(this,{_aspectRatio:!!(k.aspectRatio),aspectRatio:k.aspectRatio,originalElement:this.element,_proportionallyResizeElements:[],_helper:k.helper||k.ghost||k.animate?k.helper||"ui-resizable-helper":null});if(this.element[0].nodeName.match(/canvas|textarea|input|select|button|img/i)){this.element.wrap(c('
').css({position:this.element.css("position"),width:this.element.outerWidth(),height:this.element.outerHeight(),top:this.element.css("top"),left:this.element.css("left")}));this.element=this.element.parent().data("resizable",this.element.data("resizable"));this.elementIsWrapper=true;this.element.css({marginLeft:this.originalElement.css("marginLeft"),marginTop:this.originalElement.css("marginTop"),marginRight:this.originalElement.css("marginRight"),marginBottom:this.originalElement.css("marginBottom")});this.originalElement.css({marginLeft:0,marginTop:0,marginRight:0,marginBottom:0});this.originalResizeStyle=this.originalElement.css("resize");this.originalElement.css("resize","none");this._proportionallyResizeElements.push(this.originalElement.css({position:"static",zoom:1,display:"block"}));this.originalElement.css({margin:this.originalElement.css("margin")});this._proportionallyResize()}this.handles=k.handles||(!c(".ui-resizable-handle",this.element).length?"e,s,se":{n:".ui-resizable-n",e:".ui-resizable-e",s:".ui-resizable-s",w:".ui-resizable-w",se:".ui-resizable-se",sw:".ui-resizable-sw",ne:".ui-resizable-ne",nw:".ui-resizable-nw"});if(this.handles.constructor==String){if(this.handles=="all"){this.handles="n,e,s,w,se,sw,ne,nw"}var l=this.handles.split(",");this.handles={};for(var g=0;g
');if(/sw|se|ne|nw/.test(j)){h.css({zIndex:++k.zIndex})}if("se"==j){h.addClass("ui-icon ui-icon-gripsmall-diagonal-se")}this.handles[j]=".ui-resizable-"+j;this.element.append(h)}}this._renderAxis=function(q){q=q||this.element;for(var n in this.handles){if(this.handles[n].constructor==String){this.handles[n]=c(this.handles[n],this.element).show()}if(this.elementIsWrapper&&this.originalElement[0].nodeName.match(/textarea|input|select|button/i)){var o=c(this.handles[n],this.element),p=0;p=/sw|ne|nw|se|n|s/.test(n)?o.outerHeight():o.outerWidth();var m=["padding",/ne|nw|n/.test(n)?"Top":/se|sw|s/.test(n)?"Bottom":/^e$/.test(n)?"Right":"Left"].join("");q.css(m,p);this._proportionallyResize()}if(!c(this.handles[n]).length){continue}}};this._renderAxis(this.element);this._handles=c(".ui-resizable-handle",this.element).disableSelection();this._handles.mouseover(function(){if(!f.resizing){if(this.className){var i=this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i)}f.axis=i&&i[1]?i[1]:"se"}});if(k.autoHide){this._handles.hide();c(this.element).addClass("ui-resizable-autohide").hover(function(){if(k.disabled){return}c(this).removeClass("ui-resizable-autohide");f._handles.show()},function(){if(k.disabled){return}if(!f.resizing){c(this).addClass("ui-resizable-autohide");f._handles.hide()}})}this._mouseInit()},destroy:function(){this._mouseDestroy();var e=function(g){c(g).removeClass("ui-resizable ui-resizable-disabled ui-resizable-resizing").removeData("resizable").unbind(".resizable").find(".ui-resizable-handle").remove()};if(this.elementIsWrapper){e(this.element);var f=this.element;f.after(this.originalElement.css({position:f.css("position"),width:f.outerWidth(),height:f.outerHeight(),top:f.css("top"),left:f.css("left")})).remove()}this.originalElement.css("resize",this.originalResizeStyle);e(this.originalElement);return this},_mouseCapture:function(f){var g=false;for(var e in this.handles){if(c(this.handles[e])[0]==f.target){g=true}}return !this.options.disabled&&g},_mouseStart:function(g){var j=this.options,f=this.element.position(),e=this.element;this.resizing=true;this.documentScroll={top:c(document).scrollTop(),left:c(document).scrollLeft()};if(e.is(".ui-draggable")||(/absolute/).test(e.css("position"))){e.css({position:"absolute",top:f.top,left:f.left})}this._renderProxy();var k=b(this.helper.css("left")),h=b(this.helper.css("top"));if(j.containment){k+=c(j.containment).scrollLeft()||0;h+=c(j.containment).scrollTop()||0}this.offset=this.helper.offset();this.position={left:k,top:h};this.size=this._helper?{width:e.outerWidth(),height:e.outerHeight()}:{width:e.width(),height:e.height()};this.originalSize=this._helper?{width:e.outerWidth(),height:e.outerHeight()}:{width:e.width(),height:e.height()};this.originalPosition={left:k,top:h};this.sizeDiff={width:e.outerWidth()-e.width(),height:e.outerHeight()-e.height()};this.originalMousePosition={left:g.pageX,top:g.pageY};this.aspectRatio=(typeof j.aspectRatio=="number")?j.aspectRatio:((this.originalSize.width/this.originalSize.height)||1);var i=c(".ui-resizable-"+this.axis).css("cursor");c("body").css("cursor",i=="auto"?this.axis+"-resize":i);e.addClass("ui-resizable-resizing");this._propagate("start",g);return true},_mouseDrag:function(e){var h=this.helper,g=this.options,m={},q=this,j=this.originalMousePosition,n=this.axis;var r=(e.pageX-j.left)||0,p=(e.pageY-j.top)||0;var i=this._change[n];if(!i){return false}var l=i.apply(this,[e,r,p]),k=c.browser.msie&&c.browser.version<7,f=this.sizeDiff;this._updateVirtualBoundaries(e.shiftKey);if(this._aspectRatio||e.shiftKey){l=this._updateRatio(l,e)}l=this._respectSize(l,e);this._propagate("resize",e);h.css({top:this.position.top+"px",left:this.position.left+"px",width:this.size.width+"px",height:this.size.height+"px"});if(!this._helper&&this._proportionallyResizeElements.length){this._proportionallyResize()}this._updateCache(l);this._trigger("resize",e,this.ui());return false},_mouseStop:function(h){this.resizing=false;var i=this.options,m=this;if(this._helper){var g=this._proportionallyResizeElements,e=g.length&&(/textarea/i).test(g[0].nodeName),f=e&&c.ui.hasScroll(g[0],"left")?0:m.sizeDiff.height,k=e?0:m.sizeDiff.width;var n={width:(m.helper.width()-k),height:(m.helper.height()-f)},j=(parseInt(m.element.css("left"),10)+(m.position.left-m.originalPosition.left))||null,l=(parseInt(m.element.css("top"),10)+(m.position.top-m.originalPosition.top))||null;if(!i.animate){this.element.css(c.extend(n,{top:l,left:j}))}m.helper.height(m.size.height);m.helper.width(m.size.width);if(this._helper&&!i.animate){this._proportionallyResize()}}c("body").css("cursor","auto");this.element.removeClass("ui-resizable-resizing");this._propagate("stop",h);if(this._helper){this.helper.remove()}return false},_updateVirtualBoundaries:function(g){var j=this.options,i,h,f,k,e;e={minWidth:a(j.minWidth)?j.minWidth:0,maxWidth:a(j.maxWidth)?j.maxWidth:Infinity,minHeight:a(j.minHeight)?j.minHeight:0,maxHeight:a(j.maxHeight)?j.maxHeight:Infinity};if(this._aspectRatio||g){i=e.minHeight*this.aspectRatio;f=e.minWidth/this.aspectRatio;h=e.maxHeight*this.aspectRatio;k=e.maxWidth/this.aspectRatio;if(i>e.minWidth){e.minWidth=i}if(f>e.minHeight){e.minHeight=f}if(hl.width),s=a(l.height)&&i.minHeight&&(i.minHeight>l.height);if(h){l.width=i.minWidth}if(s){l.height=i.minHeight}if(t){l.width=i.maxWidth}if(m){l.height=i.maxHeight}var f=this.originalPosition.left+this.originalSize.width,p=this.position.top+this.size.height;var k=/sw|nw|w/.test(q),e=/nw|ne|n/.test(q);if(h&&k){l.left=f-i.minWidth}if(t&&k){l.left=f-i.maxWidth}if(s&&e){l.top=p-i.minHeight}if(m&&e){l.top=p-i.maxHeight}var n=!l.width&&!l.height;if(n&&!l.left&&l.top){l.top=null}else{if(n&&!l.top&&l.left){l.left=null}}return l},_proportionallyResize:function(){var k=this.options;if(!this._proportionallyResizeElements.length){return}var g=this.helper||this.element;for(var f=0;f');var e=c.browser.msie&&c.browser.version<7,g=(e?1:0),h=(e?2:-1);this.helper.addClass(this._helper).css({width:this.element.outerWidth()+h,height:this.element.outerHeight()+h,position:"absolute",left:this.elementOffset.left-g+"px",top:this.elementOffset.top-g+"px",zIndex:++i.zIndex});this.helper.appendTo("body").disableSelection()}else{this.helper=this.element}},_change:{e:function(g,f,e){return{width:this.originalSize.width+f}},w:function(h,f,e){var j=this.options,g=this.originalSize,i=this.originalPosition;return{left:i.left+f,width:g.width-f}},n:function(h,f,e){var j=this.options,g=this.originalSize,i=this.originalPosition;return{top:i.top+e,height:g.height-e}},s:function(g,f,e){return{height:this.originalSize.height+e}},se:function(g,f,e){return c.extend(this._change.s.apply(this,arguments),this._change.e.apply(this,[g,f,e]))},sw:function(g,f,e){return c.extend(this._change.s.apply(this,arguments),this._change.w.apply(this,[g,f,e]))},ne:function(g,f,e){return c.extend(this._change.n.apply(this,arguments),this._change.e.apply(this,[g,f,e]))},nw:function(g,f,e){return c.extend(this._change.n.apply(this,arguments),this._change.w.apply(this,[g,f,e]))}},_propagate:function(f,e){c.ui.plugin.call(this,f,[e,this.ui()]);(f!="resize"&&this._trigger(f,e,this.ui()))},plugins:{},ui:function(){return{originalElement:this.originalElement,element:this.element,helper:this.helper,position:this.position,size:this.size,originalSize:this.originalSize,originalPosition:this.originalPosition}}});c.extend(c.ui.resizable,{version:"1.8.18"});c.ui.plugin.add("resizable","alsoResize",{start:function(f,g){var e=c(this).data("resizable"),i=e.options;var h=function(j){c(j).each(function(){var k=c(this);k.data("resizable-alsoresize",{width:parseInt(k.width(),10),height:parseInt(k.height(),10),left:parseInt(k.css("left"),10),top:parseInt(k.css("top"),10)})})};if(typeof(i.alsoResize)=="object"&&!i.alsoResize.parentNode){if(i.alsoResize.length){i.alsoResize=i.alsoResize[0];h(i.alsoResize)}else{c.each(i.alsoResize,function(j){h(j)})}}else{h(i.alsoResize)}},resize:function(g,i){var f=c(this).data("resizable"),j=f.options,h=f.originalSize,l=f.originalPosition;var k={height:(f.size.height-h.height)||0,width:(f.size.width-h.width)||0,top:(f.position.top-l.top)||0,left:(f.position.left-l.left)||0},e=function(m,n){c(m).each(function(){var q=c(this),r=c(this).data("resizable-alsoresize"),p={},o=n&&n.length?n:q.parents(i.originalElement[0]).length?["width","height"]:["width","height","top","left"];c.each(o,function(s,u){var t=(r[u]||0)+(k[u]||0);if(t&&t>=0){p[u]=t||null}});q.css(p)})};if(typeof(j.alsoResize)=="object"&&!j.alsoResize.nodeType){c.each(j.alsoResize,function(m,n){e(m,n)})}else{e(j.alsoResize)}},stop:function(e,f){c(this).removeData("resizable-alsoresize")}});c.ui.plugin.add("resizable","animate",{stop:function(i,n){var p=c(this).data("resizable"),j=p.options;var h=p._proportionallyResizeElements,e=h.length&&(/textarea/i).test(h[0].nodeName),f=e&&c.ui.hasScroll(h[0],"left")?0:p.sizeDiff.height,l=e?0:p.sizeDiff.width;var g={width:(p.size.width-l),height:(p.size.height-f)},k=(parseInt(p.element.css("left"),10)+(p.position.left-p.originalPosition.left))||null,m=(parseInt(p.element.css("top"),10)+(p.position.top-p.originalPosition.top))||null;p.element.animate(c.extend(g,m&&k?{top:m,left:k}:{}),{duration:j.animateDuration,easing:j.animateEasing,step:function(){var o={width:parseInt(p.element.css("width"),10),height:parseInt(p.element.css("height"),10),top:parseInt(p.element.css("top"),10),left:parseInt(p.element.css("left"),10)};if(h&&h.length){c(h[0]).css({width:o.width,height:o.height})}p._updateCache(o);p._propagate("resize",i)}})}});c.ui.plugin.add("resizable","containment",{start:function(f,r){var t=c(this).data("resizable"),j=t.options,l=t.element;var g=j.containment,k=(g instanceof c)?g.get(0):(/parent/.test(g))?l.parent().get(0):g;if(!k){return}t.containerElement=c(k);if(/document/.test(g)||g==document){t.containerOffset={left:0,top:0};t.containerPosition={left:0,top:0};t.parentData={element:c(document),left:0,top:0,width:c(document).width(),height:c(document).height()||document.body.parentNode.scrollHeight}}else{var n=c(k),i=[];c(["Top","Right","Left","Bottom"]).each(function(p,o){i[p]=b(n.css("padding"+o))});t.containerOffset=n.offset();t.containerPosition=n.position();t.containerSize={height:(n.innerHeight()-i[3]),width:(n.innerWidth()-i[1])};var q=t.containerOffset,e=t.containerSize.height,m=t.containerSize.width,h=(c.ui.hasScroll(k,"left")?k.scrollWidth:m),s=(c.ui.hasScroll(k)?k.scrollHeight:e);t.parentData={element:k,left:q.left,top:q.top,width:h,height:s}}},resize:function(g,q){var t=c(this).data("resizable"),i=t.options,f=t.containerSize,p=t.containerOffset,m=t.size,n=t.position,r=t._aspectRatio||g.shiftKey,e={top:0,left:0},h=t.containerElement;if(h[0]!=document&&(/static/).test(h.css("position"))){e=p}if(n.left<(t._helper?p.left:0)){t.size.width=t.size.width+(t._helper?(t.position.left-p.left):(t.position.left-e.left));if(r){t.size.height=t.size.width/i.aspectRatio}t.position.left=i.helper?p.left:0}if(n.top<(t._helper?p.top:0)){t.size.height=t.size.height+(t._helper?(t.position.top-p.top):t.position.top);if(r){t.size.width=t.size.height*i.aspectRatio}t.position.top=t._helper?p.top:0}t.offset.left=t.parentData.left+t.position.left;t.offset.top=t.parentData.top+t.position.top;var l=Math.abs((t._helper?t.offset.left-e.left:(t.offset.left-e.left))+t.sizeDiff.width),s=Math.abs((t._helper?t.offset.top-e.top:(t.offset.top-p.top))+t.sizeDiff.height);var k=t.containerElement.get(0)==t.element.parent().get(0),j=/relative|absolute/.test(t.containerElement.css("position"));if(k&&j){l-=t.parentData.left}if(l+t.size.width>=t.parentData.width){t.size.width=t.parentData.width-l;if(r){t.size.height=t.size.width/t.aspectRatio}}if(s+t.size.height>=t.parentData.height){t.size.height=t.parentData.height-s;if(r){t.size.width=t.size.height*t.aspectRatio}}},stop:function(f,n){var q=c(this).data("resizable"),g=q.options,l=q.position,m=q.containerOffset,e=q.containerPosition,i=q.containerElement;var j=c(q.helper),r=j.offset(),p=j.outerWidth()-q.sizeDiff.width,k=j.outerHeight()-q.sizeDiff.height;if(q._helper&&!g.animate&&(/relative/).test(i.css("position"))){c(this).css({left:r.left-e.left-m.left,width:p,height:k})}if(q._helper&&!g.animate&&(/static/).test(i.css("position"))){c(this).css({left:r.left-e.left-m.left,width:p,height:k})}}});c.ui.plugin.add("resizable","ghost",{start:function(g,h){var e=c(this).data("resizable"),i=e.options,f=e.size;e.ghost=e.originalElement.clone();e.ghost.css({opacity:0.25,display:"block",position:"relative",height:f.height,width:f.width,margin:0,left:0,top:0}).addClass("ui-resizable-ghost").addClass(typeof i.ghost=="string"?i.ghost:"");e.ghost.appendTo(e.helper)},resize:function(f,g){var e=c(this).data("resizable"),h=e.options;if(e.ghost){e.ghost.css({position:"relative",height:e.size.height,width:e.size.width})}},stop:function(f,g){var e=c(this).data("resizable"),h=e.options;if(e.ghost&&e.helper){e.helper.get(0).removeChild(e.ghost.get(0))}}});c.ui.plugin.add("resizable","grid",{resize:function(e,m){var p=c(this).data("resizable"),h=p.options,k=p.size,i=p.originalSize,j=p.originalPosition,n=p.axis,l=h._aspectRatio||e.shiftKey;h.grid=typeof h.grid=="number"?[h.grid,h.grid]:h.grid;var g=Math.round((k.width-i.width)/(h.grid[0]||1))*(h.grid[0]||1),f=Math.round((k.height-i.height)/(h.grid[1]||1))*(h.grid[1]||1);if(/^(se|s|e)$/.test(n)){p.size.width=i.width+g;p.size.height=i.height+f}else{if(/^(ne)$/.test(n)){p.size.width=i.width+g;p.size.height=i.height+f;p.position.top=j.top-f}else{if(/^(sw)$/.test(n)){p.size.width=i.width+g;p.size.height=i.height+f;p.position.left=j.left-g}else{p.size.width=i.width+g;p.size.height=i.height+f;p.position.top=j.top-f;p.position.left=j.left-g}}}}});var b=function(e){return parseInt(e,10)||0};var a=function(e){return !isNaN(parseInt(e,10))}})(jQuery);/*! - * jQuery hashchange event - v1.3 - 7/21/2010 - * http://benalman.com/projects/jquery-hashchange-plugin/ - * - * Copyright (c) 2010 "Cowboy" Ben Alman - * Dual licensed under the MIT and GPL licenses. - * http://benalman.com/about/license/ - */ -(function($,e,b){var c="hashchange",h=document,f,g=$.event.special,i=h.documentMode,d="on"+c in e&&(i===b||i>7);function a(j){j=j||location.href;return"#"+j.replace(/^[^#]*#?(.*)$/,"$1")}$.fn[c]=function(j){return j?this.bind(c,j):this.trigger(c)};$.fn[c].delay=50;g[c]=$.extend(g[c],{setup:function(){if(d){return false}$(f.start)},teardown:function(){if(d){return false}$(f.stop)}});f=(function(){var j={},p,m=a(),k=function(q){return q},l=k,o=k;j.start=function(){p||n()};j.stop=function(){p&&clearTimeout(p);p=b};function n(){var r=a(),q=o(m);if(r!==m){l(m=r,q);$(e).trigger(c)}else{if(q!==m){location.href=location.href.replace(/#.*/,"")+q}}p=setTimeout(n,$.fn[c].delay)}$.browser.msie&&!d&&(function(){var q,r;j.start=function(){if(!q){r=$.fn[c].src;r=r&&r+a();q=$(' - - -
-
-
Related Pages
-
-
-
Here is a list of all related documentation pages:
-
- - - - -
 Load an XML File
 Parse an XML from char buffer
 Get information out of XML
 Read attributes and text information.
- - - - - - diff --git a/docs/search/all_0.html b/docs/search/all_0.html deleted file mode 100644 index f25360b..0000000 --- a/docs/search/all_0.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - -
-
Loading...
-
- -
Searching...
-
No Matches
- -
- - diff --git a/docs/search/all_0.js b/docs/search/all_0.js deleted file mode 100644 index 28cfce2..0000000 --- a/docs/search/all_0.js +++ /dev/null @@ -1,5 +0,0 @@ -var searchData= -[ - ['accept',['Accept',['../classtinyxml2_1_1_x_m_l_node.html#a81e66df0a44c67a7af17f3b77a152785',1,'tinyxml2::XMLNode::Accept()'],['../classtinyxml2_1_1_x_m_l_text.html#a1b2c1448f1a21299d0a7913f18b55206',1,'tinyxml2::XMLText::Accept()'],['../classtinyxml2_1_1_x_m_l_comment.html#a4a33dc32fae0285b03f9cfcb3e43e122',1,'tinyxml2::XMLComment::Accept()'],['../classtinyxml2_1_1_x_m_l_declaration.html#a5f376019fb34752eb248548f42f32045',1,'tinyxml2::XMLDeclaration::Accept()'],['../classtinyxml2_1_1_x_m_l_unknown.html#a70983aa1b1cff3d3aa6d4d0a80e5ee48',1,'tinyxml2::XMLUnknown::Accept()'],['../classtinyxml2_1_1_x_m_l_element.html#a3ea8a40e788fb9ad876c28a32932c6d5',1,'tinyxml2::XMLElement::Accept()'],['../classtinyxml2_1_1_x_m_l_document.html#a9efa54f7ecb37c17ab1fa2b3078ccca1',1,'tinyxml2::XMLDocument::Accept()']]], - ['attribute',['Attribute',['../classtinyxml2_1_1_x_m_l_element.html#a70e49ed60b11212ae35f7e354cfe1de9',1,'tinyxml2::XMLElement']]] -]; diff --git a/docs/search/all_1.html b/docs/search/all_1.html deleted file mode 100644 index b13f0f7..0000000 --- a/docs/search/all_1.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - -
-
Loading...
-
- -
Searching...
-
No Matches
- -
- - diff --git a/docs/search/all_1.js b/docs/search/all_1.js deleted file mode 100644 index 2f5497b..0000000 --- a/docs/search/all_1.js +++ /dev/null @@ -1,6 +0,0 @@ -var searchData= -[ - ['boolattribute',['BoolAttribute',['../classtinyxml2_1_1_x_m_l_element.html#a53eda26131e1ad1031ef8ec8adb51bd8',1,'tinyxml2::XMLElement']]], - ['booltext',['BoolText',['../classtinyxml2_1_1_x_m_l_element.html#a68569f59f6382bcea7f5013ec59736d2',1,'tinyxml2::XMLElement']]], - ['boolvalue',['BoolValue',['../classtinyxml2_1_1_x_m_l_attribute.html#a98ce5207344ad33a265b0422addae1ff',1,'tinyxml2::XMLAttribute']]] -]; diff --git a/docs/search/all_10.html b/docs/search/all_10.html deleted file mode 100644 index d1345a1..0000000 --- a/docs/search/all_10.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - -
-
Loading...
-
- -
Searching...
-
No Matches
- -
- - diff --git a/docs/search/all_10.js b/docs/search/all_10.js deleted file mode 100644 index 280048c..0000000 --- a/docs/search/all_10.js +++ /dev/null @@ -1,11 +0,0 @@ -var searchData= -[ - ['tinyxml_2d2',['TinyXML-2',['../index.html',1,'']]], - ['tocomment',['ToComment',['../classtinyxml2_1_1_x_m_l_node.html#aff47671055aa99840a1c1ebd661e63e3',1,'tinyxml2::XMLNode::ToComment()'],['../classtinyxml2_1_1_x_m_l_comment.html#a8093e1dc8a34fa446d9dc3fde0e6c0ee',1,'tinyxml2::XMLComment::ToComment()']]], - ['todeclaration',['ToDeclaration',['../classtinyxml2_1_1_x_m_l_node.html#a174fd4c22c010b58138c1b84a0dfbd51',1,'tinyxml2::XMLNode::ToDeclaration()'],['../classtinyxml2_1_1_x_m_l_declaration.html#a159d8ac45865215e88059ea1e5b52fc5',1,'tinyxml2::XMLDeclaration::ToDeclaration()'],['../classtinyxml2_1_1_x_m_l_handle.html#a108858be7ee3eb53f73b5194c1aa8ff0',1,'tinyxml2::XMLHandle::ToDeclaration()']]], - ['todocument',['ToDocument',['../classtinyxml2_1_1_x_m_l_node.html#a836e2966ed736fc3c94f70e12a2a3357',1,'tinyxml2::XMLNode::ToDocument()'],['../classtinyxml2_1_1_x_m_l_document.html#a3e185f880882bd978367bb55937735ec',1,'tinyxml2::XMLDocument::ToDocument()']]], - ['toelement',['ToElement',['../classtinyxml2_1_1_x_m_l_node.html#aab516e699567f75cc9ab2ef2eee501e8',1,'tinyxml2::XMLNode::ToElement()'],['../classtinyxml2_1_1_x_m_l_element.html#ad9ff5c2dbc15df36cf664ce1b0ea0a5d',1,'tinyxml2::XMLElement::ToElement()'],['../classtinyxml2_1_1_x_m_l_handle.html#a5e73ed8f3f6f9619d5a8bb1862c47d99',1,'tinyxml2::XMLHandle::ToElement()']]], - ['tonode',['ToNode',['../classtinyxml2_1_1_x_m_l_handle.html#a03ea6ec970a021b71bf1219a0f6717df',1,'tinyxml2::XMLHandle']]], - ['totext',['ToText',['../classtinyxml2_1_1_x_m_l_node.html#a41c55dab9162d1eb62db2008430e376b',1,'tinyxml2::XMLNode::ToText()'],['../classtinyxml2_1_1_x_m_l_text.html#ab1213b4ddebe9b17ec7e7040e9f1caf7',1,'tinyxml2::XMLText::ToText()'],['../classtinyxml2_1_1_x_m_l_handle.html#a6ab9e8cbfb41417246e5657e3842c62a',1,'tinyxml2::XMLHandle::ToText()']]], - ['tounknown',['ToUnknown',['../classtinyxml2_1_1_x_m_l_node.html#a8675a74aa0ada6eccab0c77ef3e5b9bd',1,'tinyxml2::XMLNode::ToUnknown()'],['../classtinyxml2_1_1_x_m_l_unknown.html#af4374856421921cad578c8affae872b6',1,'tinyxml2::XMLUnknown::ToUnknown()'],['../classtinyxml2_1_1_x_m_l_handle.html#aa387368a1ad8d843a9f12df863d298de',1,'tinyxml2::XMLHandle::ToUnknown()']]] -]; diff --git a/docs/search/all_11.html b/docs/search/all_11.html deleted file mode 100644 index 2be8b71..0000000 --- a/docs/search/all_11.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - -
-
Loading...
-
- -
Searching...
-
No Matches
- -
- - diff --git a/docs/search/all_11.js b/docs/search/all_11.js deleted file mode 100644 index 7e35c72..0000000 --- a/docs/search/all_11.js +++ /dev/null @@ -1,6 +0,0 @@ -var searchData= -[ - ['unsignedattribute',['UnsignedAttribute',['../classtinyxml2_1_1_x_m_l_element.html#afea43a1d4aa33e3703ddee5fc9adc26c',1,'tinyxml2::XMLElement']]], - ['unsignedtext',['UnsignedText',['../classtinyxml2_1_1_x_m_l_element.html#a49bad014ffcc17b0b6119d5b2c97dfb5',1,'tinyxml2::XMLElement']]], - ['unsignedvalue',['UnsignedValue',['../classtinyxml2_1_1_x_m_l_attribute.html#a0be5343b08a957c42c02c5d32c35d338',1,'tinyxml2::XMLAttribute']]] -]; diff --git a/docs/search/all_12.html b/docs/search/all_12.html deleted file mode 100644 index 13c5263..0000000 --- a/docs/search/all_12.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - -
-
Loading...
-
- -
Searching...
-
No Matches
- -
- - diff --git a/docs/search/all_12.js b/docs/search/all_12.js deleted file mode 100644 index bc84876..0000000 --- a/docs/search/all_12.js +++ /dev/null @@ -1,7 +0,0 @@ -var searchData= -[ - ['value',['Value',['../classtinyxml2_1_1_x_m_l_node.html#a66344989a4b436155bcda72bd6b07b82',1,'tinyxml2::XMLNode::Value()'],['../classtinyxml2_1_1_x_m_l_attribute.html#a1aab1dd0e43ecbcfa306adbcf3a3d853',1,'tinyxml2::XMLAttribute::Value()']]], - ['visit',['Visit',['../classtinyxml2_1_1_x_m_l_visitor.html#adc75bd459fc7ba8223b50f0616767f9a',1,'tinyxml2::XMLVisitor::Visit(const XMLDeclaration &)'],['../classtinyxml2_1_1_x_m_l_visitor.html#af30233565856480ea48b6fa0d6dec65b',1,'tinyxml2::XMLVisitor::Visit(const XMLText &)'],['../classtinyxml2_1_1_x_m_l_visitor.html#acc8147fb5a85f6c65721654e427752d7',1,'tinyxml2::XMLVisitor::Visit(const XMLComment &)'],['../classtinyxml2_1_1_x_m_l_visitor.html#a14e4748387c34bf53d24e8119bb1f292',1,'tinyxml2::XMLVisitor::Visit(const XMLUnknown &)'],['../classtinyxml2_1_1_x_m_l_printer.html#a275ae25544a12199ae40b6994ca6e4de',1,'tinyxml2::XMLPrinter::Visit(const XMLText &text)'],['../classtinyxml2_1_1_x_m_l_printer.html#a3f16a30be1537ac141d9bd2db824ba9e',1,'tinyxml2::XMLPrinter::Visit(const XMLComment &comment)'],['../classtinyxml2_1_1_x_m_l_printer.html#a9ceff5cd85e5db65838962174fcdcc46',1,'tinyxml2::XMLPrinter::Visit(const XMLDeclaration &declaration)'],['../classtinyxml2_1_1_x_m_l_printer.html#aa15e1da81e17dea5da6499ac5b08d9d8',1,'tinyxml2::XMLPrinter::Visit(const XMLUnknown &unknown)']]], - ['visitenter',['VisitEnter',['../classtinyxml2_1_1_x_m_l_visitor.html#acb3c22fc5f60eb9db98f533f2761f67d',1,'tinyxml2::XMLVisitor::VisitEnter(const XMLDocument &)'],['../classtinyxml2_1_1_x_m_l_visitor.html#af97980a17dd4e37448b181f5ddfa92b5',1,'tinyxml2::XMLVisitor::VisitEnter(const XMLElement &, const XMLAttribute *)'],['../classtinyxml2_1_1_x_m_l_printer.html#ae966b988a7a28c41e91c5ca17fb2054b',1,'tinyxml2::XMLPrinter::VisitEnter(const XMLDocument &)'],['../classtinyxml2_1_1_x_m_l_printer.html#a2ce2aa508c21ac91615093ddb9c282c5',1,'tinyxml2::XMLPrinter::VisitEnter(const XMLElement &element, const XMLAttribute *attribute)']]], - ['visitexit',['VisitExit',['../classtinyxml2_1_1_x_m_l_visitor.html#a170e9989cd046ba904f302d087e07086',1,'tinyxml2::XMLVisitor::VisitExit(const XMLDocument &)'],['../classtinyxml2_1_1_x_m_l_visitor.html#a772f10ddc83f881956d32628faa16eb6',1,'tinyxml2::XMLVisitor::VisitExit(const XMLElement &)'],['../classtinyxml2_1_1_x_m_l_printer.html#a15fc1f2b922f540917dcf52808737b29',1,'tinyxml2::XMLPrinter::VisitExit(const XMLDocument &)'],['../classtinyxml2_1_1_x_m_l_printer.html#ae99e0a7086543591edfb565f24689098',1,'tinyxml2::XMLPrinter::VisitExit(const XMLElement &element)']]] -]; diff --git a/docs/search/all_13.html b/docs/search/all_13.html deleted file mode 100644 index b4a8bca..0000000 --- a/docs/search/all_13.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - -
-
Loading...
-
- -
Searching...
-
No Matches
- -
- - diff --git a/docs/search/all_13.js b/docs/search/all_13.js deleted file mode 100644 index 9c06153..0000000 --- a/docs/search/all_13.js +++ /dev/null @@ -1,15 +0,0 @@ -var searchData= -[ - ['xmlattribute',['XMLAttribute',['../classtinyxml2_1_1_x_m_l_attribute.html',1,'tinyxml2']]], - ['xmlcomment',['XMLComment',['../classtinyxml2_1_1_x_m_l_comment.html',1,'tinyxml2']]], - ['xmlconsthandle',['XMLConstHandle',['../classtinyxml2_1_1_x_m_l_const_handle.html',1,'tinyxml2']]], - ['xmldeclaration',['XMLDeclaration',['../classtinyxml2_1_1_x_m_l_declaration.html',1,'tinyxml2']]], - ['xmldocument',['XMLDocument',['../classtinyxml2_1_1_x_m_l_document.html',1,'tinyxml2::XMLDocument'],['../classtinyxml2_1_1_x_m_l_document.html#a57ddf17b6e054dda10af98991b1b8f70',1,'tinyxml2::XMLDocument::XMLDocument()']]], - ['xmlelement',['XMLElement',['../classtinyxml2_1_1_x_m_l_element.html',1,'tinyxml2']]], - ['xmlhandle',['XMLHandle',['../classtinyxml2_1_1_x_m_l_handle.html',1,'tinyxml2::XMLHandle'],['../classtinyxml2_1_1_x_m_l_handle.html#a9c240a35c18f053509b4b97ddccd9793',1,'tinyxml2::XMLHandle::XMLHandle(XMLNode *node)'],['../classtinyxml2_1_1_x_m_l_handle.html#aa2edbc1c0d3e3e8259bd98de7f1cf500',1,'tinyxml2::XMLHandle::XMLHandle(XMLNode &node)'],['../classtinyxml2_1_1_x_m_l_handle.html#afd8e01e6018c07347b8e6d80272466aa',1,'tinyxml2::XMLHandle::XMLHandle(const XMLHandle &ref)']]], - ['xmlnode',['XMLNode',['../classtinyxml2_1_1_x_m_l_node.html',1,'tinyxml2']]], - ['xmlprinter',['XMLPrinter',['../classtinyxml2_1_1_x_m_l_printer.html',1,'tinyxml2::XMLPrinter'],['../classtinyxml2_1_1_x_m_l_printer.html#aa6d3841c069085f5b8a27bc7103c04f7',1,'tinyxml2::XMLPrinter::XMLPrinter()']]], - ['xmltext',['XMLText',['../classtinyxml2_1_1_x_m_l_text.html',1,'tinyxml2']]], - ['xmlunknown',['XMLUnknown',['../classtinyxml2_1_1_x_m_l_unknown.html',1,'tinyxml2']]], - ['xmlvisitor',['XMLVisitor',['../classtinyxml2_1_1_x_m_l_visitor.html',1,'tinyxml2']]] -]; diff --git a/docs/search/all_2.html b/docs/search/all_2.html deleted file mode 100644 index 9543c57..0000000 --- a/docs/search/all_2.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - -
-
Loading...
-
- -
Searching...
-
No Matches
- -
- - diff --git a/docs/search/all_2.js b/docs/search/all_2.js deleted file mode 100644 index 62ab567..0000000 --- a/docs/search/all_2.js +++ /dev/null @@ -1,9 +0,0 @@ -var searchData= -[ - ['cdata',['CData',['../classtinyxml2_1_1_x_m_l_text.html#ac1bb5ea4166c320882d9e0ad16fd385b',1,'tinyxml2::XMLText']]], - ['clear',['Clear',['../classtinyxml2_1_1_x_m_l_document.html#a65656b0b2cbc822708eb351504178aaf',1,'tinyxml2::XMLDocument']]], - ['clearbuffer',['ClearBuffer',['../classtinyxml2_1_1_x_m_l_printer.html#a216157765b7267bf389975b1cbf9a909',1,'tinyxml2::XMLPrinter']]], - ['closeelement',['CloseElement',['../classtinyxml2_1_1_x_m_l_printer.html#ad04d29562b46fcdb23ab320f8b664240',1,'tinyxml2::XMLPrinter']]], - ['cstr',['CStr',['../classtinyxml2_1_1_x_m_l_printer.html#a180671d73844f159f2d4aafbc11d106e',1,'tinyxml2::XMLPrinter']]], - ['cstrsize',['CStrSize',['../classtinyxml2_1_1_x_m_l_printer.html#a3256cf3523d4898b91abb18b924be04c',1,'tinyxml2::XMLPrinter']]] -]; diff --git a/docs/search/all_3.html b/docs/search/all_3.html deleted file mode 100644 index 03405c0..0000000 --- a/docs/search/all_3.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - -
-
Loading...
-
- -
Searching...
-
No Matches
- -
- - diff --git a/docs/search/all_3.js b/docs/search/all_3.js deleted file mode 100644 index c24f73b..0000000 --- a/docs/search/all_3.js +++ /dev/null @@ -1,12 +0,0 @@ -var searchData= -[ - ['deepclone',['DeepClone',['../classtinyxml2_1_1_x_m_l_node.html#a62c71b6bf8734b5424063b8d9a61c266',1,'tinyxml2::XMLNode']]], - ['deepcopy',['DeepCopy',['../classtinyxml2_1_1_x_m_l_document.html#aab792e90adc38cdc5446616573b8b01b',1,'tinyxml2::XMLDocument']]], - ['deleteattribute',['DeleteAttribute',['../classtinyxml2_1_1_x_m_l_element.html#aebd45aa7118964c30b32fe12e944628a',1,'tinyxml2::XMLElement']]], - ['deletechild',['DeleteChild',['../classtinyxml2_1_1_x_m_l_node.html#a363b6edbd6ebd55f8387d2b89f2b0921',1,'tinyxml2::XMLNode']]], - ['deletechildren',['DeleteChildren',['../classtinyxml2_1_1_x_m_l_node.html#a0360085cc54df5bff85d5c5da13afdce',1,'tinyxml2::XMLNode']]], - ['deletenode',['DeleteNode',['../classtinyxml2_1_1_x_m_l_document.html#ac1d6e2c7fcc1a660624ac4f68e96380d',1,'tinyxml2::XMLDocument']]], - ['doubleattribute',['DoubleAttribute',['../classtinyxml2_1_1_x_m_l_element.html#a10a90c505aea716bf073eea1c97f33b5',1,'tinyxml2::XMLElement']]], - ['doubletext',['DoubleText',['../classtinyxml2_1_1_x_m_l_element.html#a81b1ff0cf2f2cd09be8badc08b39a2b7',1,'tinyxml2::XMLElement']]], - ['doublevalue',['DoubleValue',['../classtinyxml2_1_1_x_m_l_attribute.html#a4aa73513f54ff0087d3e804f0f54e30f',1,'tinyxml2::XMLAttribute']]] -]; diff --git a/docs/search/all_4.html b/docs/search/all_4.html deleted file mode 100644 index 8e1f4b9..0000000 --- a/docs/search/all_4.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - -
-
Loading...
-
- -
Searching...
-
No Matches
- -
- - diff --git a/docs/search/all_4.js b/docs/search/all_4.js deleted file mode 100644 index eb6c1f6..0000000 --- a/docs/search/all_4.js +++ /dev/null @@ -1,5 +0,0 @@ -var searchData= -[ - ['error',['Error',['../classtinyxml2_1_1_x_m_l_document.html#a34e6318e182e40e3cc4f4ba5d59ed9ed',1,'tinyxml2::XMLDocument']]], - ['errorid',['ErrorID',['../classtinyxml2_1_1_x_m_l_document.html#afa3ed33b3107f920ec2b301f805ac17d',1,'tinyxml2::XMLDocument']]] -]; diff --git a/docs/search/all_5.html b/docs/search/all_5.html deleted file mode 100644 index 89a879e..0000000 --- a/docs/search/all_5.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - -
-
Loading...
-
- -
Searching...
-
No Matches
- -
- - diff --git a/docs/search/all_5.js b/docs/search/all_5.js deleted file mode 100644 index 182bbfe..0000000 --- a/docs/search/all_5.js +++ /dev/null @@ -1,10 +0,0 @@ -var searchData= -[ - ['findattribute',['FindAttribute',['../classtinyxml2_1_1_x_m_l_element.html#a2dcd4d5d6fb63396cd2f257c318b42c4',1,'tinyxml2::XMLElement']]], - ['firstattribute',['FirstAttribute',['../classtinyxml2_1_1_x_m_l_element.html#a3e191704c8d499906ec11fe2f60c6686',1,'tinyxml2::XMLElement']]], - ['firstchild',['FirstChild',['../classtinyxml2_1_1_x_m_l_node.html#ae7dc225e1018cdd685f7563593a1fe08',1,'tinyxml2::XMLNode::FirstChild()'],['../classtinyxml2_1_1_x_m_l_handle.html#a536447dc7f54c0cd11e031dad94795ae',1,'tinyxml2::XMLHandle::FirstChild()']]], - ['firstchildelement',['FirstChildElement',['../classtinyxml2_1_1_x_m_l_node.html#a1795a35852dc8aae877cc8ded986e59b',1,'tinyxml2::XMLNode::FirstChildElement()'],['../classtinyxml2_1_1_x_m_l_handle.html#a74b04dd0f15e0bf01860e282b840b6a3',1,'tinyxml2::XMLHandle::FirstChildElement()']]], - ['floatattribute',['FloatAttribute',['../classtinyxml2_1_1_x_m_l_element.html#ab1f4be2332e27dc640e9b6abd01d64dd',1,'tinyxml2::XMLElement']]], - ['floattext',['FloatText',['../classtinyxml2_1_1_x_m_l_element.html#a45444eb21f99ca46101545992dc2e927',1,'tinyxml2::XMLElement']]], - ['floatvalue',['FloatValue',['../classtinyxml2_1_1_x_m_l_attribute.html#a27797b45d21c981257720db94f5f8801',1,'tinyxml2::XMLAttribute']]] -]; diff --git a/docs/search/all_6.html b/docs/search/all_6.html deleted file mode 100644 index 6afac06..0000000 --- a/docs/search/all_6.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - -
-
Loading...
-
- -
Searching...
-
No Matches
- -
- - diff --git a/docs/search/all_6.js b/docs/search/all_6.js deleted file mode 100644 index 0d5723e..0000000 --- a/docs/search/all_6.js +++ /dev/null @@ -1,11 +0,0 @@ -var searchData= -[ - ['get_20information_20out_20of_20xml',['Get information out of XML',['../_example-3.html',1,'']]], - ['getdocument',['GetDocument',['../classtinyxml2_1_1_x_m_l_node.html#a2de84cfa4ec3fe249bad745069d145f1',1,'tinyxml2::XMLNode::GetDocument() const'],['../classtinyxml2_1_1_x_m_l_node.html#af343d1ef0b45c0020e62d784d7e67a68',1,'tinyxml2::XMLNode::GetDocument()']]], - ['geterrorlinenum',['GetErrorLineNum',['../classtinyxml2_1_1_x_m_l_document.html#ad82d07e43e096e834dbdfd06312398c1',1,'tinyxml2::XMLDocument']]], - ['geterrorstr1',['GetErrorStr1',['../classtinyxml2_1_1_x_m_l_document.html#a229494e30e5473237f3fa547eee4c43f',1,'tinyxml2::XMLDocument']]], - ['geterrorstr2',['GetErrorStr2',['../classtinyxml2_1_1_x_m_l_document.html#a2d952f49c761bffd2903250680a8716b',1,'tinyxml2::XMLDocument']]], - ['getlinenum',['GetLineNum',['../classtinyxml2_1_1_x_m_l_node.html#a9b5fc636646fda761d342c72e91cb286',1,'tinyxml2::XMLNode::GetLineNum()'],['../classtinyxml2_1_1_x_m_l_attribute.html#a02d5ea924586e35f9c13857d1671b765',1,'tinyxml2::XMLAttribute::GetLineNum()']]], - ['gettext',['GetText',['../classtinyxml2_1_1_x_m_l_element.html#a6d5c8d115561ade4e4456b71d91b6f51',1,'tinyxml2::XMLElement']]], - ['getuserdata',['GetUserData',['../classtinyxml2_1_1_x_m_l_node.html#a7f0687574afa03bc479dc44f29db0afe',1,'tinyxml2::XMLNode']]] -]; diff --git a/docs/search/all_7.html b/docs/search/all_7.html deleted file mode 100644 index de19107..0000000 --- a/docs/search/all_7.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - -
-
Loading...
-
- -
Searching...
-
No Matches
- -
- - diff --git a/docs/search/all_7.js b/docs/search/all_7.js deleted file mode 100644 index b7d6d1f..0000000 --- a/docs/search/all_7.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['hasbom',['HasBOM',['../classtinyxml2_1_1_x_m_l_document.html#a33fc5d159db873a179fa26338adb05bd',1,'tinyxml2::XMLDocument']]] -]; diff --git a/docs/search/all_8.html b/docs/search/all_8.html deleted file mode 100644 index 11e27cd..0000000 --- a/docs/search/all_8.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - -
-
Loading...
-
- -
Searching...
-
No Matches
- -
- - diff --git a/docs/search/all_8.js b/docs/search/all_8.js deleted file mode 100644 index b1519d5..0000000 --- a/docs/search/all_8.js +++ /dev/null @@ -1,10 +0,0 @@ -var searchData= -[ - ['insertafterchild',['InsertAfterChild',['../classtinyxml2_1_1_x_m_l_node.html#a85adb8f0b7477eec30f9a41d420b09c2',1,'tinyxml2::XMLNode']]], - ['insertendchild',['InsertEndChild',['../classtinyxml2_1_1_x_m_l_node.html#aeb249ed60f4e8bfad3709151c3ee4286',1,'tinyxml2::XMLNode']]], - ['insertfirstchild',['InsertFirstChild',['../classtinyxml2_1_1_x_m_l_node.html#a8ff7dc071f3a1a6ae2ac25a37492865d',1,'tinyxml2::XMLNode']]], - ['int64attribute',['Int64Attribute',['../classtinyxml2_1_1_x_m_l_element.html#a66d96972adecd816194191f13cc4a0a0',1,'tinyxml2::XMLElement']]], - ['int64text',['Int64Text',['../classtinyxml2_1_1_x_m_l_element.html#aab6151f7e3b4c2c0a8234e262d7b6b8a',1,'tinyxml2::XMLElement']]], - ['intattribute',['IntAttribute',['../classtinyxml2_1_1_x_m_l_element.html#a95a89b13bb14a2d4655e2b5b406c00d4',1,'tinyxml2::XMLElement']]], - ['intvalue',['IntValue',['../classtinyxml2_1_1_x_m_l_attribute.html#adfa2433f0fdafd5c3880936de9affa80',1,'tinyxml2::XMLAttribute']]] -]; diff --git a/docs/search/all_9.html b/docs/search/all_9.html deleted file mode 100644 index f8abbbe..0000000 --- a/docs/search/all_9.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - -
-
Loading...
-
- -
Searching...
-
No Matches
- -
- - diff --git a/docs/search/all_9.js b/docs/search/all_9.js deleted file mode 100644 index 1b64fe0..0000000 --- a/docs/search/all_9.js +++ /dev/null @@ -1,7 +0,0 @@ -var searchData= -[ - ['load_20an_20xml_20file',['Load an XML File',['../_example-1.html',1,'']]], - ['lastchild',['LastChild',['../classtinyxml2_1_1_x_m_l_node.html#a9b8583a277e8e26f4cbbb5492786778e',1,'tinyxml2::XMLNode::LastChild()'],['../classtinyxml2_1_1_x_m_l_handle.html#a9d09f04435f0f2f7d0816b0198d0517b',1,'tinyxml2::XMLHandle::LastChild()']]], - ['lastchildelement',['LastChildElement',['../classtinyxml2_1_1_x_m_l_node.html#a173e9d1341bc56992e2d320a35936551',1,'tinyxml2::XMLNode::LastChildElement()'],['../classtinyxml2_1_1_x_m_l_handle.html#a42cccd0ce8b1ce704f431025e9f19e0c',1,'tinyxml2::XMLHandle::LastChildElement()']]], - ['loadfile',['LoadFile',['../classtinyxml2_1_1_x_m_l_document.html#a2ebd4647a8af5fc6831b294ac26a150a',1,'tinyxml2::XMLDocument::LoadFile(const char *filename)'],['../classtinyxml2_1_1_x_m_l_document.html#a5f1d330fad44c52f3d265338dd2a6dc2',1,'tinyxml2::XMLDocument::LoadFile(FILE *)']]] -]; diff --git a/docs/search/all_a.html b/docs/search/all_a.html deleted file mode 100644 index 9601fce..0000000 --- a/docs/search/all_a.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - -
-
Loading...
-
- -
Searching...
-
No Matches
- -
- - diff --git a/docs/search/all_a.js b/docs/search/all_a.js deleted file mode 100644 index 953470a..0000000 --- a/docs/search/all_a.js +++ /dev/null @@ -1,13 +0,0 @@ -var searchData= -[ - ['name',['Name',['../classtinyxml2_1_1_x_m_l_attribute.html#ab886c486ec19f02ed826f8dc129e5ad8',1,'tinyxml2::XMLAttribute::Name()'],['../classtinyxml2_1_1_x_m_l_element.html#a63e057fb5baee1dd29f323cb85907b35',1,'tinyxml2::XMLElement::Name()']]], - ['newcomment',['NewComment',['../classtinyxml2_1_1_x_m_l_document.html#ade4874bcb439954972ef2b3723ff3259',1,'tinyxml2::XMLDocument']]], - ['newdeclaration',['NewDeclaration',['../classtinyxml2_1_1_x_m_l_document.html#aee2eb3435923f5494dcc70ac225b60a2',1,'tinyxml2::XMLDocument']]], - ['newelement',['NewElement',['../classtinyxml2_1_1_x_m_l_document.html#a8aa7817d4a1001364b06373763ab99d6',1,'tinyxml2::XMLDocument']]], - ['newtext',['NewText',['../classtinyxml2_1_1_x_m_l_document.html#ab7e8b29ae4099092a8bb947da6361296',1,'tinyxml2::XMLDocument']]], - ['newunknown',['NewUnknown',['../classtinyxml2_1_1_x_m_l_document.html#a5385c937734ff6db9226ab707d2c7147',1,'tinyxml2::XMLDocument']]], - ['next',['Next',['../classtinyxml2_1_1_x_m_l_attribute.html#aee53571b21e7ce5421eb929523a8bbe6',1,'tinyxml2::XMLAttribute']]], - ['nextsibling',['NextSibling',['../classtinyxml2_1_1_x_m_l_node.html#a79db9ef0fe014d27790f2218b87bcbb5',1,'tinyxml2::XMLNode::NextSibling()'],['../classtinyxml2_1_1_x_m_l_handle.html#aad2eccc7c7c7b18145877c978c3850b5',1,'tinyxml2::XMLHandle::NextSibling()']]], - ['nextsiblingelement',['NextSiblingElement',['../classtinyxml2_1_1_x_m_l_node.html#a1264c86233328f0cd36297552d982f80',1,'tinyxml2::XMLNode::NextSiblingElement()'],['../classtinyxml2_1_1_x_m_l_handle.html#ae41d88ee061f3c49a081630ff753b2c5',1,'tinyxml2::XMLHandle::NextSiblingElement()']]], - ['nochildren',['NoChildren',['../classtinyxml2_1_1_x_m_l_node.html#ac3ab489e6e202a3cd1762d3b332e89d4',1,'tinyxml2::XMLNode']]] -]; diff --git a/docs/search/all_b.html b/docs/search/all_b.html deleted file mode 100644 index 0814e4e..0000000 --- a/docs/search/all_b.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - -
-
Loading...
-
- -
Searching...
-
No Matches
- -
- - diff --git a/docs/search/all_b.js b/docs/search/all_b.js deleted file mode 100644 index 9772c30..0000000 --- a/docs/search/all_b.js +++ /dev/null @@ -1,5 +0,0 @@ -var searchData= -[ - ['openelement',['OpenElement',['../classtinyxml2_1_1_x_m_l_printer.html#a20fb06c83bd13e5140d7dd13af06c010',1,'tinyxml2::XMLPrinter']]], - ['operator_3d',['operator=',['../classtinyxml2_1_1_x_m_l_handle.html#a75b908322bb4b83be3281b6845252b20',1,'tinyxml2::XMLHandle']]] -]; diff --git a/docs/search/all_c.html b/docs/search/all_c.html deleted file mode 100644 index da08c38..0000000 --- a/docs/search/all_c.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - -
-
Loading...
-
- -
Searching...
-
No Matches
- -
- - diff --git a/docs/search/all_c.js b/docs/search/all_c.js deleted file mode 100644 index 7d117f6..0000000 --- a/docs/search/all_c.js +++ /dev/null @@ -1,15 +0,0 @@ -var searchData= -[ - ['parse_20an_20xml_20from_20char_20buffer',['Parse an XML from char buffer',['../_example-2.html',1,'']]], - ['parent',['Parent',['../classtinyxml2_1_1_x_m_l_node.html#ae0f62bc186c56c2e0483ebd52dbfbe34',1,'tinyxml2::XMLNode']]], - ['parse',['Parse',['../classtinyxml2_1_1_x_m_l_document.html#a1819bd34f540a7304c105a6232d25a1f',1,'tinyxml2::XMLDocument']]], - ['previoussibling',['PreviousSibling',['../classtinyxml2_1_1_x_m_l_node.html#aac667c513d445f8b783e1e15ef9d3551',1,'tinyxml2::XMLNode::PreviousSibling()'],['../classtinyxml2_1_1_x_m_l_handle.html#a428374e756f4db4cbc287fec64eae02c',1,'tinyxml2::XMLHandle::PreviousSibling()']]], - ['previoussiblingelement',['PreviousSiblingElement',['../classtinyxml2_1_1_x_m_l_node.html#a872936cae46fb473eb47fec99129fc70',1,'tinyxml2::XMLNode::PreviousSiblingElement()'],['../classtinyxml2_1_1_x_m_l_handle.html#a786957e498039554ed334cdc36612a7e',1,'tinyxml2::XMLHandle::PreviousSiblingElement()']]], - ['print',['Print',['../classtinyxml2_1_1_x_m_l_document.html#a867cf5fa3e3ff6ae4847a8b7ee8ec083',1,'tinyxml2::XMLDocument']]], - ['printerror',['PrintError',['../classtinyxml2_1_1_x_m_l_document.html#a1d033945b42e125d933d6231e4571552',1,'tinyxml2::XMLDocument']]], - ['printspace',['PrintSpace',['../classtinyxml2_1_1_x_m_l_printer.html#a01148e2ebe6776e38c5a3e41bc5feb74',1,'tinyxml2::XMLPrinter']]], - ['pushattribute',['PushAttribute',['../classtinyxml2_1_1_x_m_l_printer.html#a9a4e2c9348b42e147629d5a99f4af3f0',1,'tinyxml2::XMLPrinter']]], - ['pushcomment',['PushComment',['../classtinyxml2_1_1_x_m_l_printer.html#afc8416814219591c2fd5656e0c233140',1,'tinyxml2::XMLPrinter']]], - ['pushheader',['PushHeader',['../classtinyxml2_1_1_x_m_l_printer.html#a178c608ce8476043d5d6513819cde903',1,'tinyxml2::XMLPrinter']]], - ['pushtext',['PushText',['../classtinyxml2_1_1_x_m_l_printer.html#a1cc16a9362df4332012cb13cff6441b3',1,'tinyxml2::XMLPrinter::PushText(const char *text, bool cdata=false)'],['../classtinyxml2_1_1_x_m_l_printer.html#a3e0d4d78de25d4cf081009e1431cea7e',1,'tinyxml2::XMLPrinter::PushText(int value)'],['../classtinyxml2_1_1_x_m_l_printer.html#a661fb50e7e0a4918d2d259cb0fae647e',1,'tinyxml2::XMLPrinter::PushText(unsigned value)'],['../classtinyxml2_1_1_x_m_l_printer.html#a96b0a0bfe105154a0a6c37d725258f0a',1,'tinyxml2::XMLPrinter::PushText(int64_t value)'],['../classtinyxml2_1_1_x_m_l_printer.html#a4390e5fa1ed05189a8686647345ab29f',1,'tinyxml2::XMLPrinter::PushText(bool value)'],['../classtinyxml2_1_1_x_m_l_printer.html#a1dbb1390e829d0673af66b9cd1928bd7',1,'tinyxml2::XMLPrinter::PushText(float value)'],['../classtinyxml2_1_1_x_m_l_printer.html#aa715302dfc09473c77c853cbd5431965',1,'tinyxml2::XMLPrinter::PushText(double value)']]] -]; diff --git a/docs/search/all_d.html b/docs/search/all_d.html deleted file mode 100644 index 9986c9c..0000000 --- a/docs/search/all_d.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - -
-
Loading...
-
- -
Searching...
-
No Matches
- -
- - diff --git a/docs/search/all_d.js b/docs/search/all_d.js deleted file mode 100644 index b78f218..0000000 --- a/docs/search/all_d.js +++ /dev/null @@ -1,22 +0,0 @@ -var searchData= -[ - ['queryattribute',['QueryAttribute',['../classtinyxml2_1_1_x_m_l_element.html#a042fc30504347b84a56cf863ad528a4f',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']]], - ['querydoubleattribute',['QueryDoubleAttribute',['../classtinyxml2_1_1_x_m_l_element.html#a5f0964e2dbd8e2ee7fce9beab689443c',1,'tinyxml2::XMLElement']]], - ['querydoubletext',['QueryDoubleText',['../classtinyxml2_1_1_x_m_l_element.html#a684679c99bb036a25652744cec6c4d96',1,'tinyxml2::XMLElement']]], - ['querydoublevalue',['QueryDoubleValue',['../classtinyxml2_1_1_x_m_l_attribute.html#a2aa6e55e8ea03af0609cf6690bff79b9',1,'tinyxml2::XMLAttribute']]], - ['queryfloatattribute',['QueryFloatAttribute',['../classtinyxml2_1_1_x_m_l_element.html#acd5eeddf6002ef90806af794b9d9a5a5',1,'tinyxml2::XMLElement']]], - ['queryfloattext',['QueryFloatText',['../classtinyxml2_1_1_x_m_l_element.html#afa332afedd93210daa6d44b88eb11e29',1,'tinyxml2::XMLElement']]], - ['queryfloatvalue',['QueryFloatValue',['../classtinyxml2_1_1_x_m_l_attribute.html#a049dea6449a6259b6cfed44a9427b607',1,'tinyxml2::XMLAttribute']]], - ['queryint64attribute',['QueryInt64Attribute',['../classtinyxml2_1_1_x_m_l_element.html#a7c0955d80b6f8d196744eacb0f6e90a8',1,'tinyxml2::XMLElement']]], - ['queryint64text',['QueryInt64Text',['../classtinyxml2_1_1_x_m_l_element.html#a120c538c8eead169e635dbc70fb226d8',1,'tinyxml2::XMLElement']]], - ['queryint64value',['QueryInt64Value',['../classtinyxml2_1_1_x_m_l_attribute.html#a4e25344d6e4159026be34dbddf1dcac2',1,'tinyxml2::XMLAttribute']]], - ['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']]], - ['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']]] -]; diff --git a/docs/search/all_e.html b/docs/search/all_e.html deleted file mode 100644 index 9fa42bb..0000000 --- a/docs/search/all_e.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - -
-
Loading...
-
- -
Searching...
-
No Matches
- -
- - diff --git a/docs/search/all_e.js b/docs/search/all_e.js deleted file mode 100644 index a327229..0000000 --- a/docs/search/all_e.js +++ /dev/null @@ -1,5 +0,0 @@ -var searchData= -[ - ['read_20attributes_20and_20text_20information_2e',['Read attributes and text information.',['../_example-4.html',1,'']]], - ['rootelement',['RootElement',['../classtinyxml2_1_1_x_m_l_document.html#ad2b70320d3c2a071c2f36928edff3e1c',1,'tinyxml2::XMLDocument']]] -]; diff --git a/docs/search/all_f.html b/docs/search/all_f.html deleted file mode 100644 index 6ecfc0e..0000000 --- a/docs/search/all_f.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - -
-
Loading...
-
- -
Searching...
-
No Matches
- -
- - diff --git a/docs/search/all_f.js b/docs/search/all_f.js deleted file mode 100644 index be8e75d..0000000 --- a/docs/search/all_f.js +++ /dev/null @@ -1,13 +0,0 @@ -var searchData= -[ - ['savefile',['SaveFile',['../classtinyxml2_1_1_x_m_l_document.html#a73ac416b4a2aa0952e841220eb3da18f',1,'tinyxml2::XMLDocument::SaveFile(const char *filename, bool compact=false)'],['../classtinyxml2_1_1_x_m_l_document.html#a8b95779479a0035acc67b3a61dfe1b74',1,'tinyxml2::XMLDocument::SaveFile(FILE *fp, bool compact=false)']]], - ['setattribute',['SetAttribute',['../classtinyxml2_1_1_x_m_l_attribute.html#a406d2c4a13c7af99a65edb59dd9f7581',1,'tinyxml2::XMLAttribute::SetAttribute(const char *value)'],['../classtinyxml2_1_1_x_m_l_attribute.html#ad86d7d7058d76761c3a80662566a57e5',1,'tinyxml2::XMLAttribute::SetAttribute(int value)'],['../classtinyxml2_1_1_x_m_l_attribute.html#ae70468c0f6df2748ba3529c716999fae',1,'tinyxml2::XMLAttribute::SetAttribute(unsigned value)'],['../classtinyxml2_1_1_x_m_l_attribute.html#a7c1240f479722b9aa29b6c030aa116c2',1,'tinyxml2::XMLAttribute::SetAttribute(int64_t value)'],['../classtinyxml2_1_1_x_m_l_attribute.html#ab3516def4fe058fe328f2b89fc2d77da',1,'tinyxml2::XMLAttribute::SetAttribute(bool value)'],['../classtinyxml2_1_1_x_m_l_attribute.html#a9a65ab3147abe8ccbbd373ce8791e818',1,'tinyxml2::XMLAttribute::SetAttribute(double value)'],['../classtinyxml2_1_1_x_m_l_attribute.html#ae95e843313aaf5d56c32530b6456df02',1,'tinyxml2::XMLAttribute::SetAttribute(float value)'],['../classtinyxml2_1_1_x_m_l_element.html#a11943abf2d0831548c3790dd5d9f119c',1,'tinyxml2::XMLElement::SetAttribute(const char *name, const char *value)'],['../classtinyxml2_1_1_x_m_l_element.html#aae6568c64c7f1cc88be8461ba41a79cf',1,'tinyxml2::XMLElement::SetAttribute(const char *name, int value)'],['../classtinyxml2_1_1_x_m_l_element.html#ae143997e90064ba82326b29a9930ea8f',1,'tinyxml2::XMLElement::SetAttribute(const char *name, unsigned value)'],['../classtinyxml2_1_1_x_m_l_element.html#aaeefdf9171fec91b13a776b42299b0dd',1,'tinyxml2::XMLElement::SetAttribute(const char *name, int64_t value)'],['../classtinyxml2_1_1_x_m_l_element.html#aa848b696e6a75e4e545c6da9893b11e1',1,'tinyxml2::XMLElement::SetAttribute(const char *name, bool value)'],['../classtinyxml2_1_1_x_m_l_element.html#a233397ee81e70eb5d4b814c5f8698533',1,'tinyxml2::XMLElement::SetAttribute(const char *name, double value)'],['../classtinyxml2_1_1_x_m_l_element.html#a554b70d882e65b28fc084b23df9b9759',1,'tinyxml2::XMLElement::SetAttribute(const char *name, float value)']]], - ['setbom',['SetBOM',['../classtinyxml2_1_1_x_m_l_document.html#a14419b698f7c4b140df4e80f3f0c93b0',1,'tinyxml2::XMLDocument']]], - ['setcdata',['SetCData',['../classtinyxml2_1_1_x_m_l_text.html#ad080357d76ab7cc59d7651249949329d',1,'tinyxml2::XMLText']]], - ['setname',['SetName',['../classtinyxml2_1_1_x_m_l_element.html#a97712009a530d8cb8a63bf705f02b4f1',1,'tinyxml2::XMLElement']]], - ['settext',['SetText',['../classtinyxml2_1_1_x_m_l_element.html#a1f9c2cd61b72af5ae708d37b7ad283ce',1,'tinyxml2::XMLElement::SetText(const char *inText)'],['../classtinyxml2_1_1_x_m_l_element.html#aeae8917b5ea6060b3c08d4e3d8d632d7',1,'tinyxml2::XMLElement::SetText(int value)'],['../classtinyxml2_1_1_x_m_l_element.html#a7bbfcc11d516598bc924a8fba4d08597',1,'tinyxml2::XMLElement::SetText(unsigned value)'],['../classtinyxml2_1_1_x_m_l_element.html#a7b62cd33acdfeff7ea2b1b330d4368e4',1,'tinyxml2::XMLElement::SetText(int64_t value)'],['../classtinyxml2_1_1_x_m_l_element.html#ae4b543d6770de76fb6ab68e541c192a4',1,'tinyxml2::XMLElement::SetText(bool value)'],['../classtinyxml2_1_1_x_m_l_element.html#a67bd77ac9aaeff58ff20b4275a65ba4e',1,'tinyxml2::XMLElement::SetText(double value)'],['../classtinyxml2_1_1_x_m_l_element.html#a51d560da5ae3ad6b75e0ab9ffb2ae42a',1,'tinyxml2::XMLElement::SetText(float value)']]], - ['setuserdata',['SetUserData',['../classtinyxml2_1_1_x_m_l_node.html#a002978fc889cc011d143185f2377eca2',1,'tinyxml2::XMLNode']]], - ['setvalue',['SetValue',['../classtinyxml2_1_1_x_m_l_node.html#a09dd68cf9eae137579f6e50f36487513',1,'tinyxml2::XMLNode']]], - ['shallowclone',['ShallowClone',['../classtinyxml2_1_1_x_m_l_node.html#a8402cbd3129d20e9e6024bbcc0531283',1,'tinyxml2::XMLNode::ShallowClone()'],['../classtinyxml2_1_1_x_m_l_text.html#af3a81ed4dd49d5151c477b3f265a3011',1,'tinyxml2::XMLText::ShallowClone()'],['../classtinyxml2_1_1_x_m_l_comment.html#a08991cc63fadf7e95078ac4f9ea1b073',1,'tinyxml2::XMLComment::ShallowClone()'],['../classtinyxml2_1_1_x_m_l_declaration.html#a118d47518dd9e522644e42efa259aed7',1,'tinyxml2::XMLDeclaration::ShallowClone()'],['../classtinyxml2_1_1_x_m_l_unknown.html#a0125f41c89763dea06619b5fd5246b4c',1,'tinyxml2::XMLUnknown::ShallowClone()'],['../classtinyxml2_1_1_x_m_l_element.html#ac035742d68b0c50c3f676374e59fe750',1,'tinyxml2::XMLElement::ShallowClone()'],['../classtinyxml2_1_1_x_m_l_document.html#aa37cc1709d7e1e988bc17dcfb24a69b8',1,'tinyxml2::XMLDocument::ShallowClone()']]], - ['shallowequal',['ShallowEqual',['../classtinyxml2_1_1_x_m_l_node.html#a7ce18b751c3ea09eac292dca264f9226',1,'tinyxml2::XMLNode::ShallowEqual()'],['../classtinyxml2_1_1_x_m_l_text.html#ae0fff8a24e2de7eb073fd192e9db0331',1,'tinyxml2::XMLText::ShallowEqual()'],['../classtinyxml2_1_1_x_m_l_comment.html#a6f7d227b25afa8cc3c763b7cc8833739',1,'tinyxml2::XMLComment::ShallowEqual()'],['../classtinyxml2_1_1_x_m_l_declaration.html#aa26b70011694e9b9e9480b929e9b78d6',1,'tinyxml2::XMLDeclaration::ShallowEqual()'],['../classtinyxml2_1_1_x_m_l_unknown.html#a0715ab2c05d7f74845c188122213b116',1,'tinyxml2::XMLUnknown::ShallowEqual()'],['../classtinyxml2_1_1_x_m_l_element.html#ad9ea913a460b48979bd83cf9871c99f6',1,'tinyxml2::XMLElement::ShallowEqual()'],['../classtinyxml2_1_1_x_m_l_document.html#a6fe5ef18699091844fcf64b56ffa5bf9',1,'tinyxml2::XMLDocument::ShallowEqual()']]] -]; diff --git a/docs/search/classes_0.html b/docs/search/classes_0.html deleted file mode 100644 index 1c3e406..0000000 --- a/docs/search/classes_0.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - -
-
Loading...
-
- -
Searching...
-
No Matches
- -
- - diff --git a/docs/search/classes_0.js b/docs/search/classes_0.js deleted file mode 100644 index e1d0d44..0000000 --- a/docs/search/classes_0.js +++ /dev/null @@ -1,15 +0,0 @@ -var searchData= -[ - ['xmlattribute',['XMLAttribute',['../classtinyxml2_1_1_x_m_l_attribute.html',1,'tinyxml2']]], - ['xmlcomment',['XMLComment',['../classtinyxml2_1_1_x_m_l_comment.html',1,'tinyxml2']]], - ['xmlconsthandle',['XMLConstHandle',['../classtinyxml2_1_1_x_m_l_const_handle.html',1,'tinyxml2']]], - ['xmldeclaration',['XMLDeclaration',['../classtinyxml2_1_1_x_m_l_declaration.html',1,'tinyxml2']]], - ['xmldocument',['XMLDocument',['../classtinyxml2_1_1_x_m_l_document.html',1,'tinyxml2']]], - ['xmlelement',['XMLElement',['../classtinyxml2_1_1_x_m_l_element.html',1,'tinyxml2']]], - ['xmlhandle',['XMLHandle',['../classtinyxml2_1_1_x_m_l_handle.html',1,'tinyxml2']]], - ['xmlnode',['XMLNode',['../classtinyxml2_1_1_x_m_l_node.html',1,'tinyxml2']]], - ['xmlprinter',['XMLPrinter',['../classtinyxml2_1_1_x_m_l_printer.html',1,'tinyxml2']]], - ['xmltext',['XMLText',['../classtinyxml2_1_1_x_m_l_text.html',1,'tinyxml2']]], - ['xmlunknown',['XMLUnknown',['../classtinyxml2_1_1_x_m_l_unknown.html',1,'tinyxml2']]], - ['xmlvisitor',['XMLVisitor',['../classtinyxml2_1_1_x_m_l_visitor.html',1,'tinyxml2']]] -]; diff --git a/docs/search/close.png b/docs/search/close.png deleted file mode 100644 index 9342d3dfeea7b7c4ee610987e717804b5a42ceb9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 273 zcmV+s0q*{ZP)4(RlMby96)VwnbG{ zbe&}^BDn7x>$<{ck4zAK-=nT;=hHG)kmplIF${xqm8db3oX6wT3bvp`TE@m0cg;b) zBuSL}5?N7O(iZLdAlz@)b)Rd~DnSsSX&P5qC`XwuFwcAYLC+d2>+1(8on;wpt8QIC X2MT$R4iQDd00000NkvXXu0mjfia~GN diff --git a/docs/search/functions_0.html b/docs/search/functions_0.html deleted file mode 100644 index 4e6d87d..0000000 --- a/docs/search/functions_0.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - -
-
Loading...
-
- -
Searching...
-
No Matches
- -
- - diff --git a/docs/search/functions_0.js b/docs/search/functions_0.js deleted file mode 100644 index 28cfce2..0000000 --- a/docs/search/functions_0.js +++ /dev/null @@ -1,5 +0,0 @@ -var searchData= -[ - ['accept',['Accept',['../classtinyxml2_1_1_x_m_l_node.html#a81e66df0a44c67a7af17f3b77a152785',1,'tinyxml2::XMLNode::Accept()'],['../classtinyxml2_1_1_x_m_l_text.html#a1b2c1448f1a21299d0a7913f18b55206',1,'tinyxml2::XMLText::Accept()'],['../classtinyxml2_1_1_x_m_l_comment.html#a4a33dc32fae0285b03f9cfcb3e43e122',1,'tinyxml2::XMLComment::Accept()'],['../classtinyxml2_1_1_x_m_l_declaration.html#a5f376019fb34752eb248548f42f32045',1,'tinyxml2::XMLDeclaration::Accept()'],['../classtinyxml2_1_1_x_m_l_unknown.html#a70983aa1b1cff3d3aa6d4d0a80e5ee48',1,'tinyxml2::XMLUnknown::Accept()'],['../classtinyxml2_1_1_x_m_l_element.html#a3ea8a40e788fb9ad876c28a32932c6d5',1,'tinyxml2::XMLElement::Accept()'],['../classtinyxml2_1_1_x_m_l_document.html#a9efa54f7ecb37c17ab1fa2b3078ccca1',1,'tinyxml2::XMLDocument::Accept()']]], - ['attribute',['Attribute',['../classtinyxml2_1_1_x_m_l_element.html#a70e49ed60b11212ae35f7e354cfe1de9',1,'tinyxml2::XMLElement']]] -]; diff --git a/docs/search/functions_1.html b/docs/search/functions_1.html deleted file mode 100644 index b343e2d..0000000 --- a/docs/search/functions_1.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - -
-
Loading...
-
- -
Searching...
-
No Matches
- -
- - diff --git a/docs/search/functions_1.js b/docs/search/functions_1.js deleted file mode 100644 index 2f5497b..0000000 --- a/docs/search/functions_1.js +++ /dev/null @@ -1,6 +0,0 @@ -var searchData= -[ - ['boolattribute',['BoolAttribute',['../classtinyxml2_1_1_x_m_l_element.html#a53eda26131e1ad1031ef8ec8adb51bd8',1,'tinyxml2::XMLElement']]], - ['booltext',['BoolText',['../classtinyxml2_1_1_x_m_l_element.html#a68569f59f6382bcea7f5013ec59736d2',1,'tinyxml2::XMLElement']]], - ['boolvalue',['BoolValue',['../classtinyxml2_1_1_x_m_l_attribute.html#a98ce5207344ad33a265b0422addae1ff',1,'tinyxml2::XMLAttribute']]] -]; diff --git a/docs/search/functions_10.html b/docs/search/functions_10.html deleted file mode 100644 index 72bc1ea..0000000 --- a/docs/search/functions_10.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - -
-
Loading...
-
- -
Searching...
-
No Matches
- -
- - diff --git a/docs/search/functions_10.js b/docs/search/functions_10.js deleted file mode 100644 index b5500db..0000000 --- a/docs/search/functions_10.js +++ /dev/null @@ -1,10 +0,0 @@ -var searchData= -[ - ['tocomment',['ToComment',['../classtinyxml2_1_1_x_m_l_node.html#aff47671055aa99840a1c1ebd661e63e3',1,'tinyxml2::XMLNode::ToComment()'],['../classtinyxml2_1_1_x_m_l_comment.html#a8093e1dc8a34fa446d9dc3fde0e6c0ee',1,'tinyxml2::XMLComment::ToComment()']]], - ['todeclaration',['ToDeclaration',['../classtinyxml2_1_1_x_m_l_node.html#a174fd4c22c010b58138c1b84a0dfbd51',1,'tinyxml2::XMLNode::ToDeclaration()'],['../classtinyxml2_1_1_x_m_l_declaration.html#a159d8ac45865215e88059ea1e5b52fc5',1,'tinyxml2::XMLDeclaration::ToDeclaration()'],['../classtinyxml2_1_1_x_m_l_handle.html#a108858be7ee3eb53f73b5194c1aa8ff0',1,'tinyxml2::XMLHandle::ToDeclaration()']]], - ['todocument',['ToDocument',['../classtinyxml2_1_1_x_m_l_node.html#a836e2966ed736fc3c94f70e12a2a3357',1,'tinyxml2::XMLNode::ToDocument()'],['../classtinyxml2_1_1_x_m_l_document.html#a3e185f880882bd978367bb55937735ec',1,'tinyxml2::XMLDocument::ToDocument()']]], - ['toelement',['ToElement',['../classtinyxml2_1_1_x_m_l_node.html#aab516e699567f75cc9ab2ef2eee501e8',1,'tinyxml2::XMLNode::ToElement()'],['../classtinyxml2_1_1_x_m_l_element.html#ad9ff5c2dbc15df36cf664ce1b0ea0a5d',1,'tinyxml2::XMLElement::ToElement()'],['../classtinyxml2_1_1_x_m_l_handle.html#a5e73ed8f3f6f9619d5a8bb1862c47d99',1,'tinyxml2::XMLHandle::ToElement()']]], - ['tonode',['ToNode',['../classtinyxml2_1_1_x_m_l_handle.html#a03ea6ec970a021b71bf1219a0f6717df',1,'tinyxml2::XMLHandle']]], - ['totext',['ToText',['../classtinyxml2_1_1_x_m_l_node.html#a41c55dab9162d1eb62db2008430e376b',1,'tinyxml2::XMLNode::ToText()'],['../classtinyxml2_1_1_x_m_l_text.html#ab1213b4ddebe9b17ec7e7040e9f1caf7',1,'tinyxml2::XMLText::ToText()'],['../classtinyxml2_1_1_x_m_l_handle.html#a6ab9e8cbfb41417246e5657e3842c62a',1,'tinyxml2::XMLHandle::ToText()']]], - ['tounknown',['ToUnknown',['../classtinyxml2_1_1_x_m_l_node.html#a8675a74aa0ada6eccab0c77ef3e5b9bd',1,'tinyxml2::XMLNode::ToUnknown()'],['../classtinyxml2_1_1_x_m_l_unknown.html#af4374856421921cad578c8affae872b6',1,'tinyxml2::XMLUnknown::ToUnknown()'],['../classtinyxml2_1_1_x_m_l_handle.html#aa387368a1ad8d843a9f12df863d298de',1,'tinyxml2::XMLHandle::ToUnknown()']]] -]; diff --git a/docs/search/functions_11.html b/docs/search/functions_11.html deleted file mode 100644 index 6948a61..0000000 --- a/docs/search/functions_11.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - -
-
Loading...
-
- -
Searching...
-
No Matches
- -
- - diff --git a/docs/search/functions_11.js b/docs/search/functions_11.js deleted file mode 100644 index 7e35c72..0000000 --- a/docs/search/functions_11.js +++ /dev/null @@ -1,6 +0,0 @@ -var searchData= -[ - ['unsignedattribute',['UnsignedAttribute',['../classtinyxml2_1_1_x_m_l_element.html#afea43a1d4aa33e3703ddee5fc9adc26c',1,'tinyxml2::XMLElement']]], - ['unsignedtext',['UnsignedText',['../classtinyxml2_1_1_x_m_l_element.html#a49bad014ffcc17b0b6119d5b2c97dfb5',1,'tinyxml2::XMLElement']]], - ['unsignedvalue',['UnsignedValue',['../classtinyxml2_1_1_x_m_l_attribute.html#a0be5343b08a957c42c02c5d32c35d338',1,'tinyxml2::XMLAttribute']]] -]; diff --git a/docs/search/functions_12.html b/docs/search/functions_12.html deleted file mode 100644 index 3df8489..0000000 --- a/docs/search/functions_12.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - -
-
Loading...
-
- -
Searching...
-
No Matches
- -
- - diff --git a/docs/search/functions_12.js b/docs/search/functions_12.js deleted file mode 100644 index bc84876..0000000 --- a/docs/search/functions_12.js +++ /dev/null @@ -1,7 +0,0 @@ -var searchData= -[ - ['value',['Value',['../classtinyxml2_1_1_x_m_l_node.html#a66344989a4b436155bcda72bd6b07b82',1,'tinyxml2::XMLNode::Value()'],['../classtinyxml2_1_1_x_m_l_attribute.html#a1aab1dd0e43ecbcfa306adbcf3a3d853',1,'tinyxml2::XMLAttribute::Value()']]], - ['visit',['Visit',['../classtinyxml2_1_1_x_m_l_visitor.html#adc75bd459fc7ba8223b50f0616767f9a',1,'tinyxml2::XMLVisitor::Visit(const XMLDeclaration &)'],['../classtinyxml2_1_1_x_m_l_visitor.html#af30233565856480ea48b6fa0d6dec65b',1,'tinyxml2::XMLVisitor::Visit(const XMLText &)'],['../classtinyxml2_1_1_x_m_l_visitor.html#acc8147fb5a85f6c65721654e427752d7',1,'tinyxml2::XMLVisitor::Visit(const XMLComment &)'],['../classtinyxml2_1_1_x_m_l_visitor.html#a14e4748387c34bf53d24e8119bb1f292',1,'tinyxml2::XMLVisitor::Visit(const XMLUnknown &)'],['../classtinyxml2_1_1_x_m_l_printer.html#a275ae25544a12199ae40b6994ca6e4de',1,'tinyxml2::XMLPrinter::Visit(const XMLText &text)'],['../classtinyxml2_1_1_x_m_l_printer.html#a3f16a30be1537ac141d9bd2db824ba9e',1,'tinyxml2::XMLPrinter::Visit(const XMLComment &comment)'],['../classtinyxml2_1_1_x_m_l_printer.html#a9ceff5cd85e5db65838962174fcdcc46',1,'tinyxml2::XMLPrinter::Visit(const XMLDeclaration &declaration)'],['../classtinyxml2_1_1_x_m_l_printer.html#aa15e1da81e17dea5da6499ac5b08d9d8',1,'tinyxml2::XMLPrinter::Visit(const XMLUnknown &unknown)']]], - ['visitenter',['VisitEnter',['../classtinyxml2_1_1_x_m_l_visitor.html#acb3c22fc5f60eb9db98f533f2761f67d',1,'tinyxml2::XMLVisitor::VisitEnter(const XMLDocument &)'],['../classtinyxml2_1_1_x_m_l_visitor.html#af97980a17dd4e37448b181f5ddfa92b5',1,'tinyxml2::XMLVisitor::VisitEnter(const XMLElement &, const XMLAttribute *)'],['../classtinyxml2_1_1_x_m_l_printer.html#ae966b988a7a28c41e91c5ca17fb2054b',1,'tinyxml2::XMLPrinter::VisitEnter(const XMLDocument &)'],['../classtinyxml2_1_1_x_m_l_printer.html#a2ce2aa508c21ac91615093ddb9c282c5',1,'tinyxml2::XMLPrinter::VisitEnter(const XMLElement &element, const XMLAttribute *attribute)']]], - ['visitexit',['VisitExit',['../classtinyxml2_1_1_x_m_l_visitor.html#a170e9989cd046ba904f302d087e07086',1,'tinyxml2::XMLVisitor::VisitExit(const XMLDocument &)'],['../classtinyxml2_1_1_x_m_l_visitor.html#a772f10ddc83f881956d32628faa16eb6',1,'tinyxml2::XMLVisitor::VisitExit(const XMLElement &)'],['../classtinyxml2_1_1_x_m_l_printer.html#a15fc1f2b922f540917dcf52808737b29',1,'tinyxml2::XMLPrinter::VisitExit(const XMLDocument &)'],['../classtinyxml2_1_1_x_m_l_printer.html#ae99e0a7086543591edfb565f24689098',1,'tinyxml2::XMLPrinter::VisitExit(const XMLElement &element)']]] -]; diff --git a/docs/search/functions_13.html b/docs/search/functions_13.html deleted file mode 100644 index febf8e0..0000000 --- a/docs/search/functions_13.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - -
-
Loading...
-
- -
Searching...
-
No Matches
- -
- - diff --git a/docs/search/functions_13.js b/docs/search/functions_13.js deleted file mode 100644 index 3c26364..0000000 --- a/docs/search/functions_13.js +++ /dev/null @@ -1,6 +0,0 @@ -var searchData= -[ - ['xmldocument',['XMLDocument',['../classtinyxml2_1_1_x_m_l_document.html#a57ddf17b6e054dda10af98991b1b8f70',1,'tinyxml2::XMLDocument']]], - ['xmlhandle',['XMLHandle',['../classtinyxml2_1_1_x_m_l_handle.html#a9c240a35c18f053509b4b97ddccd9793',1,'tinyxml2::XMLHandle::XMLHandle(XMLNode *node)'],['../classtinyxml2_1_1_x_m_l_handle.html#aa2edbc1c0d3e3e8259bd98de7f1cf500',1,'tinyxml2::XMLHandle::XMLHandle(XMLNode &node)'],['../classtinyxml2_1_1_x_m_l_handle.html#afd8e01e6018c07347b8e6d80272466aa',1,'tinyxml2::XMLHandle::XMLHandle(const XMLHandle &ref)']]], - ['xmlprinter',['XMLPrinter',['../classtinyxml2_1_1_x_m_l_printer.html#aa6d3841c069085f5b8a27bc7103c04f7',1,'tinyxml2::XMLPrinter']]] -]; diff --git a/docs/search/functions_2.html b/docs/search/functions_2.html deleted file mode 100644 index ecce2f3..0000000 --- a/docs/search/functions_2.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - -
-
Loading...
-
- -
Searching...
-
No Matches
- -
- - diff --git a/docs/search/functions_2.js b/docs/search/functions_2.js deleted file mode 100644 index 62ab567..0000000 --- a/docs/search/functions_2.js +++ /dev/null @@ -1,9 +0,0 @@ -var searchData= -[ - ['cdata',['CData',['../classtinyxml2_1_1_x_m_l_text.html#ac1bb5ea4166c320882d9e0ad16fd385b',1,'tinyxml2::XMLText']]], - ['clear',['Clear',['../classtinyxml2_1_1_x_m_l_document.html#a65656b0b2cbc822708eb351504178aaf',1,'tinyxml2::XMLDocument']]], - ['clearbuffer',['ClearBuffer',['../classtinyxml2_1_1_x_m_l_printer.html#a216157765b7267bf389975b1cbf9a909',1,'tinyxml2::XMLPrinter']]], - ['closeelement',['CloseElement',['../classtinyxml2_1_1_x_m_l_printer.html#ad04d29562b46fcdb23ab320f8b664240',1,'tinyxml2::XMLPrinter']]], - ['cstr',['CStr',['../classtinyxml2_1_1_x_m_l_printer.html#a180671d73844f159f2d4aafbc11d106e',1,'tinyxml2::XMLPrinter']]], - ['cstrsize',['CStrSize',['../classtinyxml2_1_1_x_m_l_printer.html#a3256cf3523d4898b91abb18b924be04c',1,'tinyxml2::XMLPrinter']]] -]; diff --git a/docs/search/functions_3.html b/docs/search/functions_3.html deleted file mode 100644 index 15f06ab..0000000 --- a/docs/search/functions_3.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - -
-
Loading...
-
- -
Searching...
-
No Matches
- -
- - diff --git a/docs/search/functions_3.js b/docs/search/functions_3.js deleted file mode 100644 index c24f73b..0000000 --- a/docs/search/functions_3.js +++ /dev/null @@ -1,12 +0,0 @@ -var searchData= -[ - ['deepclone',['DeepClone',['../classtinyxml2_1_1_x_m_l_node.html#a62c71b6bf8734b5424063b8d9a61c266',1,'tinyxml2::XMLNode']]], - ['deepcopy',['DeepCopy',['../classtinyxml2_1_1_x_m_l_document.html#aab792e90adc38cdc5446616573b8b01b',1,'tinyxml2::XMLDocument']]], - ['deleteattribute',['DeleteAttribute',['../classtinyxml2_1_1_x_m_l_element.html#aebd45aa7118964c30b32fe12e944628a',1,'tinyxml2::XMLElement']]], - ['deletechild',['DeleteChild',['../classtinyxml2_1_1_x_m_l_node.html#a363b6edbd6ebd55f8387d2b89f2b0921',1,'tinyxml2::XMLNode']]], - ['deletechildren',['DeleteChildren',['../classtinyxml2_1_1_x_m_l_node.html#a0360085cc54df5bff85d5c5da13afdce',1,'tinyxml2::XMLNode']]], - ['deletenode',['DeleteNode',['../classtinyxml2_1_1_x_m_l_document.html#ac1d6e2c7fcc1a660624ac4f68e96380d',1,'tinyxml2::XMLDocument']]], - ['doubleattribute',['DoubleAttribute',['../classtinyxml2_1_1_x_m_l_element.html#a10a90c505aea716bf073eea1c97f33b5',1,'tinyxml2::XMLElement']]], - ['doubletext',['DoubleText',['../classtinyxml2_1_1_x_m_l_element.html#a81b1ff0cf2f2cd09be8badc08b39a2b7',1,'tinyxml2::XMLElement']]], - ['doublevalue',['DoubleValue',['../classtinyxml2_1_1_x_m_l_attribute.html#a4aa73513f54ff0087d3e804f0f54e30f',1,'tinyxml2::XMLAttribute']]] -]; diff --git a/docs/search/functions_4.html b/docs/search/functions_4.html deleted file mode 100644 index 8985ff2..0000000 --- a/docs/search/functions_4.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - -
-
Loading...
-
- -
Searching...
-
No Matches
- -
- - diff --git a/docs/search/functions_4.js b/docs/search/functions_4.js deleted file mode 100644 index eb6c1f6..0000000 --- a/docs/search/functions_4.js +++ /dev/null @@ -1,5 +0,0 @@ -var searchData= -[ - ['error',['Error',['../classtinyxml2_1_1_x_m_l_document.html#a34e6318e182e40e3cc4f4ba5d59ed9ed',1,'tinyxml2::XMLDocument']]], - ['errorid',['ErrorID',['../classtinyxml2_1_1_x_m_l_document.html#afa3ed33b3107f920ec2b301f805ac17d',1,'tinyxml2::XMLDocument']]] -]; diff --git a/docs/search/functions_5.html b/docs/search/functions_5.html deleted file mode 100644 index 0314918..0000000 --- a/docs/search/functions_5.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - -
-
Loading...
-
- -
Searching...
-
No Matches
- -
- - diff --git a/docs/search/functions_5.js b/docs/search/functions_5.js deleted file mode 100644 index 182bbfe..0000000 --- a/docs/search/functions_5.js +++ /dev/null @@ -1,10 +0,0 @@ -var searchData= -[ - ['findattribute',['FindAttribute',['../classtinyxml2_1_1_x_m_l_element.html#a2dcd4d5d6fb63396cd2f257c318b42c4',1,'tinyxml2::XMLElement']]], - ['firstattribute',['FirstAttribute',['../classtinyxml2_1_1_x_m_l_element.html#a3e191704c8d499906ec11fe2f60c6686',1,'tinyxml2::XMLElement']]], - ['firstchild',['FirstChild',['../classtinyxml2_1_1_x_m_l_node.html#ae7dc225e1018cdd685f7563593a1fe08',1,'tinyxml2::XMLNode::FirstChild()'],['../classtinyxml2_1_1_x_m_l_handle.html#a536447dc7f54c0cd11e031dad94795ae',1,'tinyxml2::XMLHandle::FirstChild()']]], - ['firstchildelement',['FirstChildElement',['../classtinyxml2_1_1_x_m_l_node.html#a1795a35852dc8aae877cc8ded986e59b',1,'tinyxml2::XMLNode::FirstChildElement()'],['../classtinyxml2_1_1_x_m_l_handle.html#a74b04dd0f15e0bf01860e282b840b6a3',1,'tinyxml2::XMLHandle::FirstChildElement()']]], - ['floatattribute',['FloatAttribute',['../classtinyxml2_1_1_x_m_l_element.html#ab1f4be2332e27dc640e9b6abd01d64dd',1,'tinyxml2::XMLElement']]], - ['floattext',['FloatText',['../classtinyxml2_1_1_x_m_l_element.html#a45444eb21f99ca46101545992dc2e927',1,'tinyxml2::XMLElement']]], - ['floatvalue',['FloatValue',['../classtinyxml2_1_1_x_m_l_attribute.html#a27797b45d21c981257720db94f5f8801',1,'tinyxml2::XMLAttribute']]] -]; diff --git a/docs/search/functions_6.html b/docs/search/functions_6.html deleted file mode 100644 index c506123..0000000 --- a/docs/search/functions_6.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - -
-
Loading...
-
- -
Searching...
-
No Matches
- -
- - diff --git a/docs/search/functions_6.js b/docs/search/functions_6.js deleted file mode 100644 index 39c82fb..0000000 --- a/docs/search/functions_6.js +++ /dev/null @@ -1,10 +0,0 @@ -var searchData= -[ - ['getdocument',['GetDocument',['../classtinyxml2_1_1_x_m_l_node.html#a2de84cfa4ec3fe249bad745069d145f1',1,'tinyxml2::XMLNode::GetDocument() const'],['../classtinyxml2_1_1_x_m_l_node.html#af343d1ef0b45c0020e62d784d7e67a68',1,'tinyxml2::XMLNode::GetDocument()']]], - ['geterrorlinenum',['GetErrorLineNum',['../classtinyxml2_1_1_x_m_l_document.html#ad82d07e43e096e834dbdfd06312398c1',1,'tinyxml2::XMLDocument']]], - ['geterrorstr1',['GetErrorStr1',['../classtinyxml2_1_1_x_m_l_document.html#a229494e30e5473237f3fa547eee4c43f',1,'tinyxml2::XMLDocument']]], - ['geterrorstr2',['GetErrorStr2',['../classtinyxml2_1_1_x_m_l_document.html#a2d952f49c761bffd2903250680a8716b',1,'tinyxml2::XMLDocument']]], - ['getlinenum',['GetLineNum',['../classtinyxml2_1_1_x_m_l_node.html#a9b5fc636646fda761d342c72e91cb286',1,'tinyxml2::XMLNode::GetLineNum()'],['../classtinyxml2_1_1_x_m_l_attribute.html#a02d5ea924586e35f9c13857d1671b765',1,'tinyxml2::XMLAttribute::GetLineNum()']]], - ['gettext',['GetText',['../classtinyxml2_1_1_x_m_l_element.html#a6d5c8d115561ade4e4456b71d91b6f51',1,'tinyxml2::XMLElement']]], - ['getuserdata',['GetUserData',['../classtinyxml2_1_1_x_m_l_node.html#a7f0687574afa03bc479dc44f29db0afe',1,'tinyxml2::XMLNode']]] -]; diff --git a/docs/search/functions_7.html b/docs/search/functions_7.html deleted file mode 100644 index 83a7b84..0000000 --- a/docs/search/functions_7.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - -
-
Loading...
-
- -
Searching...
-
No Matches
- -
- - diff --git a/docs/search/functions_7.js b/docs/search/functions_7.js deleted file mode 100644 index b7d6d1f..0000000 --- a/docs/search/functions_7.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['hasbom',['HasBOM',['../classtinyxml2_1_1_x_m_l_document.html#a33fc5d159db873a179fa26338adb05bd',1,'tinyxml2::XMLDocument']]] -]; diff --git a/docs/search/functions_8.html b/docs/search/functions_8.html deleted file mode 100644 index b55f0e6..0000000 --- a/docs/search/functions_8.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - -
-
Loading...
-
- -
Searching...
-
No Matches
- -
- - diff --git a/docs/search/functions_8.js b/docs/search/functions_8.js deleted file mode 100644 index b1519d5..0000000 --- a/docs/search/functions_8.js +++ /dev/null @@ -1,10 +0,0 @@ -var searchData= -[ - ['insertafterchild',['InsertAfterChild',['../classtinyxml2_1_1_x_m_l_node.html#a85adb8f0b7477eec30f9a41d420b09c2',1,'tinyxml2::XMLNode']]], - ['insertendchild',['InsertEndChild',['../classtinyxml2_1_1_x_m_l_node.html#aeb249ed60f4e8bfad3709151c3ee4286',1,'tinyxml2::XMLNode']]], - ['insertfirstchild',['InsertFirstChild',['../classtinyxml2_1_1_x_m_l_node.html#a8ff7dc071f3a1a6ae2ac25a37492865d',1,'tinyxml2::XMLNode']]], - ['int64attribute',['Int64Attribute',['../classtinyxml2_1_1_x_m_l_element.html#a66d96972adecd816194191f13cc4a0a0',1,'tinyxml2::XMLElement']]], - ['int64text',['Int64Text',['../classtinyxml2_1_1_x_m_l_element.html#aab6151f7e3b4c2c0a8234e262d7b6b8a',1,'tinyxml2::XMLElement']]], - ['intattribute',['IntAttribute',['../classtinyxml2_1_1_x_m_l_element.html#a95a89b13bb14a2d4655e2b5b406c00d4',1,'tinyxml2::XMLElement']]], - ['intvalue',['IntValue',['../classtinyxml2_1_1_x_m_l_attribute.html#adfa2433f0fdafd5c3880936de9affa80',1,'tinyxml2::XMLAttribute']]] -]; diff --git a/docs/search/functions_9.html b/docs/search/functions_9.html deleted file mode 100644 index c73f07b..0000000 --- a/docs/search/functions_9.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - -
-
Loading...
-
- -
Searching...
-
No Matches
- -
- - diff --git a/docs/search/functions_9.js b/docs/search/functions_9.js deleted file mode 100644 index 42991e3..0000000 --- a/docs/search/functions_9.js +++ /dev/null @@ -1,6 +0,0 @@ -var searchData= -[ - ['lastchild',['LastChild',['../classtinyxml2_1_1_x_m_l_node.html#a9b8583a277e8e26f4cbbb5492786778e',1,'tinyxml2::XMLNode::LastChild()'],['../classtinyxml2_1_1_x_m_l_handle.html#a9d09f04435f0f2f7d0816b0198d0517b',1,'tinyxml2::XMLHandle::LastChild()']]], - ['lastchildelement',['LastChildElement',['../classtinyxml2_1_1_x_m_l_node.html#a173e9d1341bc56992e2d320a35936551',1,'tinyxml2::XMLNode::LastChildElement()'],['../classtinyxml2_1_1_x_m_l_handle.html#a42cccd0ce8b1ce704f431025e9f19e0c',1,'tinyxml2::XMLHandle::LastChildElement()']]], - ['loadfile',['LoadFile',['../classtinyxml2_1_1_x_m_l_document.html#a2ebd4647a8af5fc6831b294ac26a150a',1,'tinyxml2::XMLDocument::LoadFile(const char *filename)'],['../classtinyxml2_1_1_x_m_l_document.html#a5f1d330fad44c52f3d265338dd2a6dc2',1,'tinyxml2::XMLDocument::LoadFile(FILE *)']]] -]; diff --git a/docs/search/functions_a.html b/docs/search/functions_a.html deleted file mode 100644 index f10ad63..0000000 --- a/docs/search/functions_a.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - -
-
Loading...
-
- -
Searching...
-
No Matches
- -
- - diff --git a/docs/search/functions_a.js b/docs/search/functions_a.js deleted file mode 100644 index 953470a..0000000 --- a/docs/search/functions_a.js +++ /dev/null @@ -1,13 +0,0 @@ -var searchData= -[ - ['name',['Name',['../classtinyxml2_1_1_x_m_l_attribute.html#ab886c486ec19f02ed826f8dc129e5ad8',1,'tinyxml2::XMLAttribute::Name()'],['../classtinyxml2_1_1_x_m_l_element.html#a63e057fb5baee1dd29f323cb85907b35',1,'tinyxml2::XMLElement::Name()']]], - ['newcomment',['NewComment',['../classtinyxml2_1_1_x_m_l_document.html#ade4874bcb439954972ef2b3723ff3259',1,'tinyxml2::XMLDocument']]], - ['newdeclaration',['NewDeclaration',['../classtinyxml2_1_1_x_m_l_document.html#aee2eb3435923f5494dcc70ac225b60a2',1,'tinyxml2::XMLDocument']]], - ['newelement',['NewElement',['../classtinyxml2_1_1_x_m_l_document.html#a8aa7817d4a1001364b06373763ab99d6',1,'tinyxml2::XMLDocument']]], - ['newtext',['NewText',['../classtinyxml2_1_1_x_m_l_document.html#ab7e8b29ae4099092a8bb947da6361296',1,'tinyxml2::XMLDocument']]], - ['newunknown',['NewUnknown',['../classtinyxml2_1_1_x_m_l_document.html#a5385c937734ff6db9226ab707d2c7147',1,'tinyxml2::XMLDocument']]], - ['next',['Next',['../classtinyxml2_1_1_x_m_l_attribute.html#aee53571b21e7ce5421eb929523a8bbe6',1,'tinyxml2::XMLAttribute']]], - ['nextsibling',['NextSibling',['../classtinyxml2_1_1_x_m_l_node.html#a79db9ef0fe014d27790f2218b87bcbb5',1,'tinyxml2::XMLNode::NextSibling()'],['../classtinyxml2_1_1_x_m_l_handle.html#aad2eccc7c7c7b18145877c978c3850b5',1,'tinyxml2::XMLHandle::NextSibling()']]], - ['nextsiblingelement',['NextSiblingElement',['../classtinyxml2_1_1_x_m_l_node.html#a1264c86233328f0cd36297552d982f80',1,'tinyxml2::XMLNode::NextSiblingElement()'],['../classtinyxml2_1_1_x_m_l_handle.html#ae41d88ee061f3c49a081630ff753b2c5',1,'tinyxml2::XMLHandle::NextSiblingElement()']]], - ['nochildren',['NoChildren',['../classtinyxml2_1_1_x_m_l_node.html#ac3ab489e6e202a3cd1762d3b332e89d4',1,'tinyxml2::XMLNode']]] -]; diff --git a/docs/search/functions_b.html b/docs/search/functions_b.html deleted file mode 100644 index 172ea1b..0000000 --- a/docs/search/functions_b.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - -
-
Loading...
-
- -
Searching...
-
No Matches
- -
- - diff --git a/docs/search/functions_b.js b/docs/search/functions_b.js deleted file mode 100644 index 9772c30..0000000 --- a/docs/search/functions_b.js +++ /dev/null @@ -1,5 +0,0 @@ -var searchData= -[ - ['openelement',['OpenElement',['../classtinyxml2_1_1_x_m_l_printer.html#a20fb06c83bd13e5140d7dd13af06c010',1,'tinyxml2::XMLPrinter']]], - ['operator_3d',['operator=',['../classtinyxml2_1_1_x_m_l_handle.html#a75b908322bb4b83be3281b6845252b20',1,'tinyxml2::XMLHandle']]] -]; diff --git a/docs/search/functions_c.html b/docs/search/functions_c.html deleted file mode 100644 index 99492ba..0000000 --- a/docs/search/functions_c.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - -
-
Loading...
-
- -
Searching...
-
No Matches
- -
- - diff --git a/docs/search/functions_c.js b/docs/search/functions_c.js deleted file mode 100644 index ce9baee..0000000 --- a/docs/search/functions_c.js +++ /dev/null @@ -1,14 +0,0 @@ -var searchData= -[ - ['parent',['Parent',['../classtinyxml2_1_1_x_m_l_node.html#ae0f62bc186c56c2e0483ebd52dbfbe34',1,'tinyxml2::XMLNode']]], - ['parse',['Parse',['../classtinyxml2_1_1_x_m_l_document.html#a1819bd34f540a7304c105a6232d25a1f',1,'tinyxml2::XMLDocument']]], - ['previoussibling',['PreviousSibling',['../classtinyxml2_1_1_x_m_l_node.html#aac667c513d445f8b783e1e15ef9d3551',1,'tinyxml2::XMLNode::PreviousSibling()'],['../classtinyxml2_1_1_x_m_l_handle.html#a428374e756f4db4cbc287fec64eae02c',1,'tinyxml2::XMLHandle::PreviousSibling()']]], - ['previoussiblingelement',['PreviousSiblingElement',['../classtinyxml2_1_1_x_m_l_node.html#a872936cae46fb473eb47fec99129fc70',1,'tinyxml2::XMLNode::PreviousSiblingElement()'],['../classtinyxml2_1_1_x_m_l_handle.html#a786957e498039554ed334cdc36612a7e',1,'tinyxml2::XMLHandle::PreviousSiblingElement()']]], - ['print',['Print',['../classtinyxml2_1_1_x_m_l_document.html#a867cf5fa3e3ff6ae4847a8b7ee8ec083',1,'tinyxml2::XMLDocument']]], - ['printerror',['PrintError',['../classtinyxml2_1_1_x_m_l_document.html#a1d033945b42e125d933d6231e4571552',1,'tinyxml2::XMLDocument']]], - ['printspace',['PrintSpace',['../classtinyxml2_1_1_x_m_l_printer.html#a01148e2ebe6776e38c5a3e41bc5feb74',1,'tinyxml2::XMLPrinter']]], - ['pushattribute',['PushAttribute',['../classtinyxml2_1_1_x_m_l_printer.html#a9a4e2c9348b42e147629d5a99f4af3f0',1,'tinyxml2::XMLPrinter']]], - ['pushcomment',['PushComment',['../classtinyxml2_1_1_x_m_l_printer.html#afc8416814219591c2fd5656e0c233140',1,'tinyxml2::XMLPrinter']]], - ['pushheader',['PushHeader',['../classtinyxml2_1_1_x_m_l_printer.html#a178c608ce8476043d5d6513819cde903',1,'tinyxml2::XMLPrinter']]], - ['pushtext',['PushText',['../classtinyxml2_1_1_x_m_l_printer.html#a1cc16a9362df4332012cb13cff6441b3',1,'tinyxml2::XMLPrinter::PushText(const char *text, bool cdata=false)'],['../classtinyxml2_1_1_x_m_l_printer.html#a3e0d4d78de25d4cf081009e1431cea7e',1,'tinyxml2::XMLPrinter::PushText(int value)'],['../classtinyxml2_1_1_x_m_l_printer.html#a661fb50e7e0a4918d2d259cb0fae647e',1,'tinyxml2::XMLPrinter::PushText(unsigned value)'],['../classtinyxml2_1_1_x_m_l_printer.html#a96b0a0bfe105154a0a6c37d725258f0a',1,'tinyxml2::XMLPrinter::PushText(int64_t value)'],['../classtinyxml2_1_1_x_m_l_printer.html#a4390e5fa1ed05189a8686647345ab29f',1,'tinyxml2::XMLPrinter::PushText(bool value)'],['../classtinyxml2_1_1_x_m_l_printer.html#a1dbb1390e829d0673af66b9cd1928bd7',1,'tinyxml2::XMLPrinter::PushText(float value)'],['../classtinyxml2_1_1_x_m_l_printer.html#aa715302dfc09473c77c853cbd5431965',1,'tinyxml2::XMLPrinter::PushText(double value)']]] -]; diff --git a/docs/search/functions_d.html b/docs/search/functions_d.html deleted file mode 100644 index 5be9ecc..0000000 --- a/docs/search/functions_d.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - -
-
Loading...
-
- -
Searching...
-
No Matches
- -
- - diff --git a/docs/search/functions_d.js b/docs/search/functions_d.js deleted file mode 100644 index b78f218..0000000 --- a/docs/search/functions_d.js +++ /dev/null @@ -1,22 +0,0 @@ -var searchData= -[ - ['queryattribute',['QueryAttribute',['../classtinyxml2_1_1_x_m_l_element.html#a042fc30504347b84a56cf863ad528a4f',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']]], - ['querydoubleattribute',['QueryDoubleAttribute',['../classtinyxml2_1_1_x_m_l_element.html#a5f0964e2dbd8e2ee7fce9beab689443c',1,'tinyxml2::XMLElement']]], - ['querydoubletext',['QueryDoubleText',['../classtinyxml2_1_1_x_m_l_element.html#a684679c99bb036a25652744cec6c4d96',1,'tinyxml2::XMLElement']]], - ['querydoublevalue',['QueryDoubleValue',['../classtinyxml2_1_1_x_m_l_attribute.html#a2aa6e55e8ea03af0609cf6690bff79b9',1,'tinyxml2::XMLAttribute']]], - ['queryfloatattribute',['QueryFloatAttribute',['../classtinyxml2_1_1_x_m_l_element.html#acd5eeddf6002ef90806af794b9d9a5a5',1,'tinyxml2::XMLElement']]], - ['queryfloattext',['QueryFloatText',['../classtinyxml2_1_1_x_m_l_element.html#afa332afedd93210daa6d44b88eb11e29',1,'tinyxml2::XMLElement']]], - ['queryfloatvalue',['QueryFloatValue',['../classtinyxml2_1_1_x_m_l_attribute.html#a049dea6449a6259b6cfed44a9427b607',1,'tinyxml2::XMLAttribute']]], - ['queryint64attribute',['QueryInt64Attribute',['../classtinyxml2_1_1_x_m_l_element.html#a7c0955d80b6f8d196744eacb0f6e90a8',1,'tinyxml2::XMLElement']]], - ['queryint64text',['QueryInt64Text',['../classtinyxml2_1_1_x_m_l_element.html#a120c538c8eead169e635dbc70fb226d8',1,'tinyxml2::XMLElement']]], - ['queryint64value',['QueryInt64Value',['../classtinyxml2_1_1_x_m_l_attribute.html#a4e25344d6e4159026be34dbddf1dcac2',1,'tinyxml2::XMLAttribute']]], - ['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']]], - ['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']]] -]; diff --git a/docs/search/functions_e.html b/docs/search/functions_e.html deleted file mode 100644 index e256cb6..0000000 --- a/docs/search/functions_e.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - -
-
Loading...
-
- -
Searching...
-
No Matches
- -
- - diff --git a/docs/search/functions_e.js b/docs/search/functions_e.js deleted file mode 100644 index f56f3e3..0000000 --- a/docs/search/functions_e.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['rootelement',['RootElement',['../classtinyxml2_1_1_x_m_l_document.html#ad2b70320d3c2a071c2f36928edff3e1c',1,'tinyxml2::XMLDocument']]] -]; diff --git a/docs/search/functions_f.html b/docs/search/functions_f.html deleted file mode 100644 index 424126c..0000000 --- a/docs/search/functions_f.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - -
-
Loading...
-
- -
Searching...
-
No Matches
- -
- - diff --git a/docs/search/functions_f.js b/docs/search/functions_f.js deleted file mode 100644 index be8e75d..0000000 --- a/docs/search/functions_f.js +++ /dev/null @@ -1,13 +0,0 @@ -var searchData= -[ - ['savefile',['SaveFile',['../classtinyxml2_1_1_x_m_l_document.html#a73ac416b4a2aa0952e841220eb3da18f',1,'tinyxml2::XMLDocument::SaveFile(const char *filename, bool compact=false)'],['../classtinyxml2_1_1_x_m_l_document.html#a8b95779479a0035acc67b3a61dfe1b74',1,'tinyxml2::XMLDocument::SaveFile(FILE *fp, bool compact=false)']]], - ['setattribute',['SetAttribute',['../classtinyxml2_1_1_x_m_l_attribute.html#a406d2c4a13c7af99a65edb59dd9f7581',1,'tinyxml2::XMLAttribute::SetAttribute(const char *value)'],['../classtinyxml2_1_1_x_m_l_attribute.html#ad86d7d7058d76761c3a80662566a57e5',1,'tinyxml2::XMLAttribute::SetAttribute(int value)'],['../classtinyxml2_1_1_x_m_l_attribute.html#ae70468c0f6df2748ba3529c716999fae',1,'tinyxml2::XMLAttribute::SetAttribute(unsigned value)'],['../classtinyxml2_1_1_x_m_l_attribute.html#a7c1240f479722b9aa29b6c030aa116c2',1,'tinyxml2::XMLAttribute::SetAttribute(int64_t value)'],['../classtinyxml2_1_1_x_m_l_attribute.html#ab3516def4fe058fe328f2b89fc2d77da',1,'tinyxml2::XMLAttribute::SetAttribute(bool value)'],['../classtinyxml2_1_1_x_m_l_attribute.html#a9a65ab3147abe8ccbbd373ce8791e818',1,'tinyxml2::XMLAttribute::SetAttribute(double value)'],['../classtinyxml2_1_1_x_m_l_attribute.html#ae95e843313aaf5d56c32530b6456df02',1,'tinyxml2::XMLAttribute::SetAttribute(float value)'],['../classtinyxml2_1_1_x_m_l_element.html#a11943abf2d0831548c3790dd5d9f119c',1,'tinyxml2::XMLElement::SetAttribute(const char *name, const char *value)'],['../classtinyxml2_1_1_x_m_l_element.html#aae6568c64c7f1cc88be8461ba41a79cf',1,'tinyxml2::XMLElement::SetAttribute(const char *name, int value)'],['../classtinyxml2_1_1_x_m_l_element.html#ae143997e90064ba82326b29a9930ea8f',1,'tinyxml2::XMLElement::SetAttribute(const char *name, unsigned value)'],['../classtinyxml2_1_1_x_m_l_element.html#aaeefdf9171fec91b13a776b42299b0dd',1,'tinyxml2::XMLElement::SetAttribute(const char *name, int64_t value)'],['../classtinyxml2_1_1_x_m_l_element.html#aa848b696e6a75e4e545c6da9893b11e1',1,'tinyxml2::XMLElement::SetAttribute(const char *name, bool value)'],['../classtinyxml2_1_1_x_m_l_element.html#a233397ee81e70eb5d4b814c5f8698533',1,'tinyxml2::XMLElement::SetAttribute(const char *name, double value)'],['../classtinyxml2_1_1_x_m_l_element.html#a554b70d882e65b28fc084b23df9b9759',1,'tinyxml2::XMLElement::SetAttribute(const char *name, float value)']]], - ['setbom',['SetBOM',['../classtinyxml2_1_1_x_m_l_document.html#a14419b698f7c4b140df4e80f3f0c93b0',1,'tinyxml2::XMLDocument']]], - ['setcdata',['SetCData',['../classtinyxml2_1_1_x_m_l_text.html#ad080357d76ab7cc59d7651249949329d',1,'tinyxml2::XMLText']]], - ['setname',['SetName',['../classtinyxml2_1_1_x_m_l_element.html#a97712009a530d8cb8a63bf705f02b4f1',1,'tinyxml2::XMLElement']]], - ['settext',['SetText',['../classtinyxml2_1_1_x_m_l_element.html#a1f9c2cd61b72af5ae708d37b7ad283ce',1,'tinyxml2::XMLElement::SetText(const char *inText)'],['../classtinyxml2_1_1_x_m_l_element.html#aeae8917b5ea6060b3c08d4e3d8d632d7',1,'tinyxml2::XMLElement::SetText(int value)'],['../classtinyxml2_1_1_x_m_l_element.html#a7bbfcc11d516598bc924a8fba4d08597',1,'tinyxml2::XMLElement::SetText(unsigned value)'],['../classtinyxml2_1_1_x_m_l_element.html#a7b62cd33acdfeff7ea2b1b330d4368e4',1,'tinyxml2::XMLElement::SetText(int64_t value)'],['../classtinyxml2_1_1_x_m_l_element.html#ae4b543d6770de76fb6ab68e541c192a4',1,'tinyxml2::XMLElement::SetText(bool value)'],['../classtinyxml2_1_1_x_m_l_element.html#a67bd77ac9aaeff58ff20b4275a65ba4e',1,'tinyxml2::XMLElement::SetText(double value)'],['../classtinyxml2_1_1_x_m_l_element.html#a51d560da5ae3ad6b75e0ab9ffb2ae42a',1,'tinyxml2::XMLElement::SetText(float value)']]], - ['setuserdata',['SetUserData',['../classtinyxml2_1_1_x_m_l_node.html#a002978fc889cc011d143185f2377eca2',1,'tinyxml2::XMLNode']]], - ['setvalue',['SetValue',['../classtinyxml2_1_1_x_m_l_node.html#a09dd68cf9eae137579f6e50f36487513',1,'tinyxml2::XMLNode']]], - ['shallowclone',['ShallowClone',['../classtinyxml2_1_1_x_m_l_node.html#a8402cbd3129d20e9e6024bbcc0531283',1,'tinyxml2::XMLNode::ShallowClone()'],['../classtinyxml2_1_1_x_m_l_text.html#af3a81ed4dd49d5151c477b3f265a3011',1,'tinyxml2::XMLText::ShallowClone()'],['../classtinyxml2_1_1_x_m_l_comment.html#a08991cc63fadf7e95078ac4f9ea1b073',1,'tinyxml2::XMLComment::ShallowClone()'],['../classtinyxml2_1_1_x_m_l_declaration.html#a118d47518dd9e522644e42efa259aed7',1,'tinyxml2::XMLDeclaration::ShallowClone()'],['../classtinyxml2_1_1_x_m_l_unknown.html#a0125f41c89763dea06619b5fd5246b4c',1,'tinyxml2::XMLUnknown::ShallowClone()'],['../classtinyxml2_1_1_x_m_l_element.html#ac035742d68b0c50c3f676374e59fe750',1,'tinyxml2::XMLElement::ShallowClone()'],['../classtinyxml2_1_1_x_m_l_document.html#aa37cc1709d7e1e988bc17dcfb24a69b8',1,'tinyxml2::XMLDocument::ShallowClone()']]], - ['shallowequal',['ShallowEqual',['../classtinyxml2_1_1_x_m_l_node.html#a7ce18b751c3ea09eac292dca264f9226',1,'tinyxml2::XMLNode::ShallowEqual()'],['../classtinyxml2_1_1_x_m_l_text.html#ae0fff8a24e2de7eb073fd192e9db0331',1,'tinyxml2::XMLText::ShallowEqual()'],['../classtinyxml2_1_1_x_m_l_comment.html#a6f7d227b25afa8cc3c763b7cc8833739',1,'tinyxml2::XMLComment::ShallowEqual()'],['../classtinyxml2_1_1_x_m_l_declaration.html#aa26b70011694e9b9e9480b929e9b78d6',1,'tinyxml2::XMLDeclaration::ShallowEqual()'],['../classtinyxml2_1_1_x_m_l_unknown.html#a0715ab2c05d7f74845c188122213b116',1,'tinyxml2::XMLUnknown::ShallowEqual()'],['../classtinyxml2_1_1_x_m_l_element.html#ad9ea913a460b48979bd83cf9871c99f6',1,'tinyxml2::XMLElement::ShallowEqual()'],['../classtinyxml2_1_1_x_m_l_document.html#a6fe5ef18699091844fcf64b56ffa5bf9',1,'tinyxml2::XMLDocument::ShallowEqual()']]] -]; diff --git a/docs/search/mag_sel.png b/docs/search/mag_sel.png deleted file mode 100644 index 81f6040a2092402b4d98f9ffa8855d12a0d4ca17..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 563 zcmV-30?hr1P)zxx&tqG15pu7)IiiXFflOc2k;dXd>%13GZAy? zRz!q0=|E6a6vV)&ZBS~G9oe0kbqyw1*gvY`{Pop2oKq#FlzgXt@Xh-7fxh>}`Fxg> z$%N%{$!4=5nM{(;=c!aG1Ofr^Do{u%Ih{^&Fc@H2)+a-?TBXrw5DW&z%Nb6mQ!L9O zl}b@6mB?f=tX3;#vl)}ggh(Vpyh(IK z(Mb0D{l{U$FsRjP;!{($+bsaaVi8T#1c0V#qEIOCYa9@UVLV`f__E81L;?WEaRA;Y zUH;rZ;vb;mk7JX|$=i3O~&If0O@oZfLg8gfIjW=dcBsz;gI=!{-r4# z4%6v$&~;q^j7Fo67yJ(NJWuX+I~I!tj^nW3?}^9bq|<3^+vapS5sgM^x7!cs(+mMT z&y%j};&~po+YO)3hoUH4E*E;e9>?R6SS&`X)p`njycAVcg{rEb41T{~Hk(bl-7eSb zmFxA2uIqo#@R?lKm50ND`~6Nfn|-b1|L6O98vt3Tx@gKz#isxO002ovPDHLkV1kyW B_l^Jn diff --git a/docs/search/nomatches.html b/docs/search/nomatches.html deleted file mode 100644 index b1ded27..0000000 --- a/docs/search/nomatches.html +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - -
-
No Matches
-
- - diff --git a/docs/search/pages_0.html b/docs/search/pages_0.html deleted file mode 100644 index 4955b9e..0000000 --- a/docs/search/pages_0.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - -
-
Loading...
-
- -
Searching...
-
No Matches
- -
- - diff --git a/docs/search/pages_0.js b/docs/search/pages_0.js deleted file mode 100644 index 868fb87..0000000 --- a/docs/search/pages_0.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['get_20information_20out_20of_20xml',['Get information out of XML',['../_example-3.html',1,'']]] -]; diff --git a/docs/search/pages_1.html b/docs/search/pages_1.html deleted file mode 100644 index aedb14e..0000000 --- a/docs/search/pages_1.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - -
-
Loading...
-
- -
Searching...
-
No Matches
- -
- - diff --git a/docs/search/pages_1.js b/docs/search/pages_1.js deleted file mode 100644 index a11be89..0000000 --- a/docs/search/pages_1.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['load_20an_20xml_20file',['Load an XML File',['../_example-1.html',1,'']]] -]; diff --git a/docs/search/pages_2.html b/docs/search/pages_2.html deleted file mode 100644 index bd91593..0000000 --- a/docs/search/pages_2.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - -
-
Loading...
-
- -
Searching...
-
No Matches
- -
- - diff --git a/docs/search/pages_2.js b/docs/search/pages_2.js deleted file mode 100644 index 5b909ab..0000000 --- a/docs/search/pages_2.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['parse_20an_20xml_20from_20char_20buffer',['Parse an XML from char buffer',['../_example-2.html',1,'']]] -]; diff --git a/docs/search/pages_3.html b/docs/search/pages_3.html deleted file mode 100644 index bc0e37f..0000000 --- a/docs/search/pages_3.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - -
-
Loading...
-
- -
Searching...
-
No Matches
- -
- - diff --git a/docs/search/pages_3.js b/docs/search/pages_3.js deleted file mode 100644 index 41376dd..0000000 --- a/docs/search/pages_3.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['read_20attributes_20and_20text_20information_2e',['Read attributes and text information.',['../_example-4.html',1,'']]] -]; diff --git a/docs/search/pages_4.html b/docs/search/pages_4.html deleted file mode 100644 index d4c3e8e..0000000 --- a/docs/search/pages_4.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - -
-
Loading...
-
- -
Searching...
-
No Matches
- -
- - diff --git a/docs/search/pages_4.js b/docs/search/pages_4.js deleted file mode 100644 index f9587cc..0000000 --- a/docs/search/pages_4.js +++ /dev/null @@ -1,4 +0,0 @@ -var searchData= -[ - ['tinyxml_2d2',['TinyXML-2',['../index.html',1,'']]] -]; diff --git a/docs/search/search.css b/docs/search/search.css deleted file mode 100644 index 3cf9df9..0000000 --- a/docs/search/search.css +++ /dev/null @@ -1,271 +0,0 @@ -/*---------------- Search Box */ - -#FSearchBox { - float: left; -} - -#MSearchBox { - white-space : nowrap; - float: none; - margin-top: 8px; - right: 0px; - width: 170px; - height: 24px; - z-index: 102; -} - -#MSearchBox .left -{ - display:block; - position:absolute; - left:10px; - width:20px; - height:19px; - background:url('search_l.png') no-repeat; - background-position:right; -} - -#MSearchSelect { - display:block; - position:absolute; - width:20px; - height:19px; -} - -.left #MSearchSelect { - left:4px; -} - -.right #MSearchSelect { - right:5px; -} - -#MSearchField { - display:block; - position:absolute; - height:19px; - background:url('search_m.png') repeat-x; - border:none; - width:115px; - margin-left:20px; - padding-left:4px; - color: #909090; - outline: none; - font: 9pt Arial, Verdana, sans-serif; - -webkit-border-radius: 0px; -} - -#FSearchBox #MSearchField { - margin-left:15px; -} - -#MSearchBox .right { - display:block; - position:absolute; - right:10px; - top:8px; - width:20px; - height:19px; - background:url('search_r.png') no-repeat; - background-position:left; -} - -#MSearchClose { - display: none; - position: absolute; - top: 4px; - background : none; - border: none; - margin: 0px 4px 0px 0px; - padding: 0px 0px; - outline: none; -} - -.left #MSearchClose { - left: 6px; -} - -.right #MSearchClose { - right: 2px; -} - -.MSearchBoxActive #MSearchField { - color: #000000; -} - -/*---------------- Search filter selection */ - -#MSearchSelectWindow { - display: none; - position: absolute; - left: 0; top: 0; - border: 1px solid #90A5CE; - background-color: #F9FAFC; - z-index: 10001; - padding-top: 4px; - padding-bottom: 4px; - -moz-border-radius: 4px; - -webkit-border-top-left-radius: 4px; - -webkit-border-top-right-radius: 4px; - -webkit-border-bottom-left-radius: 4px; - -webkit-border-bottom-right-radius: 4px; - -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); -} - -.SelectItem { - font: 8pt Arial, Verdana, sans-serif; - padding-left: 2px; - padding-right: 12px; - border: 0px; -} - -span.SelectionMark { - margin-right: 4px; - font-family: monospace; - outline-style: none; - text-decoration: none; -} - -a.SelectItem { - display: block; - outline-style: none; - color: #000000; - text-decoration: none; - padding-left: 6px; - padding-right: 12px; -} - -a.SelectItem:focus, -a.SelectItem:active { - color: #000000; - outline-style: none; - text-decoration: none; -} - -a.SelectItem:hover { - color: #FFFFFF; - background-color: #3D578C; - outline-style: none; - text-decoration: none; - cursor: pointer; - display: block; -} - -/*---------------- Search results window */ - -iframe#MSearchResults { - width: 60ex; - height: 15em; -} - -#MSearchResultsWindow { - display: none; - position: absolute; - left: 0; top: 0; - border: 1px solid #000; - background-color: #EEF1F7; - z-index:10000; -} - -/* ----------------------------------- */ - - -#SRIndex { - clear:both; - padding-bottom: 15px; -} - -.SREntry { - font-size: 10pt; - padding-left: 1ex; -} - -.SRPage .SREntry { - font-size: 8pt; - padding: 1px 5px; -} - -body.SRPage { - margin: 5px 2px; -} - -.SRChildren { - padding-left: 3ex; padding-bottom: .5em -} - -.SRPage .SRChildren { - display: none; -} - -.SRSymbol { - font-weight: bold; - color: #425E97; - font-family: Arial, Verdana, sans-serif; - text-decoration: none; - outline: none; -} - -a.SRScope { - display: block; - color: #425E97; - font-family: Arial, Verdana, sans-serif; - text-decoration: none; - outline: none; -} - -a.SRSymbol:focus, a.SRSymbol:active, -a.SRScope:focus, a.SRScope:active { - text-decoration: underline; -} - -span.SRScope { - padding-left: 4px; -} - -.SRPage .SRStatus { - padding: 2px 5px; - font-size: 8pt; - font-style: italic; -} - -.SRResult { - display: none; -} - -DIV.searchresults { - margin-left: 10px; - margin-right: 10px; -} - -/*---------------- External search page results */ - -.searchresult { - background-color: #F0F3F8; -} - -.pages b { - color: white; - padding: 5px 5px 3px 5px; - background-image: url("../tab_a.png"); - background-repeat: repeat-x; - text-shadow: 0 1px 1px #000000; -} - -.pages { - line-height: 17px; - margin-left: 4px; - text-decoration: none; -} - -.hl { - font-weight: bold; -} - -#searchresults { - margin-bottom: 20px; -} - -.searchpages { - margin-top: 10px; -} - diff --git a/docs/search/search.js b/docs/search/search.js deleted file mode 100644 index dedce3b..0000000 --- a/docs/search/search.js +++ /dev/null @@ -1,791 +0,0 @@ -function convertToId(search) -{ - var result = ''; - for (i=0;i do a search - { - this.Search(); - } - } - - this.OnSearchSelectKey = function(evt) - { - var e = (evt) ? evt : window.event; // for IE - if (e.keyCode==40 && this.searchIndex0) // Up - { - this.searchIndex--; - this.OnSelectItem(this.searchIndex); - } - else if (e.keyCode==13 || e.keyCode==27) - { - this.OnSelectItem(this.searchIndex); - this.CloseSelectionWindow(); - this.DOMSearchField().focus(); - } - return false; - } - - // --------- Actions - - // Closes the results window. - this.CloseResultsWindow = function() - { - this.DOMPopupSearchResultsWindow().style.display = 'none'; - this.DOMSearchClose().style.display = 'none'; - this.Activate(false); - } - - this.CloseSelectionWindow = function() - { - this.DOMSearchSelectWindow().style.display = 'none'; - } - - // Performs a search. - this.Search = function() - { - this.keyTimeout = 0; - - // strip leading whitespace - var searchValue = this.DOMSearchField().value.replace(/^ +/, ""); - - var code = searchValue.toLowerCase().charCodeAt(0); - var idxChar = searchValue.substr(0, 1).toLowerCase(); - if ( 0xD800 <= code && code <= 0xDBFF && searchValue > 1) // surrogate pair - { - idxChar = searchValue.substr(0, 2); - } - - var resultsPage; - var resultsPageWithSearch; - var hasResultsPage; - - var idx = indexSectionsWithContent[this.searchIndex].indexOf(idxChar); - if (idx!=-1) - { - var hexCode=idx.toString(16); - resultsPage = this.resultsPath + '/' + indexSectionNames[this.searchIndex] + '_' + hexCode + '.html'; - resultsPageWithSearch = resultsPage+'?'+escape(searchValue); - hasResultsPage = true; - } - else // nothing available for this search term - { - resultsPage = this.resultsPath + '/nomatches.html'; - resultsPageWithSearch = resultsPage; - hasResultsPage = false; - } - - window.frames.MSearchResults.location = resultsPageWithSearch; - var domPopupSearchResultsWindow = this.DOMPopupSearchResultsWindow(); - - if (domPopupSearchResultsWindow.style.display!='block') - { - var domSearchBox = this.DOMSearchBox(); - this.DOMSearchClose().style.display = 'inline'; - if (this.insideFrame) - { - var domPopupSearchResults = this.DOMPopupSearchResults(); - domPopupSearchResultsWindow.style.position = 'relative'; - domPopupSearchResultsWindow.style.display = 'block'; - var width = document.body.clientWidth - 8; // the -8 is for IE :-( - domPopupSearchResultsWindow.style.width = width + 'px'; - domPopupSearchResults.style.width = width + 'px'; - } - else - { - var domPopupSearchResults = this.DOMPopupSearchResults(); - var left = getXPos(domSearchBox) + 150; // domSearchBox.offsetWidth; - var top = getYPos(domSearchBox) + 20; // domSearchBox.offsetHeight + 1; - domPopupSearchResultsWindow.style.display = 'block'; - left -= domPopupSearchResults.offsetWidth; - domPopupSearchResultsWindow.style.top = top + 'px'; - domPopupSearchResultsWindow.style.left = left + 'px'; - } - } - - this.lastSearchValue = searchValue; - this.lastResultsPage = resultsPage; - } - - // -------- Activation Functions - - // Activates or deactivates the search panel, resetting things to - // their default values if necessary. - this.Activate = function(isActive) - { - if (isActive || // open it - this.DOMPopupSearchResultsWindow().style.display == 'block' - ) - { - this.DOMSearchBox().className = 'MSearchBoxActive'; - - var searchField = this.DOMSearchField(); - - if (searchField.value == this.searchLabel) // clear "Search" term upon entry - { - searchField.value = ''; - this.searchActive = true; - } - } - else if (!isActive) // directly remove the panel - { - this.DOMSearchBox().className = 'MSearchBoxInactive'; - this.DOMSearchField().value = this.searchLabel; - this.searchActive = false; - this.lastSearchValue = '' - this.lastResultsPage = ''; - } - } -} - -// ----------------------------------------------------------------------- - -// The class that handles everything on the search results page. -function SearchResults(name) -{ - // The number of matches from the last run of . - this.lastMatchCount = 0; - this.lastKey = 0; - this.repeatOn = false; - - // Toggles the visibility of the passed element ID. - this.FindChildElement = function(id) - { - var parentElement = document.getElementById(id); - var element = parentElement.firstChild; - - while (element && element!=parentElement) - { - if (element.nodeName == 'DIV' && element.className == 'SRChildren') - { - return element; - } - - if (element.nodeName == 'DIV' && element.hasChildNodes()) - { - element = element.firstChild; - } - else if (element.nextSibling) - { - element = element.nextSibling; - } - else - { - do - { - element = element.parentNode; - } - while (element && element!=parentElement && !element.nextSibling); - - if (element && element!=parentElement) - { - element = element.nextSibling; - } - } - } - } - - this.Toggle = function(id) - { - var element = this.FindChildElement(id); - if (element) - { - if (element.style.display == 'block') - { - element.style.display = 'none'; - } - else - { - element.style.display = 'block'; - } - } - } - - // Searches for the passed string. If there is no parameter, - // it takes it from the URL query. - // - // Always returns true, since other documents may try to call it - // and that may or may not be possible. - this.Search = function(search) - { - if (!search) // get search word from URL - { - search = window.location.search; - search = search.substring(1); // Remove the leading '?' - search = unescape(search); - } - - search = search.replace(/^ +/, ""); // strip leading spaces - search = search.replace(/ +$/, ""); // strip trailing spaces - search = search.toLowerCase(); - search = convertToId(search); - - var resultRows = document.getElementsByTagName("div"); - var matches = 0; - - var i = 0; - while (i < resultRows.length) - { - var row = resultRows.item(i); - if (row.className == "SRResult") - { - var rowMatchName = row.id.toLowerCase(); - rowMatchName = rowMatchName.replace(/^sr\d*_/, ''); // strip 'sr123_' - - if (search.length<=rowMatchName.length && - rowMatchName.substr(0, search.length)==search) - { - row.style.display = 'block'; - matches++; - } - else - { - row.style.display = 'none'; - } - } - i++; - } - document.getElementById("Searching").style.display='none'; - if (matches == 0) // no results - { - document.getElementById("NoMatches").style.display='block'; - } - else // at least one result - { - document.getElementById("NoMatches").style.display='none'; - } - this.lastMatchCount = matches; - return true; - } - - // return the first item with index index or higher that is visible - this.NavNext = function(index) - { - var focusItem; - while (1) - { - var focusName = 'Item'+index; - focusItem = document.getElementById(focusName); - if (focusItem && focusItem.parentNode.parentNode.style.display=='block') - { - break; - } - else if (!focusItem) // last element - { - break; - } - focusItem=null; - index++; - } - return focusItem; - } - - this.NavPrev = function(index) - { - var focusItem; - while (1) - { - var focusName = 'Item'+index; - focusItem = document.getElementById(focusName); - if (focusItem && focusItem.parentNode.parentNode.style.display=='block') - { - break; - } - else if (!focusItem) // last element - { - break; - } - focusItem=null; - index--; - } - return focusItem; - } - - this.ProcessKeys = function(e) - { - if (e.type == "keydown") - { - this.repeatOn = false; - this.lastKey = e.keyCode; - } - else if (e.type == "keypress") - { - if (!this.repeatOn) - { - if (this.lastKey) this.repeatOn = true; - return false; // ignore first keypress after keydown - } - } - else if (e.type == "keyup") - { - this.lastKey = 0; - this.repeatOn = false; - } - return this.lastKey!=0; - } - - this.Nav = function(evt,itemIndex) - { - var e = (evt) ? evt : window.event; // for IE - if (e.keyCode==13) return true; - if (!this.ProcessKeys(e)) return false; - - if (this.lastKey==38) // Up - { - var newIndex = itemIndex-1; - var focusItem = this.NavPrev(newIndex); - if (focusItem) - { - var child = this.FindChildElement(focusItem.parentNode.parentNode.id); - if (child && child.style.display == 'block') // children visible - { - var n=0; - var tmpElem; - while (1) // search for last child - { - tmpElem = document.getElementById('Item'+newIndex+'_c'+n); - if (tmpElem) - { - focusItem = tmpElem; - } - else // found it! - { - break; - } - n++; - } - } - } - if (focusItem) - { - focusItem.focus(); - } - else // return focus to search field - { - parent.document.getElementById("MSearchField").focus(); - } - } - else if (this.lastKey==40) // Down - { - var newIndex = itemIndex+1; - var focusItem; - var item = document.getElementById('Item'+itemIndex); - var elem = this.FindChildElement(item.parentNode.parentNode.id); - if (elem && elem.style.display == 'block') // children visible - { - focusItem = document.getElementById('Item'+itemIndex+'_c0'); - } - if (!focusItem) focusItem = this.NavNext(newIndex); - if (focusItem) focusItem.focus(); - } - else if (this.lastKey==39) // Right - { - var item = document.getElementById('Item'+itemIndex); - var elem = this.FindChildElement(item.parentNode.parentNode.id); - if (elem) elem.style.display = 'block'; - } - else if (this.lastKey==37) // Left - { - var item = document.getElementById('Item'+itemIndex); - var elem = this.FindChildElement(item.parentNode.parentNode.id); - if (elem) elem.style.display = 'none'; - } - else if (this.lastKey==27) // Escape - { - parent.searchBox.CloseResultsWindow(); - parent.document.getElementById("MSearchField").focus(); - } - else if (this.lastKey==13) // Enter - { - return true; - } - return false; - } - - this.NavChild = function(evt,itemIndex,childIndex) - { - var e = (evt) ? evt : window.event; // for IE - if (e.keyCode==13) return true; - if (!this.ProcessKeys(e)) return false; - - if (this.lastKey==38) // Up - { - if (childIndex>0) - { - var newIndex = childIndex-1; - document.getElementById('Item'+itemIndex+'_c'+newIndex).focus(); - } - else // already at first child, jump to parent - { - document.getElementById('Item'+itemIndex).focus(); - } - } - else if (this.lastKey==40) // Down - { - var newIndex = childIndex+1; - var elem = document.getElementById('Item'+itemIndex+'_c'+newIndex); - if (!elem) // last child, jump to parent next parent - { - elem = this.NavNext(itemIndex+1); - } - if (elem) - { - elem.focus(); - } - } - else if (this.lastKey==27) // Escape - { - parent.searchBox.CloseResultsWindow(); - parent.document.getElementById("MSearchField").focus(); - } - else if (this.lastKey==13) // Enter - { - return true; - } - return false; - } -} - -function setKeyActions(elem,action) -{ - elem.setAttribute('onkeydown',action); - elem.setAttribute('onkeypress',action); - elem.setAttribute('onkeyup',action); -} - -function setClassAttr(elem,attr) -{ - elem.setAttribute('class',attr); - elem.setAttribute('className',attr); -} - -function createResults() -{ - var results = document.getElementById("SRResults"); - for (var e=0; ek7RCwB~R6VQOP#AvB$vH7i{6H{96zot$7cZT<7246EF5Np6N}+$IbiG6W zg#87A+NFaX+=_^xM1#gCtshC=E{%9^uQX_%?YwXvo{#q&MnpJ8uh(O?ZRc&~_1%^SsPxG@rfElJg-?U zm!Cz-IOn(qJP3kDp-^~qt+FGbl=5jNli^Wj_xIBG{Rc0en{!oFvyoNC7{V~T8}b>| z=jL2WIReZzX(YN(_9fV;BBD$VXQIxNasAL8ATvEu822WQ%mvv4FO#qs` BFGc_W diff --git a/docs/search/search_r.png b/docs/search/search_r.png deleted file mode 100644 index 97ee8b439687084201b79c6f776a41f495c6392a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 612 zcmV-q0-ODbP)PbXFRCwB?)W514K@j&X?z2*SxFI6-@HT2E2K=9X9%Pb zEK*!TBw&g(DMC;|A)uGlRkOS9vd-?zNs%bR4d$w+ox_iFnE8fvIvv7^5<(>Te12Li z7C)9srCzmK{ZcNM{YIl9j{DePFgOWiS%xG@5CnnnJa4nvY<^glbz7^|-ZY!dUkAwd z{gaTC@_>b5h~;ug#R0wRL0>o5!hxm*s0VW?8dr}O#zXTRTnrQm_Z7z1Mrnx>&p zD4qifUjzLvbVVWi?l?rUzwt^sdb~d!f_LEhsRVIXZtQ=qSxuxqm zEX#tf>$?M_Y1-LSDT)HqG?`%-%ZpY!#{N!rcNIiL;G7F0`l?)mNGTD9;f9F5Up3Kg zw}a<-JylhG&;=!>B+fZaCX+?C+kHYrP%c?X2!Zu_olK|GcS4A70HEy;vn)I0>0kLH z`jc(WIaaHc7!HS@f*^R^Znx8W=_jIl2oWJoQ*h1^$FX!>*PqR1J8k|fw}w_y}TpE>7m8DqDO<3z`OzXt$ccSejbEZCg@0000-{AmhX=Jf(#6djGiuzAr*{o?=JLmPLyc> z_*`QK&+BH@jWrYJ7>r6%keRM@)Qyv8R=enp0jiI>aWlGyB58O zFVR20d+y`K7vDw(hJF3;>dD*3-?v=<8M)@x|EEGLnJsniYK!2U1 Y!`|5biEc?d1`HDhPgg&ebxsLQ02F6;9RL6T diff --git a/docs/sync_off.png b/docs/sync_off.png deleted file mode 100644 index 3b443fc62892114406e3d399421b2a881b897acc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 853 zcmV-b1FHOqP)oT|#XixUYy%lpuf3i8{fX!o zUyDD0jOrAiT^tq>fLSOOABs-#u{dV^F$b{L9&!2=9&RmV;;8s^x&UqB$PCj4FdKbh zoB1WTskPUPu05XzFbA}=KZ-GP1fPpAfSs>6AHb12UlR%-i&uOlTpFNS7{jm@mkU1V zh`nrXr~+^lsV-s1dkZOaI|kYyVj3WBpPCY{n~yd%u%e+d=f%`N0FItMPtdgBb@py; zq@v6NVArhyTC7)ULw-Jy8y42S1~4n(3LkrW8mW(F-4oXUP3E`e#g**YyqI7h-J2zK zK{m9##m4ri!7N>CqQqCcnI3hqo1I;Yh&QLNY4T`*ptiQGozK>FF$!$+84Z`xwmeMh zJ0WT+OH$WYFALEaGj2_l+#DC3t7_S`vHpSivNeFbP6+r50cO8iu)`7i%Z4BTPh@_m3Tk!nAm^)5Bqnr%Ov|Baunj#&RPtRuK& z4RGz|D5HNrW83-#ydk}tVKJrNmyYt-sTxLGlJY5nc&Re zU4SgHNPx8~Yxwr$bsju?4q&%T1874xxzq+_%?h8_ofw~(bld=o3iC)LUNR*BY%c0y zWd_jX{Y8`l%z+ol1$@Qa?Cy!(0CVIEeYpKZ`(9{z>3$CIe;pJDQk$m3p}$>xBm4lb zKo{4S)`wdU9Ba9jJbVJ0C=SOefZe%d$8=2r={nu<_^a3~>c#t_U6dye5)JrR(_a^E f@}b6j1K9lwFJq@>o)+Ry00000NkvXXu0mjfWa5j* diff --git a/docs/sync_on.png b/docs/sync_on.png deleted file mode 100644 index e08320fb64e6fa33b573005ed6d8fe294e19db76..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 845 zcmV-T1G4;yP)Y;xxyHF2B5Wzm| zOOGupOTn@c(JmBOl)e;XMNnZuiTJP>rM8<|Q`7I_))aP?*T)ow&n59{}X4$3Goat zgjs?*aasfbrokzG5cT4K=uG`E14xZl@z)F={P0Y^?$4t z>v!teRnNZym<6h{7sLyF1V0HsfEl+l6TrZpsfr1}luH~F7L}ktXu|*uVX^RG$L0`K zWs3j|0tIvVe(N%_?2{(iCPFGf#B6Hjy6o&}D$A%W%jfO8_W%ZO#-mh}EM$LMn7joJ z05dHr!5Y92g+31l<%i1(=L1a1pXX+OYnalY>31V4K}BjyRe3)9n#;-cCVRD_IG1fT zOKGeNY8q;TL@K{dj@D^scf&VCs*-Jb>8b>|`b*osv52-!A?BpbYtTQBns5EAU**$m zSnVSm(teh>tQi*S*A>#ySc=n;`BHz`DuG4&g4Kf8lLhca+zvZ7t7RflD6-i-mcK=M z!=^P$*u2)bkY5asG4gsss!Hn%u~>}kIW`vMs%lJLH+u*9<4PaV_c6U`KqWXQH%+Nu zTv41O(^ZVi@qhjQdG!fbZw&y+2o!iYymO^?ud3{P*HdoX83YV*Uu_HB=?U&W9%AU# z80}k1SS-CXTU7dcQlsm<^oYLxVSseqY6NO}dc`Nj?8vrhNuCdm@^{a3AQ_>6myOj+ z`1RsLUXF|dm|3k7s2jD(B{rzE>WI2scH8i1;=O5Cc9xB3^aJk%fQjqsu+kH#0=_5a z0nCE8@dbQa-|YIuUVvG0L_IwHMEhOj$Mj4Uq05 X8=0q~qBNan00000NkvXXu0mjfptF>5 diff --git a/docs/tab_a.png b/docs/tab_a.png deleted file mode 100644 index 3b725c41c5a527a3a3e40097077d0e206a681247..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 142 zcmeAS@N?(olHy`uVBq!ia0vp^j6kfy!2~3aiye;!QlXwMjv*C{Z|8b*H5dputLHD# z=<0|*y7z(Vor?d;H&?EG&cXR}?!j-Lm&u1OOI7AIF5&c)RFE;&p0MYK>*Kl@eiymD r@|NpwKX@^z+;{u_Z~trSBfrMKa%3`zocFjEXaR$#tDnm{r-UW|TZ1%4 diff --git a/docs/tab_b.png b/docs/tab_b.png deleted file mode 100644 index e2b4a8638cb3496a016eaed9e16ffc12846dea18..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 169 zcmeAS@N?(olHy`uVBq!ia0vp^j6kfy!2~3aiye;!QU#tajv*C{Z}0l@H7kg?K0Lnr z!j&C6_(~HV9oQ0Pa6x{-v0AGV_E?vLn=ZI-;YrdjIl`U`uzuDWSP?o#Dmo{%SgM#oan kX~E1%D-|#H#QbHoIja2U-MgvsK&LQxy85}Sb4q9e0Efg%P5=M^ diff --git a/docs/tabs.css b/docs/tabs.css deleted file mode 100644 index a28614b..0000000 --- a/docs/tabs.css +++ /dev/null @@ -1 +0,0 @@ -.sm{position:relative;z-index:9999}.sm,.sm ul,.sm li{display:block;list-style:none;margin:0;padding:0;line-height:normal;direction:ltr;text-align:left;-webkit-tap-highlight-color:rgba(0,0,0,0)}.sm-rtl,.sm-rtl ul,.sm-rtl li{direction:rtl;text-align:right}.sm>li>h1,.sm>li>h2,.sm>li>h3,.sm>li>h4,.sm>li>h5,.sm>li>h6{margin:0;padding:0}.sm ul{display:none}.sm li,.sm a{position:relative}.sm a{display:block}.sm a.disabled{cursor:not-allowed}.sm:after{content:"\00a0";display:block;height:0;font:0/0 serif;clear:both;visibility:hidden;overflow:hidden}.sm,.sm *,.sm *:before,.sm *:after{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}#doc-content{overflow:auto;display:block;padding:0;margin:0;-webkit-overflow-scrolling:touch}.sm-dox{background-image:url("tab_b.png")}.sm-dox a,.sm-dox a:focus,.sm-dox a:hover,.sm-dox a:active{padding:0 12px;padding-right:43px;font-family:"Lucida Grande","Geneva","Helvetica",Arial,sans-serif;font-size:13px;font-weight:bold;line-height:36px;text-decoration:none;text-shadow:0 1px 1px rgba(255,255,255,0.9);color:#283a5d;outline:0}.sm-dox a:hover{background-image:url("tab_a.png");background-repeat:repeat-x;color:white;text-shadow:0 1px 1px black}.sm-dox a.current{color:#d23600}.sm-dox a.disabled{color:#bbb}.sm-dox a span.sub-arrow{position:absolute;top:50%;margin-top:-14px;left:auto;right:3px;width:28px;height:28px;overflow:hidden;font:bold 12px/28px monospace!important;text-align:center;text-shadow:none;background:rgba(255,255,255,0.5);-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px}.sm-dox a.highlighted span.sub-arrow:before{display:block;content:'-'}.sm-dox>li:first-child>a,.sm-dox>li:first-child>:not(ul) a{-moz-border-radius:5px 5px 0 0;-webkit-border-radius:5px;border-radius:5px 5px 0 0}.sm-dox>li:last-child>a,.sm-dox>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul{-moz-border-radius:0 0 5px 5px;-webkit-border-radius:0;border-radius:0 0 5px 5px}.sm-dox>li:last-child>a.highlighted,.sm-dox>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted{-moz-border-radius:0;-webkit-border-radius:0;border-radius:0}.sm-dox ul{background:rgba(162,162,162,0.1)}.sm-dox ul a,.sm-dox ul a:focus,.sm-dox ul a:hover,.sm-dox ul a:active{font-size:12px;border-left:8px solid transparent;line-height:36px;text-shadow:none;background-color:white;background-image:none}.sm-dox ul a:hover{background-image:url("tab_a.png");background-repeat:repeat-x;color:white;text-shadow:0 1px 1px black}.sm-dox ul ul a,.sm-dox ul ul a:hover,.sm-dox ul ul a:focus,.sm-dox ul ul a:active{border-left:16px solid transparent}.sm-dox ul ul ul a,.sm-dox ul ul ul a:hover,.sm-dox ul ul ul a:focus,.sm-dox ul ul ul a:active{border-left:24px solid transparent}.sm-dox ul ul ul ul a,.sm-dox ul ul ul ul a:hover,.sm-dox ul ul ul ul a:focus,.sm-dox ul ul ul ul a:active{border-left:32px solid transparent}.sm-dox ul ul ul ul ul a,.sm-dox ul ul ul ul ul a:hover,.sm-dox ul ul ul ul ul a:focus,.sm-dox ul ul ul ul ul a:active{border-left:40px solid transparent}@media(min-width:768px){.sm-dox ul{position:absolute;width:12em}.sm-dox li{float:left}.sm-dox.sm-rtl li{float:right}.sm-dox ul li,.sm-dox.sm-rtl ul li,.sm-dox.sm-vertical li{float:none}.sm-dox a{white-space:nowrap}.sm-dox ul a,.sm-dox.sm-vertical a{white-space:normal}.sm-dox .sm-nowrap>li>a,.sm-dox .sm-nowrap>li>:not(ul) a{white-space:nowrap}.sm-dox{padding:0 10px;background-image:url("tab_b.png");line-height:36px}.sm-dox a span.sub-arrow{top:50%;margin-top:-2px;right:12px;width:0;height:0;border-width:4px;border-style:solid dashed dashed dashed;border-color:#283a5d transparent transparent transparent;background:transparent;-moz-border-radius:0;-webkit-border-radius:0;border-radius:0}.sm-dox a,.sm-dox a:focus,.sm-dox a:active,.sm-dox a:hover,.sm-dox a.highlighted{padding:0 12px;background-image:url("tab_s.png");background-repeat:no-repeat;background-position:right;-moz-border-radius:0!important;-webkit-border-radius:0;border-radius:0!important}.sm-dox a:hover{background-image:url("tab_a.png");background-repeat:repeat-x;color:white;text-shadow:0 1px 1px black}.sm-dox a:hover span.sub-arrow{border-color:white transparent transparent transparent}.sm-dox a.has-submenu{padding-right:24px}.sm-dox li{border-top:0}.sm-dox>li>ul:before,.sm-dox>li>ul:after{content:'';position:absolute;top:-18px;left:30px;width:0;height:0;overflow:hidden;border-width:9px;border-style:dashed dashed solid dashed;border-color:transparent transparent #bbb transparent}.sm-dox>li>ul:after{top:-16px;left:31px;border-width:8px;border-color:transparent transparent #fff transparent}.sm-dox ul{border:1px solid #bbb;padding:5px 0;background:#fff;-moz-border-radius:5px!important;-webkit-border-radius:5px;border-radius:5px!important;-moz-box-shadow:0 5px 9px rgba(0,0,0,0.2);-webkit-box-shadow:0 5px 9px rgba(0,0,0,0.2);box-shadow:0 5px 9px rgba(0,0,0,0.2)}.sm-dox ul a span.sub-arrow{right:8px;top:50%;margin-top:-5px;border-width:5px;border-color:transparent transparent transparent #555;border-style:dashed dashed dashed solid}.sm-dox ul a,.sm-dox ul a:hover,.sm-dox ul a:focus,.sm-dox ul a:active,.sm-dox ul a.highlighted{color:#555;background-image:none;border:0!important;color:#555;background-image:none}.sm-dox ul a:hover{background-image:url("tab_a.png");background-repeat:repeat-x;color:white;text-shadow:0 1px 1px black}.sm-dox ul a:hover span.sub-arrow{border-color:transparent transparent transparent white}.sm-dox span.scroll-up,.sm-dox span.scroll-down{position:absolute;display:none;visibility:hidden;overflow:hidden;background:#fff;height:36px}.sm-dox span.scroll-up:hover,.sm-dox span.scroll-down:hover{background:#eee}.sm-dox span.scroll-up:hover span.scroll-up-arrow,.sm-dox span.scroll-up:hover span.scroll-down-arrow{border-color:transparent transparent #d23600 transparent}.sm-dox span.scroll-down:hover span.scroll-down-arrow{border-color:#d23600 transparent transparent transparent}.sm-dox span.scroll-up-arrow,.sm-dox span.scroll-down-arrow{position:absolute;top:0;left:50%;margin-left:-6px;width:0;height:0;overflow:hidden;border-width:6px;border-style:dashed dashed solid dashed;border-color:transparent transparent #555 transparent}.sm-dox span.scroll-down-arrow{top:8px;border-style:solid dashed dashed dashed;border-color:#555 transparent transparent transparent}.sm-dox.sm-rtl a.has-submenu{padding-right:12px;padding-left:24px}.sm-dox.sm-rtl a span.sub-arrow{right:auto;left:12px}.sm-dox.sm-rtl.sm-vertical a.has-submenu{padding:10px 20px}.sm-dox.sm-rtl.sm-vertical a span.sub-arrow{right:auto;left:8px;border-style:dashed solid dashed dashed;border-color:transparent #555 transparent transparent}.sm-dox.sm-rtl>li>ul:before{left:auto;right:30px}.sm-dox.sm-rtl>li>ul:after{left:auto;right:31px}.sm-dox.sm-rtl ul a.has-submenu{padding:10px 20px!important}.sm-dox.sm-rtl ul a span.sub-arrow{right:auto;left:8px;border-style:dashed solid dashed dashed;border-color:transparent #555 transparent transparent}.sm-dox.sm-vertical{padding:10px 0;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px}.sm-dox.sm-vertical a{padding:10px 20px}.sm-dox.sm-vertical a:hover,.sm-dox.sm-vertical a:focus,.sm-dox.sm-vertical a:active,.sm-dox.sm-vertical a.highlighted{background:#fff}.sm-dox.sm-vertical a.disabled{background-image:url("tab_b.png")}.sm-dox.sm-vertical a span.sub-arrow{right:8px;top:50%;margin-top:-5px;border-width:5px;border-style:dashed dashed dashed solid;border-color:transparent transparent transparent #555}.sm-dox.sm-vertical>li>ul:before,.sm-dox.sm-vertical>li>ul:after{display:none}.sm-dox.sm-vertical ul a{padding:10px 20px}.sm-dox.sm-vertical ul a:hover,.sm-dox.sm-vertical ul a:focus,.sm-dox.sm-vertical ul a:active,.sm-dox.sm-vertical ul a.highlighted{background:#eee}.sm-dox.sm-vertical ul a.disabled{background:#fff}} \ No newline at end of file diff --git a/docs/tinyxml2_8h_source.html b/docs/tinyxml2_8h_source.html deleted file mode 100644 index 7a25e69..0000000 --- a/docs/tinyxml2_8h_source.html +++ /dev/null @@ -1,180 +0,0 @@ - - - - - - - -TinyXML-2: tinyxml2.h Source File - - - - - - - - - -
-
- - - - - - -
-
TinyXML-2 -  5.0.1 -
-
-
- - - - - - - -
- -
-
- - -
- -
- -
-
-
tinyxml2.h
-
-
-
1 /*
2 Original code by Lee Thomason (www.grinninglizard.com)
3 
4 This software is provided 'as-is', without any express or implied
5 warranty. In no event will the authors be held liable for any
6 damages arising from the use of this software.
7 
8 Permission is granted to anyone to use this software for any
9 purpose, including commercial applications, and to alter it and
10 redistribute it freely, subject to the following restrictions:
11 
12 1. The origin of this software must not be misrepresented; you must
13 not claim that you wrote the original software. If you use this
14 software in a product, an acknowledgment in the product documentation
15 would be appreciated but is not required.
16 
17 2. Altered source versions must be plainly marked as such, and
18 must not be misrepresented as being the original software.
19 
20 3. This notice may not be removed or altered from any source
21 distribution.
22 */
23 
24 #ifndef TINYXML2_INCLUDED
25 #define TINYXML2_INCLUDED
26 
27 #if defined(ANDROID_NDK) || defined(__BORLANDC__) || defined(__QNXNTO__)
28 # include <ctype.h>
29 # include <limits.h>
30 # include <stdio.h>
31 # include <stdlib.h>
32 # include <string.h>
33 # if defined(__PS3__)
34 # include <stddef.h>
35 # endif
36 #else
37 # include <cctype>
38 # include <climits>
39 # include <cstdio>
40 # include <cstdlib>
41 # include <cstring>
42 #endif
43 #include <stdint.h>
44 
45 /*
46  TODO: intern strings instead of allocation.
47 */
48 /*
49  gcc:
50  g++ -Wall -DDEBUG tinyxml2.cpp xmltest.cpp -o gccxmltest.exe
51 
52  Formatting, Artistic Style:
53  AStyle.exe --style=1tbs --indent-switches --break-closing-brackets --indent-preprocessor tinyxml2.cpp tinyxml2.h
54 */
55 
56 #if defined( _DEBUG ) || defined (__DEBUG__)
57 # ifndef DEBUG
58 # define DEBUG
59 # endif
60 #endif
61 
62 #ifdef _MSC_VER
63 # pragma warning(push)
64 # pragma warning(disable: 4251)
65 #endif
66 
67 #ifdef _WIN32
68 # ifdef TINYXML2_EXPORT
69 # define TINYXML2_LIB __declspec(dllexport)
70 # elif defined(TINYXML2_IMPORT)
71 # define TINYXML2_LIB __declspec(dllimport)
72 # else
73 # define TINYXML2_LIB
74 # endif
75 #elif __GNUC__ >= 4
76 # define TINYXML2_LIB __attribute__((visibility("default")))
77 #else
78 # define TINYXML2_LIB
79 #endif
80 
81 
82 #if defined(DEBUG)
83 # if defined(_MSC_VER)
84 # // "(void)0," is for suppressing C4127 warning in "assert(false)", "assert(true)" and the like
85 # define TIXMLASSERT( x ) if ( !((void)0,(x))) { __debugbreak(); }
86 # elif defined (ANDROID_NDK)
87 # include <android/log.h>
88 # define TIXMLASSERT( x ) if ( !(x)) { __android_log_assert( "assert", "grinliz", "ASSERT in '%s' at %d.", __FILE__, __LINE__ ); }
89 # else
90 # include <assert.h>
91 # define TIXMLASSERT assert
92 # endif
93 #else
94 # define TIXMLASSERT( x ) {}
95 #endif
96 
97 
98 /* Versioning, past 1.0.14:
99  http://semver.org/
100 */
101 static const int TIXML2_MAJOR_VERSION = 5;
102 static const int TIXML2_MINOR_VERSION = 0;
103 static const int TIXML2_PATCH_VERSION = 1;
104 
105 namespace tinyxml2
106 {
107 class XMLDocument;
108 class XMLElement;
109 class XMLAttribute;
110 class XMLComment;
111 class XMLText;
112 class XMLDeclaration;
113 class XMLUnknown;
114 class XMLPrinter;
115 
116 /*
117  A class that wraps strings. Normally stores the start and end
118  pointers into the XML file itself, and will apply normalization
119  and entity translation if actually read. Can also store (and memory
120  manage) a traditional char[]
121 */
122 class StrPair
123 {
124 public:
125  enum {
126  NEEDS_ENTITY_PROCESSING = 0x01,
127  NEEDS_NEWLINE_NORMALIZATION = 0x02,
128  NEEDS_WHITESPACE_COLLAPSING = 0x04,
129 
130  TEXT_ELEMENT = NEEDS_ENTITY_PROCESSING | NEEDS_NEWLINE_NORMALIZATION,
131  TEXT_ELEMENT_LEAVE_ENTITIES = NEEDS_NEWLINE_NORMALIZATION,
132  ATTRIBUTE_NAME = 0,
133  ATTRIBUTE_VALUE = NEEDS_ENTITY_PROCESSING | NEEDS_NEWLINE_NORMALIZATION,
134  ATTRIBUTE_VALUE_LEAVE_ENTITIES = NEEDS_NEWLINE_NORMALIZATION,
135  COMMENT = NEEDS_NEWLINE_NORMALIZATION
136  };
137 
138  StrPair() : _flags( 0 ), _start( 0 ), _end( 0 ) {}
139  ~StrPair();
140 
141  void Set( char* start, char* end, int flags ) {
142  TIXMLASSERT( start );
143  TIXMLASSERT( end );
144  Reset();
145  _start = start;
146  _end = end;
147  _flags = flags | NEEDS_FLUSH;
148  }
149 
150  const char* GetStr();
151 
152  bool Empty() const {
153  return _start == _end;
154  }
155 
156  void SetInternedStr( const char* str ) {
157  Reset();
158  _start = const_cast<char*>(str);
159  }
160 
161  void SetStr( const char* str, int flags=0 );
162 
163  char* ParseText( char* in, const char* endTag, int strFlags, int* curLineNumPtr );
164  char* ParseName( char* in );
165 
166  void TransferTo( StrPair* other );
167  void Reset();
168 
169 private:
170  void CollapseWhitespace();
171 
172  enum {
173  NEEDS_FLUSH = 0x100,
174  NEEDS_DELETE = 0x200
175  };
176 
177  int _flags;
178  char* _start;
179  char* _end;
180 
181  StrPair( const StrPair& other ); // not supported
182  void operator=( StrPair& other ); // not supported, use TransferTo()
183 };
184 
185 
186 /*
187  A dynamic array of Plain Old Data. Doesn't support constructors, etc.
188  Has a small initial memory pool, so that low or no usage will not
189  cause a call to new/delete
190 */
191 template <class T, int INITIAL_SIZE>
192 class DynArray
193 {
194 public:
195  DynArray() {
196  _mem = _pool;
197  _allocated = INITIAL_SIZE;
198  _size = 0;
199  }
200 
201  ~DynArray() {
202  if ( _mem != _pool ) {
203  delete [] _mem;
204  }
205  }
206 
207  void Clear() {
208  _size = 0;
209  }
210 
211  void Push( T t ) {
212  TIXMLASSERT( _size < INT_MAX );
213  EnsureCapacity( _size+1 );
214  _mem[_size] = t;
215  ++_size;
216  }
217 
218  T* PushArr( int count ) {
219  TIXMLASSERT( count >= 0 );
220  TIXMLASSERT( _size <= INT_MAX - count );
221  EnsureCapacity( _size+count );
222  T* ret = &_mem[_size];
223  _size += count;
224  return ret;
225  }
226 
227  T Pop() {
228  TIXMLASSERT( _size > 0 );
229  --_size;
230  return _mem[_size];
231  }
232 
233  void PopArr( int count ) {
234  TIXMLASSERT( _size >= count );
235  _size -= count;
236  }
237 
238  bool Empty() const {
239  return _size == 0;
240  }
241 
242  T& operator[](int i) {
243  TIXMLASSERT( i>= 0 && i < _size );
244  return _mem[i];
245  }
246 
247  const T& operator[](int i) const {
248  TIXMLASSERT( i>= 0 && i < _size );
249  return _mem[i];
250  }
251 
252  const T& PeekTop() const {
253  TIXMLASSERT( _size > 0 );
254  return _mem[ _size - 1];
255  }
256 
257  int Size() const {
258  TIXMLASSERT( _size >= 0 );
259  return _size;
260  }
261 
262  int Capacity() const {
263  TIXMLASSERT( _allocated >= INITIAL_SIZE );
264  return _allocated;
265  }
266 
267  void SwapRemove(int i) {
268  TIXMLASSERT(i >= 0 && i < _size);
269  TIXMLASSERT(_size > 0);
270  _mem[i] = _mem[_size - 1];
271  --_size;
272  }
273 
274  const T* Mem() const {
275  TIXMLASSERT( _mem );
276  return _mem;
277  }
278 
279  T* Mem() {
280  TIXMLASSERT( _mem );
281  return _mem;
282  }
283 
284 private:
285  DynArray( const DynArray& ); // not supported
286  void operator=( const DynArray& ); // not supported
287 
288  void EnsureCapacity( int cap ) {
289  TIXMLASSERT( cap > 0 );
290  if ( cap > _allocated ) {
291  TIXMLASSERT( cap <= INT_MAX / 2 );
292  int newAllocated = cap * 2;
293  T* newMem = new T[newAllocated];
294  TIXMLASSERT( newAllocated >= _size );
295  memcpy( newMem, _mem, sizeof(T)*_size ); // warning: not using constructors, only works for PODs
296  if ( _mem != _pool ) {
297  delete [] _mem;
298  }
299  _mem = newMem;
300  _allocated = newAllocated;
301  }
302  }
303 
304  T* _mem;
305  T _pool[INITIAL_SIZE];
306  int _allocated; // objects allocated
307  int _size; // number objects in use
308 };
309 
310 
311 /*
312  Parent virtual class of a pool for fast allocation
313  and deallocation of objects.
314 */
315 class MemPool
316 {
317 public:
318  MemPool() {}
319  virtual ~MemPool() {}
320 
321  virtual int ItemSize() const = 0;
322  virtual void* Alloc() = 0;
323  virtual void Free( void* ) = 0;
324  virtual void SetTracked() = 0;
325  virtual void Clear() = 0;
326 };
327 
328 
329 /*
330  Template child class to create pools of the correct type.
331 */
332 template< int ITEM_SIZE >
333 class MemPoolT : public MemPool
334 {
335 public:
336  MemPoolT() : _root(0), _currentAllocs(0), _nAllocs(0), _maxAllocs(0), _nUntracked(0) {}
337  ~MemPoolT() {
338  Clear();
339  }
340 
341  void Clear() {
342  // Delete the blocks.
343  while( !_blockPtrs.Empty()) {
344  Block* b = _blockPtrs.Pop();
345  delete b;
346  }
347  _root = 0;
348  _currentAllocs = 0;
349  _nAllocs = 0;
350  _maxAllocs = 0;
351  _nUntracked = 0;
352  }
353 
354  virtual int ItemSize() const {
355  return ITEM_SIZE;
356  }
357  int CurrentAllocs() const {
358  return _currentAllocs;
359  }
360 
361  virtual void* Alloc() {
362  if ( !_root ) {
363  // Need a new block.
364  Block* block = new Block();
365  _blockPtrs.Push( block );
366 
367  Item* blockItems = block->items;
368  for( int i = 0; i < ITEMS_PER_BLOCK - 1; ++i ) {
369  blockItems[i].next = &(blockItems[i + 1]);
370  }
371  blockItems[ITEMS_PER_BLOCK - 1].next = 0;
372  _root = blockItems;
373  }
374  Item* const result = _root;
375  TIXMLASSERT( result != 0 );
376  _root = _root->next;
377 
378  ++_currentAllocs;
379  if ( _currentAllocs > _maxAllocs ) {
380  _maxAllocs = _currentAllocs;
381  }
382  ++_nAllocs;
383  ++_nUntracked;
384  return result;
385  }
386 
387  virtual void Free( void* mem ) {
388  if ( !mem ) {
389  return;
390  }
391  --_currentAllocs;
392  Item* item = static_cast<Item*>( mem );
393 #ifdef DEBUG
394  memset( item, 0xfe, sizeof( *item ) );
395 #endif
396  item->next = _root;
397  _root = item;
398  }
399  void Trace( const char* name ) {
400  printf( "Mempool %s watermark=%d [%dk] current=%d size=%d nAlloc=%d blocks=%d\n",
401  name, _maxAllocs, _maxAllocs * ITEM_SIZE / 1024, _currentAllocs,
402  ITEM_SIZE, _nAllocs, _blockPtrs.Size() );
403  }
404 
405  void SetTracked() {
406  --_nUntracked;
407  }
408 
409  int Untracked() const {
410  return _nUntracked;
411  }
412 
413  // This number is perf sensitive. 4k seems like a good tradeoff on my machine.
414  // The test file is large, 170k.
415  // Release: VS2010 gcc(no opt)
416  // 1k: 4000
417  // 2k: 4000
418  // 4k: 3900 21000
419  // 16k: 5200
420  // 32k: 4300
421  // 64k: 4000 21000
422  // Declared public because some compilers do not accept to use ITEMS_PER_BLOCK
423  // in private part if ITEMS_PER_BLOCK is private
424  enum { ITEMS_PER_BLOCK = (4 * 1024) / ITEM_SIZE };
425 
426 private:
427  MemPoolT( const MemPoolT& ); // not supported
428  void operator=( const MemPoolT& ); // not supported
429 
430  union Item {
431  Item* next;
432  char itemData[ITEM_SIZE];
433  };
434  struct Block {
435  Item items[ITEMS_PER_BLOCK];
436  };
437  DynArray< Block*, 10 > _blockPtrs;
438  Item* _root;
439 
440  int _currentAllocs;
441  int _nAllocs;
442  int _maxAllocs;
443  int _nUntracked;
444 };
445 
446 
447 
467 class TINYXML2_LIB XMLVisitor
468 {
469 public:
470  virtual ~XMLVisitor() {}
471 
473  virtual bool VisitEnter( const XMLDocument& /*doc*/ ) {
474  return true;
475  }
477  virtual bool VisitExit( const XMLDocument& /*doc*/ ) {
478  return true;
479  }
480 
482  virtual bool VisitEnter( const XMLElement& /*element*/, const XMLAttribute* /*firstAttribute*/ ) {
483  return true;
484  }
486  virtual bool VisitExit( const XMLElement& /*element*/ ) {
487  return true;
488  }
489 
491  virtual bool Visit( const XMLDeclaration& /*declaration*/ ) {
492  return true;
493  }
495  virtual bool Visit( const XMLText& /*text*/ ) {
496  return true;
497  }
499  virtual bool Visit( const XMLComment& /*comment*/ ) {
500  return true;
501  }
503  virtual bool Visit( const XMLUnknown& /*unknown*/ ) {
504  return true;
505  }
506 };
507 
508 // WARNING: must match XMLDocument::_errorNames[]
509 enum XMLError {
510  XML_SUCCESS = 0,
511  XML_NO_ATTRIBUTE,
512  XML_WRONG_ATTRIBUTE_TYPE,
513  XML_ERROR_FILE_NOT_FOUND,
514  XML_ERROR_FILE_COULD_NOT_BE_OPENED,
515  XML_ERROR_FILE_READ_ERROR,
516  UNUSED_XML_ERROR_ELEMENT_MISMATCH, // remove at next major version
517  XML_ERROR_PARSING_ELEMENT,
518  XML_ERROR_PARSING_ATTRIBUTE,
519  UNUSED_XML_ERROR_IDENTIFYING_TAG, // remove at next major version
520  XML_ERROR_PARSING_TEXT,
521  XML_ERROR_PARSING_CDATA,
522  XML_ERROR_PARSING_COMMENT,
523  XML_ERROR_PARSING_DECLARATION,
524  XML_ERROR_PARSING_UNKNOWN,
525  XML_ERROR_EMPTY_DOCUMENT,
526  XML_ERROR_MISMATCHED_ELEMENT,
527  XML_ERROR_PARSING,
528  XML_CAN_NOT_CONVERT_TEXT,
529  XML_NO_TEXT_NODE,
530 
531  XML_ERROR_COUNT
532 };
533 
534 
535 /*
536  Utility functionality.
537 */
538 class TINYXML2_LIB XMLUtil
539 {
540 public:
541  static const char* SkipWhiteSpace( const char* p, int* curLineNumPtr ) {
542  TIXMLASSERT( p );
543 
544  while( IsWhiteSpace(*p) ) {
545  if (curLineNumPtr && *p == '\n') {
546  ++(*curLineNumPtr);
547  }
548  ++p;
549  }
550  TIXMLASSERT( p );
551  return p;
552  }
553  static char* SkipWhiteSpace( char* p, int* curLineNumPtr ) {
554  return const_cast<char*>( SkipWhiteSpace( const_cast<const char*>(p), curLineNumPtr ) );
555  }
556 
557  // Anything in the high order range of UTF-8 is assumed to not be whitespace. This isn't
558  // correct, but simple, and usually works.
559  static bool IsWhiteSpace( char p ) {
560  return !IsUTF8Continuation(p) && isspace( static_cast<unsigned char>(p) );
561  }
562 
563  inline static bool IsNameStartChar( unsigned char ch ) {
564  if ( ch >= 128 ) {
565  // This is a heuristic guess in attempt to not implement Unicode-aware isalpha()
566  return true;
567  }
568  if ( isalpha( ch ) ) {
569  return true;
570  }
571  return ch == ':' || ch == '_';
572  }
573 
574  inline static bool IsNameChar( unsigned char ch ) {
575  return IsNameStartChar( ch )
576  || isdigit( ch )
577  || ch == '.'
578  || ch == '-';
579  }
580 
581  inline static bool StringEqual( const char* p, const char* q, int nChar=INT_MAX ) {
582  if ( p == q ) {
583  return true;
584  }
585  TIXMLASSERT( p );
586  TIXMLASSERT( q );
587  TIXMLASSERT( nChar >= 0 );
588  return strncmp( p, q, nChar ) == 0;
589  }
590 
591  inline static bool IsUTF8Continuation( char p ) {
592  return ( p & 0x80 ) != 0;
593  }
594 
595  static const char* ReadBOM( const char* p, bool* hasBOM );
596  // p is the starting location,
597  // the UTF-8 value of the entity will be placed in value, and length filled in.
598  static const char* GetCharacterRef( const char* p, char* value, int* length );
599  static void ConvertUTF32ToUTF8( unsigned long input, char* output, int* length );
600 
601  // converts primitive types to strings
602  static void ToStr( int v, char* buffer, int bufferSize );
603  static void ToStr( unsigned v, char* buffer, int bufferSize );
604  static void ToStr( bool v, char* buffer, int bufferSize );
605  static void ToStr( float v, char* buffer, int bufferSize );
606  static void ToStr( double v, char* buffer, int bufferSize );
607  static void ToStr(int64_t v, char* buffer, int bufferSize);
608 
609  // converts strings to primitive types
610  static bool ToInt( const char* str, int* value );
611  static bool ToUnsigned( const char* str, unsigned* value );
612  static bool ToBool( const char* str, bool* value );
613  static bool ToFloat( const char* str, float* value );
614  static bool ToDouble( const char* str, double* value );
615  static bool ToInt64(const char* str, int64_t* value);
616 
617  // Changes what is serialized for a boolean value.
618  // Default to "true" and "false". Shouldn't be changed
619  // unless you have a special testing or compatibility need.
620  // Be careful: static, global, & not thread safe.
621  // Be sure to set static const memory as parameters.
622  static void SetBoolSerialization(const char* writeTrue, const char* writeFalse);
623 
624 private:
625  static const char* writeBoolTrue;
626  static const char* writeBoolFalse;
627 };
628 
629 
655 class TINYXML2_LIB XMLNode
656 {
657  friend class XMLDocument;
658  friend class XMLElement;
659 public:
660 
662  const XMLDocument* GetDocument() const {
663  TIXMLASSERT( _document );
664  return _document;
665  }
668  TIXMLASSERT( _document );
669  return _document;
670  }
671 
673  virtual XMLElement* ToElement() {
674  return 0;
675  }
677  virtual XMLText* ToText() {
678  return 0;
679  }
681  virtual XMLComment* ToComment() {
682  return 0;
683  }
685  virtual XMLDocument* ToDocument() {
686  return 0;
687  }
690  return 0;
691  }
693  virtual XMLUnknown* ToUnknown() {
694  return 0;
695  }
696 
697  virtual const XMLElement* ToElement() const {
698  return 0;
699  }
700  virtual const XMLText* ToText() const {
701  return 0;
702  }
703  virtual const XMLComment* ToComment() const {
704  return 0;
705  }
706  virtual const XMLDocument* ToDocument() const {
707  return 0;
708  }
709  virtual const XMLDeclaration* ToDeclaration() const {
710  return 0;
711  }
712  virtual const XMLUnknown* ToUnknown() const {
713  return 0;
714  }
715 
725  const char* Value() const;
726 
730  void SetValue( const char* val, bool staticMem=false );
731 
733  int GetLineNum() const { return _parseLineNum; }
734 
736  const XMLNode* Parent() const {
737  return _parent;
738  }
739 
740  XMLNode* Parent() {
741  return _parent;
742  }
743 
745  bool NoChildren() const {
746  return !_firstChild;
747  }
748 
750  const XMLNode* FirstChild() const {
751  return _firstChild;
752  }
753 
754  XMLNode* FirstChild() {
755  return _firstChild;
756  }
757 
761  const XMLElement* FirstChildElement( const char* name = 0 ) const;
762 
763  XMLElement* FirstChildElement( const char* name = 0 ) {
764  return const_cast<XMLElement*>(const_cast<const XMLNode*>(this)->FirstChildElement( name ));
765  }
766 
768  const XMLNode* LastChild() const {
769  return _lastChild;
770  }
771 
772  XMLNode* LastChild() {
773  return _lastChild;
774  }
775 
779  const XMLElement* LastChildElement( const char* name = 0 ) const;
780 
781  XMLElement* LastChildElement( const char* name = 0 ) {
782  return const_cast<XMLElement*>(const_cast<const XMLNode*>(this)->LastChildElement(name) );
783  }
784 
786  const XMLNode* PreviousSibling() const {
787  return _prev;
788  }
789 
790  XMLNode* PreviousSibling() {
791  return _prev;
792  }
793 
795  const XMLElement* PreviousSiblingElement( const char* name = 0 ) const ;
796 
797  XMLElement* PreviousSiblingElement( const char* name = 0 ) {
798  return const_cast<XMLElement*>(const_cast<const XMLNode*>(this)->PreviousSiblingElement( name ) );
799  }
800 
802  const XMLNode* NextSibling() const {
803  return _next;
804  }
805 
806  XMLNode* NextSibling() {
807  return _next;
808  }
809 
811  const XMLElement* NextSiblingElement( const char* name = 0 ) const;
812 
813  XMLElement* NextSiblingElement( const char* name = 0 ) {
814  return const_cast<XMLElement*>(const_cast<const XMLNode*>(this)->NextSiblingElement( name ) );
815  }
816 
824  XMLNode* InsertEndChild( XMLNode* addThis );
825 
826  XMLNode* LinkEndChild( XMLNode* addThis ) {
827  return InsertEndChild( addThis );
828  }
836  XMLNode* InsertFirstChild( XMLNode* addThis );
845  XMLNode* InsertAfterChild( XMLNode* afterThis, XMLNode* addThis );
846 
850  void DeleteChildren();
851 
855  void DeleteChild( XMLNode* node );
856 
866  virtual XMLNode* ShallowClone( XMLDocument* document ) const = 0;
867 
881  XMLNode* DeepClone( XMLDocument* target ) const;
882 
889  virtual bool ShallowEqual( const XMLNode* compare ) const = 0;
890 
913  virtual bool Accept( XMLVisitor* visitor ) const = 0;
914 
920  void SetUserData(void* userData) { _userData = userData; }
921 
927  void* GetUserData() const { return _userData; }
928 
929 protected:
930  XMLNode( XMLDocument* );
931  virtual ~XMLNode();
932 
933  virtual char* ParseDeep( char* p, StrPair* parentEndTag, int* curLineNumPtr);
934 
935  XMLDocument* _document;
936  XMLNode* _parent;
937  mutable StrPair _value;
938  int _parseLineNum;
939 
940  XMLNode* _firstChild;
941  XMLNode* _lastChild;
942 
943  XMLNode* _prev;
944  XMLNode* _next;
945 
946  void* _userData;
947 
948 private:
949  MemPool* _memPool;
950  void Unlink( XMLNode* child );
951  static void DeleteNode( XMLNode* node );
952  void InsertChildPreamble( XMLNode* insertThis ) const;
953  const XMLElement* ToElementWithName( const char* name ) const;
954 
955  XMLNode( const XMLNode& ); // not supported
956  XMLNode& operator=( const XMLNode& ); // not supported
957 };
958 
959 
972 class TINYXML2_LIB XMLText : public XMLNode
973 {
974  friend class XMLDocument;
975 public:
976  virtual bool Accept( XMLVisitor* visitor ) const;
977 
978  virtual XMLText* ToText() {
979  return this;
980  }
981  virtual const XMLText* ToText() const {
982  return this;
983  }
984 
986  void SetCData( bool isCData ) {
987  _isCData = isCData;
988  }
990  bool CData() const {
991  return _isCData;
992  }
993 
994  virtual XMLNode* ShallowClone( XMLDocument* document ) const;
995  virtual bool ShallowEqual( const XMLNode* compare ) const;
996 
997 protected:
998  XMLText( XMLDocument* doc ) : XMLNode( doc ), _isCData( false ) {}
999  virtual ~XMLText() {}
1000 
1001  char* ParseDeep( char* p, StrPair* parentEndTag, int* curLineNumPtr );
1002 
1003 private:
1004  bool _isCData;
1005 
1006  XMLText( const XMLText& ); // not supported
1007  XMLText& operator=( const XMLText& ); // not supported
1008 };
1009 
1010 
1012 class TINYXML2_LIB XMLComment : public XMLNode
1013 {
1014  friend class XMLDocument;
1015 public:
1016  virtual XMLComment* ToComment() {
1017  return this;
1018  }
1019  virtual const XMLComment* ToComment() const {
1020  return this;
1021  }
1022 
1023  virtual bool Accept( XMLVisitor* visitor ) const;
1024 
1025  virtual XMLNode* ShallowClone( XMLDocument* document ) const;
1026  virtual bool ShallowEqual( const XMLNode* compare ) const;
1027 
1028 protected:
1029  XMLComment( XMLDocument* doc );
1030  virtual ~XMLComment();
1031 
1032  char* ParseDeep( char* p, StrPair* parentEndTag, int* curLineNumPtr);
1033 
1034 private:
1035  XMLComment( const XMLComment& ); // not supported
1036  XMLComment& operator=( const XMLComment& ); // not supported
1037 };
1038 
1039 
1051 class TINYXML2_LIB XMLDeclaration : public XMLNode
1052 {
1053  friend class XMLDocument;
1054 public:
1056  return this;
1057  }
1058  virtual const XMLDeclaration* ToDeclaration() const {
1059  return this;
1060  }
1061 
1062  virtual bool Accept( XMLVisitor* visitor ) const;
1063 
1064  virtual XMLNode* ShallowClone( XMLDocument* document ) const;
1065  virtual bool ShallowEqual( const XMLNode* compare ) const;
1066 
1067 protected:
1068  XMLDeclaration( XMLDocument* doc );
1069  virtual ~XMLDeclaration();
1070 
1071  char* ParseDeep( char* p, StrPair* parentEndTag, int* curLineNumPtr );
1072 
1073 private:
1074  XMLDeclaration( const XMLDeclaration& ); // not supported
1075  XMLDeclaration& operator=( const XMLDeclaration& ); // not supported
1076 };
1077 
1078 
1086 class TINYXML2_LIB XMLUnknown : public XMLNode
1087 {
1088  friend class XMLDocument;
1089 public:
1090  virtual XMLUnknown* ToUnknown() {
1091  return this;
1092  }
1093  virtual const XMLUnknown* ToUnknown() const {
1094  return this;
1095  }
1096 
1097  virtual bool Accept( XMLVisitor* visitor ) const;
1098 
1099  virtual XMLNode* ShallowClone( XMLDocument* document ) const;
1100  virtual bool ShallowEqual( const XMLNode* compare ) const;
1101 
1102 protected:
1103  XMLUnknown( XMLDocument* doc );
1104  virtual ~XMLUnknown();
1105 
1106  char* ParseDeep( char* p, StrPair* parentEndTag, int* curLineNumPtr );
1107 
1108 private:
1109  XMLUnknown( const XMLUnknown& ); // not supported
1110  XMLUnknown& operator=( const XMLUnknown& ); // not supported
1111 };
1112 
1113 
1114 
1121 class TINYXML2_LIB XMLAttribute
1122 {
1123  friend class XMLElement;
1124 public:
1126  const char* Name() const;
1127 
1129  const char* Value() const;
1130 
1132  int GetLineNum() const { return _parseLineNum; }
1133 
1135  const XMLAttribute* Next() const {
1136  return _next;
1137  }
1138 
1143  int IntValue() const {
1144  int i = 0;
1145  QueryIntValue(&i);
1146  return i;
1147  }
1148 
1149  int64_t Int64Value() const {
1150  int64_t i = 0;
1151  QueryInt64Value(&i);
1152  return i;
1153  }
1154 
1156  unsigned UnsignedValue() const {
1157  unsigned i=0;
1158  QueryUnsignedValue( &i );
1159  return i;
1160  }
1162  bool BoolValue() const {
1163  bool b=false;
1164  QueryBoolValue( &b );
1165  return b;
1166  }
1168  double DoubleValue() const {
1169  double d=0;
1170  QueryDoubleValue( &d );
1171  return d;
1172  }
1174  float FloatValue() const {
1175  float f=0;
1176  QueryFloatValue( &f );
1177  return f;
1178  }
1179 
1184  XMLError QueryIntValue( int* value ) const;
1186  XMLError QueryUnsignedValue( unsigned int* value ) const;
1188  XMLError QueryInt64Value(int64_t* value) const;
1190  XMLError QueryBoolValue( bool* value ) const;
1192  XMLError QueryDoubleValue( double* value ) const;
1194  XMLError QueryFloatValue( float* value ) const;
1195 
1197  void SetAttribute( const char* value );
1199  void SetAttribute( int value );
1201  void SetAttribute( unsigned value );
1203  void SetAttribute(int64_t value);
1205  void SetAttribute( bool value );
1207  void SetAttribute( double value );
1209  void SetAttribute( float value );
1210 
1211 private:
1212  enum { BUF_SIZE = 200 };
1213 
1214  XMLAttribute() : _parseLineNum( 0 ), _next( 0 ), _memPool( 0 ) {}
1215  virtual ~XMLAttribute() {}
1216 
1217  XMLAttribute( const XMLAttribute& ); // not supported
1218  void operator=( const XMLAttribute& ); // not supported
1219  void SetName( const char* name );
1220 
1221  char* ParseDeep( char* p, bool processEntities, int* curLineNumPtr );
1222 
1223  mutable StrPair _name;
1224  mutable StrPair _value;
1225  int _parseLineNum;
1226  XMLAttribute* _next;
1227  MemPool* _memPool;
1228 };
1229 
1230 
1235 class TINYXML2_LIB XMLElement : public XMLNode
1236 {
1237  friend class XMLDocument;
1238 public:
1240  const char* Name() const {
1241  return Value();
1242  }
1244  void SetName( const char* str, bool staticMem=false ) {
1245  SetValue( str, staticMem );
1246  }
1247 
1248  virtual XMLElement* ToElement() {
1249  return this;
1250  }
1251  virtual const XMLElement* ToElement() const {
1252  return this;
1253  }
1254  virtual bool Accept( XMLVisitor* visitor ) const;
1255 
1279  const char* Attribute( const char* name, const char* value=0 ) const;
1280 
1287  int IntAttribute(const char* name, int defaultValue = 0) const;
1289  unsigned UnsignedAttribute(const char* name, unsigned defaultValue = 0) const;
1291  int64_t Int64Attribute(const char* name, int64_t defaultValue = 0) const;
1293  bool BoolAttribute(const char* name, bool defaultValue = false) const;
1295  double DoubleAttribute(const char* name, double defaultValue = 0) const;
1297  float FloatAttribute(const char* name, float defaultValue = 0) const;
1298 
1312  XMLError QueryIntAttribute( const char* name, int* value ) const {
1313  const XMLAttribute* a = FindAttribute( name );
1314  if ( !a ) {
1315  return XML_NO_ATTRIBUTE;
1316  }
1317  return a->QueryIntValue( value );
1318  }
1319 
1321  XMLError QueryUnsignedAttribute( const char* name, unsigned int* value ) const {
1322  const XMLAttribute* a = FindAttribute( name );
1323  if ( !a ) {
1324  return XML_NO_ATTRIBUTE;
1325  }
1326  return a->QueryUnsignedValue( value );
1327  }
1328 
1330  XMLError QueryInt64Attribute(const char* name, int64_t* value) const {
1331  const XMLAttribute* a = FindAttribute(name);
1332  if (!a) {
1333  return XML_NO_ATTRIBUTE;
1334  }
1335  return a->QueryInt64Value(value);
1336  }
1337 
1339  XMLError QueryBoolAttribute( const char* name, bool* value ) const {
1340  const XMLAttribute* a = FindAttribute( name );
1341  if ( !a ) {
1342  return XML_NO_ATTRIBUTE;
1343  }
1344  return a->QueryBoolValue( value );
1345  }
1347  XMLError QueryDoubleAttribute( const char* name, double* value ) const {
1348  const XMLAttribute* a = FindAttribute( name );
1349  if ( !a ) {
1350  return XML_NO_ATTRIBUTE;
1351  }
1352  return a->QueryDoubleValue( value );
1353  }
1355  XMLError QueryFloatAttribute( const char* name, float* value ) const {
1356  const XMLAttribute* a = FindAttribute( name );
1357  if ( !a ) {
1358  return XML_NO_ATTRIBUTE;
1359  }
1360  return a->QueryFloatValue( value );
1361  }
1362 
1363 
1381  int QueryAttribute( const char* name, int* value ) const {
1382  return QueryIntAttribute( name, value );
1383  }
1384 
1385  int QueryAttribute( const char* name, unsigned int* value ) const {
1386  return QueryUnsignedAttribute( name, value );
1387  }
1388 
1389  int QueryAttribute(const char* name, int64_t* value) const {
1390  return QueryInt64Attribute(name, value);
1391  }
1392 
1393  int QueryAttribute( const char* name, bool* value ) const {
1394  return QueryBoolAttribute( name, value );
1395  }
1396 
1397  int QueryAttribute( const char* name, double* value ) const {
1398  return QueryDoubleAttribute( name, value );
1399  }
1400 
1401  int QueryAttribute( const char* name, float* value ) const {
1402  return QueryFloatAttribute( name, value );
1403  }
1404 
1406  void SetAttribute( const char* name, const char* value ) {
1407  XMLAttribute* a = FindOrCreateAttribute( name );
1408  a->SetAttribute( value );
1409  }
1411  void SetAttribute( const char* name, int value ) {
1412  XMLAttribute* a = FindOrCreateAttribute( name );
1413  a->SetAttribute( value );
1414  }
1416  void SetAttribute( const char* name, unsigned value ) {
1417  XMLAttribute* a = FindOrCreateAttribute( name );
1418  a->SetAttribute( value );
1419  }
1420 
1422  void SetAttribute(const char* name, int64_t value) {
1423  XMLAttribute* a = FindOrCreateAttribute(name);
1424  a->SetAttribute(value);
1425  }
1426 
1428  void SetAttribute( const char* name, bool value ) {
1429  XMLAttribute* a = FindOrCreateAttribute( name );
1430  a->SetAttribute( value );
1431  }
1433  void SetAttribute( const char* name, double value ) {
1434  XMLAttribute* a = FindOrCreateAttribute( name );
1435  a->SetAttribute( value );
1436  }
1438  void SetAttribute( const char* name, float value ) {
1439  XMLAttribute* a = FindOrCreateAttribute( name );
1440  a->SetAttribute( value );
1441  }
1442 
1446  void DeleteAttribute( const char* name );
1447 
1449  const XMLAttribute* FirstAttribute() const {
1450  return _rootAttribute;
1451  }
1453  const XMLAttribute* FindAttribute( const char* name ) const;
1454 
1483  const char* GetText() const;
1484 
1519  void SetText( const char* inText );
1521  void SetText( int value );
1523  void SetText( unsigned value );
1525  void SetText(int64_t value);
1527  void SetText( bool value );
1529  void SetText( double value );
1531  void SetText( float value );
1532 
1559  XMLError QueryIntText( int* ival ) const;
1561  XMLError QueryUnsignedText( unsigned* uval ) const;
1563  XMLError QueryInt64Text(int64_t* uval) const;
1565  XMLError QueryBoolText( bool* bval ) const;
1567  XMLError QueryDoubleText( double* dval ) const;
1569  XMLError QueryFloatText( float* fval ) const;
1570 
1571  int IntText(int defaultValue = 0) const;
1572 
1574  unsigned UnsignedText(unsigned defaultValue = 0) const;
1576  int64_t Int64Text(int64_t defaultValue = 0) const;
1578  bool BoolText(bool defaultValue = false) const;
1580  double DoubleText(double defaultValue = 0) const;
1582  float FloatText(float defaultValue = 0) const;
1583 
1584  // internal:
1585  enum ElementClosingType {
1586  OPEN, // <foo>
1587  CLOSED, // <foo/>
1588  CLOSING // </foo>
1589  };
1590  ElementClosingType ClosingType() const {
1591  return _closingType;
1592  }
1593  virtual XMLNode* ShallowClone( XMLDocument* document ) const;
1594  virtual bool ShallowEqual( const XMLNode* compare ) const;
1595 
1596 protected:
1597  char* ParseDeep( char* p, StrPair* parentEndTag, int* curLineNumPtr );
1598 
1599 private:
1600  XMLElement( XMLDocument* doc );
1601  virtual ~XMLElement();
1602  XMLElement( const XMLElement& ); // not supported
1603  void operator=( const XMLElement& ); // not supported
1604 
1605  XMLAttribute* FindAttribute( const char* name ) {
1606  return const_cast<XMLAttribute*>(const_cast<const XMLElement*>(this)->FindAttribute( name ));
1607  }
1608  XMLAttribute* FindOrCreateAttribute( const char* name );
1609  //void LinkAttribute( XMLAttribute* attrib );
1610  char* ParseAttributes( char* p, int* curLineNumPtr );
1611  static void DeleteAttribute( XMLAttribute* attribute );
1612  XMLAttribute* CreateAttribute();
1613 
1614  enum { BUF_SIZE = 200 };
1615  ElementClosingType _closingType;
1616  // The attribute list is ordered; there is no 'lastAttribute'
1617  // because the list needs to be scanned for dupes before adding
1618  // a new attribute.
1619  XMLAttribute* _rootAttribute;
1620 };
1621 
1622 
1623 enum Whitespace {
1624  PRESERVE_WHITESPACE,
1625  COLLAPSE_WHITESPACE
1626 };
1627 
1628 
1634 class TINYXML2_LIB XMLDocument : public XMLNode
1635 {
1636  friend class XMLElement;
1637 public:
1639  XMLDocument( bool processEntities = true, Whitespace whitespaceMode = PRESERVE_WHITESPACE );
1640  ~XMLDocument();
1641 
1643  TIXMLASSERT( this == _document );
1644  return this;
1645  }
1646  virtual const XMLDocument* ToDocument() const {
1647  TIXMLASSERT( this == _document );
1648  return this;
1649  }
1650 
1661  XMLError Parse( const char* xml, size_t nBytes=(size_t)(-1) );
1662 
1668  XMLError LoadFile( const char* filename );
1669 
1681  XMLError LoadFile( FILE* );
1682 
1688  XMLError SaveFile( const char* filename, bool compact = false );
1689 
1697  XMLError SaveFile( FILE* fp, bool compact = false );
1698 
1699  bool ProcessEntities() const {
1700  return _processEntities;
1701  }
1702  Whitespace WhitespaceMode() const {
1703  return _whitespaceMode;
1704  }
1705 
1709  bool HasBOM() const {
1710  return _writeBOM;
1711  }
1714  void SetBOM( bool useBOM ) {
1715  _writeBOM = useBOM;
1716  }
1717 
1722  return FirstChildElement();
1723  }
1724  const XMLElement* RootElement() const {
1725  return FirstChildElement();
1726  }
1727 
1742  void Print( XMLPrinter* streamer=0 ) const;
1743  virtual bool Accept( XMLVisitor* visitor ) const;
1744 
1750  XMLElement* NewElement( const char* name );
1756  XMLComment* NewComment( const char* comment );
1762  XMLText* NewText( const char* text );
1774  XMLDeclaration* NewDeclaration( const char* text=0 );
1780  XMLUnknown* NewUnknown( const char* text );
1781 
1786  void DeleteNode( XMLNode* node );
1787 
1788  void SetError( XMLError error, const char* str1, const char* str2, int lineNum );
1789 
1790  void ClearError() {
1791  SetError(XML_SUCCESS, 0, 0, 0);
1792  }
1793 
1795  bool Error() const {
1796  return _errorID != XML_SUCCESS;
1797  }
1799  XMLError ErrorID() const {
1800  return _errorID;
1801  }
1802  const char* ErrorName() const;
1803  static const char* ErrorIDToName(XMLError errorID);
1804 
1806  const char* GetErrorStr1() const;
1807 
1809  const char* GetErrorStr2() const;
1810 
1812  int GetErrorLineNum() const
1813  {
1814  return _errorLineNum;
1815  }
1817  void PrintError() const;
1818 
1820  void Clear();
1821 
1829  void DeepCopy(XMLDocument* target);
1830 
1831  // internal
1832  char* Identify( char* p, XMLNode** node );
1833 
1834  // internal
1835  void MarkInUse(XMLNode*);
1836 
1837  virtual XMLNode* ShallowClone( XMLDocument* /*document*/ ) const {
1838  return 0;
1839  }
1840  virtual bool ShallowEqual( const XMLNode* /*compare*/ ) const {
1841  return false;
1842  }
1843 
1844 private:
1845  XMLDocument( const XMLDocument& ); // not supported
1846  void operator=( const XMLDocument& ); // not supported
1847 
1848  bool _writeBOM;
1849  bool _processEntities;
1850  XMLError _errorID;
1851  Whitespace _whitespaceMode;
1852  mutable StrPair _errorStr1;
1853  mutable StrPair _errorStr2;
1854  int _errorLineNum;
1855  char* _charBuffer;
1856  int _parseCurLineNum;
1857  // Memory tracking does add some overhead.
1858  // However, the code assumes that you don't
1859  // have a bunch of unlinked nodes around.
1860  // Therefore it takes less memory to track
1861  // in the document vs. a linked list in the XMLNode,
1862  // and the performance is the same.
1863  DynArray<XMLNode*, 10> _unlinked;
1864 
1865  MemPoolT< sizeof(XMLElement) > _elementPool;
1866  MemPoolT< sizeof(XMLAttribute) > _attributePool;
1867  MemPoolT< sizeof(XMLText) > _textPool;
1868  MemPoolT< sizeof(XMLComment) > _commentPool;
1869 
1870  static const char* _errorNames[XML_ERROR_COUNT];
1871 
1872  void Parse();
1873 
1874  template<class NodeType, int PoolElementSize>
1875  NodeType* CreateUnlinkedNode( MemPoolT<PoolElementSize>& pool );
1876 };
1877 
1878 template<class NodeType, int PoolElementSize>
1879 inline NodeType* XMLDocument::CreateUnlinkedNode( MemPoolT<PoolElementSize>& pool )
1880 {
1881  TIXMLASSERT( sizeof( NodeType ) == PoolElementSize );
1882  TIXMLASSERT( sizeof( NodeType ) == pool.ItemSize() );
1883  NodeType* returnNode = new (pool.Alloc()) NodeType( this );
1884  TIXMLASSERT( returnNode );
1885  returnNode->_memPool = &pool;
1886 
1887  _unlinked.Push(returnNode);
1888  return returnNode;
1889 }
1890 
1946 class TINYXML2_LIB XMLHandle
1947 {
1948 public:
1950  XMLHandle( XMLNode* node ) {
1951  _node = node;
1952  }
1954  XMLHandle( XMLNode& node ) {
1955  _node = &node;
1956  }
1958  XMLHandle( const XMLHandle& ref ) {
1959  _node = ref._node;
1960  }
1962  XMLHandle& operator=( const XMLHandle& ref ) {
1963  _node = ref._node;
1964  return *this;
1965  }
1966 
1969  return XMLHandle( _node ? _node->FirstChild() : 0 );
1970  }
1972  XMLHandle FirstChildElement( const char* name = 0 ) {
1973  return XMLHandle( _node ? _node->FirstChildElement( name ) : 0 );
1974  }
1977  return XMLHandle( _node ? _node->LastChild() : 0 );
1978  }
1980  XMLHandle LastChildElement( const char* name = 0 ) {
1981  return XMLHandle( _node ? _node->LastChildElement( name ) : 0 );
1982  }
1985  return XMLHandle( _node ? _node->PreviousSibling() : 0 );
1986  }
1988  XMLHandle PreviousSiblingElement( const char* name = 0 ) {
1989  return XMLHandle( _node ? _node->PreviousSiblingElement( name ) : 0 );
1990  }
1993  return XMLHandle( _node ? _node->NextSibling() : 0 );
1994  }
1996  XMLHandle NextSiblingElement( const char* name = 0 ) {
1997  return XMLHandle( _node ? _node->NextSiblingElement( name ) : 0 );
1998  }
1999 
2002  return _node;
2003  }
2006  return ( _node ? _node->ToElement() : 0 );
2007  }
2010  return ( _node ? _node->ToText() : 0 );
2011  }
2014  return ( _node ? _node->ToUnknown() : 0 );
2015  }
2018  return ( _node ? _node->ToDeclaration() : 0 );
2019  }
2020 
2021 private:
2022  XMLNode* _node;
2023 };
2024 
2025 
2030 class TINYXML2_LIB XMLConstHandle
2031 {
2032 public:
2033  XMLConstHandle( const XMLNode* node ) {
2034  _node = node;
2035  }
2036  XMLConstHandle( const XMLNode& node ) {
2037  _node = &node;
2038  }
2039  XMLConstHandle( const XMLConstHandle& ref ) {
2040  _node = ref._node;
2041  }
2042 
2043  XMLConstHandle& operator=( const XMLConstHandle& ref ) {
2044  _node = ref._node;
2045  return *this;
2046  }
2047 
2048  const XMLConstHandle FirstChild() const {
2049  return XMLConstHandle( _node ? _node->FirstChild() : 0 );
2050  }
2051  const XMLConstHandle FirstChildElement( const char* name = 0 ) const {
2052  return XMLConstHandle( _node ? _node->FirstChildElement( name ) : 0 );
2053  }
2054  const XMLConstHandle LastChild() const {
2055  return XMLConstHandle( _node ? _node->LastChild() : 0 );
2056  }
2057  const XMLConstHandle LastChildElement( const char* name = 0 ) const {
2058  return XMLConstHandle( _node ? _node->LastChildElement( name ) : 0 );
2059  }
2060  const XMLConstHandle PreviousSibling() const {
2061  return XMLConstHandle( _node ? _node->PreviousSibling() : 0 );
2062  }
2063  const XMLConstHandle PreviousSiblingElement( const char* name = 0 ) const {
2064  return XMLConstHandle( _node ? _node->PreviousSiblingElement( name ) : 0 );
2065  }
2066  const XMLConstHandle NextSibling() const {
2067  return XMLConstHandle( _node ? _node->NextSibling() : 0 );
2068  }
2069  const XMLConstHandle NextSiblingElement( const char* name = 0 ) const {
2070  return XMLConstHandle( _node ? _node->NextSiblingElement( name ) : 0 );
2071  }
2072 
2073 
2074  const XMLNode* ToNode() const {
2075  return _node;
2076  }
2077  const XMLElement* ToElement() const {
2078  return ( _node ? _node->ToElement() : 0 );
2079  }
2080  const XMLText* ToText() const {
2081  return ( _node ? _node->ToText() : 0 );
2082  }
2083  const XMLUnknown* ToUnknown() const {
2084  return ( _node ? _node->ToUnknown() : 0 );
2085  }
2086  const XMLDeclaration* ToDeclaration() const {
2087  return ( _node ? _node->ToDeclaration() : 0 );
2088  }
2089 
2090 private:
2091  const XMLNode* _node;
2092 };
2093 
2094 
2137 class TINYXML2_LIB XMLPrinter : public XMLVisitor
2138 {
2139 public:
2146  XMLPrinter( FILE* file=0, bool compact = false, int depth = 0 );
2147  virtual ~XMLPrinter() {}
2148 
2150  void PushHeader( bool writeBOM, bool writeDeclaration );
2154  void OpenElement( const char* name, bool compactMode=false );
2156  void PushAttribute( const char* name, const char* value );
2157  void PushAttribute( const char* name, int value );
2158  void PushAttribute( const char* name, unsigned value );
2159  void PushAttribute(const char* name, int64_t value);
2160  void PushAttribute( const char* name, bool value );
2161  void PushAttribute( const char* name, double value );
2163  virtual void CloseElement( bool compactMode=false );
2164 
2166  void PushText( const char* text, bool cdata=false );
2168  void PushText( int value );
2170  void PushText( unsigned value );
2172  void PushText(int64_t value);
2174  void PushText( bool value );
2176  void PushText( float value );
2178  void PushText( double value );
2179 
2181  void PushComment( const char* comment );
2182 
2183  void PushDeclaration( const char* value );
2184  void PushUnknown( const char* value );
2185 
2186  virtual bool VisitEnter( const XMLDocument& /*doc*/ );
2187  virtual bool VisitExit( const XMLDocument& /*doc*/ ) {
2188  return true;
2189  }
2190 
2191  virtual bool VisitEnter( const XMLElement& element, const XMLAttribute* attribute );
2192  virtual bool VisitExit( const XMLElement& element );
2193 
2194  virtual bool Visit( const XMLText& text );
2195  virtual bool Visit( const XMLComment& comment );
2196  virtual bool Visit( const XMLDeclaration& declaration );
2197  virtual bool Visit( const XMLUnknown& unknown );
2198 
2203  const char* CStr() const {
2204  return _buffer.Mem();
2205  }
2211  int CStrSize() const {
2212  return _buffer.Size();
2213  }
2218  void ClearBuffer() {
2219  _buffer.Clear();
2220  _buffer.Push(0);
2221  _firstElement = true;
2222  }
2223 
2224 protected:
2225  virtual bool CompactMode( const XMLElement& ) { return _compactMode; }
2226 
2230  virtual void PrintSpace( int depth );
2231  void Print( const char* format, ... );
2232 
2233  void SealElementIfJustOpened();
2234  bool _elementJustOpened;
2235  DynArray< const char*, 10 > _stack;
2236 
2237 private:
2238  void PrintString( const char*, bool restrictedEntitySet ); // prints out, after detecting entities.
2239 
2240  bool _firstElement;
2241  FILE* _fp;
2242  int _depth;
2243  int _textDepth;
2244  bool _processEntities;
2245  bool _compactMode;
2246 
2247  enum {
2248  ENTITY_RANGE = 64,
2249  BUF_SIZE = 200
2250  };
2251  bool _entityFlag[ENTITY_RANGE];
2252  bool _restrictedEntityFlag[ENTITY_RANGE];
2253 
2254  DynArray< char, 20 > _buffer;
2255 };
2256 
2257 
2258 } // tinyxml2
2259 
2260 #if defined(_MSC_VER)
2261 # pragma warning(pop)
2262 #endif
2263 
2264 #endif // TINYXML2_INCLUDED
XMLError QueryInt64Attribute(const char *name, int64_t *value) const
See QueryIntAttribute()
Definition: tinyxml2.h:1330
-
XMLError QueryIntValue(int *value) const
-
XMLError QueryBoolAttribute(const char *name, bool *value) const
See QueryIntAttribute()
Definition: tinyxml2.h:1339
-
virtual bool VisitExit(const XMLDocument &)
Visit a document.
Definition: tinyxml2.h:477
-
virtual XMLNode * ShallowClone(XMLDocument *) const
Definition: tinyxml2.h:1837
-
virtual bool ShallowEqual(const XMLNode *) const
Definition: tinyxml2.h:1840
-
XMLHandle FirstChildElement(const char *name=0)
Get the first child element of this handle.
Definition: tinyxml2.h:1972
-
XMLText * ToText()
Safe cast to XMLText. This can return null.
Definition: tinyxml2.h:2009
-
XMLError QueryFloatValue(float *value) const
See QueryIntValue.
-
const char * CStr() const
Definition: tinyxml2.h:2203
-
XMLError ErrorID() const
Return the errorID.
Definition: tinyxml2.h:1799
-
XMLElement * ToElement()
Safe cast to XMLElement. This can return null.
Definition: tinyxml2.h:2005
-
virtual XMLElement * ToElement()
Safely cast to an Element, or null.
Definition: tinyxml2.h:673
-
virtual XMLText * ToText()
Safely cast to Text, or null.
Definition: tinyxml2.h:677
-
XMLError QueryUnsignedAttribute(const char *name, unsigned int *value) const
See QueryIntAttribute()
Definition: tinyxml2.h:1321
-
int CStrSize() const
Definition: tinyxml2.h:2211
-
float FloatValue() const
Query as a float. See IntValue()
Definition: tinyxml2.h:1174
-
virtual XMLDocument * ToDocument()
Safely cast to a Document, or null.
Definition: tinyxml2.h:1642
-
XMLUnknown * ToUnknown()
Safe cast to XMLUnknown. This can return null.
Definition: tinyxml2.h:2013
-
const char * Name() const
Get the name of an element (which is the Value() of the node.)
Definition: tinyxml2.h:1240
-
XMLHandle(const XMLHandle &ref)
Copy constructor.
Definition: tinyxml2.h:1958
-
XMLHandle FirstChild()
Get the first child of this handle.
Definition: tinyxml2.h:1968
-
void SetCData(bool isCData)
Declare whether this should be CDATA or standard text.
Definition: tinyxml2.h:986
-
void SetUserData(void *userData)
Definition: tinyxml2.h:920
-
const XMLNode * NextSibling() const
Get the next (right) sibling node of this node.
Definition: tinyxml2.h:802
-
unsigned UnsignedValue() const
Query as an unsigned integer. See IntValue()
Definition: tinyxml2.h:1156
-
XMLHandle LastChildElement(const char *name=0)
Get the last child element of this handle.
Definition: tinyxml2.h:1980
-
XMLHandle LastChild()
Get the last child of this handle.
Definition: tinyxml2.h:1976
-
Definition: tinyxml2.h:1946
-
Definition: tinyxml2.h:1051
-
XMLElement * RootElement()
Definition: tinyxml2.h:1721
-
int QueryAttribute(const char *name, int *value) const
Definition: tinyxml2.h:1381
-
virtual XMLText * ToText()
Safely cast to Text, or null.
Definition: tinyxml2.h:978
-
XMLHandle(XMLNode &node)
Create a handle from a node.
Definition: tinyxml2.h:1954
-
void SetName(const char *str, bool staticMem=false)
Set the name of the element.
Definition: tinyxml2.h:1244
-
void SetBOM(bool useBOM)
Definition: tinyxml2.h:1714
-
XMLHandle(XMLNode *node)
Create a handle from any node (at any depth of the tree.) This can be a null pointer.
Definition: tinyxml2.h:1950
-
void ClearBuffer()
Definition: tinyxml2.h:2218
-
virtual XMLComment * ToComment()
Safely cast to a Comment, or null.
Definition: tinyxml2.h:1016
-
virtual XMLElement * ToElement()
Safely cast to an Element, or null.
Definition: tinyxml2.h:1248
-
bool HasBOM() const
Definition: tinyxml2.h:1709
-
Definition: tinyxml2.h:105
-
XMLError QueryFloatAttribute(const char *name, float *value) const
See QueryIntAttribute()
Definition: tinyxml2.h:1355
-
XMLError QueryUnsignedValue(unsigned int *value) const
See QueryIntValue.
-
XMLNode * ToNode()
Safe cast to XMLNode. This can return null.
Definition: tinyxml2.h:2001
-
bool BoolValue() const
Query as a boolean. See IntValue()
Definition: tinyxml2.h:1162
-
const XMLNode * FirstChild() const
Get the first child node, or null if none exists.
Definition: tinyxml2.h:750
-
Definition: tinyxml2.h:1012
-
virtual XMLDeclaration * ToDeclaration()
Safely cast to a Declaration, or null.
Definition: tinyxml2.h:1055
-
virtual bool Visit(const XMLDeclaration &)
Visit a declaration.
Definition: tinyxml2.h:491
-
virtual bool Visit(const XMLUnknown &)
Visit an unknown node.
Definition: tinyxml2.h:503
-
void SetAttribute(const char *name, unsigned value)
Sets the named attribute to value.
Definition: tinyxml2.h:1416
-
XMLError QueryDoubleAttribute(const char *name, double *value) const
See QueryIntAttribute()
Definition: tinyxml2.h:1347
-
Definition: tinyxml2.h:1235
-
XMLError QueryInt64Value(int64_t *value) const
See QueryIntValue.
-
XMLHandle NextSibling()
Get the next sibling of this handle.
Definition: tinyxml2.h:1992
-
int GetLineNum() const
Gets the line number the attribute is in, if the document was parsed from a file. ...
Definition: tinyxml2.h:1132
-
int IntValue() const
Definition: tinyxml2.h:1143
-
virtual XMLUnknown * ToUnknown()
Safely cast to an Unknown, or null.
Definition: tinyxml2.h:1090
-
bool CData() const
Returns true if this is a CDATA text element.
Definition: tinyxml2.h:990
-
XMLHandle PreviousSibling()
Get the previous sibling of this handle.
Definition: tinyxml2.h:1984
-
Definition: tinyxml2.h:2030
-
XMLHandle & operator=(const XMLHandle &ref)
Assignment.
Definition: tinyxml2.h:1962
-
virtual bool VisitExit(const XMLDocument &)
Visit a document.
Definition: tinyxml2.h:2187
-
virtual bool VisitEnter(const XMLElement &, const XMLAttribute *)
Visit an element.
Definition: tinyxml2.h:482
-
bool Error() const
Return true if there was an error parsing the document.
Definition: tinyxml2.h:1795
-
virtual bool VisitEnter(const XMLDocument &)
Visit a document.
Definition: tinyxml2.h:473
-
Definition: tinyxml2.h:1086
-
virtual XMLDocument * ToDocument()
Safely cast to a Document, or null.
Definition: tinyxml2.h:685
-
const XMLNode * LastChild() const
Get the last child node, or null if none exists.
Definition: tinyxml2.h:768
-
Definition: tinyxml2.h:1121
-
void SetAttribute(const char *name, bool value)
Sets the named attribute to value.
Definition: tinyxml2.h:1428
-
XMLDeclaration * ToDeclaration()
Safe cast to XMLDeclaration. This can return null.
Definition: tinyxml2.h:2017
-
void SetAttribute(const char *value)
Set the attribute to a string value.
-
void SetAttribute(const char *name, const char *value)
Sets the named attribute to value.
Definition: tinyxml2.h:1406
-
virtual bool VisitExit(const XMLElement &)
Visit an element.
Definition: tinyxml2.h:486
-
Definition: tinyxml2.h:2137
-
Definition: tinyxml2.h:1634
-
void * GetUserData() const
Definition: tinyxml2.h:927
-
int GetErrorLineNum() const
Return the line where the error occured, or zero if unknown.
Definition: tinyxml2.h:1812
-
void SetAttribute(const char *name, int64_t value)
Sets the named attribute to value.
Definition: tinyxml2.h:1422
-
void SetAttribute(const char *name, double value)
Sets the named attribute to value.
Definition: tinyxml2.h:1433
-
XMLError QueryDoubleValue(double *value) const
See QueryIntValue.
-
const XMLNode * Parent() const
Get the parent of this node on the DOM.
Definition: tinyxml2.h:736
-
virtual bool Visit(const XMLComment &)
Visit a comment node.
Definition: tinyxml2.h:499
-
XMLError QueryBoolValue(bool *value) const
See QueryIntValue.
-
const XMLNode * PreviousSibling() const
Get the previous (left) sibling node of this node.
Definition: tinyxml2.h:786
-
XMLHandle NextSiblingElement(const char *name=0)
Get the next sibling element of this handle.
Definition: tinyxml2.h:1996
-
Definition: tinyxml2.h:655
-
XMLError QueryIntAttribute(const char *name, int *value) const
Definition: tinyxml2.h:1312
-
int GetLineNum() const
Gets the line number the node is in, if the document was parsed from a file.
Definition: tinyxml2.h:733
-
virtual bool Visit(const XMLText &)
Visit a text node.
Definition: tinyxml2.h:495
-
Definition: tinyxml2.h:972
-
Definition: tinyxml2.h:467
-
XMLDocument * GetDocument()
Get the XMLDocument that owns this XMLNode.
Definition: tinyxml2.h:667
-
virtual XMLUnknown * ToUnknown()
Safely cast to an Unknown, or null.
Definition: tinyxml2.h:693
-
void SetAttribute(const char *name, float value)
Sets the named attribute to value.
Definition: tinyxml2.h:1438
-
const XMLAttribute * Next() const
The next attribute in the list.
Definition: tinyxml2.h:1135
-
bool NoChildren() const
Returns true if this node has no children.
Definition: tinyxml2.h:745
-
double DoubleValue() const
Query as a double. See IntValue()
Definition: tinyxml2.h:1168
-
virtual XMLDeclaration * ToDeclaration()
Safely cast to a Declaration, or null.
Definition: tinyxml2.h:689
-
const XMLDocument * GetDocument() const
Get the XMLDocument that owns this XMLNode.
Definition: tinyxml2.h:662
-
XMLHandle PreviousSiblingElement(const char *name=0)
Get the previous sibling element of this handle.
Definition: tinyxml2.h:1988
-
void SetAttribute(const char *name, int value)
Sets the named attribute to value.
Definition: tinyxml2.h:1411
-
const XMLAttribute * FirstAttribute() const
Return the first attribute in the list.
Definition: tinyxml2.h:1449
-
virtual XMLComment * ToComment()
Safely cast to a Comment, or null.
Definition: tinyxml2.h:681
-
- - - - diff --git a/dox b/dox index a4c6686..601feed 100644 --- a/dox +++ b/dox @@ -1,4 +1,4 @@ -# Doxyfile 1.8.13 +# Doxyfile 1.8.6 # This file describes the settings to be used by the documentation system # doxygen (www.doxygen.org) for a project. @@ -38,7 +38,7 @@ PROJECT_NAME = "TinyXML-2" # could be handy for archiving the generated documentation or if some version # control system is used. -PROJECT_NUMBER = 5.0.1 +PROJECT_NUMBER = 5.0.1 # Using the PROJECT_BRIEF tag one can provide an optional one line description # for a project that appears at the top of each page and should give viewer a @@ -46,10 +46,10 @@ PROJECT_NUMBER = 5.0.1 PROJECT_BRIEF = -# With the PROJECT_LOGO tag one can specify a logo or an icon that is included -# in the documentation. The maximum height of the logo should not exceed 55 -# pixels and the maximum width should not exceed 200 pixels. Doxygen will copy -# the logo to the output directory. +# With the PROJECT_LOGO tag one can specify an logo or icon that is included in +# the documentation. The maximum height of the logo should not exceed 55 pixels +# and the maximum width should not exceed 200 pixels. Doxygen will copy the logo +# to the output directory. PROJECT_LOGO = @@ -60,7 +60,7 @@ PROJECT_LOGO = OUTPUT_DIRECTORY = . -# If the CREATE_SUBDIRS tag is set to YES then doxygen will create 4096 sub- +# If the CREATE_SUBDIRS tag is set to YES, then doxygen will create 4096 sub- # directories (in 2 levels) under the output directory of each output format and # will distribute the generated files over these directories. Enabling this # option can be useful when feeding doxygen a huge amount of source files, where @@ -70,14 +70,6 @@ OUTPUT_DIRECTORY = . CREATE_SUBDIRS = NO -# If the ALLOW_UNICODE_NAMES tag is set to YES, doxygen will allow non-ASCII -# characters to appear in the names of generated files. If set to NO, non-ASCII -# characters will be escaped, for example _xE3_x81_x84 will be used for Unicode -# U+3044. -# The default value is: NO. - -ALLOW_UNICODE_NAMES = NO - # The OUTPUT_LANGUAGE tag is used to specify the language in which all # documentation generated by doxygen is written. Doxygen will use this # information to generate all constant output in the proper language. @@ -93,14 +85,14 @@ ALLOW_UNICODE_NAMES = NO OUTPUT_LANGUAGE = English -# If the BRIEF_MEMBER_DESC tag is set to YES, doxygen will include brief member +# If the BRIEF_MEMBER_DESC tag is set to YES doxygen will include brief member # descriptions after the members that are listed in the file and class # documentation (similar to Javadoc). Set to NO to disable this. # The default value is: YES. BRIEF_MEMBER_DESC = YES -# If the REPEAT_BRIEF tag is set to YES, doxygen will prepend the brief +# If the REPEAT_BRIEF tag is set to YES doxygen will prepend the brief # description of a member or function before the detailed description # # Note: If both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the @@ -135,7 +127,7 @@ ALWAYS_DETAILED_SEC = NO INLINE_INHERITED_MEMB = NO -# If the FULL_PATH_NAMES tag is set to YES, doxygen will prepend the full path +# If the FULL_PATH_NAMES tag is set to YES doxygen will prepend the full path # before files name in the file list and in the header files. If set to NO the # shortest path that makes the file name unique will be used # The default value is: YES. @@ -205,9 +197,9 @@ MULTILINE_CPP_IS_BRIEF = NO INHERIT_DOCS = YES -# If the SEPARATE_MEMBER_PAGES tag is set to YES then doxygen will produce a new -# page for each member. If set to NO, the documentation of a member will be part -# of the file/class/namespace that contains it. +# If the SEPARATE_MEMBER_PAGES tag is set to YES, then doxygen will produce a +# new page for each member. If set to NO, the documentation of a member will be +# part of the file/class/namespace that contains it. # The default value is: NO. SEPARATE_MEMBER_PAGES = NO @@ -269,14 +261,11 @@ OPTIMIZE_OUTPUT_VHDL = NO # extension. Doxygen has a built-in mapping, but you can override or extend it # using this tag. The format is ext=language, where ext is a file extension, and # language is one of the parsers supported by doxygen: IDL, Java, Javascript, -# C#, C, C++, D, PHP, Objective-C, Python, Fortran (fixed format Fortran: -# FortranFixed, free formatted Fortran: FortranFree, unknown formatted Fortran: -# Fortran. In the later case the parser tries to guess whether the code is fixed -# or free formatted code, this is the default for Fortran type files), VHDL. For -# instance to make doxygen treat .inc files as Fortran files (default is PHP), -# and .f files as C (default is Fortran), use: inc=Fortran f=C. +# C#, C, C++, D, PHP, Objective-C, Python, Fortran, VHDL. For instance to make +# doxygen treat .inc files as Fortran files (default is PHP), and .f files as C +# (default is Fortran), use: inc=Fortran f=C. # -# Note: For files without extension you can use no_extension as a placeholder. +# Note For files without extension you can use no_extension as a placeholder. # # Note that for custom extensions you also need to set FILE_PATTERNS otherwise # the files are not read by doxygen. @@ -293,19 +282,10 @@ EXTENSION_MAPPING = MARKDOWN_SUPPORT = YES -# When the TOC_INCLUDE_HEADINGS tag is set to a non-zero value, all headings up -# to that level are automatically included in the table of contents, even if -# they do not have an id attribute. -# Note: This feature currently applies only to Markdown headings. -# Minimum value: 0, maximum value: 99, default value: 0. -# This tag requires that the tag MARKDOWN_SUPPORT is set to YES. - -TOC_INCLUDE_HEADINGS = 0 - # When enabled doxygen tries to link words that correspond to documented # classes, or namespaces to their corresponding documentation. Such a link can -# be prevented in individual cases by putting a % sign in front of the word or -# globally by setting AUTOLINK_SUPPORT to NO. +# be prevented in individual cases by by putting a % sign in front of the word +# or globally by setting AUTOLINK_SUPPORT to NO. # The default value is: YES. AUTOLINK_SUPPORT = YES @@ -345,20 +325,13 @@ SIP_SUPPORT = NO IDL_PROPERTY_SUPPORT = YES # If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC -# tag is set to YES then doxygen will reuse the documentation of the first +# tag is set to YES, then doxygen will reuse the documentation of the first # member in the group (if any) for the other members of the group. By default # all members of a group must be documented explicitly. # The default value is: NO. DISTRIBUTE_GROUP_DOC = NO -# If one adds a struct or class to a group and this option is enabled, then also -# any nested class or struct is added to the same group. By default this option -# is disabled and one has to add nested compounds explicitly via \ingroup. -# The default value is: NO. - -GROUP_NESTED_COMPOUNDS = NO - # Set the SUBGROUPING tag to YES to allow class member groups of the same type # (for instance a group of public functions) to be put as a subgroup of that # type (e.g. under the Public Functions section). Set it to NO to prevent @@ -417,7 +390,7 @@ LOOKUP_CACHE_SIZE = 0 # Build related configuration options #--------------------------------------------------------------------------- -# If the EXTRACT_ALL tag is set to YES, doxygen will assume all entities in +# If the EXTRACT_ALL tag is set to YES doxygen will assume all entities in # documentation are documented, even if no documentation was available. Private # class members and static file members will be hidden unless the # EXTRACT_PRIVATE respectively EXTRACT_STATIC tags are set to YES. @@ -427,35 +400,35 @@ LOOKUP_CACHE_SIZE = 0 EXTRACT_ALL = NO -# If the EXTRACT_PRIVATE tag is set to YES, all private members of a class will +# If the EXTRACT_PRIVATE tag is set to YES all private members of a class will # be included in the documentation. # The default value is: NO. EXTRACT_PRIVATE = NO -# If the EXTRACT_PACKAGE tag is set to YES, all members with package or internal +# If the EXTRACT_PACKAGE tag is set to YES all members with package or internal # scope will be included in the documentation. # The default value is: NO. EXTRACT_PACKAGE = NO -# If the EXTRACT_STATIC tag is set to YES, all static members of a file will be +# If the EXTRACT_STATIC tag is set to YES all static members of a file will be # included in the documentation. # The default value is: NO. EXTRACT_STATIC = NO -# If the EXTRACT_LOCAL_CLASSES tag is set to YES, classes (and structs) defined -# locally in source files will be included in the documentation. If set to NO, +# If the EXTRACT_LOCAL_CLASSES tag is set to YES classes (and structs) defined +# locally in source files will be included in the documentation. If set to NO # only classes defined in header files are included. Does not have any effect # for Java sources. # The default value is: YES. EXTRACT_LOCAL_CLASSES = YES -# This flag is only useful for Objective-C code. If set to YES, local methods, +# This flag is only useful for Objective-C code. When set to YES local methods, # which are defined in the implementation section but not in the interface are -# included in the documentation. If set to NO, only methods in the interface are +# included in the documentation. If set to NO only methods in the interface are # included. # The default value is: NO. @@ -480,21 +453,21 @@ HIDE_UNDOC_MEMBERS = YES # If the HIDE_UNDOC_CLASSES tag is set to YES, doxygen will hide all # undocumented classes that are normally visible in the class hierarchy. If set -# to NO, these classes will be included in the various overviews. This option -# has no effect if EXTRACT_ALL is enabled. +# to NO these classes will be included in the various overviews. This option has +# no effect if EXTRACT_ALL is enabled. # The default value is: NO. HIDE_UNDOC_CLASSES = YES # If the HIDE_FRIEND_COMPOUNDS tag is set to YES, doxygen will hide all friend -# (class|struct|union) declarations. If set to NO, these declarations will be +# (class|struct|union) declarations. If set to NO these declarations will be # included in the documentation. # The default value is: NO. HIDE_FRIEND_COMPOUNDS = NO # If the HIDE_IN_BODY_DOCS tag is set to YES, doxygen will hide any -# documentation blocks found inside the body of a function. If set to NO, these +# documentation blocks found inside the body of a function. If set to NO these # blocks will be appended to the function's detailed documentation block. # The default value is: NO. @@ -508,7 +481,7 @@ HIDE_IN_BODY_DOCS = NO INTERNAL_DOCS = NO # If the CASE_SENSE_NAMES tag is set to NO then doxygen will only generate file -# names in lower-case letters. If set to YES, upper-case letters are also +# names in lower-case letters. If set to YES upper-case letters are also # allowed. This is useful if you have classes or files whose names only differ # in case and if your file system supports case sensitive file names. Windows # and Mac users are advised to set this option to NO. @@ -517,19 +490,12 @@ INTERNAL_DOCS = NO CASE_SENSE_NAMES = NO # If the HIDE_SCOPE_NAMES tag is set to NO then doxygen will show members with -# their full class and namespace scopes in the documentation. If set to YES, the +# their full class and namespace scopes in the documentation. If set to YES the # scope will be hidden. # The default value is: NO. HIDE_SCOPE_NAMES = NO -# If the HIDE_COMPOUND_REFERENCE tag is set to NO (default) then doxygen will -# append additional text to a page's title, such as Class Reference. If set to -# YES the compound reference will be hidden. -# The default value is: NO. - -HIDE_COMPOUND_REFERENCE= NO - # If the SHOW_INCLUDE_FILES tag is set to YES then doxygen will put a list of # the files that are included by a file in the documentation of that file. # The default value is: YES. @@ -557,14 +523,14 @@ INLINE_INFO = YES # If the SORT_MEMBER_DOCS tag is set to YES then doxygen will sort the # (detailed) documentation of file and class members alphabetically by member -# name. If set to NO, the members will appear in declaration order. +# name. If set to NO the members will appear in declaration order. # The default value is: YES. SORT_MEMBER_DOCS = YES # If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the brief # descriptions of file, namespace and class members alphabetically by member -# name. If set to NO, the members will appear in declaration order. Note that +# name. If set to NO the members will appear in declaration order. Note that # this will also influence the order of the classes in the class list. # The default value is: NO. @@ -609,25 +575,27 @@ SORT_BY_SCOPE_NAME = NO STRICT_PROTO_MATCHING = NO -# The GENERATE_TODOLIST tag can be used to enable (YES) or disable (NO) the todo -# list. This list is created by putting \todo commands in the documentation. +# The GENERATE_TODOLIST tag can be used to enable ( YES) or disable ( NO) the +# todo list. This list is created by putting \todo commands in the +# documentation. # The default value is: YES. GENERATE_TODOLIST = NO -# The GENERATE_TESTLIST tag can be used to enable (YES) or disable (NO) the test -# list. This list is created by putting \test commands in the documentation. +# The GENERATE_TESTLIST tag can be used to enable ( YES) or disable ( NO) the +# test list. This list is created by putting \test commands in the +# documentation. # The default value is: YES. GENERATE_TESTLIST = NO -# The GENERATE_BUGLIST tag can be used to enable (YES) or disable (NO) the bug +# The GENERATE_BUGLIST tag can be used to enable ( YES) or disable ( NO) the bug # list. This list is created by putting \bug commands in the documentation. # The default value is: YES. GENERATE_BUGLIST = NO -# The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or disable (NO) +# The GENERATE_DEPRECATEDLIST tag can be used to enable ( YES) or disable ( NO) # the deprecated list. This list is created by putting \deprecated commands in # the documentation. # The default value is: YES. @@ -652,8 +620,8 @@ ENABLED_SECTIONS = MAX_INITIALIZER_LINES = 30 # Set the SHOW_USED_FILES tag to NO to disable the list of files generated at -# the bottom of the documentation of classes and structs. If set to YES, the -# list will mention the files that were used to generate the documentation. +# the bottom of the documentation of classes and structs. If set to YES the list +# will mention the files that were used to generate the documentation. # The default value is: YES. SHOW_USED_FILES = YES @@ -701,7 +669,8 @@ LAYOUT_FILE = # to be installed. See also http://en.wikipedia.org/wiki/BibTeX for more info. # For LaTeX the style of the bibliography can be controlled using # LATEX_BIB_STYLE. To use this feature you need bibtex and perl available in the -# search path. See also \cite for info how to create references. +# search path. Do not use file names with spaces, bibtex cannot handle them. See +# also \cite for info how to create references. CITE_BIB_FILES = @@ -717,7 +686,7 @@ CITE_BIB_FILES = QUIET = NO # The WARNINGS tag can be used to turn on/off the warning messages that are -# generated to standard error (stderr) by doxygen. If WARNINGS is set to YES +# generated to standard error ( stderr) by doxygen. If WARNINGS is set to YES # this implies that the warnings are on. # # Tip: Turn warnings on while writing the documentation. @@ -725,7 +694,7 @@ QUIET = NO WARNINGS = YES -# If the WARN_IF_UNDOCUMENTED tag is set to YES then doxygen will generate +# If the WARN_IF_UNDOCUMENTED tag is set to YES, then doxygen will generate # warnings for undocumented members. If EXTRACT_ALL is set to YES then this flag # will automatically be disabled. # The default value is: YES. @@ -742,18 +711,12 @@ WARN_IF_DOC_ERROR = YES # This WARN_NO_PARAMDOC option can be enabled to get warnings for functions that # are documented, but have no documentation for their parameters or return -# value. If set to NO, doxygen will only warn about wrong or incomplete -# parameter documentation, but not about the absence of documentation. +# value. If set to NO doxygen will only warn about wrong or incomplete parameter +# documentation, but not about the absence of documentation. # The default value is: NO. WARN_NO_PARAMDOC = NO -# If the WARN_AS_ERROR tag is set to YES then doxygen will immediately stop when -# a warning is encountered. -# The default value is: NO. - -WARN_AS_ERROR = NO - # The WARN_FORMAT tag determines the format of the warning messages that doxygen # can produce. The string should contain the $file, $line, and $text tags, which # will be replaced by the file and line number from which the warning originated @@ -777,7 +740,7 @@ WARN_LOGFILE = # The INPUT tag is used to specify the files and/or directories that contain # documented source files. You may enter file names like myfile.cpp or # directories like /usr/src/myproject. Separate the files or directories with -# spaces. See also FILE_PATTERNS and EXTENSION_MAPPING +# spaces. # Note: If this tag is empty the current directory is searched. INPUT = tinyxml2.h \ @@ -795,17 +758,12 @@ INPUT_ENCODING = UTF-8 # If the value of the INPUT tag contains directories, you can use the # FILE_PATTERNS tag to specify one or more wildcard patterns (like *.cpp and -# *.h) to filter out the source-files in the directories. -# -# Note that for custom extensions or not directly supported extensions you also -# need to set EXTENSION_MAPPING for the extension otherwise the files are not -# read by doxygen. -# -# If left blank the following patterns are tested:*.c, *.cc, *.cxx, *.cpp, -# *.c++, *.java, *.ii, *.ixx, *.ipp, *.i++, *.inl, *.idl, *.ddl, *.odl, *.h, -# *.hh, *.hxx, *.hpp, *.h++, *.cs, *.d, *.php, *.php4, *.php5, *.phtml, *.inc, -# *.m, *.markdown, *.md, *.mm, *.dox, *.py, *.pyw, *.f90, *.f95, *.f03, *.f08, -# *.f, *.for, *.tcl, *.vhd, *.vhdl, *.ucf and *.qsf. +# *.h) to filter out the source-files in the directories. If left blank the +# following patterns are tested:*.c, *.cc, *.cxx, *.cpp, *.c++, *.java, *.ii, +# *.ixx, *.ipp, *.i++, *.inl, *.idl, *.ddl, *.odl, *.h, *.hh, *.hxx, *.hpp, +# *.h++, *.cs, *.d, *.php, *.php4, *.php5, *.phtml, *.inc, *.m, *.markdown, +# *.md, *.mm, *.dox, *.py, *.f90, *.f, *.for, *.tcl, *.vhd, *.vhdl, *.ucf, +# *.qsf, *.as and *.js. FILE_PATTERNS = @@ -891,10 +849,6 @@ IMAGE_PATH = # Note that the filter must not add or remove lines; it is applied before the # code is scanned, but not when the output code is generated. If lines are added # or removed, the anchors will not be placed correctly. -# -# Note that for custom extensions or not directly supported extensions you also -# need to set EXTENSION_MAPPING for the extension otherwise the files are not -# properly processed by doxygen. INPUT_FILTER = @@ -904,15 +858,11 @@ INPUT_FILTER = # (like *.cpp=my_cpp_filter). See INPUT_FILTER for further information on how # filters are used. If the FILTER_PATTERNS tag is empty or if none of the # patterns match the file name, INPUT_FILTER is applied. -# -# Note that for custom extensions or not directly supported extensions you also -# need to set EXTENSION_MAPPING for the extension otherwise the files are not -# properly processed by doxygen. FILTER_PATTERNS = # If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using -# INPUT_FILTER) will also be used to filter the input files that are used for +# INPUT_FILTER ) will also be used to filter the input files that are used for # producing the source files to browse (i.e. when SOURCE_BROWSER is set to YES). # The default value is: NO. @@ -972,7 +922,7 @@ REFERENCED_BY_RELATION = NO REFERENCES_RELATION = NO # If the REFERENCES_LINK_SOURCE tag is set to YES and SOURCE_BROWSER tag is set -# to YES then the hyperlinks from functions in REFERENCES_RELATION and +# to YES, then the hyperlinks from functions in REFERENCES_RELATION and # REFERENCED_BY_RELATION lists will link to the source code. Otherwise they will # link to the documentation. # The default value is: YES. @@ -1019,13 +969,13 @@ USE_HTAGS = NO VERBATIM_HEADERS = YES -# If the CLANG_ASSISTED_PARSING tag is set to YES then doxygen will use the -# clang parser (see: http://clang.llvm.org/) for more accurate parsing at the +# If the CLANG_ASSISTED_PARSING tag is set to YES, then doxygen will use the +# clang parser (see: http://clang.llvm.org/) for more acurate parsing at the # cost of reduced performance. This can be particularly helpful with template # rich C++ code for which doxygen's built-in parser lacks the necessary type # information. # Note: The availability of this option depends on whether or not doxygen was -# generated with the -Duse-libclang=ON option for CMake. +# compiled with the --with-libclang option. # The default value is: NO. CLANG_ASSISTED_PARSING = NO @@ -1068,7 +1018,7 @@ IGNORE_PREFIX = # Configuration options related to the HTML output #--------------------------------------------------------------------------- -# If the GENERATE_HTML tag is set to YES, doxygen will generate HTML output +# If the GENERATE_HTML tag is set to YES doxygen will generate HTML output # The default value is: YES. GENERATE_HTML = YES @@ -1130,15 +1080,13 @@ HTML_FOOTER = HTML_STYLESHEET = -# The HTML_EXTRA_STYLESHEET tag can be used to specify additional user-defined -# cascading style sheets that are included after the standard style sheets +# The HTML_EXTRA_STYLESHEET tag can be used to specify an additional user- +# defined cascading style sheet that is included after the standard style sheets # created by doxygen. Using this option one can overrule certain style aspects. # This is preferred over using HTML_STYLESHEET since it does not replace the -# standard style sheet and is therefore more robust against future updates. -# Doxygen will copy the style sheet files to the output directory. -# Note: The order of the extra style sheet files is of importance (e.g. the last -# style sheet in the list overrules the setting of the previous ones in the -# list). For an example see the documentation. +# standard style sheet and is therefor more robust against future updates. +# Doxygen will copy the style sheet file to the output directory. For an example +# see the documentation. # This tag requires that the tag GENERATE_HTML is set to YES. HTML_EXTRA_STYLESHEET = @@ -1154,7 +1102,7 @@ HTML_EXTRA_STYLESHEET = HTML_EXTRA_FILES = # The HTML_COLORSTYLE_HUE tag controls the color of the HTML output. Doxygen -# will adjust the colors in the style sheet and background images according to +# will adjust the colors in the stylesheet and background images according to # this color. Hue is specified as an angle on a colorwheel, see # http://en.wikipedia.org/wiki/Hue for more information. For instance the value # 0 represents red, 60 is yellow, 120 is green, 180 is cyan, 240 is blue, 300 @@ -1185,9 +1133,8 @@ HTML_COLORSTYLE_GAMMA = 80 # If the HTML_TIMESTAMP tag is set to YES then the footer of each generated HTML # page will contain the date and time when the page was generated. Setting this -# to YES can help to show when doxygen was last run and thus if the -# documentation is up to date. -# The default value is: NO. +# to NO can help when comparing the output of multiple runs. +# The default value is: YES. # This tag requires that the tag GENERATE_HTML is set to YES. HTML_TIMESTAMP = YES @@ -1283,29 +1230,28 @@ GENERATE_HTMLHELP = NO CHM_FILE = # The HHC_LOCATION tag can be used to specify the location (absolute path -# including file name) of the HTML help compiler (hhc.exe). If non-empty, +# including file name) of the HTML help compiler ( hhc.exe). If non-empty # doxygen will try to run the HTML help compiler on the generated index.hhp. # The file has to be specified with full path. # This tag requires that the tag GENERATE_HTMLHELP is set to YES. HHC_LOCATION = -# The GENERATE_CHI flag controls if a separate .chi index file is generated -# (YES) or that it should be included in the master .chm file (NO). +# The GENERATE_CHI flag controls if a separate .chi index file is generated ( +# YES) or that it should be included in the master .chm file ( NO). # The default value is: NO. # This tag requires that the tag GENERATE_HTMLHELP is set to YES. GENERATE_CHI = NO -# The CHM_INDEX_ENCODING is used to encode HtmlHelp index (hhk), content (hhc) +# The CHM_INDEX_ENCODING is used to encode HtmlHelp index ( hhk), content ( hhc) # and project file content. # This tag requires that the tag GENERATE_HTMLHELP is set to YES. CHM_INDEX_ENCODING = -# The BINARY_TOC flag controls whether a binary table of contents is generated -# (YES) or a normal table of contents (NO) in the .chm file. Furthermore it -# enables the Previous and Next buttons. +# The BINARY_TOC flag controls whether a binary table of contents is generated ( +# YES) or a normal table of contents ( NO) in the .chm file. # The default value is: NO. # This tag requires that the tag GENERATE_HTMLHELP is set to YES. @@ -1418,7 +1364,7 @@ DISABLE_INDEX = NO # index structure (just like the one that is generated for HTML Help). For this # to work a browser that supports JavaScript, DHTML, CSS and frames is required # (i.e. any modern browser). Windows users are probably better off using the -# HTML help feature. Via custom style sheets (see HTML_EXTRA_STYLESHEET) one can +# HTML help feature. Via custom stylesheets (see HTML_EXTRA_STYLESHEET) one can # further fine-tune the look of the index. As an example, the default style # sheet generated by doxygen has an example that shows how to put an image at # the root of the tree instead of the PROJECT_NAME. Since the tree basically has @@ -1446,7 +1392,7 @@ ENUM_VALUES_PER_LINE = 4 TREEVIEW_WIDTH = 250 -# If the EXT_LINKS_IN_WINDOW option is set to YES, doxygen will open links to +# When the EXT_LINKS_IN_WINDOW option is set to YES doxygen will open links to # external symbols imported via tag files in a separate window. # The default value is: NO. # This tag requires that the tag GENERATE_HTML is set to YES. @@ -1475,7 +1421,7 @@ FORMULA_TRANSPARENT = YES # Enable the USE_MATHJAX option to render LaTeX formulas using MathJax (see # http://www.mathjax.org) which uses client side Javascript for the rendering -# instead of using pre-rendered bitmaps. Use this if you do not have LaTeX +# instead of using prerendered bitmaps. Use this if you do not have LaTeX # installed or if you want to formulas look prettier in the HTML output. When # enabled you may also need to install MathJax separately and configure the path # to it using the MATHJAX_RELPATH option. @@ -1545,11 +1491,11 @@ SEARCHENGINE = YES # When the SERVER_BASED_SEARCH tag is enabled the search engine will be # implemented using a web server instead of a web client using Javascript. There -# are two flavors of web server based searching depending on the EXTERNAL_SEARCH -# setting. When disabled, doxygen will generate a PHP script for searching and -# an index file used by the script. When EXTERNAL_SEARCH is enabled the indexing -# and searching needs to be provided by external tools. See the section -# "External Indexing and Searching" for details. +# are two flavours of web server based searching depending on the +# EXTERNAL_SEARCH setting. When disabled, doxygen will generate a PHP script for +# searching and an index file used by the script. When EXTERNAL_SEARCH is +# enabled the indexing and searching needs to be provided by external tools. See +# the section "External Indexing and Searching" for details. # The default value is: NO. # This tag requires that the tag SEARCHENGINE is set to YES. @@ -1561,7 +1507,7 @@ SERVER_BASED_SEARCH = NO # external search engine pointed to by the SEARCHENGINE_URL option to obtain the # search results. # -# Doxygen ships with an example indexer (doxyindexer) and search engine +# Doxygen ships with an example indexer ( doxyindexer) and search engine # (doxysearch.cgi) which are based on the open source search engine library # Xapian (see: http://xapian.org/). # @@ -1574,7 +1520,7 @@ EXTERNAL_SEARCH = NO # The SEARCHENGINE_URL should point to a search engine hosted by a web server # which will return the search results when EXTERNAL_SEARCH is enabled. # -# Doxygen ships with an example indexer (doxyindexer) and search engine +# Doxygen ships with an example indexer ( doxyindexer) and search engine # (doxysearch.cgi) which are based on the open source search engine library # Xapian (see: http://xapian.org/). See the section "External Indexing and # Searching" for details. @@ -1612,7 +1558,7 @@ EXTRA_SEARCH_MAPPINGS = # Configuration options related to the LaTeX output #--------------------------------------------------------------------------- -# If the GENERATE_LATEX tag is set to YES, doxygen will generate LaTeX output. +# If the GENERATE_LATEX tag is set to YES doxygen will generate LaTeX output. # The default value is: YES. GENERATE_LATEX = NO @@ -1643,7 +1589,7 @@ LATEX_CMD_NAME = latex MAKEINDEX_CMD_NAME = makeindex -# If the COMPACT_LATEX tag is set to YES, doxygen generates more compact LaTeX +# If the COMPACT_LATEX tag is set to YES doxygen generates more compact LaTeX # documents. This may be useful for small projects and may help to save some # trees in general. # The default value is: NO. @@ -1661,12 +1607,9 @@ COMPACT_LATEX = NO PAPER_TYPE = a4 # The EXTRA_PACKAGES tag can be used to specify one or more LaTeX package names -# that should be included in the LaTeX output. The package can be specified just -# by its name or with the correct syntax as to be used with the LaTeX -# \usepackage command. To get the times font for instance you can specify : -# EXTRA_PACKAGES=times or EXTRA_PACKAGES={times} -# To use the option intlimits with the amsmath package you can specify: -# EXTRA_PACKAGES=[intlimits]{amsmath} +# that should be included in the LaTeX output. To get the times font for +# instance you can specify +# EXTRA_PACKAGES=times # If left blank no extra packages will be included. # This tag requires that the tag GENERATE_LATEX is set to YES. @@ -1680,36 +1623,23 @@ EXTRA_PACKAGES = # # Note: Only use a user-defined header if you know what you are doing! The # following commands have a special meaning inside the header: $title, -# $datetime, $date, $doxygenversion, $projectname, $projectnumber, -# $projectbrief, $projectlogo. Doxygen will replace $title with the empty -# string, for the replacement values of the other commands the user is referred -# to HTML_HEADER. +# $datetime, $date, $doxygenversion, $projectname, $projectnumber. Doxygen will +# replace them by respectively the title of the page, the current date and time, +# only the current date, the version number of doxygen, the project name (see +# PROJECT_NAME), or the project number (see PROJECT_NUMBER). # This tag requires that the tag GENERATE_LATEX is set to YES. LATEX_HEADER = # The LATEX_FOOTER tag can be used to specify a personal LaTeX footer for the # generated LaTeX document. The footer should contain everything after the last -# chapter. If it is left blank doxygen will generate a standard footer. See -# LATEX_HEADER for more information on how to generate a default footer and what -# special commands can be used inside the footer. +# chapter. If it is left blank doxygen will generate a standard footer. # # Note: Only use a user-defined footer if you know what you are doing! # This tag requires that the tag GENERATE_LATEX is set to YES. LATEX_FOOTER = -# The LATEX_EXTRA_STYLESHEET tag can be used to specify additional user-defined -# LaTeX style sheets that are included after the standard style sheets created -# by doxygen. Using this option one can overrule certain style aspects. Doxygen -# will copy the style sheet files to the output directory. -# Note: The order of the extra style sheet files is of importance (e.g. the last -# style sheet in the list overrules the setting of the previous ones in the -# list). -# This tag requires that the tag GENERATE_LATEX is set to YES. - -LATEX_EXTRA_STYLESHEET = - # The LATEX_EXTRA_FILES tag can be used to specify one or more extra images or # other source files which should be copied to the LATEX_OUTPUT output # directory. Note that the files will be copied as-is; there are no commands or @@ -1727,8 +1657,8 @@ LATEX_EXTRA_FILES = PDF_HYPERLINKS = YES -# If the USE_PDFLATEX tag is set to YES, doxygen will use pdflatex to generate -# the PDF file directly from the LaTeX files. Set this option to YES, to get a +# If the LATEX_PDFLATEX tag is set to YES, doxygen will use pdflatex to generate +# the PDF file directly from the LaTeX files. Set this option to YES to get a # higher quality PDF documentation. # The default value is: YES. # This tag requires that the tag GENERATE_LATEX is set to YES. @@ -1769,19 +1699,11 @@ LATEX_SOURCE_CODE = NO LATEX_BIB_STYLE = plain -# If the LATEX_TIMESTAMP tag is set to YES then the footer of each generated -# page will contain the date and time when the page was generated. Setting this -# to NO can help when comparing the output of multiple runs. -# The default value is: NO. -# This tag requires that the tag GENERATE_LATEX is set to YES. - -LATEX_TIMESTAMP = NO - #--------------------------------------------------------------------------- # Configuration options related to the RTF output #--------------------------------------------------------------------------- -# If the GENERATE_RTF tag is set to YES, doxygen will generate RTF output. The +# If the GENERATE_RTF tag is set to YES doxygen will generate RTF output. The # RTF output is optimized for Word 97 and may not look too pretty with other RTF # readers/editors. # The default value is: NO. @@ -1796,7 +1718,7 @@ GENERATE_RTF = NO RTF_OUTPUT = rtf -# If the COMPACT_RTF tag is set to YES, doxygen generates more compact RTF +# If the COMPACT_RTF tag is set to YES doxygen generates more compact RTF # documents. This may be useful for small projects and may help to save some # trees in general. # The default value is: NO. @@ -1833,21 +1755,11 @@ RTF_STYLESHEET_FILE = RTF_EXTENSIONS_FILE = -# If the RTF_SOURCE_CODE tag is set to YES then doxygen will include source code -# with syntax highlighting in the RTF output. -# -# Note that which sources are shown also depends on other settings such as -# SOURCE_BROWSER. -# The default value is: NO. -# This tag requires that the tag GENERATE_RTF is set to YES. - -RTF_SOURCE_CODE = NO - #--------------------------------------------------------------------------- # Configuration options related to the man page output #--------------------------------------------------------------------------- -# If the GENERATE_MAN tag is set to YES, doxygen will generate man pages for +# If the GENERATE_MAN tag is set to YES doxygen will generate man pages for # classes and files. # The default value is: NO. @@ -1871,13 +1783,6 @@ MAN_OUTPUT = man MAN_EXTENSION = .3 -# The MAN_SUBDIR tag determines the name of the directory created within -# MAN_OUTPUT in which the man pages are placed. If defaults to man followed by -# MAN_EXTENSION with the initial . removed. -# This tag requires that the tag GENERATE_MAN is set to YES. - -MAN_SUBDIR = - # If the MAN_LINKS tag is set to YES and doxygen generates man output, then it # will generate one additional man file for each entity documented in the real # man page(s). These additional files only source the real man page, but without @@ -1891,7 +1796,7 @@ MAN_LINKS = NO # Configuration options related to the XML output #--------------------------------------------------------------------------- -# If the GENERATE_XML tag is set to YES, doxygen will generate an XML file that +# If the GENERATE_XML tag is set to YES doxygen will generate an XML file that # captures the structure of the code including all documentation. # The default value is: NO. @@ -1905,7 +1810,19 @@ GENERATE_XML = NO XML_OUTPUT = xml -# If the XML_PROGRAMLISTING tag is set to YES, doxygen will dump the program +# The XML_SCHEMA tag can be used to specify a XML schema, which can be used by a +# validating XML parser to check the syntax of the XML files. +# This tag requires that the tag GENERATE_XML is set to YES. + +XML_SCHEMA = + +# The XML_DTD tag can be used to specify a XML DTD, which can be used by a +# validating XML parser to check the syntax of the XML files. +# This tag requires that the tag GENERATE_XML is set to YES. + +XML_DTD = + +# If the XML_PROGRAMLISTING tag is set to YES doxygen will dump the program # listings (including syntax highlighting and cross-referencing information) to # the XML output. Note that enabling this will significantly increase the size # of the XML output. @@ -1918,7 +1835,7 @@ XML_PROGRAMLISTING = YES # Configuration options related to the DOCBOOK output #--------------------------------------------------------------------------- -# If the GENERATE_DOCBOOK tag is set to YES, doxygen will generate Docbook files +# If the GENERATE_DOCBOOK tag is set to YES doxygen will generate Docbook files # that can be used to generate PDF. # The default value is: NO. @@ -1932,23 +1849,14 @@ GENERATE_DOCBOOK = NO DOCBOOK_OUTPUT = docbook -# If the DOCBOOK_PROGRAMLISTING tag is set to YES, doxygen will include the -# program listings (including syntax highlighting and cross-referencing -# information) to the DOCBOOK output. Note that enabling this will significantly -# increase the size of the DOCBOOK output. -# The default value is: NO. -# This tag requires that the tag GENERATE_DOCBOOK is set to YES. - -DOCBOOK_PROGRAMLISTING = NO - #--------------------------------------------------------------------------- # Configuration options for the AutoGen Definitions output #--------------------------------------------------------------------------- -# If the GENERATE_AUTOGEN_DEF tag is set to YES, doxygen will generate an -# AutoGen Definitions (see http://autogen.sf.net) file that captures the -# structure of the code including all documentation. Note that this feature is -# still experimental and incomplete at the moment. +# If the GENERATE_AUTOGEN_DEF tag is set to YES doxygen will generate an AutoGen +# Definitions (see http://autogen.sf.net) file that captures the structure of +# the code including all documentation. Note that this feature is still +# experimental and incomplete at the moment. # The default value is: NO. GENERATE_AUTOGEN_DEF = NO @@ -1957,7 +1865,7 @@ GENERATE_AUTOGEN_DEF = NO # Configuration options related to the Perl module output #--------------------------------------------------------------------------- -# If the GENERATE_PERLMOD tag is set to YES, doxygen will generate a Perl module +# If the GENERATE_PERLMOD tag is set to YES doxygen will generate a Perl module # file that captures the structure of the code including all documentation. # # Note that this feature is still experimental and incomplete at the moment. @@ -1965,7 +1873,7 @@ GENERATE_AUTOGEN_DEF = NO GENERATE_PERLMOD = NO -# If the PERLMOD_LATEX tag is set to YES, doxygen will generate the necessary +# If the PERLMOD_LATEX tag is set to YES doxygen will generate the necessary # Makefile rules, Perl scripts and LaTeX code to be able to generate PDF and DVI # output from the Perl module output. # The default value is: NO. @@ -1973,9 +1881,9 @@ GENERATE_PERLMOD = NO PERLMOD_LATEX = NO -# If the PERLMOD_PRETTY tag is set to YES, the Perl module output will be nicely +# If the PERLMOD_PRETTY tag is set to YES the Perl module output will be nicely # formatted so it can be parsed by a human reader. This is useful if you want to -# understand what is going on. On the other hand, if this tag is set to NO, the +# understand what is going on. On the other hand, if this tag is set to NO the # size of the Perl module output will be much smaller and Perl will parse it # just the same. # The default value is: YES. @@ -1995,14 +1903,14 @@ PERLMOD_MAKEVAR_PREFIX = # Configuration options related to the preprocessor #--------------------------------------------------------------------------- -# If the ENABLE_PREPROCESSING tag is set to YES, doxygen will evaluate all +# If the ENABLE_PREPROCESSING tag is set to YES doxygen will evaluate all # C-preprocessor directives found in the sources and include files. # The default value is: YES. ENABLE_PREPROCESSING = YES -# If the MACRO_EXPANSION tag is set to YES, doxygen will expand all macro names -# in the source code. If set to NO, only conditional compilation will be +# If the MACRO_EXPANSION tag is set to YES doxygen will expand all macro names +# in the source code. If set to NO only conditional compilation will be # performed. Macro expansion can be done in a controlled way by setting # EXPAND_ONLY_PREDEF to YES. # The default value is: NO. @@ -2018,7 +1926,7 @@ MACRO_EXPANSION = NO EXPAND_ONLY_PREDEF = NO -# If the SEARCH_INCLUDES tag is set to YES, the include files in the +# If the SEARCH_INCLUDES tag is set to YES the includes files in the # INCLUDE_PATH will be searched if a #include is found. # The default value is: YES. # This tag requires that the tag ENABLE_PREPROCESSING is set to YES. @@ -2060,9 +1968,9 @@ PREDEFINED = EXPAND_AS_DEFINED = # If the SKIP_FUNCTION_MACROS tag is set to YES then doxygen's preprocessor will -# remove all references to function-like macros that are alone on a line, have -# an all uppercase name, and do not end with a semicolon. Such function macros -# are typically used for boiler-plate code, and will confuse the parser if not +# remove all refrences to function-like macros that are alone on a line, have an +# all uppercase name, and do not end with a semicolon. Such function macros are +# typically used for boiler-plate code, and will confuse the parser if not # removed. # The default value is: YES. # This tag requires that the tag ENABLE_PREPROCESSING is set to YES. @@ -2082,7 +1990,7 @@ SKIP_FUNCTION_MACROS = YES # where loc1 and loc2 can be relative or absolute paths or URLs. See the # section "Linking to external documentation" for more information about the use # of tag files. -# Note: Each tag file must have a unique name (where the name does NOT include +# Note: Each tag file must have an unique name (where the name does NOT include # the path). If a tag file is not located in the directory in which doxygen is # run, you must also specify the path to the tagfile here. @@ -2094,21 +2002,20 @@ TAGFILES = GENERATE_TAGFILE = -# If the ALLEXTERNALS tag is set to YES, all external class will be listed in -# the class index. If set to NO, only the inherited external classes will be -# listed. +# If the ALLEXTERNALS tag is set to YES all external class will be listed in the +# class index. If set to NO only the inherited external classes will be listed. # The default value is: NO. ALLEXTERNALS = NO -# If the EXTERNAL_GROUPS tag is set to YES, all external groups will be listed -# in the modules index. If set to NO, only the current project's groups will be +# If the EXTERNAL_GROUPS tag is set to YES all external groups will be listed in +# the modules index. If set to NO, only the current project's groups will be # listed. # The default value is: YES. EXTERNAL_GROUPS = YES -# If the EXTERNAL_PAGES tag is set to YES, all external pages will be listed in +# If the EXTERNAL_PAGES tag is set to YES all external pages will be listed in # the related pages index. If set to NO, only the current project's pages will # be listed. # The default value is: YES. @@ -2125,7 +2032,7 @@ PERL_PATH = /usr/bin/perl # Configuration options related to the dot tool #--------------------------------------------------------------------------- -# If the CLASS_DIAGRAMS tag is set to YES, doxygen will generate a class diagram +# If the CLASS_DIAGRAMS tag is set to YES doxygen will generate a class diagram # (in HTML and LaTeX) for classes with base or super classes. Setting the tag to # NO turns the diagrams off. Note that this option also works with HAVE_DOT # disabled, but it is recommended to install and use dot, since it yields more @@ -2150,7 +2057,7 @@ MSCGEN_PATH = DIA_PATH = -# If set to YES the inheritance and collaboration graphs will hide inheritance +# If set to YES, the inheritance and collaboration graphs will hide inheritance # and usage relations if the target is undocumented or is not a class. # The default value is: YES. @@ -2175,7 +2082,7 @@ HAVE_DOT = NO DOT_NUM_THREADS = 0 -# When you want a differently looking font in the dot files that doxygen +# When you want a differently looking font n the dot files that doxygen # generates you can specify the font name using DOT_FONTNAME. You need to make # sure dot is able to find the font, which can be done by putting it in a # standard location or by setting the DOTFONTPATH environment variable or by @@ -2223,7 +2130,7 @@ COLLABORATION_GRAPH = YES GROUP_GRAPHS = YES -# If the UML_LOOK tag is set to YES, doxygen will generate inheritance and +# If the UML_LOOK tag is set to YES doxygen will generate inheritance and # collaboration diagrams in a style similar to the OMG's Unified Modeling # Language. # The default value is: NO. @@ -2275,8 +2182,7 @@ INCLUDED_BY_GRAPH = YES # # Note that enabling this option will significantly increase the time of a run. # So in most cases it will be better to enable call graphs for selected -# functions only using the \callgraph command. Disabling a call graph can be -# accomplished by means of the command \hidecallgraph. +# functions only using the \callgraph command. # The default value is: NO. # This tag requires that the tag HAVE_DOT is set to YES. @@ -2287,8 +2193,7 @@ CALL_GRAPH = NO # # Note that enabling this option will significantly increase the time of a run. # So in most cases it will be better to enable caller graphs for selected -# functions only using the \callergraph command. Disabling a caller graph can be -# accomplished by means of the command \hidecallergraph. +# functions only using the \callergraph command. # The default value is: NO. # This tag requires that the tag HAVE_DOT is set to YES. @@ -2311,15 +2216,11 @@ GRAPHICAL_HIERARCHY = YES DIRECTORY_GRAPH = YES # The DOT_IMAGE_FORMAT tag can be used to set the image format of the images -# generated by dot. For an explanation of the image formats see the section -# output formats in the documentation of the dot tool (Graphviz (see: -# http://www.graphviz.org/)). +# generated by dot. # Note: If you choose svg you need to set HTML_FILE_EXTENSION to xhtml in order # to make the SVG files visible in IE 9+ (other browsers do not have this # requirement). -# Possible values are: png, jpg, gif, svg, png:gd, png:gd:gd, png:cairo, -# png:cairo:gd, png:cairo:cairo, png:cairo:gdiplus, png:gdiplus and -# png:gdiplus:gdiplus. +# Possible values are: png, jpg, gif and svg. # The default value is: png. # This tag requires that the tag HAVE_DOT is set to YES. @@ -2362,24 +2263,6 @@ MSCFILE_DIRS = DIAFILE_DIRS = -# When using plantuml, the PLANTUML_JAR_PATH tag should be used to specify the -# path where java can find the plantuml.jar file. If left blank, it is assumed -# PlantUML is not used or called during a preprocessing step. Doxygen will -# generate a warning when it encounters a \startuml command in this case and -# will not generate output for the diagram. - -PLANTUML_JAR_PATH = - -# When using plantuml, the PLANTUML_CFG_FILE tag can be used to specify a -# configuration file for plantuml. - -PLANTUML_CFG_FILE = - -# When using plantuml, the specified paths are searched for files specified by -# the !include statement in a plantuml block. - -PLANTUML_INCLUDE_PATH = - # The DOT_GRAPH_MAX_NODES tag can be used to set the maximum number of nodes # that will be shown in the graph. If the number of nodes in a graph becomes # larger than this value, doxygen will truncate the graph, which is visualized @@ -2416,7 +2299,7 @@ MAX_DOT_GRAPH_DEPTH = 0 DOT_TRANSPARENT = NO -# Set the DOT_MULTI_TARGETS tag to YES to allow dot to generate multiple output +# Set the DOT_MULTI_TARGETS tag to YES allow dot to generate multiple output # files in one run (i.e. multiple -o and -T options on the command line). This # makes dot run faster, but since only newer versions of dot (>1.8.10) support # this, this feature is disabled by default. @@ -2433,7 +2316,7 @@ DOT_MULTI_TARGETS = NO GENERATE_LEGEND = YES -# If the DOT_CLEANUP tag is set to YES, doxygen will remove the intermediate dot +# If the DOT_CLEANUP tag is set to YES doxygen will remove the intermediate dot # files that are used to generate the various graphs. # The default value is: YES. # This tag requires that the tag HAVE_DOT is set to YES. diff --git a/readme.md b/readme.md index c5bc5a4..54f752a 100644 --- a/readme.md +++ b/readme.md @@ -1,8 +1,5 @@ -TinyXML-2 +TinyXML-2 [![TravisCI Status](https://travis-ci.org/leethomason/tinyxml2.svg?branch=master)](https://travis-ci.org/leethomason/tinyxml2) [![AppVeyor Status](https://ci.appveyor.com/api/projects/status/github/leethomason/tinyxml2?branch=master&svg=true)](https://ci.appveyor.com/project/leethomason/tinyxml2) ========= - -[![TravisCI Status](https://travis-ci.org/leethomason/tinyxml2.svg?branch=master)](https://travis-ci.org/leethomason/tinyxml2) [![AppVeyor Status](https://ci.appveyor.com/api/projects/status/github/leethomason/tinyxml2?branch=master&svg=true)](https://ci.appveyor.com/project/leethomason/tinyxml2) - ![TinyXML-2 Logo](http://www.grinninglizard.com/tinyxml2/TinyXML2_small.png) TinyXML-2 is a simple, small, efficient, C++ XML parser that can be @@ -12,7 +9,7 @@ The master is hosted on github: https://github.com/leethomason/tinyxml2 The online HTML version of these docs: -http://leethomason.github.io/tinyxml2/ +http://grinninglizard.com/tinyxml2docs/index.html Examples are in the "related pages" tab of the HTML docs. diff --git a/resources/out/readme.txt b/resources/out/readme.txt deleted file mode 100644 index 5c8861a..0000000 --- a/resources/out/readme.txt +++ /dev/null @@ -1 +0,0 @@ -This file is here to create this output directory when the source is pulled from git. \ No newline at end of file diff --git a/tinyxml2.h b/tinyxml2.h index a372b41..e6a0ced 100755 --- a/tinyxml2.h +++ b/tinyxml2.h @@ -341,8 +341,8 @@ public: void Clear() { // Delete the blocks. while( !_blockPtrs.Empty()) { - Block* lastBlock = _blockPtrs.Pop(); - delete lastBlock; + Block* b = _blockPtrs.Pop(); + delete b; } _root = 0; _currentAllocs = 0; diff --git a/xmltest.cpp b/xmltest.cpp index 3fada04..276c61b 100644 --- a/xmltest.cpp +++ b/xmltest.cpp @@ -5,20 +5,16 @@ #endif #include "tinyxml2.h" -#include #include #include #include -#if defined( _MSC_VER ) || defined (WIN32) +#if defined( _MSC_VER ) #include #define WIN32_LEAN_AND_MEAN #include _CrtMemState startMemState; _CrtMemState endMemState; -#else - #include - #include #endif using namespace tinyxml2; @@ -366,7 +362,6 @@ int main( int argc, const char ** argv ) for( int i=0; test[i]; ++i ) { XMLDocument doc; doc.Parse( test[i] ); - XMLTest( "Element test", false, doc.Error() ); doc.Print(); printf( "----------------------------------------------\n" ); } @@ -381,7 +376,6 @@ int main( int argc, const char ** argv ) XMLDocument doc; doc.Parse( test ); - XMLTest( "Hello world declaration", false, doc.Error() ); doc.Print(); } @@ -389,7 +383,6 @@ int main( int argc, const char ** argv ) static const char* test = "Text before."; XMLDocument doc; doc.Parse( test ); - XMLTest( "Element text before", false, doc.Error() ); XMLElement* root = doc.FirstChildElement(); XMLElement* newElement = doc.NewElement( "Subelement" ); root->InsertEndChild( newElement ); @@ -399,7 +392,6 @@ int main( int argc, const char ** argv ) XMLDocument* doc = new XMLDocument(); static const char* test = ""; doc->Parse( test ); - XMLTest( "Element with sub element", false, doc->Error() ); delete doc; } { @@ -441,14 +433,12 @@ int main( int argc, const char ** argv ) element->LastChildElement()->DeleteAttribute( "attrib" ); XMLTest( "Programmatic DOM", true, doc->FirstChildElement()->FirstChildElement()->BoolAttribute( "attrib" ) ); - const int defaultIntValue = 10; - const int replacementIntValue = 20; - int value1 = defaultIntValue; - int value2 = doc->FirstChildElement()->LastChildElement()->IntAttribute( "attrib", replacementIntValue ); + int value1 = 10; + int value2 = doc->FirstChildElement()->LastChildElement()->IntAttribute( "attrib", 10 ); XMLError result = doc->FirstChildElement()->LastChildElement()->QueryIntAttribute( "attrib", &value1 ); XMLTest( "Programmatic DOM", XML_NO_ATTRIBUTE, result ); - XMLTest( "Programmatic DOM", defaultIntValue, value1 ); - XMLTest( "Programmatic DOM", replacementIntValue, value2 ); + XMLTest( "Programmatic DOM", 10, value1 ); + XMLTest( "Programmatic DOM", 10, value2 ); doc->Print(); @@ -463,9 +453,7 @@ int main( int argc, const char ** argv ) XMLTest( "Compact mode", "", streamer.CStr(), false ); } doc->SaveFile( "./resources/out/pretty.xml" ); - XMLTest( "Save pretty.xml", false, doc->Error() ); doc->SaveFile( "./resources/out/compact.xml", true ); - XMLTest( "Save compact.xml", false, doc->Error() ); delete doc; } { @@ -475,10 +463,8 @@ int main( int argc, const char ** argv ) //int newStart = gNew; XMLDocument doc; doc.LoadFile( "resources/dream.xml" ); - XMLTest( "Load dream.xml", false, doc.Error() ); doc.SaveFile( "resources/out/dreamout.xml" ); - XMLTest( "Save dreamout.xml", false, doc.Error() ); doc.PrintError(); XMLTest( "Dream", "xml version=\"1.0\"", @@ -493,7 +479,6 @@ int main( int argc, const char ** argv ) XMLDocument doc2; doc2.LoadFile( "resources/out/dreamout.xml" ); - XMLTest( "Load dreamout.xml", false, doc2.Error() ); XMLTest( "Dream-out", "xml version=\"1.0\"", doc2.FirstChild()->ToDeclaration()->Value() ); XMLTest( "Dream-out", true, doc2.FirstChild()->NextSibling()->ToUnknown() ? true : false ); @@ -522,7 +507,6 @@ int main( int argc, const char ** argv ) XMLDocument doc; doc.Parse( str ); - XMLTest( "Top level attributes", false, doc.Error() ); XMLElement* ele = doc.FirstChildElement(); @@ -558,7 +542,6 @@ int main( int argc, const char ** argv ) XMLDocument doc; doc.Parse( str ); - XMLTest( "Empty top element", false, doc.Error() ); XMLElement* ele = doc.FirstChildElement(); @@ -570,23 +553,11 @@ int main( int argc, const char ** argv ) ele->SetAttribute( "double", -1.0 ); const char* cStr = ele->Attribute( "str" ); - { - XMLError queryResult = ele->QueryIntAttribute( "int", &iVal ); - XMLTest( "Query int attribute", XML_SUCCESS, queryResult); - } - { - XMLError queryResult = ele->QueryDoubleAttribute( "double", &dVal ); - XMLTest( "Query double attribute", XML_SUCCESS, queryResult); - } + ele->QueryIntAttribute( "int", &iVal ); + ele->QueryDoubleAttribute( "double", &dVal ); - { - int queryResult = ele->QueryAttribute( "int", &iVal2 ); - XMLTest( "Query int attribute generic", (int)XML_SUCCESS, queryResult); - } - { - int queryResult = ele->QueryAttribute( "double", &dVal2 ); - XMLTest( "Query double attribute generic", (int)XML_SUCCESS, queryResult); - } + ele->QueryAttribute( "int", &iVal2 ); + ele->QueryAttribute( "double", &dVal2 ); XMLTest( "Attribute match test", "strValue", ele->Attribute( "str", "strValue" ) ); XMLTest( "Attribute round trip. c-string.", "strValue", cStr ); @@ -601,7 +572,6 @@ int main( int argc, const char ** argv ) { XMLDocument doc; doc.LoadFile( "resources/utf8test.xml" ); - XMLTest( "Load utf8test.xml", false, doc.Error() ); // Get the attribute "value" from the "Russian" element and check it. XMLElement* element = doc.FirstChildElement( "document" )->FirstChildElement( "Russian" ); @@ -623,7 +593,6 @@ int main( int argc, const char ** argv ) // Now try for a round trip. doc.SaveFile( "resources/out/utf8testout.xml" ); - XMLTest( "UTF-8: Save testout.xml", false, doc.Error() ); // Check the round trip. int okay = 0; @@ -663,14 +632,12 @@ int main( int argc, const char ** argv ) const char* str = "This is text"; XMLDocument doc; doc.Parse( str ); - XMLTest( "Double whitespace", false, doc.Error() ); const XMLElement* element = doc.RootElement(); XMLTest( "GetText() normal use.", "This is text", element->GetText() ); str = "This is text"; doc.Parse( str ); - XMLTest( "Bold text simulation", false, doc.Error() ); element = doc.RootElement(); XMLTest( "GetText() contained element.", element->GetText() == 0, true ); @@ -682,7 +649,6 @@ int main( int argc, const char ** argv ) const char* str = ""; XMLDocument doc; doc.Parse( str ); - XMLTest( "Empty closed element", false, doc.Error() ); XMLElement* element = doc.RootElement(); element->SetText("darkness."); @@ -693,7 +659,6 @@ int main( int argc, const char ** argv ) str = ""; doc.Parse( str ); - XMLTest( "Empty self-closed element", false, doc.Error() ); element = doc.RootElement(); element->SetText("The driver"); @@ -705,7 +670,6 @@ int main( int argc, const char ** argv ) str = "Text in nested element"; doc.Parse( str ); - XMLTest( "Text in nested element", false, doc.Error() ); element = doc.RootElement(); element->SetText("wolves"); @@ -713,7 +677,6 @@ int main( int argc, const char ** argv ) str = ""; doc.Parse( str ); - XMLTest( "Empty self-closed element round 2", false, doc.Error() ); element = doc.RootElement(); element->SetText( "str" ); @@ -744,66 +707,38 @@ int main( int argc, const char ** argv ) { element->SetAttribute("attrib", int(-100)); - { - int v = 0; - XMLError queryResult = element->QueryIntAttribute("attrib", &v); - XMLTest("Attribute: int", XML_SUCCESS, queryResult, true); - XMLTest("Attribute: int", -100, v, true); - } - { - int v = 0; - int queryResult = element->QueryAttribute("attrib", &v); - XMLTest("Attribute: int", (int)XML_SUCCESS, queryResult, true); - XMLTest("Attribute: int", -100, v, true); - } + int v = 0; + element->QueryIntAttribute("attrib", &v); + XMLTest("Attribute: int", -100, v, true); + element->QueryAttribute("attrib", &v); + XMLTest("Attribute: int", -100, v, true); XMLTest("Attribute: int", -100, element->IntAttribute("attrib"), true); } { element->SetAttribute("attrib", unsigned(100)); - { - unsigned v = 0; - XMLError queryResult = element->QueryUnsignedAttribute("attrib", &v); - XMLTest("Attribute: unsigned", XML_SUCCESS, queryResult, true); - XMLTest("Attribute: unsigned", unsigned(100), v, true); - } - { - unsigned v = 0; - int queryResult = element->QueryAttribute("attrib", &v); - XMLTest("Attribute: unsigned", (int)XML_SUCCESS, queryResult, true); - XMLTest("Attribute: unsigned", unsigned(100), v, true); - } + unsigned v = 0; + element->QueryUnsignedAttribute("attrib", &v); + XMLTest("Attribute: unsigned", unsigned(100), v, true); + element->QueryAttribute("attrib", &v); + XMLTest("Attribute: unsigned", unsigned(100), v, true); XMLTest("Attribute: unsigned", unsigned(100), element->UnsignedAttribute("attrib"), true); } { element->SetAttribute("attrib", BIG); - { - int64_t v = 0; - XMLError queryResult = element->QueryInt64Attribute("attrib", &v); - XMLTest("Attribute: int64_t", XML_SUCCESS, queryResult, true); - XMLTest("Attribute: int64_t", BIG, v, true); - } - { - int64_t v = 0; - int queryResult = element->QueryAttribute("attrib", &v); - XMLTest("Attribute: int64_t", (int)XML_SUCCESS, queryResult, true); - XMLTest("Attribute: int64_t", BIG, v, true); - } + int64_t v = 0; + element->QueryInt64Attribute("attrib", &v); + XMLTest("Attribute: int64_t", BIG, v, true); + element->QueryAttribute("attrib", &v); + XMLTest("Attribute: int64_t", BIG, v, true); XMLTest("Attribute: int64_t", BIG, element->Int64Attribute("attrib"), true); } { element->SetAttribute("attrib", true); - { - bool v = false; - XMLError queryResult = element->QueryBoolAttribute("attrib", &v); - XMLTest("Attribute: bool", XML_SUCCESS, queryResult, true); - XMLTest("Attribute: bool", true, v, true); - } - { - bool v = false; - int queryResult = element->QueryAttribute("attrib", &v); - XMLTest("Attribute: bool", (int)XML_SUCCESS, queryResult, true); - XMLTest("Attribute: bool", true, v, true); - } + bool v = false; + element->QueryBoolAttribute("attrib", &v); + XMLTest("Attribute: bool", true, v, true); + element->QueryAttribute("attrib", &v); + XMLTest("Attribute: bool", true, v, true); XMLTest("Attribute: bool", true, element->BoolAttribute("attrib"), true); } { @@ -820,41 +755,26 @@ int main( int argc, const char ** argv ) } { element->SetAttribute("attrib", 100.0); - { - double v = 0; - XMLError queryResult = element->QueryDoubleAttribute("attrib", &v); - XMLTest("Attribute: double", XML_SUCCESS, queryResult, true); - XMLTest("Attribute: double", 100.0, v, true); - } - { - double v = 0; - int queryResult = element->QueryAttribute("attrib", &v); - XMLTest("Attribute: bool", (int)XML_SUCCESS, queryResult, true); - XMLTest("Attribute: double", 100.0, v, true); - } + double v = 0; + element->QueryDoubleAttribute("attrib", &v); + XMLTest("Attribute: double", 100.0, v, true); + element->QueryAttribute("attrib", &v); + XMLTest("Attribute: double", 100.0, v, true); XMLTest("Attribute: double", 100.0, element->DoubleAttribute("attrib"), true); } { element->SetAttribute("attrib", 100.0f); - { - float v = 0; - XMLError queryResult = element->QueryFloatAttribute("attrib", &v); - XMLTest("Attribute: float", XML_SUCCESS, queryResult, true); - XMLTest("Attribute: float", 100.0f, v, true); - } - { - float v = 0; - int queryResult = element->QueryAttribute("attrib", &v); - XMLTest("Attribute: float", (int)XML_SUCCESS, queryResult, true); - XMLTest("Attribute: float", 100.0f, v, true); - } + float v = 0; + element->QueryFloatAttribute("attrib", &v); + XMLTest("Attribute: float", 100.0f, v, true); + element->QueryAttribute("attrib", &v); + XMLTest("Attribute: float", 100.0f, v, true); XMLTest("Attribute: float", 100.0f, element->FloatAttribute("attrib"), true); } { element->SetText(BIG); int64_t v = 0; - XMLError queryResult = element->QueryInt64Text(&v); - XMLTest("Element: int64_t", XML_SUCCESS, queryResult, true); + element->QueryInt64Text(&v); XMLTest("Element: int64_t", BIG, v, true); } } @@ -908,7 +828,6 @@ int main( int argc, const char ** argv ) ""; XMLDocument doc; doc.Parse( str ); - XMLTest( "CDATA symbolic puns round 1", false, doc.Error() ); doc.Print(); XMLTest( "CDATA parse.", "I am > the rules!\n...since I make symbolic puns", @@ -926,7 +845,6 @@ int main( int argc, const char ** argv ) ""; XMLDocument doc; doc.Parse( str ); - XMLTest( "CDATA symbolic puns round 2", false, doc.Error() ); doc.Print(); XMLTest( "CDATA parse. [ tixml1:1480107 ]", @@ -964,7 +882,6 @@ int main( int argc, const char ** argv ) XMLDocument doc; doc.Parse( passages ); - XMLTest( "Entity transformation parse round 1", false, doc.Error() ); XMLElement* psg = doc.RootElement()->FirstChildElement(); const char* context = psg->Attribute( "context" ); const char* expected = "Line 5 has \"quotation marks\" and 'apostrophe marks'. It also has <, >, and &, as well as a fake copyright \xC2\xA9."; @@ -1003,7 +920,6 @@ int main( int argc, const char ** argv ) XMLDocument doc( false ); doc.Parse( passages ); - XMLTest( "Entity transformation parse round 2", false, doc.Error() ); XMLTest( "No entity parsing.", "Line 5 has "quotation marks" and 'apostrophe marks'.", @@ -1028,7 +944,6 @@ int main( int argc, const char ** argv ) XMLDocument doc; doc.Parse( test ); - XMLTest( "fin thickness", false, doc.Error() ); XMLText* text = doc.FirstChildElement()->FirstChildElement()->FirstChild()->ToText(); XMLTest( "Entity with one digit.", @@ -1048,12 +963,9 @@ int main( int argc, const char ** argv ) XMLDocument doc; doc.Parse( doctype ); - XMLTest( "PLAY SYSTEM parse", false, doc.Error() ); doc.SaveFile( "resources/out/test7.xml" ); - XMLTest( "PLAY SYSTEM save", false, doc.Error() ); doc.DeleteChild( doc.RootElement() ); doc.LoadFile( "resources/out/test7.xml" ); - XMLTest( "PLAY SYSTEM load", false, doc.Error() ); doc.Print(); const XMLUnknown* decl = doc.FirstChild()->NextSibling()->ToUnknown(); @@ -1067,7 +979,6 @@ int main( int argc, const char ** argv ) ""; XMLDocument doc; doc.Parse( doctype ); - XMLTest( "Comment somewhat evil", false, doc.Error() ); XMLComment* comment = doc.FirstChild()->ToComment(); @@ -1113,7 +1024,6 @@ int main( int argc, const char ** argv ) // Low entities XMLDocument doc; doc.Parse( "" ); - XMLTest( "Hex values", false, doc.Error() ); const char result[] = { 0x0e, 0 }; XMLTest( "Low entities.", result, doc.FirstChildElement()->GetText() ); doc.Print(); @@ -1143,7 +1053,6 @@ int main( int argc, const char ** argv ) XMLDocument xml; xml.Parse("" "" ); - XMLTest( "Declarations for head and body", false, xml.Error() ); XMLNode* e0 = xml.FirstChild(); XMLNode* e1 = e0->NextSibling(); @@ -1161,7 +1070,6 @@ int main( int argc, const char ** argv ) "" "" "" ); - XMLTest( "Comments iteration", false, xml.Error() ); xml.Print(); int count = 0; @@ -1184,7 +1092,6 @@ int main( int argc, const char ** argv ) XMLDocument doc; doc.Parse( (const char*)buf); - XMLTest( "Broken CDATA", true, doc.Error() ); } @@ -1200,7 +1107,6 @@ int main( int argc, const char ** argv ) // This one must not result in an infinite loop XMLDocument xml; xml.Parse( "loop" ); - XMLTest( "No closing element", true, xml.Error() ); XMLTest( "Infinite loop test.", true, true ); } #endif @@ -1208,7 +1114,6 @@ int main( int argc, const char ** argv ) const char* pub = " "; XMLDocument doc; doc.Parse( pub ); - XMLTest( "Trailing DOCTYPE", false, doc.Error() ); XMLDocument clone; for( const XMLNode* node=doc.FirstChild(); node; node=node->NextSibling() ) { @@ -1242,7 +1147,6 @@ int main( int argc, const char ** argv ) ""; XMLDocument doc; doc.Parse(xml); - XMLTest( "Parse before deep cloning root element", false, doc.Error() ); doc.Print(&printer1); XMLNode* root = doc.RootElement()->DeepClone(&doc2); @@ -1269,7 +1173,6 @@ int main( int argc, const char ** argv ) ""; XMLDocument doc; doc.Parse(xml); - XMLTest( "Parse before deep cloning sub element", false, doc.Error() ); const XMLElement* subElement = doc.FirstChildElement("root")->FirstChildElement("child2"); subElement->Accept(&printer1); @@ -1299,7 +1202,6 @@ int main( int argc, const char ** argv ) ""; XMLDocument doc; doc.Parse(xml); - XMLTest( "Parse before deep cloning document", false, doc.Error() ); doc.Print(&printer1); doc.DeepCopy(&doc2); @@ -1326,7 +1228,6 @@ int main( int argc, const char ** argv ) static const char* xml = ""; XMLDocument doc; doc.Parse( xml ); - XMLTest( "Parse for attribute ordering", false, doc.Error() ); XMLElement* ele = doc.FirstChildElement(); const XMLAttribute* a = ele->FirstAttribute(); @@ -1355,13 +1256,10 @@ int main( int argc, const char ** argv ) static const char* xml2 = ""; XMLDocument doc0; doc0.Parse( xml0 ); - XMLTest( "Parse attribute with space 1", false, doc0.Error() ); XMLDocument doc1; doc1.Parse( xml1 ); - XMLTest( "Parse attribute with space 2", false, doc1.Error() ); XMLDocument doc2; doc2.Parse( xml2 ); - XMLTest( "Parse attribute with space 3", false, doc2.Error() ); XMLElement* ele = 0; ele = doc0.FirstChildElement(); @@ -1377,7 +1275,6 @@ int main( int argc, const char ** argv ) static const char* xml = ""; XMLDocument doc; doc.Parse( xml ); - XMLTest( "Parse two elements with attribute", false, doc.Error() ); XMLElement* ele0 = doc.FirstChildElement()->FirstChildElement(); XMLElement* ele1 = ele0->NextSiblingElement(); bool equal = ele0->ShallowEqual( ele1 ); @@ -1390,7 +1287,6 @@ int main( int argc, const char ** argv ) static const char* xml = "Text"; XMLDocument doc; doc.Parse( xml ); - XMLTest( "Parse element with attribute and nested element round 1", false, doc.Error() ); XMLElement* ele = XMLHandle( doc ).FirstChildElement( "element" ).FirstChild().ToElement(); XMLTest( "Handle, success, mutable", "sub", ele->Value() ); @@ -1404,7 +1300,6 @@ int main( int argc, const char ** argv ) static const char* xml = "Text"; XMLDocument doc; doc.Parse( xml ); - XMLTest( "Parse element with attribute and nested element round 2", false, doc.Error() ); XMLConstHandle docH( doc ); const XMLElement* ele = docH.FirstChildElement( "element" ).FirstChild().ToElement(); @@ -1438,7 +1333,6 @@ int main( int argc, const char ** argv ) const char* xml = " 1.2 1 38 true "; XMLDocument doc; doc.Parse( xml ); - XMLTest( "Parse points", false, doc.Error() ); const XMLElement* pointElement = doc.RootElement(); @@ -1496,7 +1390,6 @@ int main( int argc, const char ** argv ) doc.Clear(); XMLTest( "Empty is empty after Clear()", true, doc.NoChildren() ); doc.LoadFile( "resources/dream.xml" ); - XMLTest( "Load dream.xml", false, doc.Error() ); XMLTest( "Document has something to Clear()", false, doc.NoChildren() ); doc.Clear(); XMLTest( "Document Clear()'s", true, doc.NoChildren() ); @@ -1511,7 +1404,6 @@ int main( int argc, const char ** argv ) ""; XMLDocument doc( true, COLLAPSE_WHITESPACE ); doc.Parse( xml ); - XMLTest( "Parse with whitespace collapsing and &apos", false, doc.Error() ); const XMLElement* element = doc.FirstChildElement(); for( const XMLElement* parent = element->FirstChildElement(); @@ -1539,7 +1431,6 @@ int main( int argc, const char ** argv ) const char* xml = " "; XMLDocument doc( true, COLLAPSE_WHITESPACE ); doc.Parse( xml ); - XMLTest( "Parse with all whitespaces", false, doc.Error() ); XMLTest( "Whitespace all space", true, 0 == doc.FirstChildElement()->FirstChild() ); } @@ -1548,7 +1439,6 @@ int main( int argc, const char ** argv ) const char* xml = ""; XMLDocument doc; doc.Parse( xml ); - XMLTest( "Parse with self-closed element", false, doc.Error() ); XMLElement* ele = doc.NewElement( "unused" ); // This will get cleaned up with the 'doc' going out of scope. XMLTest( "Tracking unused elements", true, ele != 0, false ); } @@ -1558,7 +1448,6 @@ int main( int argc, const char ** argv ) const char* xml = "abc"; XMLDocument doc; doc.Parse( xml ); - XMLTest( "Parse for printing of sub-element", false, doc.Error() ); XMLElement* ele = doc.FirstChildElement( "parent")->FirstChildElement( "child"); XMLPrinter printer; @@ -1586,12 +1475,10 @@ int main( int argc, const char ** argv ) XMLTest( "BOM preservation (compare)", xml_bom_preservation, printer.CStr(), false, true ); doc.SaveFile( "resources/bomtest.xml" ); - XMLTest( "Save bomtest.xml", false, doc.Error() ); } { XMLDocument doc; doc.LoadFile( "resources/bomtest.xml" ); - XMLTest( "Load bomtest.xml", false, doc.Error() ); XMLTest( "BOM preservation (load)", true, doc.HasBOM(), false ); XMLPrinter printer; @@ -1639,7 +1526,6 @@ int main( int argc, const char ** argv ) XMLDocument doc; doc.Parse(xml); - XMLTest( "Insertion with removal parse round 1", false, doc.Error() ); XMLElement* subtree = doc.RootElement()->FirstChildElement("one")->FirstChildElement("subtree"); XMLElement* two = doc.RootElement()->FirstChildElement("two"); two->InsertFirstChild(subtree); @@ -1648,7 +1534,6 @@ int main( int argc, const char ** argv ) XMLTest("Move node from within to ", xmlInsideTwo, printer1.CStr()); doc.Parse(xml); - XMLTest( "Insertion with removal parse round 2", false, doc.Error() ); subtree = doc.RootElement()->FirstChildElement("one")->FirstChildElement("subtree"); two = doc.RootElement()->FirstChildElement("two"); doc.RootElement()->InsertAfterChild(two, subtree); @@ -1657,7 +1542,6 @@ int main( int argc, const char ** argv ) XMLTest("Move node from within after ", xmlAfterTwo, printer2.CStr(), false); doc.Parse(xml); - XMLTest( "Insertion with removal parse round 3", false, doc.Error() ); XMLNode* one = doc.RootElement()->FirstChildElement("one"); subtree = one->FirstChildElement("subtree"); doc.RootElement()->InsertAfterChild(one, subtree); @@ -1666,7 +1550,6 @@ int main( int argc, const char ** argv ) XMLTest("Move node from within after ", xmlAfterOne, printer3.CStr(), false); doc.Parse(xml); - XMLTest( "Insertion with removal parse round 4", false, doc.Error() ); subtree = doc.RootElement()->FirstChildElement("one")->FirstChildElement("subtree"); two = doc.RootElement()->FirstChildElement("two"); doc.RootElement()->InsertEndChild(subtree); @@ -1681,7 +1564,6 @@ int main( int argc, const char ** argv ) ""; XMLDocument doc; doc.Parse(xml); - XMLTest( "Parse svg with text", false, doc.Error() ); doc.Print(); } @@ -1690,7 +1572,6 @@ int main( int argc, const char ** argv ) const char* xml = "<12"; XMLDocument doc; doc.Parse(xml); - XMLTest( "Parse root-sample-field0", true, doc.Error() ); doc.PrintError(); } @@ -1702,7 +1583,6 @@ int main( int argc, const char ** argv ) const char* xml = ""; XMLDocument doc; doc.Parse( xml ); - XMLTest( "Parse self-closed empty element", false, doc.Error() ); doc.FirstChildElement()->SetAttribute( "attrA-f64", 123456789.123456789 ); doc.FirstChildElement()->SetAttribute( "attrB-f64", 1.001e9 ); doc.FirstChildElement()->SetAttribute( "attrC-f64", 1.0e9 ); @@ -1735,16 +1615,13 @@ int main( int argc, const char ** argv ) // If it doesn't assert, it passes. Caused by objects // getting created during parsing which are then // inaccessible in the memory pools. - const char* xmlText = ""; { XMLDocument doc; - doc.Parse(xmlText); - XMLTest( "Parse hex no closing tag round 1", true, doc.Error() ); + doc.Parse(""); } { XMLDocument doc; - doc.Parse(xmlText); - XMLTest( "Parse hex no closing tag round 2", true, doc.Error() ); + doc.Parse(""); doc.Clear(); } } @@ -1756,24 +1633,6 @@ int main( int argc, const char ** argv ) doc.DeleteNode(pRoot); } - { - XMLDocument doc; - XMLElement* root = doc.NewElement( "Root" ); - XMLTest( "Node document before insertion", true, &doc == root->GetDocument() ); - doc.InsertEndChild( root ); - XMLTest( "Node document after insertion", true, &doc == root->GetDocument() ); - } - - { - // If this doesn't assert in DEBUG, all is well. - XMLDocument doc; - XMLElement* unlinkedRoot = doc.NewElement( "Root" ); - XMLElement* linkedRoot = doc.NewElement( "Root" ); - doc.InsertFirstChild( linkedRoot ); - unlinkedRoot->GetDocument()->DeleteNode( linkedRoot ); - unlinkedRoot->GetDocument()->DeleteNode( unlinkedRoot ); - } - { // Should not assert in DEBUG XMLPrinter printer; @@ -1784,7 +1643,6 @@ int main( int argc, const char ** argv ) const char* xml = "�"; XMLDocument doc; doc.Parse( xml ); - XMLTest( "Parse hex with closing tag", false, doc.Error() ); XMLPrinter printer; doc.Print( &printer ); @@ -1858,7 +1716,6 @@ int main( int argc, const char ** argv ) XMLDocument* doc = new XMLDocument(); XMLTest( "XMLDocument::Value() returns null?", NULL, doc->Value() ); doc->Parse( validXml ); - XMLTest( "Parse to test XMLDocument::Value()", false, doc->Error()); XMLTest( "XMLDocument::Value() returns null?", NULL, doc->Value() ); delete doc; } @@ -2089,15 +1946,12 @@ int main( int argc, const char ** argv ) #endif FILE* perfFP = fopen("resources/dream.xml", "r"); - XMLTest("Open dream.xml", true, perfFP != 0); fseek(perfFP, 0, SEEK_END); long size = ftell(perfFP); fseek(perfFP, 0, SEEK_SET); char* mem = new char[size + 1]; - memset(mem, 0xfe, size); - size_t bytesRead = fread(mem, 1, size, perfFP); - XMLTest("Read dream.xml", true, uint32_t(size) >= uint32_t(bytesRead)); + fread(mem, size, 1, perfFP); fclose(perfFP); mem[size] = 0; @@ -2106,14 +1960,11 @@ int main( int argc, const char ** argv ) #else clock_t cstart = clock(); #endif - bool parseDreamXmlFailed = false; static const int COUNT = 10; for (int i = 0; i < COUNT; ++i) { XMLDocument doc; doc.Parse(mem); - parseDreamXmlFailed = parseDreamXmlFailed || doc.Error(); } - XMLTest( "Parse dream.xml", false, parseDreamXmlFailed ); #if defined( _MSC_VER ) QueryPerformanceCounter((LARGE_INTEGER*)&end); #else @@ -2130,15 +1981,13 @@ int main( int argc, const char ** argv ) #endif #if defined( _MSC_VER ) - const double duration = 1000.0 * (double)(end - start) / ((double)freq * (double)COUNT); + printf("\nParsing %s of dream.xml: %.3f milli-seconds\n", note, 1000.0 * (double)(end - start) / ((double)freq * (double)COUNT)); #else - const double duration = (double)(cend - cstart) / (double)COUNT; + printf("\nParsing %s of dream.xml: %.3f milli-seconds\n", note, (double)(cend - cstart) / (double)COUNT); #endif - printf("\nParsing dream.xml (%s): %.3f milli-seconds\n", note, duration); } -#if defined( _MSC_VER ) && defined( DEBUG ) - { + #if defined( _MSC_VER ) && defined( DEBUG ) _CrtMemCheckpoint( &endMemState ); _CrtMemState diffMemState; @@ -2149,8 +1998,7 @@ int main( int argc, const char ** argv ) int leaksBeforeExit = _CrtDumpMemoryLeaks(); XMLTest( "No leaks before exit?", FALSE, leaksBeforeExit ); } - } -#endif + #endif printf ("\nPass %d, Fail %d\n", gPass, gFail);