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:
[XML]<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>[/XML]
Eine eindeutige gid für die Orte habe ich hinbekommen:
[XML]<xsd:key name="keyGId">
<xsd:selector xpath=".//orte"/>
<xsd:field xpath="@gid"/>
</xsd:key>[/XML]
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. Mein Versuch scheint aber nicht korrekt zu sein:
[XML]<xsd:unique name="uniquePid">
<xsd:selector xpath=".//orte"/>
<xsd:field xpath="./@gid"/>
<xsd:field xpath="./ort/@pid"/>
</xsd:unique>[/XML]
Wo liegt mein Fehler?
Besten Dank
Micha
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:
[XML]<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>[/XML]
Eine eindeutige gid für die Orte habe ich hinbekommen:
[XML]<xsd:key name="keyGId">
<xsd:selector xpath=".//orte"/>
<xsd:field xpath="@gid"/>
</xsd:key>[/XML]
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. Mein Versuch scheint aber nicht korrekt zu sein:
[XML]<xsd:unique name="uniquePid">
<xsd:selector xpath=".//orte"/>
<xsd:field xpath="./@gid"/>
<xsd:field xpath="./ort/@pid"/>
</xsd:unique>[/XML]
Wo liegt mein Fehler?
Besten Dank
Micha