Bonjour, je souhaite valider mon fichier xml grâce à un xmlschema.

Je viens de m'y mettre alors je ne m'y connais pas trop, voici mon problème :

Failed to invoke method parse in class org.exist.xmlrpc.RpcConnection: org.xml.sax.SAXParseException: cvc-complex-type.3.2.2: Attribute 'id_auteur' is not allowed to appear in element 'auteur'.

Apparemment mon Xmlschema m'interdit d'ajouter un attribut à l'élément auteur ... Est ce que quelqu'un pourrait me dire pourquoi ?

Fichier xsd :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
 
<xsd:element name="Bibliotheque">
    <xsd:complexType>
      <xsd:sequence>
        <xsd:element name="auteurs">
          <xsd:complexType>
            <xsd:sequence>
              <xsd:element maxOccurs="unbounded" name="auteur">
                <xsd:complexType>
                  <xsd:sequence>
                    <xsd:element name="nom" type="xsd:string" />
                    <xsd:element name="prenom" type="xsd:string" />
                    <xsd:element name="date_naissance" type="xsd:dateTime" />
                    <xsd:element name="id_livre" maxOccurs="unbounded" type="xsd:IDREF" />
                  </xsd:sequence>
				  <xsd:attribute name="id_auteur" type="xsd:ID" />
                </xsd:complexType>
              </xsd:element>
            </xsd:sequence>
          </xsd:complexType>
        </xsd:element>
....
</Bibliotheque>
Fichier xml :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
 
<?xml version="1.0" encoding="iso-8859-1"?>
<Bibliotheque xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://localhost:8080/exist/test/test.xsd">
 
<auteurs> 
  <auteur id_auteur = "a1">
    <nom>Hugo</nom>
    <prenom>Victor</prenom>
    <date_naissance>1696-09-01T00:00:00Z</date_naissance>
    <id_livre>l1</id_livre>
    <id_livre>l2</id_livre>
  </auteur>
 ...
J'avais aussi essayer avec des refs et j'ai eu le même problème, quelque chose doit être mal écrit.

Par ailleurs j'ai quelques questions, à la base cette id_auteur apparaissait en tant qu'élément dans mon élément "auteur". Est ce que le fait de le passer en attribut donne un avantage ? (niveau accès ou autres)

Merci pour votre aide !