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 :

valider une DTD


Sujet :

Valider XML

  1. #1
    Membre confirmé
    Inscrit en
    Janvier 2006
    Messages
    139
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 139
    Par défaut valider une DTD
    bonjour,

    dans le cadre d'un TP noté, je dois faire créer une DTD à partir de fichiers gedcom exemples que vous pouvez voir sur ce site vers exercice 2:
    http://www.liafa.jussieu.fr/~carton/...t/XML/Tds/Td1/

    j'ai créé une DTD et parser un xml avec la DTD

    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
    53
    54
    55
    56
    57
    58
     
    <?xml version="1.0" encoding="ISO-8859-1" ?>
    <!DOCTYPE gedcom [
     
    	<!ELEMENT gedcom (head? | subm? | (indi | fam )* | trlr)* >
     
    	<!ELEMENT head (sour? | dest? | date? | file? | char? | gedc?)* >
    	<!ELEMENT trlr EMPTY >
    	<!ELEMENT indi (name | titl? | sex? | birt? | chr? | deat? | buri? | refn? | (fams | famc)* | obje?)* >
    	<!ELEMENT fam (husb? | wife?| (chil*)? | div? | (marr*)? | obje?)* >
    	<!ELEMENT subm (name | addr | phon | comm)* >
     
    	<!ATTLIST subm id ID #REQUIRED >
    	<!ATTLIST indi id ID #REQUIRED >
    	<!ATTLIST fam id ID #REQUIRED >
     
    	<!ELEMENT date (#PCDATA) >
    	<!ELEMENT plac (#PCDATA) >
     
    	<!ELEMENT sour (#PCDATA | vers | name | corp)* >
    	<!ELEMENT dest (#PCDATA) >
    	<!ELEMENT file (#PCDATA) >
    	<!ELEMENT char (#PCDATA) >
    	<!ELEMENT gedc (vers) >
    	<!ELEMENT vers (#PCDATA) >
    	<!ELEMENT corp (#PCDATA | addr | phon)* >
     
    	<!ELEMENT addr (#PCDATA | cont)* >
    	<!ELEMENT phon (#PCDATA) >
    	<!ELEMENT comm (#PCDATA | cont)* >
    	<!ELEMENT cont (#PCDATA) >
     
    	<!ELEMENT name (#PCDATA) >
    	<!ELEMENT titl (#PCDATA) >
    	<!ELEMENT sex (#PCDATA) >
    	<!ELEMENT birt (date? | plac?)* >
    	<!ELEMENT chr (date? | plac?)* >
    	<!ELEMENT deat (date? | plac?)* >
    	<!ELEMENT buri (date? | plac?)* >
    	<!ELEMENT refn (#PCDATA) >
    	<!ELEMENT famc EMPTY>
    	<!ELEMENT fams EMPTY>
     
    	<!ELEMENT husb EMPTY >
    	<!ELEMENT wife EMPTY >
    	<!ELEMENT chil EMPTY >
    	<!ELEMENT div (#PCDATA) >
    	<!ELEMENT marr (date| plac?)* >
    	<!ELEMENT obje EMPTY >
     
    	<!ATTLIST famc ref IDREF #REQUIRED >
    	<!ATTLIST fams ref IDREF #REQUIRED >
    	<!ATTLIST husb ref IDREF #REQUIRED >
    	<!ATTLIST wife ref IDREF #REQUIRED >
    	<!ATTLIST chil ref IDREF #REQUIRED >
    	<!ATTLIST obje ref CDATA #REQUIRED >
     
    ]>
    begood.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
    48
     
    <?xml version="1.0" encoding="ISO-8859-1" ?>
    <gedcom>
    <head>
    </head>
    <indi
     id="i1">
    	<name>
    		John /Begood/ 
    	</name>
    	<sex>
    		M 
    	</sex>
    	<fams ref="f1"	/>
    </indi>
    <indi
     id="i2">
    	<name>
    		Ada /Begood/ 
    	</name>
    	<fams ref="f1"	/>
    </indi>
    <indi
     id="i3">
    	<name>
    		Fred /Begood/ 
    	</name>
    	<famc ref="f1"	/>
    </indi>
    <indi
     id="i4">
    	<name>
    		Lea /Begood/ 
    	</name>
    	<sex>
    		F 
    	</sex>
    	<famc ref="f1"	/>
    </indi>
    <fam
     id="f1">
    	<husb ref="i1"	/>
    	<wife ref="i2"	/>
    	<chil ref="i3"	/>
    	<chil ref="i4"	/>
    </fam>
    <trlr/>
    </gedcom>
    j'utilise xmllint pour valider la DTD avec le fichier xml et j'obtiens le résultat suivant:

    lucien: ~/m2/s2/xml/Gedcom/src > xmllint --noout --dtdvalid GedcomPerso.dtd begood.xml
    GedcomPerso.dtd:2: parser error : Content error in the external subset
    <!DOCTYPE gedcom [
    ^
    GedcomPerso.dtd:2: parser error : Content error in the external subset
    <!DOCTYPE gedcom [
    ^
    Could not parse DTD GedcomPerso.dtd

    j'aurais besoin d'aide pour m'aider à corriger le problème.

    Merci
    Fichiers attachés Fichiers attachés

  2. #2
    Expert confirmé
    Avatar de GrandFather
    Inscrit en
    Mai 2004
    Messages
    4 587
    Détails du profil
    Informations personnelles :
    Âge : 55

    Informations forums :
    Inscription : Mai 2004
    Messages : 4 587
    Par défaut
    Bonjour,

    l'instruction !DOCTYPE n'est pas censée figurer dans le fichier DTD mais dans le fichier XML, justement pour lui associer la DTD qui va le valider.
    FAQ XML
    ------------
    « Le moyen le plus sûr de cacher aux autres les limites de son savoir est de ne jamais les dépasser »
    Giacomo Leopardi

  3. #3
    Membre confirmé
    Inscrit en
    Janvier 2006
    Messages
    139
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 139
    Par défaut
    Merci beaucoup pour votre réponse

  4. #4
    Invité de passage
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2014
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Décembre 2014
    Messages : 1
    Par défaut Valide DTD
    Bonjour , j'aimerais vous poser la question par rapport à ce dtd
    J'ai essasyé de suivre le dtd que vous avez mis en ligne resolu mais ça ne fonction pas toujours. En effet , j'ai le meme tp à faire sur ce fichier begood et complet

  5. #5
    Modérateur

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

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 585
    Par défaut
    Hello,

    Je n'ai rien vu qui soit mis en ligne résolu. Le DTD montré est incorrect, et on a dit pourquoi.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

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

Discussions similaires

  1. [DTD] Valider un fichier xml suivant une DTD
    Par Tail dans le forum Format d'échange (XML, JSON...)
    Réponses: 1
    Dernier message: 26/06/2006, 11h23
  2. validation d'un document XML par rapport à une DTD
    Par sebastien2222 dans le forum Valider
    Réponses: 1
    Dernier message: 03/03/2006, 15h41
  3. Réponses: 2
    Dernier message: 03/06/2005, 11h00
  4. [DOM] Erreur pour valider une DTD
    Par lenghh dans le forum Format d'échange (XML, JSON...)
    Réponses: 13
    Dernier message: 19/05/2004, 18h15
  5. [SAX] ]Validation d'un Document avec une DTD
    Par laguiff dans le forum Format d'échange (XML, JSON...)
    Réponses: 3
    Dernier message: 18/02/2004, 09h11

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