Hi Dominique,
Just a few comments/corrections without getting into the whole SAX vs
DOM vs Pull debate:
Dominique Devienne
But it's actually harder that it looks to properly implement a standard compliant XML parser dealing correctly with DTDs, character and system entities, encodings, namespaces, space normalizations, default attributes from inline or out-of-line DTDs, etc, etc...
Completely agree. Implementing a conforming, non-validating XML 1.0 parser and making sure that it actually does conform (that is, it is well tested) is a big job.
That you base your library on the long established Expat parser, from James Clark, one of the world's XML expert, is probably a good thing,
Expat is probably the world's most widely used XML parser if you consider how many scripting languages and mobile/embedded platforms use it under the hood for their XML APIs.
although the fact it hasn't seen any release since 2007 is a bit worrying...
There was actually 2.1.0 release in 2012 that somehow didn't make it to the website's news section: http://sourceforge.net/projects/expat/files/expat/ But, generally, Expat is very mature and the bulk of the changes these days are bug fixes.
Many people don't care about these XML "details", but any library worthy of boost that wants to be a foundational building block (in Niall's term) at the bottom of a Boost/C++ XML ecosystem should strive for full conformance IMHO, or at least provide all the low-level tools to allow another library on top to be conformant.
100% agree.
Sounds like your library targets the lower-level parsing part, but even that is non-trivial and rarely truly conformant in the many XML libraries out there, so hopefully you're aware of all this, and will explicitly document your conformance level, or lack thereof.
Already do. See Implementation Notes: http://www.codesynthesis.com/projects/libstudxml/doc/intro.xhtml#6 Boris