<?xml version="1.0"?> <xsd:schema xmlns:xsd="http://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>