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:
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
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 > ]>
j'utilise xmllint pour valider la DTD avec le fichier xml et j'obtiens le r�sultat suivant:
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>
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
Partager