XML + prob de declaration entite

Fermé
girl_bond - 9 avril 2004 à 13:34
sglug Messages postés 22 Date d'inscription jeudi 8 avril 2004 Statut Membre Dernière intervention 22 avril 2004 - 9 avril 2004 à 20:37
bonjour,

ma declaration d'entité ne fonctionne pas, voici exactement ce que j'ai fais
mes fichiers de départ :

mon document XML contient les menus de la semaine au restaurant universitaire, sachant qu'un menu type est composé :
d'1 entrée
d'1 plat lui même composé d'une viande, de légumes
d'1 dessert

le document XML initial :
<?xml version="1.0" encoding="ISO-8859-1"?> 
<!DOCTYPE MENUS SYSTEM "menus1.dtd"> 

<MENUS> 
    <MENU jour="lundi"> 
     <ENTREE>crudités</ENTREE> 
     <PLAT> 
   <VIANDES>steak</VIANDES> 
   <LEGUMES>frites</LEGUMES> 
     </PLAT> 
     <DESSERT>yahourt</DESSERT> 
    </MENU> 

    <MENU jour="mardi"> 
     <ENTREE>paté en croute</ENTREE> 
     <PLAT> 
   <VIANDES>couscous</VIANDES> 
   <LEGUMES>macédoine</LEGUMES> 
     </PLAT> 
     <DESSERT>pomme</DESSERT> 
    </MENU> 

    <MENU jour="mercredi"> 
     <ENTREE>sardine</ENTREE> 
     <PLAT> 
   <VIANDES>lapin</VIANDES> 
   <LEGUMES>Farfale</LEGUMES> 
     </PLAT> 
     <DESSERT>orange</DESSERT> 
    </MENU> 

    <MENU jour="jeudi"> 
     <ENTREE>salade piemontaise</ENTREE> 
     <PLAT> 
   <VIANDES>dinde à la crème</VIANDES> 
   <LEGUMES>pomme de terre</LEGUMES> 
     </PLAT> 
     <DESSERT>gâteau à l'ananas</DESSERT> 
     </MENU> 

     <MENU jour="vendredi"> 
     <ENTREE>coquille saint Jacques</ENTREE> 
     <PLAT> 
   <VIANDES>poulet<VIANDES> 
   <LEGUMES>pate</LEGUMES> 
     </PLAT> 
     <DESSERT>poire</DESSERT> 
     </MENU> 
</MENUS> 

j'ai créé la DTD suivant : 


<!ELEMENT MENUS (MENU*)> 
<!ELEMENT MENU (ENTREE, PLAT,DESSERT)> 
<!ELEMENT PLAT (VIANDES, LEGUMES)> 
<!ATTLIST MENU jour (lundi|mardi|mercredi|jeudi|vendredi) "jeudi"> 
<!ELEMENT ENTREE (#PCDATA)> 
<!ELEMENT VIANDES (#PCDATA)> 
<!ELEMENT LEGUMES (#PCDATA)> 
<!ELEMENT DESSERT (#PCDATA)> 

cela fonctionne le document XML est valide 
ensuite je dois ajouter dans la DTD la définition de l'entité "ViandeVen" de valeur "Poisson" . Dans le document XML créer ou modifier l'élément menu correspondant au vendredi afin que la valeur de l'élément VIANDE référence l'entité "ViandeVen". Donc, je veux  que la valeur poisson s'affiche dans l'élément VIANDE seulement pour le vendredi. j'ai transformé mes documents XML et DTD comme cela : 

<!ELEMENT MENUS (MENU*)> 
<!ELEMENT MENU (ENTREE, PLAT,DESSERT)> 
<!ELEMENT PLAT (VIANDES, LEGUMES)> 
<!ATTLIST MENU jour (lundi|mardi|mercredi|jeudi|vendredi) "jeudi"> 
<!ELEMENT ENTREE (#PCDATA)> 
<!ELEMENT VIANDES (#PCDATA)> 
<!ELEMENT LEGUMES (#PCDATA)> 
<!ELEMENT DESSERT (#PCDATA)> 
<!ENTITY VIANDES "Poisson"> 

et mon doc XML , j'ai juste modifié ceci : 

<?xml version="1.0" encoding="ISO-8859-1"?> 
<!DOCTYPE MENUS SYSTEM "menus1.dtd"> 

...
     <MENU jour="vendredi"> 
     <ENTREE>coquille saint Jacques</ENTREE> 
     <PLAT> 
   <VIANDES>&ViandeVen;</VIANDES> 
   <LEGUMES>macedoine</LEGUMES> 
     </PLAT> 
     <DESSERT>poire</DESSERT> 
     </MENU> 
</MENUS>[/  code] 

mais il m'indique l'erreur suivante : Référence à l'entité non définie 'ViandeVen'. Erreur de traitement de la ressource file:///C:/Program Files/Wanadoo/Utilisateur1/Bellahem/menus1.xml. Ligne 44, Position 12 

 <VIANDES>&ViandeVen;</VIANDES> 
-----------^ 

si quelqu'un pouvais vérifier mes différents documents, merci
A voir également:

1 réponse

sglug Messages postés 22 Date d'inscription jeudi 8 avril 2004 Statut Membre Dernière intervention 22 avril 2004 3
9 avril 2004 à 20:37
perso j utilise xml / xsl pour creer des pages html dynamiquement
sans jamais avoir utilise de dtd du coup je comprend pas trop pourquoi on les utilises ???
ca enleve toutes la souplesse d'utilisation du xml.

mais toi tu va en faire quoi apres de ton flux xml?
0