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

XML/XSL et SOAP Discussion :

Erreur nombre non accepté comme ID DTD


Sujet :

XML/XSL et SOAP

  1. #1
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2011
    Messages
    181
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2011
    Messages : 181
    Points : 80
    Points
    80
    Par défaut Erreur nombre non accepté comme ID DTD
    Bonjour
    Je dois réaliser un DTD pour un fichier XML. Cependant, j'ai deux erreurs:
    -La valeur de l'attribut "1" de type ID doit être un NCName lorsque les espaces de noms sont activés.
    -Des guillemets ouvrants sont attendus pour l'attribut "Num" associé avec un type d'élément "Etudiant".

    D'après mes recherches concernant la première erreur, j'ai trouvé que l'identifiant ne doit pas comporter ou commencer par un chiffre.Mais, selon ce qui est demandé ca doit être comme sa.

    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
    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
    <?xml version="1.0" encoding="UTF-8" ?>
    <!DOCTYPE Enseignement SYSTEM "Cours.dtd" >
    <Enseignement>
        <UF Ref="1">
            <Intitule> Web </Intitule>
            <Module>
                <Titre> PHP </Titre>
                <Durée> 16h </Durée>
                <Enseignant> enseignant1 </Enseignant>
                <Etudiants>
                    <Etudiant Num=ʺE784790ʺ>
                        <Bac> Technique </Bac>
                        <Note> 16 </Note>
                    </Etudiant>
                    <Etudiant Num=ʺE784790ʺ>
                        <Bac> Technique </Bac>
                        <Note> 15 </Note>
                    </Etudiant>
                </Etudiants>
            </Module>
            <Module>
                <Titre> XML </Titre>
                <Durée> 16 </Durée>
                <Enseignant> enseignant2 </Enseignant>
                <Etudiants>
                    <Etudiant Num=ʺE235680ʺ>
                        <Bac> Math </Bac>
                        <Note> 12 </Note>
                    </Etudiant>
                </Etudiants>
            </Module>
        </UF>
        <UF Ref=ʺ2ʺ>
            <Intitule> GL </Intitule>
            <Module>
                <Titre> UML </Titre>
                <Durée> 20h </Durée>
                <Enseignant> enseignant3 </Enseignant>
                <Etudiants>
                    <Etudiant Num=ʺE453476ʺ>
                        <Bac> Math </Bac>
                        <Note> 18 </Note>
                    </Etudiant>
                </Etudiants>
            </Module>
        </UF>
    </Enseignement >
    Fichier 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
    <?xml version="1.0" encoding="UTF-8"?>
    <!ELEMENT Enseignement (UF+)>
    <!ELEMENT UF (Intitule,(Module+)) >
    <!ELEMENT Intitule (#PCDATA)>
    <!ELEMENT Module (Titre,Durée,Enseignant,Etudiants)>
    <!ELEMENT Titre (#PCDATA)>
    <!ELEMENT Durée (#PCDATA)>
    <!ELEMENT  Enseignant (#PCDATA)>
    <!ELEMENT Etudiants (Etudiant+) >
    <!ELEMENT Etudiant (Bac,Note)>
    <!ELEMENT  Bac (#PCDATA)>
    <!ELEMENT  Note (#PCDATA)>
    <!ATTLIST UF Ref ID #REQUIRED>
    <!ATTLIST  Etudiant Num ID #REQUIRED>
    Merci d'avance

  2. #2
    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
    Hello,

    Citation Envoyé par dibax10 Voir le message
    D'après mes recherches concernant la première erreur, j'ai trouvé que l'identifiant ne doit pas comporter ou commencer par un chiffre.Mais, selon ce qui est demandé ca doit être comme sa.
    Eh bien je confirme, en XML les identifiants ne doivent pas commencer par un chiffre (ils peuvent en contenir après une lettre par exemple, par contre).
    Donc si l'attribut Ref doit être constitué de chiffres uniquement (ou au moins commencer par un chiffre), alors il ne peut pas être de type ID.


    Citation Envoyé par dibax10 Voir le message
    Des guillemets ouvrants sont attendus pour l'attribut "Num" associé avec un type d'élément "Etudiant"
    D'après le code donné, tu as probablement tapé ces guillemets dans Word, qui les remplace par des trucs raffinés d'imprimerie.

    Les attributs doivent être encadrés avec soit " soit ' . Pas des trucs qui ressemblent. Exactement ceux-là.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2011
    Messages
    181
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2011
    Messages : 181
    Points : 80
    Points
    80
    Par défaut
    Citation Envoyé par thelvin Voir le message
    Eh bien je confirme, en XML les identifiants ne doivent pas commencer par un chiffre (ils peuvent en contenir après une lettre par exemple, par contre).
    Donc si l'attribut Ref doit être constitué de chiffres uniquement (ou au moins commencer par un chiffre), alors il ne peut pas être de type ID.
    Dans ce cas la il a aucun moyen a part donner le type CDATA et pourquoi il affiche doit être un NCName dans l'erreur ?

    Citation Envoyé par thelvin Voir le message
    D'après le code donné, tu as probablement tapé ces guillemets dans Word, qui les remplace par des trucs raffinés d'imprimerie.
    Je confirme le fichier XML étai copier à partir de Word. Merci c'est résolu pour ce problème

  4. #4
    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
    Citation Envoyé par dibax10 Voir le message
    Dans ce cas la il a aucun moyen a part donner le type CDATA
    NMTOKEN est également possible, si tu préfères.

    Citation Envoyé par dibax10 Voir le message
    et pourquoi il affiche doit être un NCName dans l'erreur ?
    C'est du patois de validation XSD. NCName est un type de données qui est comme un Name (le format que doivent respecter les ids) mais sans accepter le : parce que c'est un caractère spécial qui a une importance en validation XSD.

    En réalité un ID peut tout à fait être un Name plutôt qu'un NCName. Ça reste une assez mauvaise idée d'utiliser :

    De nos jours la validation DTD est toujours gérée, mais elle n'est plus très populaire. Résultat les outils XML ont tendance à s'aligner sur XSD à la place, et ça se remarque dans certains messages.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  5. #5
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2011
    Messages
    181
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2011
    Messages : 181
    Points : 80
    Points
    80
    Par défaut
    Merci pour les explications.
    Justement le même travail je dois le faire en XSD aussi bon j'ai réussi.Cependant, il a une contrainte qui demande de mettre le type numType pour attribut num au niveau de la balise étudiant.J'ai fais des recherches j'ai trouvé qu'un attribut en XSD ne peut prendre que les types simples ou primitif. Peu tu me confirmer cette information?

    Merci

  6. #6
    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
    Euh, je confirme oui, mais en même temps les types primitifs sont des types simples.

    Du coup ça veut dire que les attributs ne peuvent prendre que des types simples. Ce qui est un peu normal car les types pas simples ce sont les types complexes, ceux qui peuvent contenir des attributs et des éléments. Un attribut ne risque pas de pouvoir faire ça.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  7. #7
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2011
    Messages
    181
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2011
    Messages : 181
    Points : 80
    Points
    80
    Par défaut
    Merci pour ton aide

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

Discussions similaires

  1. [Toutes versions] Deuxième argument non accepté dans ma sub "Erreur Attendu :="
    Par Gorzyne dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 20/01/2019, 17h51
  2. Erreur 'Nombre non valide'
    Par Touty11 dans le forum SQL
    Réponses: 4
    Dernier message: 25/03/2012, 18h07
  3. Erreur Nombre de paramètre non valide
    Par gsxr2000 dans le forum C++
    Réponses: 0
    Dernier message: 09/03/2010, 09h11
  4. Réponses: 7
    Dernier message: 07/03/2006, 09h34
  5. [CR8][Delphi6] erreur imprimante non supportée
    Par Sebastien L. dans le forum SDK
    Réponses: 3
    Dernier message: 12/09/2002, 15h42

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