Rapidxml
Encyclopedia
RapidXml is a very fast and stable XML
DOM
-style parser written in C++
. It is aimed primarily at embedded environments, computer games, or any other applications where available memory or CPU processing power comes at a premium. RapidXml is dual-licensed under the MIT license
and the Boost Software License
, and its source code is freely available.
XML
Extensible Markup Language is a set of rules for encoding documents in machine-readable form. It is defined in the XML 1.0 Specification produced by the W3C, and several other related specifications, all gratis open standards....
DOM
Document Object Model
The Document Object Model is a cross-platform and language-independent convention for representing and interacting with objects in HTML, XHTML and XML documents. Aspects of the DOM may be addressed and manipulated within the syntax of the programming language in use...
-style parser written in C++
C++
C++ is a statically typed, free-form, multi-paradigm, compiled, general-purpose programming language. It is regarded as an intermediate-level language, as it comprises a combination of both high-level and low-level language features. It was developed by Bjarne Stroustrup starting in 1979 at Bell...
. It is aimed primarily at embedded environments, computer games, or any other applications where available memory or CPU processing power comes at a premium. RapidXml is dual-licensed under the MIT license
MIT License
The MIT License is a free software license originating at the Massachusetts Institute of Technology . It is a permissive license, meaning that it permits reuse within proprietary software provided all copies of the licensed software include a copy of the MIT License terms...
and the Boost Software License
Boost Software License
The Boost Software License is an open-source license used by the Boost C++ Libraries. It is also a popular license for a significant number of other open source C++ projects...
, and its source code is freely available.
Features
- Parsing speed (including DOM tree building) approaching speed of strlen function executed on the same data. On a modern CPU (as of 2008) the parser throughput is about 1 billion characters per second. See Performance section in the Online Manual.
- Small memory footprint of the code and created DOM trees.
- Configurable memory allocation.
- A headers-only implementation, simplifying the integration process.
- Simple license that allows use for almost any purpose, both commercial and non-commercial, without any obligations.
- Supports UTF-8UTF-8UTF-8 is a multibyte character encoding for Unicode. Like UTF-16 and UTF-32, UTF-8 can represent every character in the Unicode character set. Unlike them, it is backward-compatible with ASCII and avoids the complications of endianness and byte order marks...
and partially UTF-16, UTF-32 encodings. - Portable source code with no dependencies other than a very small subset of C++ Standard LibraryC++ standard libraryIn C++, the C++ Standard Library is a collection of classes and functions, which are written in the core language and part of the C++ ISO Standard itself...
. This subset is so small that it can be easily emulated manually if use of standard library is undesired.
Limitations
- The parser ignores DOCTYPE declarations.
- There is no support for XML namespaces.
- The parser does not check for character validity.
- The interface of the parser does not conform to DOM specification.
- The parser does not check for attribute uniqueness.
Applications
- Primary XML parser for Boost.PropertyTree library
- TouchFLO 3DTouchFLO 3DTouchFLO 3D is a graphical user interface designed by HTC. It is used in the HTC Touch Family of Pocket PCs and was preceded by TouchFLO. TouchFLO 3D has been ported to Windows Mobile and Android, and is used in the HTC Touch Diamond, HTC Touch Pro, HTC Touch HD, HTC MAX 4G, HTC Touch Diamond2 and...
user interface used in some of HTC mobile devices, such as HTC Touch DiamondHTC Touch DiamondThe HTC Touch Diamond, also known as the HTC P3700 or its codename the HTC Diamond, is a Windows Mobile 6.1-powered Pocket PC designed and manufactured by HTC. It is the first device to feature TouchFLO 3D - a new version of the TouchFLO interface, unique to the Touch family. The HTC Touch Diamond... - xrelayer
- WinterMoon
- Sid Meier's Civilization V