Hallo,
ich bastele mir gerade ein XML-Schema zusammen. Da die Verwendung von ID und IDREF nicht den gewünschten Effekt bringt, habe ich mich für die Verwendung von unique, key und keyref entschieden. Mit unique und key kann man ja ganz einfach ein Attribut als Schlüssel setzen:
z.B.
<xs:unique name="PersonID">
<xs:selector xpath="Person"/>
<xs:field xpath="@PersonID"/>
</xs:unique>
In einem anderen Element soll eben dieses Attribut nochmal auftauchen undzwar auch als Attribut, aber als Referenz auf den erzeugten Schlüssel. Leider habe ich bisher noch nicht herausgefunden wie ich das anstellen soll und auch keine Hinweise im WWW dazu gefunden.
"Person" als Element angeben und dort dann die Schlüsselreferenz, das ist möglich:
<xs:element name="Bestellung">
xs:complexType
xs:sequence
<xs:element name="Artikel" type="xs:string"/>
<xs:element name="Person">
<xs:keyref name="Person" refer="PersonID">
<xs:selector xpath="Person"/>
<xs:field xpath="@PersonID"/>
</xs:keyref>
</xs:element>
</xs:sequence>
<xs:attribute name="BestellungID" type="xs:positiveInteger" use="required"/>
</xs:complexType>
</xs:element>
Die Frage ist also, wie ich einem Attribut, den Typ keyref gebe und dann auch auf den eigentlich Schlüssel referenziere?
Ich hoffe, ihr könnt mir helfen. Es wäre echt super, wenn das irgendwie gehen würde.
Gruß,
Kerstin