I'm looking for open-source projects that make use of two things: (1) C++ and (2) XML data binding. For those who don't know, data binding tools make use of XML schema and code generators such as Codesynthesis xsd, Liquid Technologies. I know CIAO/DAnCE project, an implementation of CORBA Component Model that uses XML Schema Compiler (XSC) but I'm hoping to find more.
I have tried http://www.codesynthesis.com/products/xsd/ a few months back and I thought the resulting C++ interface was pretty clean. (It's style is similar to STL / boost APIs)
Other than that the gSOAP toolkit appears to have something too. ( http://www.cs.fsu.edu/~engelen/soapdoc2.html#tth_sEc1.4 )
You should try free XmlPlus xsd2cpp tool, for XML Schema to C++ Data Binding.
XmlPlus xsd2cpp
The xsd2cpp binary when invoked on an [input].xsd, generates:
* the C++ sources(implementation/headers) for the supplied XML-Schema
* a main.cpp template, to demonstrate how generated sources can be consumed
* the automake/autoconf files for building the generated source
The main.cpp file is built into a [input]run binary for an [input].xsd input, which can be used to:
- generate sample xml documents, without any additional C++ code
- validate an instance xml document against the Schema: [input].xsd
- generate populated instance xml document, if you write code in the template function inside main.cpp to populate the Document.
- option to roundtrip ie. read and instance xml file into C++ structures, and then write back to xml
A brief note on XmlPlus xsd2cpp:
* provides C++ Data-Binding, validating-parser, writer for xml-files constrained by the supplied XML-schema
* roundtrip retains comments and processing instructions
* contains good examples to demonstrate usage
* tested against some of randomly selected W3C test cases