Boost logo

Boost :

Subject: Re: [boost] [GSOC] XML library of Boost
From: Bjorn Reese (breese_at_[hidden])
Date: 2013-05-12 07:35:41


On 05/10/2013 01:24 AM, Roger Martin wrote:
> This is a fun topic. How should c++ play 'catchup' to other languages
> on xml handling.

I agree that the use cases and requirements could be more clear.

> What applications will develop from such an XML API? Xml editors and
> xml creators/modifiers? Data flow and communications between apps, web
> services?
> What can be leveraged in c++ to do something new/faster with xml? If

I believe Stefan's ultimate goal is the C++ standardization of XML APIs.
This is similiar to how std::thread provides a threading API that can be
implemented with, say, pthreads (ok, maybe threading is a bad example
because it did require substantial changes to the C++ standard.)

You can think of Boost.Xml as providing the primitives needed to parse
(and generate) an XML document. The more advanced features such as XML
Schema validation, XSLT transforms, and XQuery are currently out of
scope, but they should be easier to build on top of the primitives.

> Binding is an important area for me. xmlbeanscxx which is based on

It seems to me that there are three levels of bindings:

   1. Schema-less binding where the structure of the XML document is
      handcoded into the application. This can be handled by
      Boost.Serialization.
   2. Compile-time schema binding where a schema is used to generate
      the binding code. The xmlbeanscxx and xplus-xsd2cpp project that
      you refer to are examples if this kind of binding.
   3. Run-time schema binding where new schemas can be loaded on-the-fly.
      Something like Microsoft InfoPath springs to mind.

> Haven't tried http://vtd-xml.sourceforge.net/ for a while because its
> license doesn't work for my company. With custom code I've been doing
> something similar for simply reading data from xml documents.

With the right parsing primitive (an XML lexer), non-extracting parsing
would be quite simple.


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