diff options
Diffstat (limited to 'examples/cxx/serializer/polymorphism/README')
-rw-r--r-- | examples/cxx/serializer/polymorphism/README | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/examples/cxx/serializer/polymorphism/README b/examples/cxx/serializer/polymorphism/README new file mode 100644 index 0000000..0e2c5b8 --- /dev/null +++ b/examples/cxx/serializer/polymorphism/README @@ -0,0 +1,44 @@ +This example shows how to handle XML Schema polymorphism features such as +xsi:type attributes and substitution groups in the Embedded C++/Serializer +mapping. The case when xsi:type or substitution groups are used on root +elements is covered in the polyroot examples. + +The example consists of the following files: + +supermen.xsd + XML Schema which describes supermen instance documents. + +supermen.hxx + Types that describe the supermen object model in C++. These + are hand-written. + +supermen.map + Type map. It maps XML Schema types defined in supermen.xsd to + C++ types defined in supermen.hxx. + +supermen-sskel.hxx +supermen-sskel.cxx + Serializer skeletons generated by XSD/e from supermen.xsd and + supermen.map. + +supermen-simpl-mixin.hxx +supermen-simpl-mixin.cxx + +supermen-simpl-tiein.hxx +supermen-simpl-tiein.cxx + Serializer implementations (using either mixin or tiein parser + reuse style) that serialize the custom in-memory object model to + XML. These are hand-written implementations of the serializer + skeletons defined in supermen-sskel.hxx. + +driver.cxx + Driver for the example. It first constructs a sample object model + using the types from supermen.hxx. It then creates a serializer + instance using all the individual serializers found in one of + supermen-simpl-*.hxx. Finally, it invokes this serializer instance + to serialize the sample object model to an XML document which is + printed to STDOUT. + +To run the example simply execute: + +$ ./driver |