problème de validation XSD
Bonjour,
Je débute en XML. Je réalise un fichier dans lequel j'ai une classe avec des élèves et leurs infos (nom, prénom, age, classe, notes en cours de français, math et sciences...)
...et j'aimerais le valider avec un fichier xsd.
J'ai un problème au niveau du noeud "notes". Il semble ne pas vouloir prendre les différentes matières en compte à commencer par le français forcément puisque c'est le premier élément.
Pourriez-vous m'aider à y voir plus clair?
Voici le XML (j'ai réussi à le valider en DTD):
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52
|
<?xml version="1.0" encoding="iso-8859-1"?>
<classes xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="C:\Users\Quentin\Desktop\prepa_exam_xml\3\classe3.xsd">
<eleve id="e1" type="4">
<nom>Dupont</nom>
<prenom>Cédric</prenom>
<age>10</age>
<classe>4</classe>
<notes>
<francais>8</francais>
<math>9</math>
<sciences>9</sciences>
</notes>
<commentaire>Excellent</commentaire>
</eleve>
<eleve id="e2" type="5">
<nom>Ben Ali</nom>
<prenom>Samuel</prenom>
<age>11</age>
<classe>5</classe>
<notes>
<francais>5</francais>
<math>6</math>
<sciences>3</sciences>
</notes>
<commentaire>Médiocre</commentaire>
</eleve>
<eleve id="e3" type="4">
<nom>Adam</nom>
<prenom>Paul</prenom>
<age>10</age>
<classe>4</classe>
<notes>
<francais>7</francais>
<math>8</math>
<sciences>7</sciences>
</notes>
<commentaire>Bon</commentaire>
</eleve>
<eleve id="e4" type="5">
<nom>Deschamps</nom>
<prenom>Marc</prenom>
<age>11</age>
<classe>5</classe>
<notes>
<francais>8</francais>
<math>8</math>
<sciences>8</sciences>
</notes>
<commentaire>Excellent</commentaire>
</eleve>
</classes> |
et voici le fichier XSD:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
|
<?xml version="1.0" encoding="iso-8859-1"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified">
<!-- déclarer tous les noeuds de fin de chaîne-->
<xs:element name="nom" type="xs:string"/>
<xs:element name="prenom" type="xs:string"/>
<xs:element name="age" type="xs:string"/>
<xs:element name="classe" type="xs:string"/>
<xs:element name="notes" type="xs:string"/>
<xs:element name="commentaire" type="xs:string"/>
<!-- déclaration du noeud root-->
<xs:element name="classes">
<xs:complexType>
<xs:sequence>
<xs:element name="eleve" type="typeeleve" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<!-- définir le type du noeud eleve -->
<xs:complexType name="typeeleve">
<xs:sequence>
<xs:element ref="nom"/>
<xs:element ref="prenom"/>
<xs:element ref="age"/>
<xs:element ref="classe"/>
<xs:element ref="notes" type="typenotes"/>
<xs:element ref="commentaire"/>
</xs:sequence>
<!-- déclaration des attributs -->
<xs:attribute name="id" type="xs:integer" use="required"/>
<xs:attribute name="type" type="typeattributetype" use="required"/>
</xs:complexType>
<!-- définir le type du noeud notes -->
<xs:complexType name="typenotes">
<xs:sequence>
<xs:element ref="francais"/>
<xs:element ref="math"/>
<xs:element ref="sciences"/>
</xs:sequence>
</xs:complexType>
<xs:simpleType name="typeattributetype">
<xs:restriction base="xs:integer">
<xs:enumeration value="4"/>
<xs:enumeration value="5"/>
<xs:enumeration value="6"/>
</xs:restriction>
</xs:simpleType>
</xs:schema> |
Merci d'avance...