XSD is a W3C XML Schema to C++ translator. Provided with an XML instance specification (XML Schema), it generates C++ classes that represent the given vocabulary as well as parsing and serialization code. You can then access the data stored in XML using types and functions that semantically correspond to your application domain rather than dealing with elements, attributes, and text in a direct representation of XML such as DOM or SAX. XSD features support for in-memory and stream-oriented processing models, comprehensive XML Schema feature coverage, easy integration, and more.
XSDBench is a W3C XML Schema benchmark that compares the performance of validating XML parsers. It measures validation throughput, statically-linked test executable size, and, where possible, peak heap and stack memory usage during parsing. Tests and results for the following parsers are provided: Apache Xerces-C++, CodeSynthesis XSD, GNOME Libxml2, Microsoft XML Core Services (MSXML), and Oracle XDK.
CLI is a command line interface compiler for C++. It allows you to specify the options that your program supports, their types, and default values. This specification can then be translated to C++ classes that implement parsing of the command line arguments and provide a convenient and type-safe interface for accessing the extracted data.
ODB is a compiler-based object-relational mapping (ORM) system for C++. It allows you to persist C++ objects to a relational database without having to deal with tables, columns, or SQL and without manually writing any mapping code. The C++ code that performs the conversion between persistent classes and their database representation is automatically generated by the ODB compiler. The ODB compiler is a real C++ compiler except that instead of producing assembly or machine code, it generates portable C++, which can in turn be compiled by any C++ compiler. ODB is not a framework. It does not dictate how you should write your application. Rather, it is designed to fit into your style and architecture by only handling C++ object persistence and not interfering with any other functionality.
libstudxml is a streaming XML pull parser and streaming XML serializer implementation for modern, standard C++. It has an API which the authors believe should have already been in Boost or even in the C++ standard library. It is compact, external dependency-free, and reasonably efficient. The XML parser is a conforming, non-validating XML 1.0 implementation which is based on tested and proven code.
Re: I like it, but
> I like this library, but it has some
> First it is very bloated. Or what do you
> call it if the smallest available
> download at
> is 5.4M?
> Second it's impossible to compile with
> -Wall. That's sad because I really hat
> to turn of these warnings for only this
The size of the archive is quite big due to a large number of inheritance graph images generated by doxygen for the API reference. If you don't need those (for example because you prefer to read the documentation online), simply remove the doc directory after you unpack the source code.
There also shoudn't be any problems compiling your code with -Wall provided you are using a fairly recent version of Xerces-C++.