 |
Forum |
|
|
Réagissez
dans les forums
de JDN Développeurs
|
XML est un langage de balises, tout comme HTML, donc on peut facilement comprendre que, malgré le côté "conteneur universel de données", il n'est pas possible d'inclure directement du HTML dans un fichier XML sans provoquer des erreurs à un moment ou à un autre.
La logique voudrait que l'on puisse placer du HTML dans XML via la section CDATA de XML. Le contenu de cette dernière n'est pas pris en compte par les parseurs XML, donc il est fréquent d'y glisser tout ce qui est susceptible de briser la délicate harmonie du balisage XML.
<?xml version="1.0"?>
<page>
<![CDATA[
<title>Page HTML</title>
<ul>
<li>Hop</li>
<li>Pouet</li>
</ul>
]]>
</page>
Un problème peut cependant se poser si le fichier doit passer par un parseur XML pour récupérer le HTML, par exemple avec XSLT. Le parseur ignorant la section CDATA, on ne peut l'utiliser que pour citer du code HTML (l'afficher tel quel), et non pour le voir traité correctement.
Une solution possible semble être d'utiliser l'espace de nom correct, afin de ne pas troubler XML :
<?xml version="1.0"?>
<page xmlns:html="http://www.w3.org/TR/REC-html40">
<html:title>Page HTML</title>
<html:ul>
<html:li>Hop</html:li>
<html:li>Pouet</html:li>
</html:ul>
</page>
Le danger, avec cette méthode, est de voir arriver dans le fichier XML du code HTML mal formé. La bonne conformation aux spécifications étant une obligation en XML, du HTML mal formé briserait totalement le fichier XML, rendant le tout inutile. Il faut donc insister pour que le HTML respecte le plus possible la spécification précisée... ou s'en tenir au texte seul.
|