update the readme
This commit is contained in:
44
readme.md
44
readme.md
@@ -63,40 +63,28 @@ TinyXML-1 vs. TinyXML-2
|
|||||||
-----------------------
|
-----------------------
|
||||||
|
|
||||||
TinyXML-2 is now the focus of all development, well tested, and your
|
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.
|
best choice between the two APIs. At this point, unless you are maintaining
|
||||||
|
legacy code, you should choose TinyXML-2.
|
||||||
|
|
||||||
TinyXML-2 uses a similar API to TinyXML-1 and the same
|
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
|
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,
|
to make it more appropriate for use in a game. It uses less memory, is faster,
|
||||||
and uses far fewer memory allocations.
|
and uses far fewer memory allocations.
|
||||||
|
|
||||||
TinyXML-2 has no requirement for STL, but has also dropped all STL support. All
|
TinyXML-2 has no requirement or support for STL. By returning `const char*`
|
||||||
strings are query and set as 'const char*'. This allows the use of internal
|
TinyXML-2 can be much more efficient with memory usage. (TinyXML-1 did support
|
||||||
allocators, and keeps the code much simpler.
|
and use STL, but consumed much more memory for the DOM representation.)
|
||||||
|
|
||||||
Both parsers:
|
|
||||||
|
|
||||||
1. Simple to use with similar APIs.
|
|
||||||
2. DOM based parser.
|
|
||||||
3. UTF-8 Unicode support. http://en.wikipedia.org/wiki/UTF-8
|
|
||||||
|
|
||||||
Advantages of TinyXML-2
|
|
||||||
|
|
||||||
1. The focus of all future dev.
|
|
||||||
2. Many fewer memory allocation (1/10th to 1/100th), uses less memory
|
|
||||||
(about 40% of TinyXML-1), and faster.
|
|
||||||
3. No STL requirement.
|
|
||||||
4. More modern C++, including a proper namespace.
|
|
||||||
5. Proper and useful handling of whitespace
|
|
||||||
|
|
||||||
Advantages of TinyXML-1
|
|
||||||
|
|
||||||
1. Support for some C++ STL conventions: streams and strings
|
|
||||||
2. Very mature and well debugged code base.
|
|
||||||
|
|
||||||
Features
|
Features
|
||||||
--------
|
--------
|
||||||
|
|
||||||
|
### Code Page
|
||||||
|
|
||||||
|
TinyXML-2 uses UTF-8 exclusively when interpreting XML. All XML is assumed to
|
||||||
|
be UTF-8.
|
||||||
|
|
||||||
|
Filenames for loading / saving are passed unchanged to the underlying OS.
|
||||||
|
|
||||||
### Memory Model
|
### Memory Model
|
||||||
|
|
||||||
An XMLDocument is a C++ object like any other, that can be on the stack, or
|
An XMLDocument is a C++ object like any other, that can be on the stack, or
|
||||||
@@ -166,7 +154,7 @@ cannot be parsed correctly. In addition, all nodes (elements, declarations,
|
|||||||
text, comments etc.) and attributes have a line number recorded as they are parsed.
|
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
|
This allows an application that performs additional validation of the parsed
|
||||||
XML document (e.g. application-implemented DTD validation) to report
|
XML document (e.g. application-implemented DTD validation) to report
|
||||||
line number information in it's errors.
|
line number information for error messages.
|
||||||
|
|
||||||
### Entities
|
### Entities
|
||||||
|
|
||||||
@@ -275,10 +263,10 @@ There are 2 files in TinyXML-2:
|
|||||||
And additionally a test file:
|
And additionally a test file:
|
||||||
* xmltest.cpp
|
* xmltest.cpp
|
||||||
|
|
||||||
Simply compile and run. There is a visual studio 2015 project included, a simple Makefile,
|
Simply compile and run. There is a visual studio 2017 project included, a simple Makefile,
|
||||||
an Xcode project, a Code::Blocks project, and a cmake CMakeLists.txt included to help you.
|
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
|
The top of tinyxml.h even has a simple g++ command line if you are are Unix/Linuk/BSD and
|
||||||
to use a build system.
|
don't want to use a build system.
|
||||||
|
|
||||||
Versioning
|
Versioning
|
||||||
----------
|
----------
|
||||||
|
|||||||
Reference in New Issue
Block a user