<?xml version=“1.0”?> <xsd:schema xmlns:xsd=“www.w3.org/2001/XMLSchema

targetNamespace="urn:test:foo"
xmlns:foo="urn:test:foo">

<!-- Substitution group heads. -->
<xsd:element name="gh-A" abstract="true"/>
<xsd:element name="gh-B" abstract="true"/>

<!-- Substitution group members. -->
<xsd:element name="gm-A-1" substitutionGroup="foo:gh-A"/>
<xsd:element name="gm-A-2" substitutionGroup="foo:gh-A"/>

<xsd:element name="gm-B-1" substitutionGroup="foo:gh-B"/>
<xsd:element name="gm-B-2" substitutionGroup="foo:gh-B"/>

<xsd:element name="foo">
        <xsd:complexType>
                <xsd:all>
                        <xsd:element ref="foo:gh-A"/>
                        <xsd:element ref="foo:gh-B"/>
                </xsd:all>
        </xsd:complexType>
</xsd:element>

</xsd:schema>