A substitution group is used to use elements as placed holders.
It is a way to have an extensible "choice" in your content model.
Elements elect to "join" the substitution group by having a 'substitutionGroup' attribute:
<xs:element name=a" type="xhtml:Anchor" substitutionGroup="xhtml:inline"/>
The target, in this case 'xhtml:inline', is called the representative member of the substitution group.
The type of the element must be derived from the type of the representative member.