XML DTD qui ne marche pas

heaven451 -  
sandul Messages postés 4013 Statut Membre -
Bonjour,
Je débute en XML. J'ai écrit un fichier avec une DTD interne comme si dessous :

-----------------------------------------------------------------------------------------------------------------------
<?xml version="1.0" encoding="ISO-8859-1"?>

<!DOCTYPE annuaire[
<!ELEMENT annuaire (personne*)>
<!ELEMENT personne (nom,prenom,email+)>
<!ATTLIST personne type (étudiant|professeur|chanteur|musicien) "étudiant">
<!ELEMENT nom (#PCDATA)>
<!ELEMENT prenom (#PCDATA)>
<!ELEMENT email (#PCDATA)> ]>

<annuaire>
<personne type="étudiant">
<nom> Audrey </nom>
<prenom>Leleu</prenom>
<email>a.leleu@test.com</email>
</personne>
<personne type="chanteur">
<nom>Nakamura</nom>
<prénom>Hiro</prénom>
<email>hiro@singer.com</email>
</personne>
<personne type="musicien">
<nom>SansMail</nom>
<prenom>Kevin</prenom>
</personne>
</annuaire>
----------------------------------------------------------------------------------------------------------------------

si j'ai bien compris, ça ne devrait pas passer à l'affichage, car Kevin n'a pas de mail, et donc le fichier XML n'est pas valide.
Mais ça marche quand même ! Une erreur m'échappe ou je n'ai pas compris ?
A voir également:

2 réponses

sandul Messages postés 4013 Statut Membre 723
 
Salut,

si j'ai bien compris, ça ne devrait pas passer à l'affichage, car Kevin n'a pas de mail, et donc le fichier XML n'est pas valide.

Tout dépend de ton "affichage" et de ton parser (avec validation) XML utilisé. Avec un parser rigoureux, ça ne devrait pas passer. Et puis, si tu l'affiches avec Internet Explorer, ce navigateur est loin d'être une référence en matière de rigourosité XML.

Il y a des parsers XML sérieux dans la nature. Je travaille avec un outil appelé "XML Spy". Il est payant, je ne connais pas de bonnes équivalences dans le monde du libre.

++
0
sandul Messages postés 4013 Statut Membre 723
 
[Edit] Tu as également une balise "prénom". Change-la en "prenom" (sans accent). Ton parser aurait dû te dire au moins cela, non ?
0