Beim Erstellen von Basistypen für die weitere Verwendung im Xml Schema können eindeutige Schlüssel verwendet werden. Etwa nach diesem Schema:
<xsd:element name="Person">
<xsd:sequence>
<xsd:element name="Nr">
<xsd:simpleType>
<xsd:restriction base="xsd:int"/>
</xsd:simpleType>
<xsd:key name="Id">
<xsd:selector xpath="Person"/>
<xsd:field xpath="Nr"/>
</xsd:key>
</xsd:element>
</xsd:sequence>
</xsd:element>
Sobald die Definition eines Schlüssels aber innerhalb eines Datentyps definiert werden soll, ist der XPath Ausdruck <xsd:selector xpath="Person"/> unbekannt, da das auswählende Element ja noch nicht vorhanden ist.
Tja also heißt es doch wieder einwenig umdenken.