Validating the following xml-file:
<?xml version="1.0" encoding="UTF-8"?>
<zoo xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="Aufgabe1.xsd" name="zoogarten">
<zootier xsi:type="gans_ct" id="tier1" flugfaehig="false">
<name>erna</name>
<alter>2</alter>
<schlachtgewicht>1500</schlachtgewicht>
</zootier>
<zootier id="tier2" xsi:type="pferd_ct" schimmel="false">
<name>peter</name>
<alter>4</alter>
<tragezeit>11</tragezeit>
</zootier>
<zootier id="tier3" xsi:type="katze_ct">
<name>minka</name>
<alter>3</alter>
<tragezeit>2</tragezeit>
<fellfarbe>hell</fellfarbe>
</zootier>
<zootier id="tier4" xsi:type="fink_ct" beringt="true" flugfaehig="true">
<name>piere</name>
<alter>2</alter>
</zootier>
<pfleger name="meinhold">
<pflegt tier="tier1"/>
<pflegt tier="tier2"/>
</pfleger>
<pfleger name="guntram">
<pflegt tier="tier3"/>
<pflegt tier="tier4"/>
</pfleger>
<behausung xsi:type="gebaeude_ct" name="vogelhaus">
<beherbergt tier="tier2"/>
<beherbergt tier="tier3"/>
<beherbergt tier="tier4"/>
<flaeche>230.78</flaeche>
</behausung>
<behausung xsi:type="teich_ct" name="grosser Teich">
<beherbergt tier="tier1"/>
<wassertiefe>2.3</wassertiefe>
</behausung>
</zoo>
... against this schema:
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:vc="http://www.w3.org/2007/XMLSchema-versioning" elementFormDefault="qualified"
vc:minVersion="1.0" vc:maxVersion="1.1">
<xs:element name="zoo" type="zoo_ct"/>
<xs:complexType name="zoo_ct">
<xs:sequence>
<xs:element name="zootier" type="zootier_ct" maxOccurs="unbounded"/>
</xs:sequence>
<xs:attribute name="name" type="xs:string"/>
</xs:complexType>
<xs:element name="zootier" type="zootier_ct"/>
<xs:complexType name="zootier_ct">
<xs:sequence>
<xs:element name="name" type="xs:string"/>
<xs:element name="alter" type="xs:positiveInteger"/>
</xs:sequence>
<xs:attribute name="id" type="xs:ID"/>
</xs:complexType>
<xs:complexType name="säugetier_ct">
<xs:complexContent>
<xs:extension base="zootier_ct">
<xs:sequence>
<xs:element name="tragezeit" type="xs:positiveInteger"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="pferd_ct">
<xs:complexContent>
<xs:extension base="säugetier_ct">
<xs:attribute name="schimmel" type="xs:boolean"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="katze_ct">
<xs:complexContent>
<xs:extension base="säugetier_ct">
<xs:sequence>
<xs:element name="fellfarbe" type="xs:string"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="vogel_ct">
<xs:complexContent>
<xs:extension base="zootier_ct">
<xs:attribute name="flugfaehig" type="xs:boolean"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="gans_ct">
<xs:complexContent>
<xs:extension base="vogel_ct">
<xs:sequence>
<xs:element name="schlachtgewicht" type="xs:double"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="fink_ct">
<xs:complexContent>
<xs:extension base="vogel_ct">
<xs:attribute name="beringt" type="xs:boolean"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:element name="pfleger" type="pfleger_ct"/>
<xs:complexType name="pfleger_ct">
<xs:sequence>
<xs:element name="pflegt" maxOccurs="unbounded">
<xs:complexType>
<xs:attribute name="tier" type="xs:IDREF"/>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="name" type="xs:string"/>
</xs:complexType>
<xs:element name="behausung" type="behausung_ct"/>
<xs:complexType name="behausung_ct">
<xs:sequence>
<xs:element name="beherbergt" maxOccurs="unbounded">
<xs:complexType>
<xs:attribute name="tier" type="xs:IDREF"/>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="name" type="xs:string"/>
</xs:complexType>
<xs:complexType name="gebäude_ct">
<xs:complexContent>
<xs:extension base="behausung_ct">
<xs:sequence>
<xs:element name="flaeche" type="xs:double"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="teich_ct">
<xs:complexContent>
<xs:extension base="behausung_ct">
<xs:sequence>
<xs:element name="wassertiefe" type="xs:double"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:schema>
... produces the following error message: Error: Invalid content was found starting with element 'pfleger'. One of '{zootier}' is expected.
Apparently there are problems with my ID-Reference. (The element "beherbergt" has a reference referring to one of the "zootier"-elements).
I used attribute-type "xs:ID" for the ID and attribute-type "xs:IDREF" for the reference to the ID. As far as I can tell, this is syntactically correct.
Still, the computer cannot make the connection and I don't know why. If anybody knows please drop me a line.