This example shows how to save/load the object model to/from CDR (Common Data Representation) binary format using ACE CDR streams. Support for other data representation streams can be easily added. You will need the ACE library[1] installed in order to build and run this example. [1] http://www.cs.wustl.edu/~schmidt/ACE.html 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 are generated by XSD from library.xsd. Note that the --generate-insertion and --generate-extraction options are used to generate the insertion and extraction operations for ACE CDR 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 ACE_OuputCDR and loads it back from ACE_InputCDR. Additionally, it prints the resulting binary representation as well as the content of the object model before saving it to the CDR stream and after loading it from the CDR stream. To run the example on the sample XML instance document simply execute: $ ./driver library.xml