CodeSynthesis XSD is a W3C XML Schema to C++ translator. It generates vocabulary-specific, statically-typed C++ mappings (also called bindings) from XML Schema definitions. XSD supports two C++ mappings: in-memory C++/Tree and event-driven C++/Parser.

The C++/Tree mapping consists of C++ classes that represent data types defined in XML Schema, a set of parsing functions that convert XML documents to a tree-like in-memory object model, and a set of serialization functions that convert the object model back to XML.

The C++/Parser mapping provides parser skeletons for data types defined in XML Schema. Using these parser skeletons you can build your own in-memory representations or perform immediate processing of XML documents.

License

You can use, distribute, and/or modify XSD, its runtime library, and the generated code under the terms of the GNU General Public License, version 2 as published by the Free Software Foundation. We also made a special exception to the terms and conditions of GPL which allows you to use the XSD runtime library and the generated code in a wide range of Free/Libre and Open Source Software (FLOSS). See the FLOSS Exception for more information.

Proprietary licenses are available for customers who wish to use XSD in proprietary products. Visit the XSD product page for more information.

Related Projects

Compiler Dependencies

Depends at build-time:

Depends at run-time:

Generated Code Dependencies

Depends at build-time:

Depends at run-time:

Documentation

Build instructions for UNIX A step-by-step guide on how to build XSD from the source on UNIX-like operating systems.
Build instructions for Windows A step-by-step guide on how to build XSD from the source on Windows.
C++/Tree Mapping Getting Started Guide An introduction to the C++/Tree mapping with examples. Also available in PDF and PostScript.
C++/Parser Mapping Getting Started Guide An introduction to the C++/Parser mapping with examples. Also available in PDF and PostScript.
C++/Tree Mapping User Manual A comprehensive description of the C++/Tree mapping, including the parsing and serialization mechanisms. Also available in PDF and PostScript.
XSD Compiler Command Line Manual Compiler's command line interface documentation.
C++/Tree Mapping Customization Guide A guide to customizing generated and XML Schema built-in types.
C++/Tree Mapping FAQ Answers to frequently asked questions about the C++/Tree mapping.
XSD Wiki Page A resource page for XSD on Code Synthesis Wiki.

Download

XSD source code
XSD binary distributions

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 product page Binary distributions, proprietary licensing, etc.
XSD contributions Various third-party contributions to XSD.
XML Data Binding in C++ An article in the C++ Source journal introducing XML Data Binding in C++.