Bonjour,
Je ne vais pas avoir le temps de répondre en détail à tout les points
soulevés, par contre j'ai essayé de faire une première maquette pour
évaluer montrer ce que ce pourrait être...
On Wed, 2004-09-22 at 01:02, Erik Bruchez wrote:
.../...
> On est d'accord que ce mechanisme est lourd. On pourrait imaginer,
> sans modifier Presentation Server, quelque chose de plus intelligent,
> base sur un fichier XML qui configurerait la tag library. De cette
> facon, l'interprete de tags serait generique. Par exemple, la
> configuration pourrait etre comme suit :
>
> <tag-library>
> <tag>
> <element name="my:image"/>
> <pipeline href="oxf:/backend/find-image.xpl" output="data"/>
> </tag>
> <tag>
> ...
> </tag>
> </tag-library>
Je ne suis (du moins pas dans un premier temps) parti sur l'idée d'une
bibliothèque de tags qui introduit une indirection mais sur celle
d'utiliser directement des éléments standardisés dans les modèles de
documents.
En l'occurrence, ma nouvelle version de "cherche.xhtml"
(http://dev.xmlfr.org/cgi-bin/viewcvs.cgi/xmlfr-beta/orbeon/WEB-INF/resources/lucene/cherche.xhtml?view=auto&rev=771) utilise un élément <inc:include href="oxf:/lucene/rss-pipe.xpl"/> qui provoque la prise en compte du pipeline "oxf:/lucene/rss-pipe.xpl" par la transformation XSLT.
L'idée est (dans un second temps) de donner à ce "inc:include" une vraie
sémantique d'inclusion, mais pour le moment j'ai voulu limiter les
modifications dans "affiche.xsl"
(http://dev.xmlfr.org/cgi-bin/viewcvs.cgi/xmlfr-beta/orbeon/WEB-INF/resources/lucene/affiche.xsl?view=auto&rev=771) et c'est une "inclusion/transformation"
En fait, on pourrait avoir deux utilisations complémentaire de ces
inclusions.
* Une utilisation où on inclut un fragment de document déjà
formaté par <inc:include href="rss-formaté.xpl"/>. Au niveau de
la transformation XSLT gérant l'inclusion, cela revient à faire
un <xsl:copy-of/> du fragment aggrégé.
* Une utilisation où <inc:include/> est contenu dans un élément de
formatage, par exemple <x:affiche-rss><inc:include
href="rss.xpl"></x:affiche>. Au niveau de la transformation XSLT
gérant cela, cela revient à faire un <xsl:apply-templates/> sur
le fragment aggrégé dans un mode déterminé par l'élément
incluant le <inc:include/>.
Le pipeline gérant l'aggrégation est généré dynamiquement à partir de
cherche.xhtml par la transformation XSLT "compile-cherche.xsl"
(http://dev.xmlfr.org/cgi-bin/viewcvs.cgi/xmlfr-beta/orbeon/WEB-INF/resources/lucene/compile-cherche.xsl?view=auto&rev=771).
Le résultat est visible à l'adresse
http://beta.xmlfr.org/orbeon/lucene/cherche-dyn.xpl.
Le pipeline générant les résultats en mode XHTML est "cherche.xpl"
(http://dev.xmlfr.org/cgi-bin/viewcvs.cgi/xmlfr-beta/orbeon/WEB-INF/resources/lucene/cherche.xpl?view=auto&rev=771)
<p:config xmlns:p="http://www.orbeon.com/oxf/pipeline"
xmlns:oxf="http://www.orbeon.com/oxf/processors"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:xmlfr="http://ns.xmlfr.org/orbeon/processors">
<p:processor name="oxf:xslt">
<p:input name="config" href="compile-cherche.xsl"/>
<p:input name="data" href="cherche.xhtml"/>
<p:output name="data" id="pipeline"/>
</p:processor>
<p:processor name="oxf:pipeline">
<p:input name="config" href="#pipeline"/>
<p:output name="data" id="xhtml"/>
</p:processor>
<p:processor name="oxf:xml-serializer">
<p:input name="config">
<config><content-type>text/html</content-type></config>
</p:input>
<p:input name="data" href="#xhtml"/>
</p:processor>
</p:config>
Pour le moment, je n'utilise toujours pas le mécanisme de page flow : je
trouve que les pipelines exposent de manière plus claire ce qui ce passe
et pense intégrer le mécanisme de page flow lorsque j'aurais une idée
plus claire des transformations à appliquer.
Le mécanisme semble fonctionner mais je ne suis pas certain d'avoir fait
au plus simple ni au plus efficace!
> Reste a trouver une syntaxe pour de passer des parametres au pipeline
> si necessaire, en se basant probablement sur les attributs du tag, ou
> sur le body de celui-ci (toujours dans la terminologie JSP).
Dans ce premier exemple, j'ai contourné le problème mais on pourrait
passer le contenu des "inc:include" en entrée aux pipelines.
Eric
--
Weblog:
http://eric.van-der-vlist.com/blog?t=category&a=English
------------------------------------------------------------------------
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 Wed Sep 22 11:57:41 2004