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

Mode arborescent

Message précédent Message précédent   Message suivant Message suivant
  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

+ 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