I have a complex type element containing a sequence of group references as follows

<xsd:element name="Item" minOccurs="0" maxOccurs="unbounded">
<xsd:group ref="1:group1" minOccurs="0"></xsd:group>
<xsd:group ref="2:group2" minOccurs="0"></xsd:group> <xsd:group ref="3:group3" minOccurs="0"></xsd:group>
<xsd:group ref="4:group4" minOccurs="0"></xsd:group>
<xsd:group ref="5:group5" minOccurs="0"></xsd:group>
<xsd:group ref="6:group6" minOccurs="0"></xsd:group>
<xsd:group ref="7:group7" minOccurs="0"></xsd:group>

Here the group references are in sequence, but I want them to be in any oder. Also no group must occur more than once, but they can be zero (minOccurs=0). The <xsd:all> will allow exactly the same operation for elements but here I have groups. Can anyone help me out with this....