
Example: Extension Elements
The following complexContent type contains a choice of two additional elements that were not defined in the base type (ProductType):
<xsd:complexType name="ShirtType"> <xsd:complexContent> <xsd:extension base="ProductType"> <xsd:choice> <xsd:element name="size" type="SizeType"/> <xsd:element name="color" type="ColorType"/> </xsd:choice> </xsd:extension> </xsd:complexContent> </xsd:complexType>#define T_ShirtType_2_size 1 #define T_ShirtType_2_color 2 typedef struct EXTERN ShirtType_2 { OSUINT16 t; union { /* t = 1 */ SizeType size; /* t = 2 */ ColorType color; } u; } ShirtType_2; typedef struct EXTERN ShirtType { ProductType _base; ShirtType_2 _ext; } ShirtType;class EXTERN ShirtType : public ProductType { public: // tag constants enum { T_size = 1, T_color = 2 } ; OSUINT16 t; union { /* t = 1 */ SizeType *size; /* t = 2 */ ColorType *color; } u; ... } ;
| Copyright © Objective Systems
2002-2005 This document may be distributed in any form, electronic or otherwise, provided that it is distributed in its entirety and that the copyright and this notice are included. |
Objective Systems, Inc. 102 Pickering Way, Suite #506 Exton, Pennsylvania 19341 http://www.obj-sys.com Phone: (484) 875-9841 Toll-free: (877) 307-6855 (US only) Fax: (484) 875-9830 info@obj-sys.com |