sdx-users
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

RE: RE : [sdx-users] Utilisation de la fonction saxon:evaluate d ans un


From: Frederic . Evesque
Subject: RE: RE : [sdx-users] Utilisation de la fonction saxon:evaluate d ans une feuille de style XSL dans SDX2
Date: Fri, 31 Jan 2003 11:40:38 +0100

> -----
> Je ne sais pas si ce problème est plus relatif à Cocoon qu'à SDX, mais
> j'aimerais savoir si on peut appeler des fonctions spécifiques (et
> comment), telle la fonction "saxon:evaluate" au sein d'une feuille de
> style XSL dans une appli SDX.
> -----
> 
> Oui, c'est tout à fait possible, je ne sais pourquoi ça ne marche pas
> dans votre cas. L'URI de l'espace de nom est le bon?
> 
> Par ailleurs :
> 
> - par défaut, dans Cocoon/SDX, le processeur XSLT utilisé est 
> celui que
> la spécification TrAX trouve, donc le premier dans le classpath qui
> respecte cette norme (si vous ne changez pas le nom des JAR, Saxon
> arrive avant Xalan), donc faites attention, soyez certain du 
> processeur
> si vous voulez utiliser des extensions...

Pour l'espace de nom SAXON, l'URI est http://saxon.sf.net/ comme dans la
feuille de style "xml.xsl". J'en ai essayé d'autres, même résultat.
Je n'ai pas changé le nom des JAR, et je suis sûr que c'est SAXON qui est
appelé, en effet, lorsque j'obtiens des erreurs,
je vois apparaître dans la stacktrace des
"com.icl.saxon.TransformerHandlerImpl.endDocument" ou "saxon:warning".

> 
> - vous n'avez pas besoin d'extension pour choisir dynamiquement le
> fichier à traiter. Cette XSLT est parfaitement valide et fait ce que
> vous cherchez à faire (du moins si je comprends bien!) :
> 
> <?xml version="1.0" encoding="UTF-8"?>
> <xsl:stylesheet version="1.0"
> xmlns:xsl="http://www.w3.org/1999/XSL/Transform";>
>   <xsl:variable name="test" select="'test.xml'"/>
>   <xsl:template match="/">
>     <xsl:apply-templates select="document($test)/*"/>
>   </xsl:template>
> </xsl:stylesheet>

Effectivement, pour cet exemple, on peut se passer d'appeler l'extension de
fonction "saxon:evaluate($String)" parce que la fonction de base
document($String) fonctionne très bien (merci!). Mais imaginons que l'on
veuille sélectionner un noeud spécifique dans un document XML qui soit
stocké dans une variable ou paramètre (exemple : <xsl:variable name="path"
select="'/bar/link[1]'"/>), seul une fonction de type saxon:evaluate($path)
ou xalan:evaluate($path) permet d'obtenir le résultat.

Cordialement,

Frederic Evesque




reply via email to

[Prev in Thread] Current Thread [Next in Thread]