diff options
| author | Jörg Frings-Fürst <debian@jff.email> | 2025-05-02 07:42:02 +0200 | 
|---|---|---|
| committer | Jörg Frings-Fürst <debian@jff.email> | 2025-05-02 07:42:02 +0200 | 
| commit | fc486627a4ecbae797fa6856d8a9204ea85f4db8 (patch) | |
| tree | ff3dae4c0e5d980d8e2da4fc6256ae839269bbcd /xsd/examples/cxx/tree/custom/taxonomy/README | |
| parent | 1c188393cd2e271ed2581471b601fb5960777fd8 (diff) | |
| parent | ecba0bbd9947036dd82f16ab95252f8db445e149 (diff) | |
Merge tag 'debian/4.0.0-10' into developdevelop
Bugfix release
Diffstat (limited to 'xsd/examples/cxx/tree/custom/taxonomy/README')
| -rw-r--r-- | xsd/examples/cxx/tree/custom/taxonomy/README | 53 | 
1 files changed, 53 insertions, 0 deletions
| diff --git a/xsd/examples/cxx/tree/custom/taxonomy/README b/xsd/examples/cxx/tree/custom/taxonomy/README new file mode 100644 index 0000000..c2e425a --- /dev/null +++ b/xsd/examples/cxx/tree/custom/taxonomy/README @@ -0,0 +1,53 @@ +This example shows how to map user-defined XML Schema types to custom C++ +classes. It presents the complex case where the customized types are +inherited from in the same schema. For the simple case see the contacts +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 consists of the following files: + +people.xsd +  XML Schema definition for a simple people database. + +people.xml +  Sample XML instance document. + +people-fwd.hxx +people.hxx +people.ixx +people.cxx +  C++ types that represent the given vocabulary and a set of parsing +  functions that convert XML instance documents to a tree-like in-memory +  object model. These are generated by XSD from people.xsd with the +  --custom-type option in order to customize the person, superman, and +  batman types. Generation of the people-fwd.hxx forward declaration +  file is requested with the --generate-forward option. Note also that  +  we use the --generate-polymorphic command line option as well as  +  --polymorphic-type to mark the type hierarchy starting with the  +  person type as polymorphic. + +people-custom-fwd.hxx +  Header file which forward-declares our own person, superman, and batman +  as class templates. It is included at the beginning of people-fwd.hxx +  using the --fwd-prologue option. + +people-custom.hxx +  Header file which defines our own person, superman, and batman class +  templates by inheriting from the generated person_base, superman_base, +  and batman_base. It is included at the beginning of people.hxx using +  the --hxx-prologue option. + +people-custom.cxx +  Source file which contains the implementations and instantiations of +  our person, superman, and batman class templates. + +driver.cxx +  Driver for the example. It first calls one of the parsing functions +  that constructs the object model from the input file. It then prints +  the database to STDERR. + +To run the example on the sample XML instance document simply execute: + +$ ./driver people.xml | 
