Element Extension
The general mapping for
complexContent with an extension element group is as follows:
|
|
<xsd:complexType name="TypeName">
<xsd:complexContent>
<xsd:extension base="BaseType">
<xsd:group>
<xsd:element name="elem1" type="Type1"/>
<xsd:element name="elem2" type="Type2"/>
...
<xsd:element name="elemN" type="TypeN"/>
</xsd:group>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
|
|
|
typedef struct TypeName_1x2 {
typedef struct TypeName {
|
|
|
class TypeName : public BaseType {
|
1.
group in the extension group definition above can be any content model group type (sequence, all, choice, or group).
2. In the case of C, the extension group is pulled out to form the temporary type (
TypeName_1x2). The internals of this type depend on the content group type.
3. In the case of C++, the
BaseType is extended to form a derived class. The contents of the extension group are then added directly to the body of the derived class.