Merci pour votre réponse mais j'ai encore du mal à voir comment il faudrait
écrire cela même en utilisant l'extension node-set(). Si je comprends bien:
J'ai donc le droit d'écrire dans un template:
<xsl:variable name="t" select="actualParameterList"/>
Et dans ce cas ma variable t contient bien un node-set et je pourrais
utiliser <xsl:apply-templates select="$t/parameter"/> par exemple.
Mais je n'ai pas le droit d'écrire:
<xsl:template match="type/*">
<xsl:apply-templates select="type/* mode="m"">
<xsl:with-param name="callingParameterList"
select="actualParameterList"/>
</xsl:apply-templates>
</xsl:template>
Et ensuite :
<xsl:template match="type/*" mode="m">
<xsl:param name="callingParameterList"/>
<xsl:apply-templates select="$callingParameterList/parameter"/>
</xsl:template>
Pourriez-vous me dire comment je dois faire pour passer un node-set en
paramètre à un template et le propager dans les sous templates?
Merci pour votre aide.
Bruno KONIK
PS: mon problème précédent concernant l'exception xalan était un autre
problème (faute d'écriture qui n'avait rien à voir - désolé).
> -----Message d'origine-----
> De : xml-tech-bounce@xmlfr.org
> [mailto:xml-tech-bounce@xmlfr.org] De la part de Stephane Bonhomme
> Envoyé : jeudi 10 février 2005 11:56
> À : xml-tech@xmlfr.org
> Objet : [xml-tech] Re: Propagation des variables etparamètres
>
> Bonjour,
>
> Dans le passage de parametre, comme dans les variables, les
> valeurs passée soivent etre d'un type retourné par une
> expression et non un node-set, votre passage de parametre du
> second template <xsl:with-param name="callingParameterList"
> select="actualParameterList"/> spécifie dans l'attribut
> select, une valeur de type node-set, c'est interdit dans xsl
> stricto-sensu, si vous voulez passer un arbre en parametre
> (result tree
> fragment) il vous faut untiliser une exension de xslt (comme
> exsl:node-set ,
> http://www.exslt.org/exsl/functions/node-set/index.html)
>
> Cordialement,
>
> Stéphane.
>
> Le jeudi 10 février 2005 à 11:37 +0100, Bruno.KONIK a écrit :
> > Bonjour,
> >
> > La question porte sur le moyen de propager le contenu d'une
> variable
> > (contenant un ensemble de nœuds - les enfants du noeud
> > type/def1/actualParameterList) dans différents templates.
> >
> > Ai-je le droit d'écrire cela:
> >
> > <xsl:template match="type/*">
> > <xsl:param name="callingParameterList"></xsl:param>
> >
> > <xsl:apply-templates select="type/*" mode="m1">
> > <xsl:with-param name="callingParameterList"
> > select="$callingParameterList"/>
> > </xsl:apply-templates>
> > </xsl:template>
> >
> > <xsl:template match="type/def1">
> > <xsl:param name="callingParameterList"></xsl:param>
> >
> > <xsl:apply-templates select="type/*">
> > <xsl:with-param name="callingParameterList"
> > select="actualParameterList"/>
> > </xsl:apply-templates>
> > </xsl:template>
> >
> > Mon xsl est plus complexe que cela et j'ai simplifié... Mon
> souci est
> > que xalan me dit :
> "javax.xml.transform.TransformerConfigurationException:
> > javax.xml.transform.TransformerException:
> > org.xml.sax.SAXParseException: La valeur doit être entre
> guillemets."
> > Je ne vois pas de quelle valeur il s'agit.
> >
> > Merci pour votre aide,
> >
> > Bruno KONIK
> >
> >
> >
> > --
> > 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)
> >
> >
> --
> Stéphane Bonhomme -- Exselt Services
>
> Formations, Conseil et Réalisations en Ingénierie Documentaire,
> Technologies Web et Logiciels Libres
> s.bonhomme@wanadoo.fr - http://www.exselt.com
> 04 76 17 09 40 / 06 88 57 27 08
>
>
>
> --
> 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 Thu Feb 10 16:49:05 2005