Boost logo

Boost :

Subject: Re: [boost] [ANN] libstudxml - modern XML API for C++
From: Boris Kolpackov (boris_at_[hidden])
Date: 2014-05-21 16:48:33

Hi Dominique,

Just a few comments/corrections without getting into the whole SAX vs
DOM vs Pull debate:

Dominique Devienne <ddevienne_at_[hidden]> writes:

> 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:

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:


Boost list run by bdawes at, gregod at, cpdaniel at, john at