On Sun, 2004-09-26 at 04:27, Erik Bruchez wrote:
> Eric van der Vlist wrote:
>
> > Au passage, il faut noter que XPL a une vocation généraliste et
> > cherche à pouvoir être utilisé en dehors du cadre des applications
> > Web qui ne renvoient qu'un seul flux à leurs clients HTTP.
>
> Correct.
>
> Un peu sans rapport avec la question des sorties multiples, j'essaie
> de trouver une exemple qui illustre les differences entre XPL et les
> pipelines de Cocoon. Supposons que je veuille l'architecture suivante
> (dites-moi si ca n'a aucun sens !) :
>
> o une transformation XSLT
>
> o puis deux transformations XSLT en "parallele" qui s'appliquent la
> sortie de la premiere transformation
>
> o une aggregation du resultat de ces deux transformaions pour generer
> le document final
>
> En XPL :
>
> <p:config>
>
> <p:processor name="oxf:xslt">
> <p:input name="data" href="/my-input-file.xml"/>
> <p:input name="config" href="/my-stylesheet1.xsl"/>
> <p:output name="data" id="transform-output-1"/>
> </p:processor>
>
> <p:processor name="oxf:xslt">
> <p:input name="data" href="#transform-output-1"/>
> <p:input name="config" href="/my-stylesheet2.xsl"/>
> <p:output name="data" id="transform-output-2"/>
> </p:processor>
>
> <p:processor name="oxf:xslt">
> <!-- Note the second reference to transform-output-1 -->
> <p:input name="data" href="#transform-output-1"/>
> <p:input name="config" href="/my-stylesheet3.xsl"/>
> <p:output name="data" id="transform-output-3"/>
> </p:processor>
>
> <p:processor name="oxf:file-serializer">
> <!-- Note the built-in facility for aggregation -->
> <p:input name="data" href="aggregate('root', #transform-output-2,
> #transform-output-3)"/>
> <p:input name="config">
> <config>
> <!-- Inline serializer configuration if needed -->
> </config>
> </p:input >
> </p:processor>
>
> </p:config>
>
> C'est aussi simple que ceci avec XPL. Je pense que c'est beaucoup plus
> difficile a faire avec Cocoon.
Cela donnerait quelque chose de ce type (où le résultat "final" serait
"final-result", les autres match étant utilisés pour générer les
résultats intermédiaires) :
<pipeline>
<match pattern="transform-output-1">
<generate src="/my-input-file.xml"/>
<transform src="/my-stylesheet1.xsl"/>
<serialize type="xml"/>
</match>
<match pattern="transform-output-2">
<generate src="cocoon:transform-output-1"/>
<transform src="/my-stylesheet2.xsl"/>
<serialize type="xml"/>
</match>
<match pattern="transform-output-3">
<generate src="cocoon:transform-output-1"/>
<transform src="/my-stylesheet2.xsl"/>
<serialize type="xml"/>
</match>
<match pattern="final-result">
<aggregate element="root">
<part src="cocoon:transform-output-2"/>
<part src="cocoon:transform-output-3"/>
</aggregate>
<act type="file"> <!-- note that AFAIK this action doesn't exist -->
<!-- Inline serializer parameters if needed -->
<map:parameter name="location" value=""/>
<serialize type="xml"/>
</act>
</match>
</pipeline>
Est-ce tellement plus complexe :-) ???
Je pense que ce sont vraiment les sorties multiples qui font une réelle
différence.
A ce propos, j'ai une question... Est-il possible de générer des sorties
multiples avec une transformation XSLT (par exemple en utilisant
l'extension "exl:document") ?
Eric
--
Don't you think all these XML schema languages should work together?
http://dsdl.org
------------------------------------------------------------------------
Eric van der Vlist http://xmlfr.org http://dyomedea.com
(ISO) RELAX NG ISBN:0-596-00421-4 http://oreilly.com/catalog/relax
(W3C) XML Schema ISBN:0-596-00252-1 http://oreilly.com/catalog/xmlschema
------------------------------------------------------------------------
--
Devenez redacteur <XML>fr et contribuez au developpement du
xml francophone (http://xmlfr.org/infos/redacteurs/) !
Liste de diffusion "dev@xmlfr.org" (http://xmlfr.org).
Cette liste est a votre disposition pour discuter en francais de
tout sujet technique lie au developpement du site XMLfr.
Pour resilier votre abonnement, envoyez un message contenant
la commande "unsubscribe" a dev-request@xmlfr.org
(mailto:dev-request@xmlfr.org?Subject=unsubscribe)
Received on Sun Sep 26 09:41:20 2004