v5.3.2
30 August 2014
New feature: improvements to node iterators.
v5.3
29 August 2014
New feature: improvements to node iterators and addition of new 'find_or_append' method.
v5.2
6 February 2014
Bugfix: negative signed chars (from e.g. UTF-8) present in XML would have caused "basic_character_map" to not work (crash).
v5.1
3 January 2014
New feature: improved insert/append API (no longer need to use root document object when adding by element name).
Bugfix: fixed some dependent name bugs (typename).
Bugfix: fixed problem with iterator post-increment operator (would not compile).
v5.0
22 November 2013
New feature: performance optimization (parsing is now approx 50% faster).
v4.4
22 November 2013
Internal (optimization): the chunk allocator is now used by default resulting in significant performance increase.
Internal (optimization): the XML document is now buffered before writing to an output stream (as a single write operation) resulting in significant performance increase.
v4.3
21 November 2013
Internal: upgraded to be a freestanding implementation compatible with latest version of the "neolib" library.
Change: set_attribute_value() renamed to set_attribute().
v4.2
23 January 2012
Bugfix: attribute_value() taking two parameters (old and new attribute names) contained a logic error introduced in v4.x.
v4.1.1
17 September 2011
Bugfix (minor): missing VC++ specific __declspec attributes.
v4.1
17 September 2011
Bugfix: fixed some compiler errors and warnings that VC++ did not pick up; now builds with g++ v4.5.3 with -std=c++0x compiler option.
v4.0
15 September 2011
Bugfix: fixed some compiler errors and warnings that VC++ did not pick up.
v3.2.2
15 July 2010
Internal: incorporated new chunk allocator code (addition of "long long" to max_align union).
v3.2.1
10 July 2010
Internal: added documentation (comment indicating reason for choice of std::list as node container).
v3.2
20 April 2010
New feature: added find and find_or_throw member functions to xml_node.
v3.1.14
29 September 2009
Bugfix: fixed linker error if library used from more than one translation unit (recent regression).
v3.1.13
22 September 2009
Bugfix (minor): fixed compiler warnings related to quick_string::npos.
v3.1.12
21 September 2009
Bugfix (minor): fixed possible linker error when building with a compiler other than VC++.
v3.1.11
21 September 2009
Bugfix (minor): allocator element types were incorrect (didn't manifest a problem on VC++ at least as element types are rebound).
v3.1.10
20 September 2009
New feature: the entity list now also uses the provided allocator (before it was a std::vector using std::allocator).
v3.1.9
20 September 2009
New feature: different allocators can now be used and a chunk allocator is provided (with corresponding lib::chunk_xml typedef).
New feature: performance optimization (parsing is now approx 13% faster when using provided chunk allocator on Windows platform).
v3.1.8
19 September 2009
Bugfix (minor): if an input stream is in a fail state (e.g. input file does not exist) xml::read(...) now returns immediately with failure indication instead of trying to read from the stream.
v3.1.7
19 September 2009
Bugfix: if an input XML file did not exist the library would cause client program to abnormally terminate (cause: regression introduced in v3.1.6).
v3.1.6
19 September 2009
New feature: performance optimization (parsing is now approx 50% faster).
v3.1.4
17 September 2009
New feature: performance optimization (parsing is now approx 16% faster).
v3.1.3
16 September 2009
Bugfix: removed cause of memory leaks (regression introduced in v3.0).
New feature: performance optimization (parsing is now approx 14% faster).
v3.1.2
14 September 2009
Bugfix: fixed some compiler errors and warnings that VC++ did not pick up.
v3.1.1
14 September 2009
New feature: end() can now be passed a filter like begin(), required if reverse_iterator is to be supported.
v3.1
13 September 2009
New feature: slightly modified API to accommodate new iterators with filtering support (iterate on XML node type).
Internal (optimization): unnecessary shared_ptr removed.
v3.0.2
13 September 2009
RELEASE PULLED.
v3.0.1
02 June 2009
Bugfix: regression introduced in v3.0 meant that XML files that contained ampersands (&) in element attribute values would cause a parse failure error.
v3.0
02 June 2009
New feature: declarations are now persisted
New feature: comments are now persisted (before they were discarded).
New feature: CDATA is now persisted.
New feature: DTD is now persisted (but still no support for using DTD at present).
Bugfix: <tag></tag> is no longer collapsed to <tag/> on output.
Bugfix: whitespace now handled correctly.
Internal: reduced number of dependencies, library is now just two header files.
v1.0.13
12 July 2008
Internal: incorporated internal library changes (smart_ptr.h).
v1.0.12
22 June 2008
Internal: incorporated changes to string.h
v1.0.11
5 June 2008
Bugfix: parsing XML files that contained ampersands (&) caused a parse failure error.
v1.0.10
11 May 2008
Bugfix: removed error that could cause compilation problems with various compilers (superfluous template<>).
v1.0.9
24 April 2008
Internal: incorporated changes to lib::vecarray.
v1.0.8
21 April 2008
API change: previous change was possibly non-portable so now using a new solution. Will eventually move to using boost's ptr_vector or something similar.
v1.0.7
21 April 2008
Bugfix: removed compile errors caused by bad merge.
Bugfix (minor): blank lines are no longer written out if an input part is purely whitespace.
API change: after a refactoring std::vector are now used to hold elements rather than std::list and the element pool has been removed. Now element_list iterators only need to be dereferenced once to obtain an element reference.
v1.0.6
28 March 2008
New feature: whether or not to strip leading/trailing spaces is now an option (default is to not strip spaces).
v1.0.5
27 March 2008
Bugfix (minor): improved formatting of XML output especially with regard to element text content.
v1.0.4
09 January 2008
changed static sPredefinedEntities type to be a struct of two CharT*s to remove spurious memory leak complaint on VC++6 (ew)
removed superfluous virtual destructors
v1.0.3
07 January 2008
bugfix: empty attribute values ("") are now parsed correctly (used to result in a value of "/")
updated to v1.1.4 of vecarray.h
v1.0.2
29 December 2007
updated to v1.0.3 of string.h
v1.0.1
28 November 2007
renamed create() method to append()
added insert() method
added erase() method
added find() method