From: Denis BAYARD (denis.bayard@edfgdf.fr)
Date: 13/01/2004 - 17:15
Bonjour,
je ne sais pas s'il y a une raison d'empêcher plusieurs transformations,
mais cette façon de faire complexifie beaucoup le processus (c'est la
première transformation qui sait que la deuxième doit avoir lieu).
Pour enchaîner des transformations, il y a plusieurs autres moyens :
- un fichier de commandes qui applique les transformations les
unes après les autres (bof) ;
- ANT, qui est l'equivalent de MAKE pour XML ;
- COCOON, qui permet d'enchaîner les transformations à travers des
pipelines ;
- ... et probablement d'autres méthodes que j'attends de découvrir
avec impatience (merci aux lecteurs de completer).
Les butineurs arrivent à appliquer une transformatioin. La votre (celle
avec un seul xsl) ne donne rien, car le résultat théorique est :
<?xml version="1.0" encoding="ISO-8859-1"?>
<toto/>
... et IE n'applique pas sa présentation habituelle des fichiers XML si
une feuille de style a déjà été appliquée. En fait IE applique les templates par défaut.
Si l'élément <toto> n'avait pas été vide, avec
<xsl:element name="toto">
yyy
</xsl:element>
dans la premiere feuille de style, IE aurait affiché :
yyy
et en lui demandant d'afficher la source, on obtient ... le XML du départ.
Denis
Veuillez répondre à xml-tech@xmlfr.org
Envoyé par : xml-tech-bounce@xmlfr.org
Pour : xml-tech@xmlfr.org
cc : (ccc : Denis BAYARD/E/EDFGDF/FR)
Objet : [xml-tech] processing-instruction
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)
--
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
|