[
Lists Home |
Date Index |
Thread Index
]
I think I want to use xs:key as opposed to xs:unique because xs:key
cannot be NULL.
OK, here's my schema fragment:
<xs:complexType name="sectorType">
<xs:sequence>
<xs:element name="id">
<xs:simpleType>
<xs:restriction base="xs:integer">
<xs:minInclusive value="1"/>
<xs:maxInclusive value="10"/>
</xs:restriction>
</xs:simpleType>
<xs:key name="sec_id">
<xs:selector xpath=".//sector"/>
<xs:field xpath="id"/>
</xs:key>
</xs:element>
<xs:element thing1 …/>
<xs:element thing2 …/>
<xs:element thing3 …/>
</xs:sequence>
</xs:complexType>
<xs:element name="sector" type="sectorType" minOccurs="1"
maxOccurs="10">
There are no more than 10 sectors, numbered 1 thru 10.
But the following XML file comes up valid. What did I miss ?
<?xml version="1.0" encoding="UTF-8"?>
<foo xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="foo.xsd">
<sector>
<id>1</id>
<thing1>…</thing1>
<thing2>…</thing2>
<thing3>…</thing3>
</sector>
<sector>
<id>2</id>
<thing1>…</thing1>
<thing2>…</thing2>
<thing3>…</thing3>
</sector>
<sector>
<id>1</id>
<thing1>…</thing1>
<thing2>…</thing2>
<thing3>…</thing3>
</sector>
</foo>
|