MSXML4 - <!DOCTYPE> Problème avec <!ENTITY> exte
Bonjour j'ai un problème avec MSXML4 qui dirait-on ne prend pas en compte les <!DOCTYPE>. Sur ma machine j'ai MSXML3 et MSXML4 d'installées.
voilà le détail.
j'ai le fichier XML suivant
Accueil.xml
Code:
1 2 3 4 5 6 7 8 9 10 11
|
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE ACCUEIL [
<!ENTITY xml "extended markup language">
]>
<ACCUEIL>
<IMAGE>images/logoCA.jpeg</IMAGE>
<TEXTE>On utilise du &xml; </TEXTE>
</ACCUEIL> |
Que j'aimerais faire appliquer au fichier XSL suivant:
Accueil.xsl
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
|
<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html"/>
<xsl:template match="ACCUEIL">
<p>
<img src="{IMAGE}" align="left"/>
<xsl:value-of select="TEXTE"/>
</p>
</xsl:template>
</xsl:stylesheet> |
Je sais que c'est pas conseillé d'utiliser le parseur sur le client mais là j'en ai besoin.
Donc j'utilise un fichier HTML et JScript pour XMLDOM:
accueil.htm
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
|
<html>
<head>
<title>ACCUEIL</title>
<link rel="stylesheet" type="text/css" href="css/style.css">
<script language="javascript">
function init()
{
// Document XML
var source = new ActiveXObject("Msxml2.DOMDocument.4.0");
source.async = false;
source.resolveExternals = true;
source.validateOnParse = true;
source.load("Accueil.xml");
// Document XSL
var stylesheet = new ActiveXObject("Msxml2.DOMDocument.4.0");
stylesheet.async = false;
stylesheet.load("Accueil.xsl");
// transformation
target.innerHTML = source.transformNode(stylesheet);
}
</script>
</head>
<body onload="init()">
<div id="target" />
</body>
</html> |
Et bien rien ne se passe à cause du <!DOCTYPE> et le pire c'est que je n'ai pas de message d'erreur.
Dans la partie JScript on dirait que le fichier n'est pas chargé en dépit du fait que j'utilise resolveExternals et validateOnParse.
Est-ce un bug connu de MSXML?
Quand j'enlève le <!DOCTYPE> et l'<!ENTITY> et la référence à l'entité &xml; de Accueil.xml, ca fonctionne.
Merci par avance.