Forum de discussion
Forum « Programmation XML et XSL » (archives)
définition d'entité et déclaration
Envoyé: 9 avril 2004, 6h48 par girl_bond
je voudrais savoir comment déclarer une entité dans une DTD et la définir parce que ce que j'ai fait cela ne fonctionne pas, voici les explications et les DTD et doc XML initiaux et modifier :
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 m'a été donné et le voici :
code:
--------------------------------------------------------------------------------
<?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 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 dans mon doc XML j'ai juste modifié ca :
<?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
Réponses
|