Da stehts ja:
http://www.w3.org/TR/2001/PR-xmlschema-1-20010330/#coss-identity-constraint
Path in Field XPath expressions
[5] Path ::= ('.//')? ( Step '/' )* ( Step | '@' NameTest )
Man kann also offensichtlich mit der xsd:field Expression nur auf Elemente verweisen, die noch tiefer im Baum liegen. Also muss ich den xsd:selector eine Ebene höher ansetzen und dann überprüft der Validierer immer nur, ob das erste d-Element in jedem c-Element dem Schlüssel entspricht und ignoriert alle weiteren, weil die Bedingung ja schon erfüllt ist. Tja watt nun?