Toujours à propos de la propagation des node-set en paramètre.
A priori cela fonctionne bien même sans utiliser node-set()! Mon erreur
était de déclarer le paramètre ainsi dans les templates:
<xsl:param name="callingParameterList"></xsl:param>
Et non ainsi
<xsl:param name="callingParameterList" select="/.."/>
Cette déclaration a pour effet de donner un node-set vide comme valeur par
défaut au paramètre. Ainsi le paramètre est bien vu comme un node-set et
peut se propager comme tel en utilisant <xsl:with-param
name="callingParameterList" select="$callingParameterList"/>.
Bruno KONIK
> -----Message d'origine-----
> De : xml-tech-bounce@xmlfr.org
> [mailto:xml-tech-bounce@xmlfr.org] De la part de Bruno.KONIK
> Envoyé : jeudi 10 février 2005 16:49
> À : xml-tech@xmlfr.org
> Objet : [xml-tech] Re: Propagation des variables etparamètres
>
> 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)
>
>
--
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 17:37:59 2005