C++/Parser: Stream-Oriented XML Data Binding

The C++/Parser mapping implements a new, high-performance, event-driven XML data binding model which provides parser skeletons for data types defined in XML Schema. In comparison to the traditional, tree-like data binding model, the C++/Parser mapping allows you to handle large XML documents that would not fit into memory, perform stream-oriented processing, or build your own in-memory representations using existing data types. For an introduction to the C++/Parser mapping, refer to the Hello World Example from the C++/Parser Mapping Getting Started Guide.

Based on the static analysis of the schemas, the C++/Parser backend generates highly-optimized, hierarchical state machines that combine validation and even dispatching in a single step. As a result, the C++/Parser mapping-based parsers are 2-10 times faster than general-purpose validating XML parsers while maintaining the lowest memory footprint. For more information on the performance and footprint numbers, see the XSDBench test results. The following figure highlights the advantages of the C++/Parser mapping in comparison to the traditional architectures:

C++/Parser Mapping

Features

Documentation

C++/Parser Mapping Getting Started Guide An introduction to the C++/Parser mapping with examples. Also available in PDF and PostScript.
Schema Compilation Checklist A checklist-like run through the most commonly used XSD command line options.
XSD Compiler Command Line Manual Compiler's command line interface documentation.
Using XSD with Microsoft Visual Studio Discusses various ways of integrating the XSD compiler with the Microsoft Visual Studio IDE as well as other Visual Studio-specific topics.
C++/Parser Mapping Wiki Page A resource page for the C++/Parser mapping on Code Synthesis Wiki.
XSD Wiki Page A resource page for XSD on Code Synthesis Wiki.
XML Schema Authoring Guide A collection of recipes for writing schemas that are enjoyable to work with.
Supported Standards and Schemas A list of publicly-available schemas that were successfully compiled by XSD.

Support

We provide free, best-effort technical support for XSD via the xsd-users mailing list. Simply send an email to this mailing list with the description of a bug or a problem that you encountered. Please follow the Posting Guidelines to receive a prompt reply.

We also offer priority support on a commercial basis. Visit our support page for more information.

Resources

XSD project page Source code, build instructions and other information for XSD compiler developers.
XSD contributions Various third-party contributions to XSD.
XML Schema Part 0: Primer An easily approachable description of the XML Schema facilities. It is oriented towards quickly understanding how to create schemas using the W3C XML Schema language.