Voici un document XML qui me semble valide.
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 <?xml version="1.0" encoding="windows-1250"?> <!DOCTYPE videotheque [ <!ELEMENT videotheque (film+)> <!ELEMENT film (titre, annee, acteur+, duree?)> <!ATTLIST film num ID #REQUIRED> <!ATTLIST film genre (comédie|fantastique|horreur|thriller) "comédie"> <!ELEMENT titre (#PCDATA)> <!ELEMENT annee (#PCDATA)> <!ELEMENT acteur (#PCDATA)> <!ELEMENT duree (#PCDATA)> <!ATTLIST duree type CDATA #FIXED "min"> ]> <videotheque> <film num="f01" genre="comédie"> <titre>La folie des grandeurs</titre> <annee>1965</annee> <acteur>Louis Defunes</acteur> <acteur>Truc</acteur> <acteur>Chose</acteur> <duree type="min">80</duree> </film> <film num="f02" genre="fantastique"> <titre>Armageddon</titre> <annee>1998</annee> <acteur>Bruce Willis</acteur> <duree type="min">100</duree> </film> </videotheque>
Effectivement, quand je l'ouvre avec Internet Explorer, ça ne pose aucun problème.
Cependant, j'ai l'impression que ma DTD ne sert à rien. Si, par exemple, je modifie les valeurs des balises de l'élément <film>, le parseur de Internet Explorer ne m'indique pas d'erreur. Même remarque pour les attributs de type REQUIRED. Si je les oublie dans mon document XML, Internet Explorer ne m'indique aucune erreur.
Dans l'exemple suivant, j'ai rajouté un 3eme film qui ne respecte pas la DTD, mais Internet Explorer ne m'indique pas que le document n'est pas valide.
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 <?xml version="1.0" encoding="windows-1250"?> <!DOCTYPE videotheque [ <!ELEMENT videotheque (film+)> <!ELEMENT film (titre, annee, acteur+, duree?)> <!ATTLIST film num ID #REQUIRED> <!ATTLIST film genre (comédie|fantastique|horreur|thriller) "comédie"> <!ELEMENT titre (#PCDATA)> <!ELEMENT annee (#PCDATA)> <!ELEMENT acteur (#PCDATA)> <!ELEMENT duree (#PCDATA)> <!ATTLIST duree type CDATA #FIXED "min"> ]> <videotheque> <film genre="fantastique"> <titreeeeee>ceci est un titre bidon</titreeeeee> </film> <film num="f01" genre="comédie"> <titre>La folie des grandeurs</titre> <annee>1965</annee> <acteur>Louis Defunes</acteur> <acteur>Truc</acteur> <acteur>Chose</acteur> <duree type="min">80</duree> </film> <film num="f02" genre="fantastique"> <titre>Armageddon</titre> <annee>1998</annee> <acteur>Bruce Willis</acteur> <duree type="min">100</duree> </film> </videotheque>
Mes questions :
1. Est-ce normal qu'Internet Explorer et Mozilla ne détectent pas ces erreurs?
2. Ai-je écrit correctement ma DTD ?
3. Serait-ce les parseurs de Internet Explorer et de Mozilla qui ne sont pas fiables?
Partager