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/ |
xsd-users@codesynthesis.comMailing list | |
topics | C++XMLXML SchemaXML parsersource code generation |
version | 4.2.0 |
---|---|
repository | https://pkg.cppget.org/1/stable |
depends | 4; libxsd-frontend, libcutl, libxerces-c, *cli ? |
requires | 2; host, c++11 |
reviews | +1 |