This example shows how to save/load the object model to/from XDR (eXternal Data Representation) binary format using XDR streams. The XDR API is available on most UNIX and GNU/Linux systems as part of Sun RPC (libtirpc-dev package on Debian/Ubuntu, libtirpc-devel package on Fedora/RHEL, and as a part of the Standard C Library on FreeBSD and MacOS). On Windows you may need to install a third-party library which provides the XDR API. 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 as well as data representation stream insertion and extraction operations. These files are generated by the XSD compiler from library.xsd using the following command line: xsd cxx-tree --generate-ostream --generate-comparison \ --generate-insertion 'XDR' --generate-extraction 'XDR' library.xsd Note that the --generate-insertion and --generate-extraction options are used to generate the insertion and extraction operations for XDR stream. driver.cxx Driver for the example. It first calls one of the parsing functions that constructs the object model from the input XML file. It then saves the object model to the XDR representation and loads it back. Additionally, it prints the content of the object model before saving it to the XDR representation and after loading it from the XDR representation. 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 -ltirpc -lxerces-c To run the example on the sample XML instance document execute: ./driver library.xml