From: Antoine Drochon (antoine@drochon.net)
Date: 04/08/2004 - 20:56
Bonsoir,
Le mercredi 4 août 2004 à 21:22:28
herve.agnoux@diaam-informatique.com a écrit :
-----------------------
HA> Le Mercredi 04 Août 2004 18:56, Antoine Drochon a écrit :
>>
>> Je cherche une solution... d'abord en XSLT pur.
HA> Désolé de vous répondre à contre-pied que la plupart des solutions
HA> dont j'ai entendu parler pour résoudre ce genre de problèmes sont
HA> de rejeter purement et simplement le XSLT !
J'ai envisagé d'y renoncer :)
Il y a plusieurs critères qui m'ont maintenu dans cette voie
- compétences internes sur le projet (fortes en XSL, naissance en C#)
- possibilités offertes par les XsltExtensions (propre à .NET mais
ressemblant à ce qu'on peut trouver ailleurs)
- nombre de modifications à apporter (certaines XSL sont basés sur
des normes, d'autres sur le bon vouloir des concepteurs de
navigateurs/formats de sortie et du parc existant)
[...]
HA> Sinon, en XSLT pur, peut être faire les choses en deux passes ?...
Si je peux trouver plus simple, plus "standard", je suis preneur ;-)
HA> La première pour interpréter vos règles de modularisation, la
HA> deuxième pour réaliser votre HTML ? J'ai vu que cela se faisait
HA> aussi, de faire du XSLT pour faire du XSLT :-)
C'est un peu ce que je fais en amont, j'ai mis au point un langage
dynamique sur la base du XHTML, dynamique qui manque au XHTML. Ce
dynamique (avec des balises value, choose et if) est principalement
généré à partir de feuille XSL. Jusque là tout va bien. La couche au
dessus, je dois transformer ce language en quelquechose d'optimal pour
les différents terminaux (avec une cinquantaine de contraintes à
intégrer). Là encore, on arrive à ce que ça tiennent debout.
Après, les terminaux sont classés en grande famille, il y a donc une
petite dizaine de famille qui doivent implémenter les règles de
modularisation. Un cas étant vite oublié, réécrire à chaque fois les
règles de filtrage (choose|if|value) c'est un peu pénible, surtout
plusieurs fois dans chaque XSL et ses imports, le tout répeté autant
qu'il y a de familles.
L'idée d'Eric d'utiliser les entités me plait bien, je cherche une
solution pour simplifier un projet déjà globalement assez complexe.
J'avais imaginé utilisé un objet externe à qui je passais le noeud
courant et l'expression "dynamique" à résoudre afin qu'il parcours
l'arbre pour finalement faire ce que fait le moteur XSLT. En terme de
code, cela fait écrire plus, et cela fait donne
<xsl:apply-templates select="tag1|tag2|helper:NodeSet(., 'DYNAMIC')"/>
Le seul avantage, c'est que cet objet helper aura la faculté de lire
le schéma qui est au format XSD.
Merci pour vos deux réponses pleines de bon sens. J'avoue que XSLT 2
m'est encore complètement inconnu mais qu'il a l'air d'aller dans le
sens de mes besoins, c'est une bonne chose!
Bonne soirée,
Cordialement,
Antoine Drochon
--
A day, a bug
--
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 31/08/2004 - 11:12 UTC
webmaster@xmlfr.org
|