Please see the example below. What is/are the difference(s)
between xs:group and xs:extension
<xs:complexTy pe name="personinf o">
<xs:sequence>
<xs:element name="firstname " type="xs:string "/>
<xs:element name="lastname" type="xs:string "/>
</xs:sequence>
</xs:complexType>
<xs:group name="mailingin fo">
<xs:sequence>
<xs:element name="address" type="xs:string "/>
<xs:element name="city" type="xs:string "/>
<xs:element name="state" type="xs:string " />
<xs:element name="zipcode" type="xs:string " />
</xs:sequence>
</xs:group>
<xs:complexTy pe name="fullperso ninfo">
<xs:complexCont ent>
<xs:extension base="personinf o">
<xs:sequence>
<xs:group ref="mailinginf o" />
<xs:element name="country" type="xs:string "/>
</xs:sequence>
</xs:extension>
</xs:complexConte nt>
</xs:complexType>
<xs:element name="employee" type="fullperso ninfo"/>
between xs:group and xs:extension
<xs:complexTy pe name="personinf o">
<xs:sequence>
<xs:element name="firstname " type="xs:string "/>
<xs:element name="lastname" type="xs:string "/>
</xs:sequence>
</xs:complexType>
<xs:group name="mailingin fo">
<xs:sequence>
<xs:element name="address" type="xs:string "/>
<xs:element name="city" type="xs:string "/>
<xs:element name="state" type="xs:string " />
<xs:element name="zipcode" type="xs:string " />
</xs:sequence>
</xs:group>
<xs:complexTy pe name="fullperso ninfo">
<xs:complexCont ent>
<xs:extension base="personinf o">
<xs:sequence>
<xs:group ref="mailinginf o" />
<xs:element name="country" type="xs:string "/>
</xs:sequence>
</xs:extension>
</xs:complexConte nt>
</xs:complexType>
<xs:element name="employee" type="fullperso ninfo"/>