2017-04-06 2 views
0

J'ai écrit un fichier dtd pour régler un fichier xml, mais quand j'ai écrit quelque chose de mal selon la définition dans le fichier dtd, je n'ai trouvé aucune erreur exportée par Eclipse. J'ai passé en revue plusieurs fois sur les deux dossiers mais n'ai trouvé aucune erreur par moi-même. Voici les 2 fichiers simples. Quelqu'un pourrait-il aider à comprendre ce qui me manque ou la raison pour laquelle aucune erreur n'a été rapportée? Merci d'avance.Le fichier xml ne signale pas d'erreur, étant donné un fichier dtd externe de référence

Voici le fichier dtd,

<?xml version="1.0" encoding="UTF-8"?> 
<--!no classNo or one classNo at most, at least one teacher--> 
<!DOCTYPE school [ 
    <!ELEMENT school (class)> 
    <!ELEMENT class (classNo?,teacher+)> 
    <!ElEMENT classNo (#PCDATA)> 
    <!ElEMENT teacher (#PCDATA)> 
]> 

Voici le fichier xml,

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE school SYSTEM "Teacher.dtd"> 

<school> 
    <class> 
     <classNo>Class 3</classNo> 
     <teacher>Mary</teacher> 
    </class> 
</school> 

Si j'ajoute un autre élément classNo, aucune erreur signalée. Le fichier xml et le fichier dtd sont dans le même package dans Eclipse.

Répondre

0

La DTD est mal formée. La déclaration DOCTYPE ne doit figurer que dans le document XML et non dans la DTD. Il y a aussi quelques fautes de frappe (minuscules "l" au lieu de majuscules "L"; --! dans le commentaire devrait être !--).

Le document XML valide contre cette DTD:

<!ELEMENT school (class)> 
<!ELEMENT class (classNo?,teacher+)> 
<!ELEMENT classNo (#PCDATA)> 
<!ELEMENT teacher (#PCDATA)> 

Vous devez également vous assurer que la validation est activée dans Eclipse bien sûr (en supposant que les éditeurs XML et outils est installé).

+0

Oui, c'est vrai. Vous m'avez aidé à découvrir 2 erreurs que j'avais dans le fichier DTD. L'une est la déclaration DOCTYPE, et l'autre est le format de commentaire. Tout devient normal après modifié comme le vôtre. Merci beaucoup! –

+0

Vous êtes les bienvenus! – mzjn