XSD: Mehrere Elemente mit gleichem Attribut
1337
- xml
0 Encoder
Hi zusammen,
gegeben ist folgende XML-Struktur:
<foo>
<bar value="1">
<bar value="1">
</foo>
Das Attribut des Knotens <bar> darf beispielsweise "1" oder "2" sein. Taucht der Knoten aber mehrfach auf, müssen alle <bar>-Knoten die gleiche "value" haben. Weiß jemand, wie ich das in einer XSD definieren kann?
Ich habe versucht, dass mit "xsd:unique" zu lösen:
<xsd:unique name="foobar">
<xsd:selector xpath=".//bar" />
<xsd:field xpath="@value" />
</xsd:unique>
Das doofe ist, dass das XML nur valide wäre, wenn alle <foo>-Knoten unterschiedliche (=eindeutige) "value" haben. Ich bräuchte im Prinzip genau das Gegenteil. Aber laut Spezifikation scheint's kein "equal" zu geben...
Wäre toll, wenn mir jemand bei meinem Problem helfen könnte :-)
Gruß
1337
Ich weiß nicht ob das geht. Weil wirklich sinnvoll ists ja nicht. Wenn überall das selbe Attribut stehen muss, ist es redundant. Dann könntest du in deinem Beispiel das Attribut auch gleich in foo hoch ziehen und dort einmalig notieren.
Ich habe versucht, dass mit "xsd:unique" zu lösen:
Kinder tun gern mal das am liebsten was man ihnen verbietet. Aber ein XML-Schema reagiert auf sowas eher gelassen ;-)