Boost logo

Boost :

From: Stefan Seefeld (stefan_at_[hidden])
Date: 2021-04-01 11:43:43


On 2021-04-01 4:30 a.m., Dominique Devienne via Boost wrote:
>
> But different people have different tradeofs. libxml2 and xerces and
> expat
> may be complete, and as close to bug free as it gets in C/C++ XML, but they
> are
> certainly not modern C++,

Stylistic questions ("modern C++") are secondary to functional correctness.

> often not incremental parsing, and certainly
> don't allow
> the kind of allocator support Boost.JSON introduced. Nor are they the
> fastest.

libxml2 offers streaming APIs ("incremental parsing") and is among the
fastest implementations you can get.

As I said in the FFT thread: thinking that you can match such a library
(both in functionality and performance) with a GSoC project is foolish,
so it seems wiser to focus on the interface, then bind that to existing
implementations.

> The main issue with XML are all the little things to get right, like
> character entities,
> entity includes inherited from DTDs, DTDs themselves, for validation and
> default values,
> whitespace normalization, namespace support, and related techs liks XSDs,
> XPath,
> XLink, XInclude, XQuery, etc... Proper PSVI (post schema validation
> infoset) is also
> often problematic, but that assumes a validating parser (via DTD or XSD) in
> the first place.

Exactly. How are you proposing to handle all these questions above ?

> There's definitely space to explore a Boost.JSON-like low-level modern
> parser building
> only a DOM with value semantic and allocator support, with a modern API.
> Much could
> be built on such a foundation, and that's an interesting GSOC project, even
> if it never "graduates".
>
> In any case, beside the 3 mentioned above, there's also rapidxml and
> pugixml,
> the latter still actively maintained. Perhaps they are not as complete, but
> they
> are definitely quite a bit faster than the "old" ones. --DD

This is not about which XML library is better. Quite the opposite, in
fact: I want to make an argument for establishing a modern C++ API that
can be bound to any such library. We don't need more half-baked partial
XML implementations, we need a standard C++ API for XML.

Stefan

-- 
       ...ich hab' noch einen Koffer in Berlin...

Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk