From: Jerome TRUFFOT (jerome.truffot@isima.fr)
Date: 13/01/2004 - 16:18
Bonjour,
je viens de découvrir dans les spécifs du XSLT (désolé je débute :), la
balise "processing-instruction". Elle permet de créer des balises du
type <?xml-stylesheet type="text/xsl" href="toto.xslt"?> dans le fichier
de sortie (après transformation xslt).
Du coup, j'me suis dit que je pouvais faire la chose suivante :
un fichier toto.xml du genre :
<?xml version="1.0" encoding="ISO-8859-1"?>
<?xml-stylesheet type="text/xsl" href="toto1.xslt"?>
<toto/>
un fichier toto1.xslt :
<?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="xml" version="1.0" encoding="iso-8859-1" indent="yes"/>
<xsl:template match="/">
<xsl:processing-instruction name="xml-stylesheet">href="toto2.xslt"
type="text/xsl"</xsl:processing-instruction>
<xsl:element name="toto"/>
</xsl:template>
</xsl:stylesheet>
et un fichier toto2.xslt :
<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="toto">
<html><body>Toto</body></html>
</xsl:template>
</xsl:stylesheet>
Ainsi, en ouvrant toto.xml dans mon browser adoré (Mozilla mais j'ai
essayé avec IE aussi), celui-ci devrait effecteur la première
transformation de toto.xml par toto1.xslt. Puis il devrait interpréter
le fichier xml résultant. J'ai effectué cette première transformation
avec XT, celui-ci devrait donc ressembler à :
<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet href="toto2.xslt" type="text/xsl"?>
<toto/>
(au passage, il me semble qu'il y a une erreur, l'attribut encoding
devrait valoir "iso-8859-1")
Ainsi, l'interpretation de ce document XML, résultat de la première
transformation devrait engendrer une deuxième transformation de ce
document par toto2.xslt. Le résultat devrait donc être le document html
suivant : <html><body>Toto</body></html>. Je devrais donc voir "Toto"
dans mon browser. Mais que ce soit avec Mozilla ou IE, il n'y a rien !!!
Donc, ma question est : est-ce normal ????
Est-ce que je me suis trompé dans mon raisonnement ?
Est-ce que les browsers actuels ne peuvent pas gérer plusieurs
transformations successives ??
Est-ce que tout simplement les browsers ne gère pas la transformation en
XML (je viens de faire le test en enlevant la balise
<xsl:processing-instruction>, je m'attendais à voir afficher le xml
résultant mais il n'y a toujours rien) ???
Bref, j'avais trouvé là un bon moyen d'appliquer plusieurs
transformations successives, éventuellement les mêmes, ce qui
permettrait de construire des algorithmes un peu plus complexe en XSLT.
Au delà du problème technique, j'aimerais également savoir si cette idée
est intérressante. Est-ce que si l'application de transformations
successives n'est pas encore possible, cela le dienvra-t-il ??
J'espère avoir été clair dans l'exposé de mon problème et que celui-ci
vous parraitra intérressant.
Jérôme
--
Devenez redacteur <XML>fr et contribuez au developpement du
xml francophone (http://xmlfr.org/infos/redacteurs/) !
Liste de diffusion "xml-tech@xmlfr.org" (http://xmlfr.org).
Cette liste est a votre disposition pour discuter en francais de
tout sujet technique lie a XML.
Pour resilier votre abonnement, envoyez un message contenant
la commande "unsubscribe" a xml-tech-request@xmlfr.org
(mailto:xml-tech-request@xmlfr.org?Subject=unsubscribe)
Archive générée par hypermail 2.1.3 le 28/06/2004 - 11:06 UTC
webmaster@xmlfr.org
|