Salut,

Je n'ai pas trouvé de doc sur DTD, vous avez des bons liens ?

Sinon, j'ai écrit ma p'tite DTD par autodidact :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
<!-- Définition du type des fonctions -->
 
<!ELEMENT fonction (nom, description)>
 
<!ELEMENT nom (#PCDATA) >
<!ELEMENT defintion (#PCDATA) >
Plus simple ça va être difficile !

Je l'applique sur un fichier XML :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
<?xml version="1.0" encoding="iso-8859-1" ?>
<!DOCTYPE fonction SYSTEM "dtd/fonction_hcalc.dtd">
 
<fonction>
 
  <nom>Abs</nom>
 
  <definition>Calcule la valeur absolue d'une expression.</definition>
 
  <zzz>Gaston</zzz>
 
</fonction>
Problème : Gaston est affiché sans problème !!!

Est-ce parce que j'ai une balise XSLT :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
<xsl:template match="@*|node()">
  <xsl:copy>
    <xsl:apply-templates select="@*|node()" />
  </xsl:copy>
</xsl:template>
Je traite mon fichier XML avec PHP et Sablotron avec la commande (en très simplifié) :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
 
  $racine = "";
  $xh = xslt_create();
  $nom_fich = 'file://' . getcwd () . '/' . $racine;
  xslt_set_base ($xh, $nom_fich);
  $result = xslt_process($xh, "test.xml", "test.xslt");
  echo $result;
Peut-être est-ce un paramètre de Sablotron ?

@+ Haypo