Hallo,
ich habe ein kleines Problem bei der Definition einer XSD. Ich möchte innerhalb einer NodeList eindeutige Kind-Elemente haben. Also etwas nach folgendem Schema:
<reise>
<orte gid="1">
<ort pid="berlin"/>
<ort pid="hamburg"/>
<ort pid="bern"/>
</orte>
<orte gid="2">
<ort pid="wien"/>
<ort pid="hamburg"/>
<ort pid="berlin"/>
</orte>
<orte gid="3">
<ort pid="wien"/>
<ort pid="berlin"/>
<ort pid="berlin"/> <!-- Das soll nicht passieren -->
</orte>
</reise>
Eine eindeutige gid
für die Orte habe ich hinbekommen:
<xsd:key name="keyGId">
<xsd:selector xpath=".//orte"/>
<xsd:field xpath="@gid"/>
</xsd:key>
um keine doppelten Einträge in orte
zu bekommen, bin ich auf unique gestoßen. Versucht habe ich eine Kombination aus der pid
und der gid
zu bilden. Das scheint aber nicht korrekt zu sein.
<xsd:unique name="uniquePid">
<xsd:selector xpath=".//orte"/>
<xsd:field xpath="./@gid"/>
<xsd:field xpath="./ort/@pid"/>
</xsd:unique>
Wo liegt mein Fehler?
Mit freundlichem Gruß
Micha