This example shows how to use the C++/Tree mapping to parse XML documents into a tree-like in-memory object model, modify this object model, and finally serialize it back to XML. 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.ixx library.cxx C++ types that represent the given vocabulary, a set of parsing functions that convert XML documents to a tree-like in-memory object model, and a set of serialization functions that convert the object model back to XML. These files are generated by the XSD compiler from library.xsd using the following command line: xsd cxx-tree --generate-ostream --generate-serialization library.xsd driver.cxx Driver for the example. It first calls one of the parsing functions that constructs the object model from the input file. It then prints the content of the object model to STDERR. Finally, the driver modifies the object model and serializes it back to XML. 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 library.cxx c++ -c driver.cxx c++ -o driver driver.o library.o -lxerces-c To run the example on the sample XML instance document execute: ./driver library.xml This example also shows how to use the ID/IDREF cross-referencing mechanism and the xsd:enumeration to C++ enum mapping.