Ich habe diese XML-Datei:xsd: einzigartig mit optionalen Attributen
<objects>
<object name="ID1" />
<object name="ID2" />
<object name="ID2" color="green" />
<object name="ID3" color="green" />
<objects>
Ich mag würde dies gegen eine XSD validieren, so dass die Kombination zwischen name
und color
einzigartig ist in dem Dokument.
Das Problem ist, dass, wenn ich benutze:
<xs:unique name="UniqueObjectNameColor">
<xs:selector xpath="./object" />
<xs:field xpath="@name" />
<xs:field xpath="@color" />
</xs:unique>
... die Regel object
Elemente ohne das optionale color
Attribut ignoriert. Das folgende validiert richtig, während es nicht sollte.
<object name="ID2" />
<object name="ID2" />
Können Sie mir sagen, wie kann ich eine Regel angeben, die einzigartige erzwingt name
und color
Kombinationen und, wenn das color
Attribut in dem Element nicht vorhanden ist object
, prüft er die name
?
ich die gleiche Sache wissen möchte. Die Antwortform von micfra schneidet es nicht ganz ab. –
Es kann Ihr Schema brechen, aber setzt einen Standardwert für die Hilfe zum Farbattribut? z.B. –
@MattyK, das dieses Problem für mich behoben hat. Vielen Dank! – RichardTowers