TinyXML


TinyXML is a small, simple, operating system-independent XML parser for the C++ language. It is free and open source software, distributed under the terms of the zlib License.

Features

The principal impetus for TinyXML is its size, as the name suggests. It parses the XML into a DOM-like tree. It can both read and write XML files.
It is written in C++98, and does not rely on the C++ Standard Library. It makes no use of exceptions or run-time type information.
TinyXML-2 improves on TinyXML-1 and replaces it entirely, using less memory, less allocations, and having faster performance. TinyXML-2 further improved on the library's usability for applications with minimal XML requirements, such as video games.

Limitations

  • TinyXML is minimalistic, and is not W3C standards-compliant, or comprehensive like Simple API for XML, and not ideal for browsers or any application requiring complete XML coverage.
  • TinyXML does not process DTDs, either internal or external. So XML files that rely upon DTD-defined entities will not parse correctly in TinyXML.
  • Though it does handle processing instructions, it has no facilities for handling XSLT stylesheet declarations. That is, it does not apply an XSLT declared in a stylesheet processing instruction to the XML file when parsing it.
  • Further, TinyXML has no facility for handling XML namespaces. Qualified element or attribute names retain their prefixes, as TinyXML makes no effort to match the prefixes with namespaces.
  • In terms of encodings, it only handles files using UTF-8 or an unspecified form of ASCII similar to Latin-1.