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 :

Erreur de validation par le XSD [XSD]


Sujet :

Valider XML

  1. #1
    Responsable Perl et Outils

    Avatar de djibril
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    19 820
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 820
    Points : 499 184
    Points
    499 184
    Par défaut Erreur de validation par le XSD
    Bonjour,

    J'ai une erreur de validation que je ne comprends pas.

    voici la portion de code 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
    	<xs:complexType name="animation">
    		<xs:sequence>
    			<xs:element name="title" type="xs:string" minOccurs="0"/>
    			<xs:element name="config" type="xs:string" minOccurs="0"/>
    			<xs:element name="image" type="image" minOccurs="0"/>
    			<xs:element name="codebase" type="xs:anyURI"  minOccurs="0"/>
    			<xs:element name="width" type="xs:integer"/>
    			<xs:element name="height" type="xs:integer"/>
    			<xs:sequence>
    				<xs:element name="param" minOccurs="0" maxOccurs="4">
    					<xs:complexType>
    						<xs:all>
    							<xs:element name="name">
    								<xs:simpleType>
    									<xs:restriction base="xs:NMTOKEN">
    										<xs:enumeration value="movie"/>
    										<xs:enumeration value="quality"/>
    										<xs:enumeration value="loop"/>
    										<xs:enumeration value="wmode"/>
    									</xs:restriction>
    								</xs:simpleType>
    							</xs:element>
    							<xs:element name="value" type="xs:string"/>
    						</xs:all>
    					</xs:complexType>
    				</xs:element>
    			</xs:sequence>
    		</xs:sequence>
    		<xs:attribute name="type" type="xs:string"/>
    	</xs:complexType>
    Et voici le bout de code XML incriminé
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    	<animation type="flv">
    	  <codebase>http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,0,0</codebase>
    	  <title>Mon titre</title>
    	  <width>480</width>
    	  <height>270</height>
    	  <param>
    	    <name>movie</name>
    	    <value>ftp://mon-url</value>
    	  </param>
    	</animation>
    voici l'erreur que j'obtiens
    Erreur de validation par le XSD.!
    Élément « title » inattendu selon le modèle de contenu de l'élément parent « animation ».
    En attente de : width.

    Error code: -1072898028
    Je ne comprends pas pourquoi il ne s'attend pas à voir une balise title. J'ai même essayé en renommant title en titre, mais ça ne change rien.

  2. #2
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Juillet 2007
    Messages
    467
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2007
    Messages : 467
    Points : 647
    Points
    647
    Par défaut
    Bonjour,

    Commences par mettre tes items XML dans le même ordre définit que définition XSD...

    Si tu as une XSD, comme ça,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <xs:element name="title" type="xs:string" minOccurs="0"/>
    <xs:element name="config" type="xs:string" minOccurs="0"/>
    <xs:element name="image" type="image" minOccurs="0"/>
    <xs:element name="codebase" type="xs:anyURI"  minOccurs="0"/>
    <xs:element name="width" type="xs:integer"/>
    <xs:element name="height" type="xs:integer"/>
    Ton XML doit ressembler plutôt à ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <title />
    <config />
    <image />
    <codebase />
    <width />
    <height />

  3. #3
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 551
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 551
    Points : 21 607
    Points
    21 607
    Par défaut
    Du fait que "séquence," ça veut pas dire "dans n'importe quel ordre" .
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  4. #4
    Responsable Perl et Outils

    Avatar de djibril
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    19 820
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 820
    Points : 499 184
    Points
    499 184
    Par défaut
    Merci pour vos réponses. Je ne savais pas pour xs:sequence. Si je ne veut pas tenir compte de l'ordre, que dois-je mettre à la place de <xs:sequence> ?

  5. #5
    Responsable Perl et Outils

    Avatar de djibril
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    19 820
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 820
    Points : 499 184
    Points
    499 184
    Par défaut
    J'ai trouvé sur ce forum que je pouvais utiliser <xs:choice maxOccurs="unbounded"> à la place de <xs:sequence>
    Code xml : 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
    	<xs:complexType name="animation">
    		<xs:choice maxOccurs="unbounded">
    			<xs:element name="title" type="xs:string" minOccurs="0"/>
    			<xs:element name="config" type="xs:string" minOccurs="0"/>
    			<xs:element name="image" type="image" minOccurs="0"/>
    			<xs:element name="codebase" type="xs:anyURI"  minOccurs="0"/>
    			<xs:element name="width" type="xs:integer"/>
    			<xs:element name="height" type="xs:integer"/>
    			<xs:choice>
    				<xs:element name="param" minOccurs="0" maxOccurs="4">
    					<xs:complexType>
    						<xs:all>
    							<xs:element name="name">
    								<xs:simpleType>
    									<xs:restriction base="xs:NMTOKEN">
    										<xs:enumeration value="movie"/>
    										<xs:enumeration value="quality"/>
    										<xs:enumeration value="loop"/>
    										<xs:enumeration value="wmode"/>
    									</xs:restriction>
    								</xs:simpleType>
    							</xs:element>
    							<xs:element name="value" type="xs:string"/>
    						</xs:all>
    					</xs:complexType>
    				</xs:element>
    			</xs:choice>
    		</xs:choice>
    		<xs:attribute name="type" type="xs:string"/>
    	</xs:complexType>

    Et ça fonctionne, est-ce la bonne méthode ou est-ce que je risque des soucis ?

  6. #6
    Membre actif
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Avril 2007
    Messages
    199
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2007
    Messages : 199
    Points : 297
    Points
    297
    Par défaut
    a priori un <xs:all>

    Citation Envoyé par djibril Voir le message
    Merci pour vos réponses. Je ne savais pas pour xs:sequence. Si je ne veut pas tenir compte de l'ordre, que dois-je mettre à la place de <xs:sequence> ?
    "Chuck Norris a déjà compté jusqu'à l'infini. Deux fois."

  7. #7
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 551
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 551
    Points : 21 607
    Points
    21 607
    Par défaut
    Ben, essaie, mais si ça fait ce que tu veux, c'est que j'ai vraiment rien compris à ton besoin .

    Ce qu'il y a, c'est qu'il y a des limitations à ce que XSD peut faire.

    Dans le cas présent, c'est bien <xs:sequence> qui semble le mieux, mais, comme son nom l'indique, les éléments ne seront pas dans n'importe quel ordre, seulement celui indiqué.
    Il n'y a pas grand-chose à y faire. Sauf à énumérer toutes les combinaisons possibles avec des xs:choice à gogo.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  8. #8
    Responsable Perl et Outils

    Avatar de djibril
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    19 820
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 820
    Points : 499 184
    Points
    499 184
    Par défaut
    Comme je l'ai dit plus haut, ça fonctionne avec xs:choice, l'ordre n'est plus un souci et mon xml est valide . Donc ça résout mon problème.

    Je voulais juste savoir pour ma culture générale si la méthode avec xs:choice est une bonne façon de faire ou non ou s'il existe une autre méthode.


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

Discussions similaires

  1. erreur de validation par un fichier xsd
    Par TaymouWan dans le forum C#
    Réponses: 3
    Dernier message: 25/03/2009, 12h19
  2. [XSD] Problème de XML validation par fichier XSD:org.xml.sax.SAXNotRecognizedException
    Par bareillesj dans le forum Format d'échange (XML, JSON...)
    Réponses: 2
    Dernier message: 23/04/2007, 14h39
  3. Interpretation d'erreurs de validation par Schema XML
    Par kamarov dans le forum Format d'échange (XML, JSON...)
    Réponses: 2
    Dernier message: 26/09/2006, 17h07
  4. [XSD] Lister les erreurs de Validation
    Par Josy dans le forum Valider
    Réponses: 1
    Dernier message: 14/08/2006, 11h09

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