En effet. Je comprends.
Ce que je cherche à faire en fait, c'est générer mes pages JSP à partir de template XSL pour m'assurer que toutes les pages JSP soit "homogènes" et simplifier mes pages "sources" (dans ce cas, des simple fichier XML avec uniquement les paramètres nécessaires).
Le problème dans le cas d'une JSP, c'est que certains attributs HTML sont écrits par l'intermédiaire de TagLib côté serveur. D'où cette "imbrication" de balise JSTL (interprété côté serveur) à l'intérieur de balise HTML (interprété côté client).
Avec ces explications, j'ai bien peur de ne pas pouvoir régler ce problème de façon élégante avec XSL.
Peut-être qu'une solution à base d'un langage comme Velocity serait plus adapté.
En tout cas, merci pour toutes ces précisions.
> -----Message d'origine-----
> De : xml-tech-bounce@xmlfr.org [mailto:xml-tech-bounce@xmlfr.org] De la
> part de Erik Mazoyer
> Envoyé : vendredi 15 septembre 2006 17:38
> À : xml-tech@xmlfr.org
> Objet : [xml-tech] RE : RE : RE : Problème génération JSP à partir
> XML+XSLT
>
> En fait il faut faire un choix.
>
> Soit on utilise la génération XML mais le contenu produit doit être XML.
> Ce qui interdit de placer des balises dans des balises.
>
> Soit on produit la génération textuelle mais il faut alors tout écrire.
>
>
> Quand vous écrivez
> <html>
> <xsl:attribute name="lang">
> <xsl:value-of select="$lang" disable-output- escaping="yes" />
> </xsl:attribute>
> </html>
> Vous vous placez dans un cas XML. Vous indiquez que vous voulez écrire la
> BALISE <html> et qu'ensuite vous placez au sein de cette balise un
> attribut lang. Dans ce cas, l'attribut placé dans le balise <html> doit
> être correctement écrit. C'est-à-dire en XML sans '<' '>' et '"' et en
> HTML sans '"' qui est le délimiteur de la valeur de l'attribut.
>
> En texte vous devez écrire (non testé)
> <![CDATA[<html lang="]]><xsl:value-of select="$lang" disable-output-
> escaping="yes" /><![CDATA[">]]> ... <![CDATA[</html>]]>
>
> C'est très rude comme méthode car il n'y a plus de vérification de
> syntaxe.
> Mais le problème est que ce que vous voulez produire n'est ni du XML, ni
> du HTML !
>
>
> Cordialement,
>
>
> --------------------------------------------------------------------
> Erik Mazoyer, Chef de projet
> HyperOffice
> 6, rue Jacques Daguerre - 92565 Rueil-Malmaison Cedex
> Tél. 01 41 96 96 76
> Fax 01 41 96 96 77
> Mél erik.mazoyer@hyperoffice.fr
>
> -----Message d'origine-----
> De : Cronier Jean-Yves [mailto:jcronier@vsc-technologies.com]
> Envoyé : vendredi 15 septembre 2006 17:07
> À : xml-tech@xmlfr.org
> Objet : [xml-tech] RE : RE : Problème génération JSP à partir XML+XSLT
>
>
> Je viens de faire un teste en mettant method="html" ce qui me donne :
>
> <jsp:root xmlns:jsp="http://java.sun.com/JSP/Page"
> xmlns="http://www.w3.org/1999/xhtml"
> xmlns:c="http://java.sun.com/jstl/core" version="1.2">
> <c:set value="${sessionScope.CONTEXT}" var="CONTEXT"/>
> <html lang="<c:out value="${CONTEXT.language}" />"><c:out
> value="${CONTEXT.language}" /></html> </jsp:root>
>
>
> C'est presque ça, mais il reste quand même les quotes qui sont escapées...
>
> Je vais plutôt rester sur method="text" et voir ce qui cloche ...
>
> Si quelqu'un a la solution avant moi ... je suis preneur :-)
>
>
>
>
> > -----Message d'origine-----
> > De : xml-tech-bounce@xmlfr.org [mailto:xml-tech-bounce@xmlfr.org] De
> > la part de Erik Mazoyer Envoyé : vendredi 15 septembre 2006 16:20
> > À : xml-tech@xmlfr.org
> > Objet : [xml-tech] RE : Problème génération JSP à partir XML+XSLT
> >
> > > Question : Pourquoi les caractères dans l'attribut lang de la balise
> > HTML sont escapés alors qu'en dehors de l'attribut, tout est OK.
> >
> > Car la ligne
> > <html lang="<c:out value="${CONTEXT.language}" />"><c:out
> > value="${CONTEXT.language}" /></html> est invalide d'un point de vue
> > XML. Le parseur XML détecte une début de balise "<html" puis un second
> > début de balise "<c:out" sans avoir fini la premiere.
> > Ce n'est pas un XML bien formé.
> >
> > Par contre <html lang="<c:out value="${CONTEXT.language}"
> > />"><c:out value="${CONTEXT.language}" /></html> est parfaitement
> > correct, du moins d'un point de vue XML.
> >
> > En fait ce que vous produisez n'est pas du XML, il vous faut donc
> > indiquer que c'est du texte produit par la xslt et non du XML. Pour
> > cela vous devez placer l'attribut method="text" dans le balise
> > <xsl:output...>
> >
> > <xsl:output method="text" indent="yes"
> > cdata-section-elements="script"/>
> >
> >
> > Cordialement,
> >
> > --------------------------------------------------------------------
> > Erik Mazoyer, Chef de projet
> > HyperOffice
> > 6, rue Jacques Daguerre - 92565 Rueil-Malmaison Cedex
> > Tél. 01 41 96 96 76
> > Fax 01 41 96 96 77
> > Mél erik.mazoyer@hyperoffice.fr
> >
> > -----Message d'origine-----
> > De : Cronier Jean-Yves [mailto:jcronier@vsc-technologies.com]
> > Envoyé : vendredi 15 septembre 2006 16:09
> > À : xml-tech@xmlfr.org
> > Objet : [xml-tech] Problème génération JSP à partir XML+XSLT
> >
> >
> > Bonjour,
> >
> > Voici mon problème :
> >
> > Fichier XML :
> >
> > <document xmlns="http://www.test.com/ui">
> > </document>
> >
> > Fichier XSL :
> >
> > <?xml version="1.0"?>
> > <xsl:stylesheet version="1.0"
> > xmlns="http://www.w3.org/1999/xhtml"
> > xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
> > xmlns:ui="http://www.test.com/ui"
> > exclude-result-prefixes="xsl">
> > <xsl:output indent="yes" cdata-section-elements="script"/>
> > <xsl:template match="ui:document">
> > <jsp:root version="1.2"
> > xmlns:jsp="http://java.sun.com/JSP/Page"
> > xmlns:c="http://java.sun.com/jstl/core">
> > <c:set var="CONTEXT" value="${{sessionScope.CONTEXT}}"
> > />
> > <xsl:variable name="lang"><xsl:text disable-output-
> > escaping="yes"><![CDATA[<c:out value="${CONTEXT.language}"
> > />]]></xsl:text></xsl:variable>
> >
> > <html>
> > <xsl:attribute name="lang">
> > <xsl:value-of select="$lang" disable-output-
> escaping="yes" />
> > </xsl:attribute>
> > <xsl:value-of select="$lang" disable-output-
> escaping="yes" />
> > </html>
> > </jsp:root>
> > </xsl:template>
> > </xsl:stylesheet>
> >
> > Ce qui me génère :
> >
> > <?xml version="1.0" encoding="UTF-8"?>
> > <jsp:root xmlns:jsp="http://java.sun.com/JSP/Page"
> > xmlns="http://www.w3.org/1999/xhtml"
> > xmlns:c="http://java.sun.com/jstl/core" version="1.2">
> > <c:set value="${sessionScope.CONTEXT}" var="CONTEXT"/>
> > <html lang="<c:out value="${CONTEXT.language}"
> > />"><c:out value="${CONTEXT.language}" /></html> </jsp:root>
> >
> >
> >
> > Question : Pourquoi les caractères dans l'attribut lang de la balise
> > HTML sont escapés alors qu'en dehors de l'attribut, tout est OK.
> >
> > Ce que j'aimerai obtenir :
> >
> > <?xml version="1.0" encoding="UTF-8"?>
> > <jsp:root xmlns:jsp="http://java.sun.com/JSP/Page"
> > xmlns="http://www.w3.org/1999/xhtml"
> > xmlns:c="http://java.sun.com/jstl/core" version="1.2">
> > <c:set value="${sessionScope.CONTEXT}" var="CONTEXT"/>
> > <html lang="<c:out value="${CONTEXT.language}" />"><c:out
> > value="${CONTEXT.language}" /></html> </jsp:root>
> >
> >
> >
> >
> > Merci d'avance si vous avez des pistes à me donner.
> >
> > --
> > 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)
>
>
> --
> 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)
--
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)
Received on Fri Sep 15 17:48:16 2006