Rechercher : dans
Par :

[XML : DTD] Problème de validation avec IE.

Dernière réponse le 13 avr 2007 à 15:20:24 GWE, le 10 oct 2006 à 11:32:06 
 Signaler ce message aux modérateurs

Voici un document XML qui me semble valide.

<?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.


<?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?


Merci d'avance pour vos réponses.

Meilleures réponses pour « [XML : DTD] Problème de validation avec IE. » dans :
Présentation des DTD Voir Le rôle de la DTD XML permet d'utiliser un fichier afin de vérifier qu'un document XML est conforme à une syntaxe donnée. La norme XML définit ainsi une définition de document type appelée DTD (Document Type Definition), c'est-à-dire une grammaire...
Désinstaller IE 8 VoirDésinstallation d'IE 8 Vous avez installé IE8 pour le tester et vous souhaitez désormais revenir à une version précédente ? Voici la procédure à suivre pour les OS suivants : Windows Vista Windows XP Windows Vista Ouvrir le...
Télécharger DriveImage XML VoirDriveImage XML est un programme permettant de faire des images du système (partitions et lecteurs logiques) à des fins de sauvegarde, à la manière de Norton Ghost. Ce programme permet : De créer des images des lecteurs logiques et des...
Déclaration d'entités dans les DTD VoirDéclarer des entités XML permet de créer des entités, c'est-à-dire de déclarer un groupe d'éléments sous un nom afin de ne pas avoir à réécrire ces derniers plusieurs fois dans la DTD s'ils se répètent, dans le même esprit que les macros dans les...
Introduction à XML VoirPrésentation de XML XML (entendez eXtensible Markup Language et traduisez Langage à balises étendu, ou Langage à balises extensible) est en quelque sorte un langage HTML amélioré permettant de définir de nouvelles balises. Il s'agit effectivement...
PHP - Parser du XML VoirIntroduction à XML PHP permet l'analyse syntaxique (parsage ou parsing en anglais) d'un document XML. Le langage XML (eXtensible Markup Language, traduisez Langage à balises extensibles) est un métalangage, c'est-à-dire un langage permettant de...

1

 pasc6, le 13 avr 2007 à 15:20:24

C'est du au fait que IE contient un parser de non-validation. Il ne s'attache à ne vérifier QUE si le XML est bien formé. A la différence des parsers de validation tel MSXML

Répondre à pasc6
Collection CommentÇaMarche.net