Bonjour,
J'ai un petit soucis avec un fichier xml et une dtd
j'ai l'impression que la dtd n'est pas prise en compte par la dtd externe

voici mon code source

xml


<?xml version="1.0" encoding="iso-8859-1" standalone="no" ?>
<!DOCTYPE stock SYSTEM "test.dtd">
<stock>
  <produit>
    <nom> Livre </nom>
    <prix monnaie="Francs"> 50 </prix>
    <comment> Un article très recherché </comment>
  </produit>
  <produit>
    <nom> CD </nom><prix monnaie="Euros"> 23 </prix>
  </produit>
</stock>


DTD

<!ELEMENT stock    (produit+)>
<!ELEMENT produit  (nom,prix,comment?)>
<!ELEMENT nom      (#PCDATA)>
<!ELEMENT prix     (#PCDATA)>
<!ATTLIST prix      monnaie  (Euros|Francs) #IMPLIED  >
<!ELEMENT comment (#PCDATA)>


quand j'enleve par exemple dans le premier produit , la balise produit , le xml est afficher correctement
merci de m'éclaircir
Je ne vois aucun problème... avec les fichiers que tu as indiqués, le XML s'affiche correctement...
oui =)
le fichier s'affiche bien correctement mais si par exemple
j'écrivais


<?xml version="1.0" encoding="iso-8859-1" standalone="no" ?>

<!DOCTYPE stock SYSTEM "test.dtd">

<stock>

  <produit>

  </produit>

  <produit>

    <nom> CD </nom><prix monnaie="Euros"> 23 </prix>

  </produit>

</stock>


cela ne devrait paas marcher ou me dire une error comme quoi je ne respecte pas la dtd
et c'est ceci mon probleme c'est que j'ai l'impression que la dtd n'est pas prise en compte
Les DTD ne servent pas à cela. Elles ne servent qu'à indiquer à un validateur quelles sont les règles qu'il doit prendre en compte lors de sa validation.

Le navigateur, lui, ça ne l'intéresse pas du tout. Qu'un document respecte les règles ou pas. Tant qu'il sait comment l'interpréter (via XML namespace par exemple), il interprète à sa manière.

si tu veux avoir ce genre de chose, tu dois mettre en place un script php (ou asp ou jsp) ou cgi, qui valide pour toi, à chaque fois que tu demandes la page.

ps: il existe des validateurs xml, qui fonctionnent avec des dtd personnalisées. une petite recherche google