This package contains precompiled binaries of xsd, a W3C XML Schema
definition compiler. For more information about xsd visit
http://codesynthesis.com/products/xsd/. This README file describes how
to start using xsd in a UNIX environment.


Prerequisites
-------------

The xsd runtime library and the generated code depend on the underlying
XML parser which can be Xerces-C++ for the C++/Tree mapping and Xerces-C++
or Expat for the C++/Parser mapping.

Xerces-C++ can be obtained from http://xml.apache.org/xerces-c/.
Most GNU/Linux distributions provide precompiled binary packages for
Xerces-C++. You can also download precompiled Xerces-C++ libraries for
some of the platforms from http://codesynthesis.com/download/xerces-c/.

Expat can be obtained from http://www.libexpat.org/. Most GNU/Linux
distributions provide precompiled binary packages for Expat.


Building Examples
-----------------

To build examples you will need GNU make. All examples in the examples/
directory come with simple makefiles. For instance, to build a hello
example in examples/cxx/tree you could execute the following commands:

$ cd examples/cxx/tree/hello
$ make

The following make variables affect the compilation process and can
be overridden from the command line:

CXX := g++
CXXFLAGS := -W -Wall
override CPPFLAGS += -I<path to libxsd>

XSD := <path to xsd>
XSDFLAGS :=

override LIBS += -lxerces-c
LDFLAGS :=

Additionally, makefiles in for the C++/Parser mapping (examples/cxx/parser/)
allow you to choose the underlying XML parser:

XML_PARSER := xerces
XSDFLAGS := --xml-parser $(XML_PARSER)

ifeq ($(XML_PARSER),xerces)
override LIBS += -lxerces-c
else
override LIBS += -lexpat
endif

For instance, if you would like to build an example using g++-4.0 instead
of the default g++ and would like to use Xerces-C++ from ~/xerces-c instead
of the default, system-wide installation, you could execute the following
command:

$ make CXX=g++-4.0 \
       CPPFLAGS="-I ~/xerces-c/include" \
       LDFLAGS="-L ~/xerces-c/lib"
