This example shows how to save/load the C++/Hybrid object model to/from a custom format using the raw binary representation as an example. Note that if you would like to use this format in your applications, make sure that all the targets use exactly the same base type sizes (e.g., int, long, float, double, size_t, etc.) and byte order. The example consists of the following files: library.xsd XML Schema which describes a library of books. library.xml Sample XML instance document. xml-schema.hxx xml-schema-pskel.hxx xml-schema-sskel.hxx Base object model types (the first file), parser skeletons (the second file), and serializer skeletons (the third file) for the XML Schema built-in types. These header files are generated by the XSD/e compiler using the --generate-xml-schema option. The --generate-parser and --generate-serializer options were also specified. irawstream.hxx irawstream.ixx irawstream.txx irawstream.cxx orawstream.hxx orawstream.ixx orawstream.txx orawstream.cxx Implementation of the raw binary representation streams. The header files include xml-schema.hxx to gain access to the base object model types. You can use this implementation as a base for your custom format. library.hxx library.cxx library-pskel.hxx library-pskel.cxx library-pimpl.hxx library-pimpl.cxx library-pskel.hxx library-pskel.cxx library-pimpl.hxx library-pimpl.cxx Object model (the first pair of files), parser skeletons (the second pair), parser implementations (the third pair), serializer skeletons (the fourth pair), and serializer implementations (the fifth pair). These files are generated by the XSD/e compiler from library.xsd. The --generate-parser, --generate-serializer, and --generate-aggregate options were used to request the generation of the parsing and serialization code. The --generate-insertion and --generate-extraction options were used to generate the insertion and extraction operations for the orawstream and irawstream, respectively. The --hxx-prologue option was used to include the orawstream.hxx and irawstream.hxx header files at the beginning of library.hxx. Finally, the --extern-xml-schema option was used to include xml-schema* files instead of generating the same code directly. driver.cxx Driver for the example. It first calls the parser that constructs the object model from the input XML file. It then saves the object model to the raw binary representation and loads it back. Finally, the driver calls the serializer to serialize the loaded object model back to XML. To run the example on the sample XML instance document simply execute: $ ./driver library.xml The example reads from STDIN if input file is not specified: $ ./driver