У меня есть XML, который я хочу проверить с помощью XSD. На самом деле это простой сценарий, но я не мог найти правильный ответ. Это XML:
<data>
<point>
<x>count</x>
<y>218</y>
</point>
<point>
<x>maxtime</x>
<y>1</y>
</point>
<point>
<x>mintime</x>
<y>0</y>
</point>
<point>
<x>mean</x>
<y>0.11</y>
</point>
</data>
Я хочу убедиться, что элемент data содержит 4 элемента point и что есть только один с x element = count em>, только один с x = maxtime ...
Теперь у меня есть следующее:
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="data">
<xs:complexType>
<xs:sequence>
<xs:element name="point" type="ctPoint" minOccurs="1" maxOccurs="4" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:complexType name="ctPoint">
<xs:sequence minOccurs="1" maxOccurs="4">
<xs:element name="x" minOccurs="1" maxOccurs="1">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="count" />
<xs:enumeration value="maxtime" />
<xs:enumeration value="mintime" />
<xs:enumeration value="mean" />
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="y" type="xs:decimal" minOccurs="1" maxOccurs="1" />
</xs:sequence>
</xs:complexType>
This validates correctly but it does not guarantee that there is only 1 count, only 1 maxtime,…