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 option 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
