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>
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.
A voir également:
[XML : DTD] Problème de validation avec IE.
Xml download - Télécharger - Édition & Programmation
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
Trouvez des réponses à vos questions sur les langages, les frameworks et les astuces de codage. Échangez avec d'autres développeurs passionnés pour améliorer vos compétences en programmation et rester au fait des dernières tendances du secteur.