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 :

[XSD] attribut id: problème


Sujet :

Valider XML

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    109
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2004
    Messages : 109
    Points : 108
    Points
    108
    Par défaut [XSD] attribut id: problème
    Bonjour,
    J'ai le XML suivant ;
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    <?xml version="1.0" encoding="utf-8"?>
    <listePersonnes xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    	xsi:noNamespaceSchemaLocation="person.xsd">
    	<personne id="1">
    		<nom>Personne 1</nom>
    	</personne>
     
    </listePersonnes>
    Mon XSD est construit de la façon suivante:
    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
     
    <?xml version="1.0" encoding="UTF-8"?>
    <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
    	elementFormDefault="qualified" attributeFormDefault="unqualified">
    <xs:element name="listePersonnes">
    	<xs:complexType>
    		<xs:sequence minOccurs="0" maxOccurs="unbounded">
    			<xs:element name="personne">
    				<xs:complexType>
    					<xs:simpleContent>
    						<xs:attribute id="..." type="xs:string" />
    					</xs:simpleContent>
    				</xs:complexType>
    			</xs:element>
    			<xs:complexType>
    				<xs:sequence>
    					<xs:element name="nom" type="xs:string" />
    				</xs:sequence>
    			</xs:complexType>
    		</xs:sequence>
    	</xs:complexType>
    </xs:element>
    </xs:schema>
    Le xsd n'est malheureusement pas validé, et je ne vois pas ou est l'erreur. Merci pour l'aide.

  2. #2
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    "id" est un nom d'attribut réservé en xml. Il existe dans tout namespace et doit être unique à travers le document.

  3. #3
    Rédacteur

    Avatar de Erwy
    Homme Profil pro
    Développeur Web
    Inscrit en
    Novembre 2003
    Messages
    4 967
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2003
    Messages : 4 967
    Points : 10 927
    Points
    10 927
    Par défaut
    Navré mais c'est complétement faux, il est conseillé d'agir ainsi mais cet attribut n'est absolument pas "réservé"

    le xml schema est tout simplement faux à 100%

    personne n'utilise pas un simplecontent, on ne met pas de complextype dans une sequence, c'est name et non id qui doit être utilisé dans l'attribut etc...
    une idée du code à utiliser:

    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
    <?xml version="1.0" encoding="UTF-8"?>
    <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified">
    	<xs:element name="listePersonnes">
    		<xs:complexType>
    			<xs:sequence>
    				<xs:element name="personne" maxOccurs="unbounded">
    					<xs:complexType>
    						<xs:sequence>
    							<xs:element name="nom" type="xs:string"/>
    						</xs:sequence>
    						<xs:attribute name="id" type="xs:string"/>
    					</xs:complexType>
    				</xs:element>
    			</xs:sequence>
    		</xs:complexType>
    	</xs:element>
    </xs:schema>

  4. #4
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    erf, effectivement, c'est xml:id Désolé pour la bourde

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    109
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2004
    Messages : 109
    Points : 108
    Points
    108
    Par défaut
    Merci pour votre aide. Mon problème est ainsi résolu.
    J'ai réécrit mon xsd en utilisant l'éditeur intégré à eclipse, ce qui m 'a facilité la tâche. Effectivement, le xsd était faux à 100 % (copie d'un mauvais exemple!)

  6. #6
    Rédacteur

    Avatar de Erwy
    Homme Profil pro
    Développeur Web
    Inscrit en
    Novembre 2003
    Messages
    4 967
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2003
    Messages : 4 967
    Points : 10 927
    Points
    10 927
    Par défaut
    Citation Envoyé par tchize_ Voir le message
    erf, effectivement, c'est xml:id Désolé pour la bourde
    Pas grave

    Pour l'info xml:id est un attribut du namespace XML qui est le namespace par defaut (mais invisible) de tous les XML.
    Pour qu'un attribut appartiennent à un namespace il doit être préfixé (xml: ici).
    Tu as du confondre avec le fait que ce préfixe est réservé

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

Discussions similaires

  1. Réponses: 10
    Dernier message: 22/09/2008, 10h23
  2. [JAXB] XSD to Java - problème avec "xs:any"
    Par Mat1664 dans le forum Format d'échange (XML, JSON...)
    Réponses: 3
    Dernier message: 31/01/2008, 16h19
  3. [XSD] attribut énuméré?
    Par olivier57b dans le forum Valider
    Réponses: 2
    Dernier message: 26/12/2006, 11h46
  4. Réponses: 2
    Dernier message: 14/12/2006, 18h08
  5. [XSD] Attribut ou élément
    Par be_tnt dans le forum Valider
    Réponses: 5
    Dernier message: 08/06/2006, 10h06

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