Problème avec key/keyRef lors de validation d'un fichier xsd
Bonjour,
j'ai un souci dans le contenu xsd suivant:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
targetNamespace="targetNamespaceURI"
xmlns="targetNamespaceURI" elementFormDefault="qualified">
<xsd:element name="root">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="professor">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="professorId" type="xsd:integer" minOccurs="1" maxOccurs="1"/>
<xsd:element name="nomProfessor" type="xsd:string"/>
<xsd:element name="teaches" type="xsd:string" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="student">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="studentId" type="xsd:integer" minOccurs="1" maxOccurs="1"/>
<xsd:element name="nomStudent" type="xsd:string"/>
<xsd:element name="teachedby" type="xsd:string" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:key name="professorK">
<xsd:selector xpath="./professor"/>
<xsd:field xpath="@professorId"/>
</xsd:key>
<xsd:key name="studentK">
<xsd:selector xpath="./student"/>
<xsd:field xpath="@studentId"/>
</xsd:key>
<xsd:keyref name="professorRefstudent " refer="studentK">
<xsd:selector xpath=".// professor "/>
<xsd:field xpath="teaches"/>
</xsd:keyref>
<xsd:keyref name="studentRefprofessor " refer="professorK">
<xsd:selector xpath=".// student "/>
<xsd:field xpath="teachedby"/>
</xsd:keyref>
</xsd:schema>
quand j'essaye de valider ce fichier, j'ai le message d'erreur suivant
element 'key' is invalid misplaced or occurs too often et element 'keyref' is invalid misplaced or occurs too often
voici mon code xml
<professor>
<professorId>1</professorId>
<nomProfessor>Alaoui</nomProfessor>
<teaches>3</teaches>
</professor>
<student>
<studentId>3</studentId>
<nomStudent>oussama</nomStudent>
<teachedby>1</teachedby>
</student>
</xml>
je serais très reconnaissant si vous pouviez m'aidez.
Merci.