IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

XSL/XSLT/XPATH XML Discussion :

[XSL] Génération de code C++


Sujet :

XSL/XSLT/XPATH XML

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    228
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 228
    Points : 102
    Points
    102
    Par défaut [XSL] Génération de code C++
    Bonjour à tous,

    Je viens de lire cet article http://www.developer.com/xml/article.php/1562561 et j'ai quelques questions.

    Pour commencer un petit résumé s'impose (pour ceux qui n'irons pas lire l'article en question), l'idée est de générer du code compilable (C++ dans mon cas) via l'utilisation de XSL et de <xsl:output method="text"/>.

    Ma question est plutot d'ordre 'conceptuelle' le code source (C++) que je dois génrer à t'il sa place dans un fichier XSL, ou y'a t'il une manière de faire autrement pour faire de la génération de code en utilisant XSL ?

    Merci.

  2. #2
    Membre éprouvé Avatar de alain.couthures
    Profil pro
    Gérant
    Inscrit en
    Avril 2007
    Messages
    902
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Gérant

    Informations forums :
    Inscription : Avril 2007
    Messages : 902
    Points : 1 247
    Points
    1 247
    Par défaut
    Je commence à avoir une bonne expérience en génération de code avec XSLT (C#, Javascript, CSS) et, je peux même le dire, c'est ce que je préfère faire avec !

    XSLT est un langage de compilation au sens même du terme : traduire un langage en un autre. Pas plus tard que la semaine dernière, sans savoir que c'est exactement ce que je fais dans mon projet XSLTForms, Michael Kay, l'inventeur de XSLT 2.0, me soumettait l'idée de compiler du XForms en XHTML+Javascript à l'aide uniquement de XSLT...

    Tout d'abord, il faut savoir que XSLT génère très bien du texte. Cela veut dire que la feuille XSLT comporte des instructions dans le langage cible aggrémentées de parties variables générées.

    Pour plus de souplesse, il m'est arrivé souvent de passer par une notation XML intermédiaire. Dans ce cas, il y a une première feuille XSLT qui génère les instructions en notation XML et une deuxième feuille XSLT uniquement chargée de reprendre en format texte les instructions en en gérant la syntaxe (; à la fin,...) et l'indentation.

    J'ai toujours pris soin de laisser les expressions du langage au format texte dans cette notation XML, même si une représentation arborescente est évidemment possible, à la manière de XSLT qui utilise XPath qui n'est pas une notation XML. Il vaut mieux que cette notation reste lisible.

    S'il y a beaucoup d'instructions à simplement recopier, il est toujours possible de les mettre dans un document XML (XSLT 1.0 ne sait lire que des documents XML) pour les insérer en une seule instruction. On peut aussi définir son propre modèle pour repérer par des balises personnelles les endroits où le code généré doit être inséré.

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    228
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 228
    Points : 102
    Points
    102
    Par défaut
    Merci de ce retour. Je me demandais si l'utilisation de XSLT pour générer du code était une lubie ou une vraie possibilité d'utiliser XSLT, il semble que la génération de code via XSLT dépasse la simple lubie :p

    Il me reste cependant une interrogation, si je dois générer plusier fichiers sources à partir de mon unique document XML (contenant les infos concernant le code que je dois générer), la bonne pratique est de faire une feuille pour chacun des fichiers générés ou alors une seule feuille XSLT peut générer une multitude de fichiers source (C++) ?

  4. #4
    Membre éprouvé Avatar de alain.couthures
    Profil pro
    Gérant
    Inscrit en
    Avril 2007
    Messages
    902
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Gérant

    Informations forums :
    Inscription : Avril 2007
    Messages : 902
    Points : 1 247
    Points
    1 247
    Par défaut
    XSLT 1.0 ne peut générer qu'un seul fichier alors qu'XSLT 2.0 peut en générer plusieurs.

    Malheureusement, il n'existe qu'une implémentation vraiment fiable de XSLT 2.0 (celle de Michael Kay, bien sûr) qui tourne sur Java et sur .Net (en s'appuyant sur une émulation Java...). Michael Kay propose maintenant différents versions dont certaines payantes.

    De toute façon, plusieurs feuilles peuvent partager des templates communs (à l'aide de xsl:import) et en distinguer plusieurs devrait faciliter leur lisibilité.

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    228
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 228
    Points : 102
    Points
    102
    Par défaut
    Et bien c'est parfait
    Merci pour ces précieuses informations

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Génération de code & bpm4struts
    Par k4eve dans le forum BPM
    Réponses: 3
    Dernier message: 08/03/2007, 15h12
  2. génération de code avec xsl
    Par clement42 dans le forum XSL/XSLT/XPATH
    Réponses: 1
    Dernier message: 22/05/2006, 16h15
  3. [UML] génération de code avec omondo.uml
    Par RENAULT dans le forum Eclipse Java
    Réponses: 3
    Dernier message: 31/10/2003, 13h14
  4. [Lomboz] Génération de code pour EJB
    Par paikan dans le forum Eclipse Java
    Réponses: 2
    Dernier message: 09/07/2003, 14h28

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo