Wie kann man ein XML Schema so anpassen, dass folgendes erlaubt ist
[XML]
<test>
<test2>value1</test2>
<test2>value2</test2>
</test>
[/XML]
und nodes mit gleichen werten nicht erlaubt sind
[XML]
<test>
<test2>value1</test2>
<test2>value1</test2>
</test>
[/XML]
Das hier habe ich bis jetzt. Ich glaube ich muss nur die richtigen xpath-Werte(siehe ?) für selector und field angeben, weiß aber nicht welche. (text() z.B. funktioniert im schema nicht).
[XML]
<xs:element name="test" type="testComplexType"/>
<xs:complexType name="testComplexType">
<xs:sequence>
<xs:element name="test2" type="testValues" minOccurs="1" maxOccurs="2">
<xs:unique name="eachTestValueOnce">
<xs:selector xpath="?"/>
<xs:field xpath="?"/>
</xs:unique>
</xs:element>
</xs:sequence>
</xs:complexType>
<xs:simpleType name="testValues">
<xs:restriction base="xs:normalizedString">
<xs:enumeration value="value1"/>
<xs:enumeration value="value2"/>
</xs:restriction>
</xs:simpleType>
[/XML]
[XML]
<test>
<test2>value1</test2>
<test2>value2</test2>
</test>
[/XML]
und nodes mit gleichen werten nicht erlaubt sind
[XML]
<test>
<test2>value1</test2>
<test2>value1</test2>
</test>
[/XML]
Das hier habe ich bis jetzt. Ich glaube ich muss nur die richtigen xpath-Werte(siehe ?) für selector und field angeben, weiß aber nicht welche. (text() z.B. funktioniert im schema nicht).
[XML]
<xs:element name="test" type="testComplexType"/>
<xs:complexType name="testComplexType">
<xs:sequence>
<xs:element name="test2" type="testValues" minOccurs="1" maxOccurs="2">
<xs:unique name="eachTestValueOnce">
<xs:selector xpath="?"/>
<xs:field xpath="?"/>
</xs:unique>
</xs:element>
</xs:sequence>
</xs:complexType>
<xs:simpleType name="testValues">
<xs:restriction base="xs:normalizedString">
<xs:enumeration value="value1"/>
<xs:enumeration value="value2"/>
</xs:restriction>
</xs:simpleType>
[/XML]