This example shows how to reuse implementations of base parsers in derived parsers using the mixin C++ idiom. The example consists of the following files: schema.xsd XML Schema which defined two data types: base and derived. instance.xml Sample XML instance document. types.hxx C++ classes that correspond to the base and derived types in schema.xsd. schema.map Type map. It maps XML Schema types defined in schema.xsd to C++ types defined in types.hxx. schema-pskel.hxx schema-pskel.cxx Parser skeletons generated by the XSD compiler from schema.xsd and schema.map using the following command line: xsd cxx-parser --type-map=schema.map schema.xsd Or if using Expat instead of Xerces-C++ as the underlying XML parser: xsd cxx-parser --xml-parser=expat --type-map=schema.map schema.xsd driver.cxx Parser implementations and a driver for the example. It shows how to mix the implementation of the base parser into the derived parser. 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++ -c schema-pskel.cxx c++ -c driver.cxx c++ -o driver driver.o schema-pskel.o -lxerces-c Or if using Expat as the underlying XML parser: c++ -o driver driver.o schema-pskel.o -lexpat To run the example on the sample XML instance document execute: ./driver instance.xml