From: Sylvain Wallez (sylvain.wallez@anyware-tech.com)
Date: 08/07/2004 - 12:57
Christophe.Brun@aventis.com wrote:
>Bingo, merci pour tous ces conseils. Decidement Cocoon est un monde a part ... que je suis loin de maitriser (meme la doc !)
>J'ai essayé, avec succes, la methode bestiale <map:parameter name="use-request-parameters" value="true"/>
>En quoi peut-elle etre handicapante ?
>
>
Attention, on entre dans les tripes de la bête...
Cocoon peut conserver en cache le résultat de pipelines XML complexes,
de façon à ne pas les recalculer s'ils sont redemandés plus tard et si
le contenu du cache est toujours valide. On peut ainsi atteindre des
performances très élevées, même si les traitements sont complexes,
puisque seule la première requête sur un document doit "payer" le coût
de sa production.
Cette notion de "toujours valide" est intimement liée au traitement
effectué par chaque élément du pipeline. Pour la transformation XSL, la
validité est définie par la date de modification de la XSL et les
valeurs de tous ses paramètres.
Si on passe "bestialement" tous les paramètres de la requête au
transformer XSL, celui-ci va tout-aussi bestialement considérer que sa
production est liée à la valeur de tous les paramètres de requêtes, même
s'ils ne sont pas tous utilisés.
Moyennant quoi, si on appelle successivement
"etat_cmdes?affich=1&blabla=toto" puis
"etat_cmdes?affich=1&blabla=toto&blabla=titi", la méthode "fine" ne
recalculera rien pour la deuxième requête, alors que la méthode
"bestiale" refera tout le calcul même si seule la valeur de "affich" est
réellement discriminante.
Voilà ...
Au passage, Cocoon permet de faire des URLs beaucoup plus propres que
toutes les autres technos d'applis web en permettant de définir des
patterns d'adresses plutôt que de passer des paramètres. Concrètement,
"etat_cmdes" peut être réécrit comme suit :
<map:match pattern="etat_cmde_*.html">
<map:generate src="toto.xml"/>
<map:transform src="toto2html.xsl">
<map:parameter name="affich" value="{1}"/>
</map:transform>
....
Le {1} est remplacé par le premier (d'où le "1") wildcard de
"etat_cmde_*". On peut ainsi utiliser les URLs "etat_cmde_1.html",
"etat_cmde_2.html", etc.
Sylvain
>CB
>
>-----Message d'origine-----
>De : xml-tech-bounce@xmlfr.org [mailto:xml-tech-bounce@xmlfr.org]De la part de Sylvain Wallez
>Envoyé : jeudi 8 juillet 2004 12:06
>À : xml-tech@xmlfr.org
>Objet : [xml-tech] Re: parametre dans url
>
>
>Christophe.Brun@aventis.com wrote:
>
>
>
>>parametre dans url
>>
>>
>>Comment recuperer un parametre d'une url dans mon xsl ?
>>
>>J'utilise cocoon.
>>
>>D'après des infos sur xmlfr, j'ai adapte le code, mais mon parametre reste desesperement vide
>>
>>
>>
>>
>
>Honnêtement, xmlfr n'est pas la meilleure source d'info pour Cocoon :
>http://cocoon.apache.org et la mailing-list users@cocoon.apache.org sont
>faits pour ça !
>
>
>
>>Merci a qui pourra m aider !
>>
>>
>>
>>
>
>Mmmh... publicité gratuite : vous auriez bien besoin d'une formation
>Cocoon que je pourrais me faire un plaisir d'assurer ;-)
>
><map:match pattern="etat_cmdes">
> <map:generate src="toto.xml"/>
> <map:transform src="toto2html.xsl>
> <map:parameter name="affich" value="{request-param:affich}"/>
> </map:transform>
> <map:serialize/>
></map:match>
>
>Une autre solution plus "bestiale", mais moins gentille avec le système
>de cache est de publier tous les paramètres de la requête comme
>paramètres de la XSL :
>
> <map:transform src="toto2html.xsl">
> <map:parameter name="use-request-parameters" value="true"/>
> </map:transform>
>
>Tout est expliqué (et bien plus) sur
>http://cocoon.apache.org/2.1/userdocs/transformers/xslt-transformer.html
>
>Sylvain
>
>
--
Sylvain Wallez Anyware Technologies
http://www.apache.org/~sylvain http://www.anyware-tech.com
{ XML, Java, Cocoon, OpenSource }*{ Training, Consulting, Projects }
--
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 30/07/2004 - 13:32 UTC
webmaster@xmlfr.org
|