From: Stefan Seefeld (seefeld_at_[hidden])
Date: 2003-05-30 08:08:44


Vladimir Prus wrote:

>>What is wrong with Xerces-C++ library
>>(http://xml.apache.org/xerces-c/index.html) ?
>
>
> Probably, the fact that its tarball is comparable in size to the entire
> Boost?

And, related, performance of the libxml2 is far better then any
compotitor. Of course, it remains to be shown that my C++ wrapper
doesn't destroy that :-)

> Another thing is that it's not a big friend of C++ standard library.
> For example, it does not use std::string, but its own XMLString class.

indeed. As I said, 'the' DOM and SAX APIs are pretty 'Java-like'. There
is no standardized C++ API for it. While one can 'naturally' map the
interfaces to C++, but that doesn't take C++ idioms and practices into
account.

As to the string type used, it has to be a type that can support
non-ASCII encodings. While one can provide such a string class with the
library (xerces has taken that road), I chose to parametrize the whole
library with the string type, i.e. libxml2 internally uses 'char *' (and
stores strings in utf-8, so the typical C semantics of 'null terminated
string' is still valid), and I provide a string template parameter
together with a converter trait that maps between the string type and
the internal char *...

> Going back to original post, I wonder how the proposed library differers
> from http://gmetadom.sourceforge.net/, which is wrapper on gdome, which is
> wrapper on libxml.

all those 'g libraries' are deeply rooted in Gnome, meaning they drag
in a number of dependencies (glib, gdome, etc.).

As libxml2 itself is a stand-alone library, there is no factual
dependency (even though it is declared to be the 'Gnome XML library').

Regards,
                Stefan