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