Installing XSD on Windows
This README
describes installing the XSD compiler
(xsd
) and runtime library (libxsd
) from binary
packages on Windows. Note that the runtime library is header-only.
Besides the runtime library, the generated code also depends 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. You can get these XML
parsers from a package manager such as vcpkg
. The Xerces-C++
binary package is also provided with the XSD packages.
The following binary packages are provided for Windows (here
<...>
denotes the version and architecture information):
xsd-<...>-windowsX.zip -- XSD compiler libxsd-<...>-windows.zip -- XSD runtime library libxerces-c-<...>-windowsX-msvcA.B.zip -- Xerces-C++ library libxerces-c-<...>-windowsX-msvcA.B-debug.zip -- Xerces-C++ debug library
Note that the XSD compiler package is statically linked and can be used
on Windows version X
or later. The Xerces-C++ package is built
with MSVC version A.B
and should be usable with that or later
versions (it also normally works with earlier A.*
versions).
All the packages are relocatable and can be installed into any location.
To install them you can use your favorite zip
archive
extractor. Alternatively, on recent Windows 10 builds you can use the
included BSD tar
command line utility. For example, to install
to C:\xsd
:
> md C:\xsd > tar -xf xsd-<...>.zip -C C:\xsd --strip-components=1 > tar -xf libxsd-<...>.zip -C C:\xsd --strip-components=1 > tar -xf libxerces-c-<...>.zip -C C:\xsd --strip-components=1
The resulting directory structure in C:\xsd
will look as
follows:
C:\xsd\ ├── bin\ │ ├── xerces-c-3.2.dll -- Xerces-C++ DLL │ └── xsd.exe -- XSD compiler ├── include\ │ ├── xercesc\ -- Xerces-C++ headers │ └── xsd\ -- XSD runtime headers └── lib\ ├── xerces-c.dll.lib -- Xerces-C++ import library └── xerces-c.lib -- Xerces-C++ static library
To test the installation you can try to build and run an example, for
example cxx/tree/hello/
from the xsd-examples
source package (see examples README
for
details). Start an appropriate (normally x64
) Visual Studio
Command Prompt and then execute:
> C:\xsd\bin\xsd cxx-tree hello.xsd > cl /IC:\xsd\include /DLIBXERCES_C_SHARED /EHsc /c hello.cxx > cl /IC:\xsd\include /DLIBXERCES_C_SHARED /EHsc /c driver.cxx > link /LIBPATH:C:\xsd\lib driver.obj hello.obj xerces-c.dll.lib > set "PATH=C:\xsd\bin;%PATH%" > .\driver.exe hello.xml
To integrate the installation into your build system of IDE, add
C:\xsd\bin
to the executable search paths (or to the
PATH
environment variable), C:\xsd\include
to the
header search paths, and C:\xsd\lib
to the library search
paths. Then link your application with xerces-c.dll.lib
(or
xerces-c.lib
if you wish to link Xerces-C++ statically).