# XML Schema list unique value restriction



## Kian (14. Mrz 2014)

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]


----------

