This example shows how to use the C++/Tree mapping to parse several XML documents while reusing the underlying XML parser and caching the schemas used for validation. The example consists of the following files: library.xsd XML Schema which describes a library of books. library.xml Sample XML instance document. library.hxx library.cxx C++ types that represent the given vocabulary and a set of parsing functions that convert XML instance documents to a tree-like in-memory object model. These files are generated by the XSD compiler from library.xsd using the following command line: xsd cxx-tree library.xsd driver.cxx Driver for the example. It first sets up the Xerces-C++ DOM parser and caches the library.xsd schema for validation. It then performs ten iterations that parse the input file to a DOM document using the DOM parser and call one of the parsing functions that constructs the object model from this DOM document. On each iteration the driver prints a number of books in the object model to STDERR. To compile and link the example manually from the command line we can use the following commands (replace 'c++' with your C++ compiler name): c++ -DXSD_CXX11 -c library.cxx c++ -DXSD_CXX11 -c driver.cxx c++ -o driver driver.o library.o -lxerces-c Note that we need to define the XSD_CXX11 preprocessor macro since the source code includes libxsd headers directly. To run the example on the sample XML instance document execute: ./driver library.xml library.xsd