Option 1: Re-use parts of your group by declaring the constituent elements by reference rather than by name:
<xs:group name="custGroup">
<xs:sequence>
<xs:element ref="customerId"/>
<xs:element ref="customerName"/>
<xs:element ref="Address1"/>
<xs:element ref="Address2"/>
<xs:element ref="mobile"/>
</xs:sequence>
</xs:group>
<xs:element name="customerId" type="xs:string"/>
<xs:element name="customerName" type="xs:string"/>
<xs:element name="Address1" type="xs:string"/>
<xs:element name="Address2" type="xs:string"/>
<xs:element name="mobile" type="xs:string"/>
This way, your second, similar group can at least share the global declarations of the referenced elements:
<xs:element name="custBrief">
<xs:sequence>
<xs:element ref="customerId"/>
<xs:element ref="mobile"/>
</xs:sequence>
</xs:element>
Option 2: Use subgroups:
<xs:group name="custGroup">
<xs:sequence>
<xs:group ref="custBriefGroup"/>
<xs:element ref="customerName"/>
<xs:element ref="Address1"/>
<xs:element ref="Address2"/>
</xs:sequence>
</xs:group>
<xs:group name="custBriefGroup">
<xs:sequence>
<xs:element name="customerId" type="xs:string"/>
<xs:element name="mobile" type="xs:string"/>
</xs:sequence>
</xs:group>
<xs:element name="custBrief">
<xs:sequence>
<xs:group ref="custBriefGroup"/>
</xs:sequence>
</xs:element>
This way, custBriefGroup
is defined in one place an re-used.
Note that I took liberties with re-arranging element ordering.
See also: The difference between <all> <sequence> <choice> and <group> in XSD?