IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Valider XML Discussion :

problème de validation XSD [Débutant(e)] [XSD]


Sujet :

Valider XML

  1. #1
    Membre à l'essai
    Homme Profil pro
    WEB
    Inscrit en
    Août 2011
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : WEB
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Août 2011
    Messages : 15
    Points : 14
    Points
    14
    Par défaut 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 : 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
    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 : 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
    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...

  2. #2
    Membre émérite Avatar de tsuji
    Inscrit en
    Octobre 2011
    Messages
    1 558
    Détails du profil
    Informations forums :
    Inscription : Octobre 2011
    Messages : 1 558
    Points : 2 736
    Points
    2 736
    Par défaut
    [1] Ligne #8, vous avez défini élément notes et du type xs:string.
    [2] Ligne #26, vous référez notes mais adjoutant du type xs:typenotes. D'abord, ce n'est pas permi d'employer ref et type à la fois et en même temps. Un type typenotes derait avoir raison, donc, le élément global défini comme xs:string a tort.
    [3] Lignes #36-38 réferent les éléments qui n'ont pas définis comme globaux.

  3. #3
    Membre à l'essai
    Inscrit en
    Avril 2009
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 12
    Points : 13
    Points
    13
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    <?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-->
    Pour moi tu devrais pas déclarer ceci en début de ton xsd mais l'imbriqué dans un complexType pour l'élément eleve, et tu crées aussi un complexType pour note aussi

  4. #4
    Membre à l'essai
    Homme Profil pro
    WEB
    Inscrit en
    Août 2011
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : WEB
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Août 2011
    Messages : 15
    Points : 14
    Points
    14
    Par défaut
    Merci pour vos réponses, après m'être pencher un peu mieux sur le code, elles m'ont bien aidé.

    Bien à vous.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XSD] Problème de validation XSD (bis)
    Par AlambicTalon dans le forum Format d'échange (XML, JSON...)
    Réponses: 7
    Dernier message: 24/04/2008, 20h47
  2. [XSD] Problème de validation XSD
    Par ploxien dans le forum Format d'échange (XML, JSON...)
    Réponses: 5
    Dernier message: 17/04/2008, 00h10
  3. Réponses: 1
    Dernier message: 14/02/2007, 08h14
  4. [XSD] problème de validation
    Par anitshka dans le forum Valider
    Réponses: 1
    Dernier message: 23/11/2006, 12h38
  5. [DOM] Problème de validation XML par rapport à un Schéma XSD
    Par apisto dans le forum Format d'échange (XML, JSON...)
    Réponses: 2
    Dernier message: 20/09/2006, 15h32

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo