xsd

[brief]

XML Schema to C++ data binding compiler

XSD is an open-source, cross-platform XML Schema to C++ data binding compiler. Provided with an XML document specification (XML Schema), it generates C++ classes that represent the given vocabulary as well as XML 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 generic elements/attributes and raw strings.

For further information, refer to the XSD project page.

Usage

XSD consists of several packages with the main ones being xsd (the XML Schema to C++ compiler) and libxsd (the runtime library). There are also several *-tests packages as well as xsd-examples.

When specifying dependencies on XSD packages in your project, the xsd package should be a build-time dependency. The libxsd library is header-only and because it can be used either with Xerces-C++ or Expat as the underlying XML parser, it does not have a dependency on either, expecting your project to make the choice by depending on one or the other explicitly and then importing and linking the corresponding library.

So, putting it all together, your project's manifest would normally have the following fragment if using Xerces-C++:

depends: * xsd ^4.2.0
depends: libxsd ^4.2.0
depends  libxerces-c ^3.2.4

Or the following fragment if using Expat:

depends: * xsd ^4.2.0
depends: libxsd ^4.2.0
depends  libexpat ^2.5.0

Then your buildfile would have something along these lines if using Xerces-C++:

import! [metadata] xsd = xsd%exe{xsd}

import libs  = libxsd%lib{xsd}
import libs += libxerces-c%lib{xerces-c}

Or along these lines if using Expat:

import! [metadata] xsd = xsd%exe{xsd}

import libs  = libxsd%lib{xsd}
import libs += libexpat%lib{expat}

Note that the xsd executable provides build2 metadata.

The compilation of XML Schema to C++ can be implemented using ad hoc recipes or rules. See the xsd-examples package for the complete examples.

license other: GPL-2.0-only with Xerces-C++ linking exception and FLOSS exception
project xsd
url www.codesynthesis.com/products/xsd/
doc-url www.codesynthesis.com/products/xsd/
src-url git.codesynthesis.com/cgit/xsd/xsd/
topics C++XMLXML SchemaXML parsersource code generation
1 Version
version 4.2.0
repository https://pkg.cppget.org/1/stable
depends 4; libxsd-frontend, libcutl, libxerces-c, *cli ?
requires 2; host, c++11