Journal Apache 1.3 et PHP/XML/XSLT [SUITE ET FIN]

Posté par  (site web personnel) .
Étiquettes : aucune
0
29
oct.
2003
Re mon journal !

Suite à mon précédent journal de ce matin (https://linuxfr.org/~chere_loque/6492.html(...)), j'ai développé un module pour Apache 2.0 (oui, plus pour la v1.3 finalement).

Pour rappel, je cherchais un outil capable d'appliquer des transformations XSL à des documents XML dynamiques, avec un système de cache (pour les arbres XSLT parsés).

Le module est (évidement) disponible sous licence libre (GNU GPL).

L'adresse de mon site :
http://www.kisli.com/vxsl/(...)

En espérant que ça serve à d'autres personnes...
  • # Re: Apache 1.3 et PHP/XML/XSLT [SUITE ET FIN]

    Posté par  (site web personnel) . Évalué à 1.

    Connais tu le projet Axkit (www.axkit.org) ?
    Il permet de générer du xml a la volée avec entre autre l'utilisation de XSP avec perl (plus exactement le mod_perl d'apache) qui est un langage permettant le mélange de code (perl ici, java pour cocoon dont axkit a été inspiré) et d'XML et la création de taglib (libraire de tag associé a un namespace permettant de générer du xml en général).

    Il te permet aussi de transformer via un ou plusieurs processeur XSLT ou XSP définit à la volée, ton flux xml.

    L'avantage du mod_perl est la persistance en mémoire du bitcode perl (ou quelquechose en aprochant de cette notion) et de tes variables gloables.

    il utilise un systeme de cache, mais je crois bien que qu'il ne concerne que le résutat des transformations (donc dans le cas de la génération dynamique de code xml, il est bien souvent non utilisé).

    La persistance des arbres xslt parrait très interresante, si elle n'est pas integré à ce projet, penses tu qu'il soit réalisable de l'integrer ? Quel seront les gains ? car de toute facon tu devra toujours parser ton docment xml pour créer l'arbre corespondant, vue que sa génération est dynamique ? et ce qui prend le plus de temps dans tout ça, c'est bien la transformation XSLT proprement dite non ?

    Hum ... si ce projet t'interesse, désolé de ne pas t'en avoir parlé plus tôt :)
    • [^] # Re: Apache 1.3 et PHP/XML/XSLT [SUITE ET FIN]

      Posté par  (site web personnel) . Évalué à 1.

      Connais tu le projet Axkit (www.axkit.org) ?

      Oui, j'étais tombé dessus hier après quelques recherches sur Google.

      il utilise un systeme de cache, mais je crois bien que qu'il ne concerne que le résutat des transformations (donc dans le cas de la génération dynamique de code xml, il est bien souvent non utilisé).

      C'est exactement pour cela que je ne l'avais pas retenu.
      De plus, je cherchais quelque chose de pas trop lourd (mon module compte moins de 400 lignes de C et il faut ce que je lui demande, et uniquement cela).

      La persistance des arbres xslt parrait très interresante, si elle n'est pas integré à ce projet, penses tu qu'il soit réalisable de l'integrer ? Quel seront les gains ?

      Je n'ai fait aucun test de performance, mais AMHA c'est toujours ça de gagné. J'ai également oublié de préciser que mes feuilles de styles XSL sont assez volumineuses et comportent des inclusions (< xsl:import >), donc dans ce cas, c'est pas négligeable.
  • # Re: Apache 1.3 et PHP/XML/XSLT [SUITE ET FIN]

    Posté par  . Évalué à 1.

    Quel est l'avantage de générer du xml puis d'appliquer une transformation XSL(T) par rapport à de l'XHTML / CSS ?
    • [^] # Re: Apache 1.3 et PHP/XML/XSLT [SUITE ET FIN]

      Posté par  (site web personnel) . Évalué à 1.

      Le couple XML/XSLT a quand même de sérieux avantages sur XHTML/CSS :
      • séparation données/traitement/présentation (boucles, tris dynamiques...) alors qu'en HTML/CSS seule la séparation données/présentation est possible.

        Je m'explique : mes fichiers PHP produisent des documents XML. Le jour où je veux servir autre chose que du format (X)HTML, il y aura quand même moins de problème pour la conversion (les feuilles de styles XSLT prennent en charge n'importe quel type de transformation : XML -> XHTML, XML -> texte brut, etc...).
      • le XML est un format standard et facilement exportable/importable à partir de nombreuses applications (la conversion (X)HTML est plus difficile),
      • le XSLT permet de scripter certaines parties de la présentation.
      • [^] # Re: Apache 1.3 et PHP/XML/XSLT [SUITE ET FIN]

        Posté par  . Évalué à 1.

        Ouép c'est vrai :)

        Et c'est pas lent ? J'ai surtout fait de l'XML / XSLT en java donc bon ...
        • [^] # Re: Apache 1.3 et PHP/XML/XSLT [SUITE ET FIN]

          Posté par  . Évalué à 1.

          Je me réponds à moi meme, c'est forcement plus lent que de générer directement de 'lXhtml / Css vu qu'il y'a une étape en plus.
          • [^] # Re: Apache 1.3 et PHP/XML/XSLT [SUITE ET FIN]

            Posté par  (site web personnel) . Évalué à 1.

            Je me réponds à moi meme, c'est forcement plus lent que de générer directement de 'lXhtml / Css vu qu'il y'a une étape en plus.

            Oui, mais c'est le prix à payer pour les avantages.

            C'est comme plein de choses : les langages compilés vs. interprétés, les pages statiques vs. dyamiques, un code clair et maintenable vs. un code illisible mais optimisé... :-)

            Au fur et à mesure que la puissance des machines augmente, on peut se permettre d'utiliser des technologies de plus en plus gourmandes mais qui facilitent énormément le travail des développeurs.

            En 1960, on ne programmait pas en Java car les machines n'étaient pas assez puissantes ; en 2000 on privilégie en général la facilité/rapidité de développement et la fabilité des logiciels par rapport aux performances (sauf applications critiques).
  • # Re: Apache 1.3 et PHP/XML/XSLT [SUITE ET FIN]

    Posté par  . Évalué à 1.

    Pour associer un fichier XSL, doit-on forcément écrire <?xml-stylesheet href="..."?> dans le fichier XML produit dynamiquement ?

    Si oui, cela me paraît assez gênant. Dans ce cas, il pourrait être intéressant de travailler avec mod_negotiation pour comparer les XSLT disponibles avec les types recherchés par la négociation HTTP.

    En tout cas c'est très utile, et c'est l'occasion d'utiliser les filtres d'apache 2 qui enchaînent les transformations (en voilà une nouveauté qu'elle est bien !).
    • [^] # Re: Apache 1.3 et PHP/XML/XSLT [SUITE ET FIN]

      Posté par  (site web personnel) . Évalué à 1.

      Pour associer un fichier XSL, doit-on forcément écrire < ?xml-stylesheet href="..."? > dans le fichier XML produit dynamiquement ?

      Pour le moment oui, mais s'il y a d'autres solutions...

      ...il pourrait être intéressant de travailler avec mod_negotiation pour comparer les XSLT disponibles avec les types recherchés par la négociation HTTP.

      ...alors justement, pourrais-tu m'en dire un peu plus à ce sujet ? Un lien peut-être ?

      En tout cas c'est très utile, et c'est l'occasion d'utiliser les filtres d'apache 2 qui enchaînent les transformations (en voilà une nouveauté qu'elle est bien !).

      J'ai eu beaucoup de mal à écrire ce module. Les API sont très mal documentées (pour le moment, j'espère) et le peu d'exemples que j'ai trouvés sur le net aussi.

      Finalement, ce sont les sources d'Apache et de ses modules (et en particulier celles de mod_include et mod_deflate).

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.