This example shows how to map a user-defined XML Schema type to a custom
C++ class. It presents the simple case where the customized type is not
used as a base in the same schema. For the complex case see the taxonomy
example. For more information on the C++/Tree mapping customization see
the C++/Tree Mapping Customization Guide[1].

[1] http://wiki.codesynthesis.com/Tree/Customization_guide

The example consist of the following files:

contacts.xsd
  XML Schema definition for a simple contacts database.

contacts.xml
  Sample XML instance document.

contacts.hxx
contacts.ixx
contacts.cxx
  Data types that represent the given vocabulary and a set of parsing
  functions that convert XML instance documents to a tree-like in-memory
  data structure. These are generated by XSD from contacts.xsd with the
  --custom-type option in order to to customize the contact type.

contacts-custom.hxx
  Header file which defines our own contact class by inheriting from the
  generated contact_base. It is included at the end of contacts.hxx using
  the --hxx-epilogue option.

contacts-custom.cxx
  Source file which contains the implementation of our contact class.

driver.cxx
  Driver for the example. It first calls one of the parsing functions
  that constructs the in-memory representation from the input file. It
  then prints the contacts to STDERR.

To run the example on the sample XML instance document simply execute:

$ ./driver contacts.xml
