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

XML/XSL et SOAP Discussion :

Cascade de transformations XSLT


Sujet :

XML/XSL et SOAP

  1. #1
    Membre habitu�
    Inscrit en
    Ao�t 2007
    Messages
    11
    D�tails du profil
    Informations forums :
    Inscription : Ao�t 2007
    Messages : 11
    Par d�faut Cascade de transformations XSLT
    Bonjour tout le monde,

    Je suis entrain de travailler sur la partie mails automatis�s d'une application.
    Cela consiste � pr�-remplir un formulaire � partir de donn�es en base de donn�es, laisser quelques champs �ditables, puis � g�n�rer un fichier XML listant tous les champs utiles au mail.

    Pour plus de souplesse et de d'�volutivit�, j'ai pens� utiliser deux transformations XSLT. Je m'explique:
    -Exemple de XML g�n�r� par le formulaire:

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
     
    <racine>
      <typeMail>Prise de contact</typeMail>
      <numéroCommande>X8374</numéroCommande>
      <offre>euh</offre>
      <emailClient>blabla@blabla</emailClient>
      <nomContact>toto</nomContact>
    </racine>

    -A partir du XML g�n�r� par le formulaire, on cr�e � l'aide d'un premier fichier xsl un deuxi�me XML qui repr�sente le mail (je s�pare le formulaire du contenu "texte" du mail). Exemple:

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    <email>
      <emailClient>blabla@blabla</emailClient>
      <Entete>
           <titre> Prise de contact<titre>
           <objet> 
                 Bienvenue M. <donneeClient> toto </donneeClient>. Merci d'avoir souscrit à <donneeCommande>euh</donneeCommande>
           </objet>
      </Entete>
      <Corps>
           Votre numéro de commande est <donneeCommande>X8374</donneeCommande>
      </Corps>
    </email>

    - A partir de ce XML et � partir d'une deuxieme fiche XSL, on obtient un fichier html qui sera envoy� au Client. Ainsi le style de tous les mails ne sera contenu que dans un seul fichier et on peut le changer ais�ment.


    Ma premi�re question est: Est-ce une bonne fa�on de r�soudre mon probl�me?

    J'ai commenc� � tester la faisabilit� de la solution mais cela ne fonctionne pas automatiquement.

    Code XML de base

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    <?xml version="1.0" encoding="UTF-8"?>
    <?xml-stylesheet type="text/xsl" href="test.xsl" ?>
    <persons>
      <person username="JS1">
        <name>John</name>
        <family-name>Smith</family-name>
      </person>
      <person username="MI1">
        <name>Morka</name>
        <family-name>Ismincius</family-name>
      </person>
    </persons>
    Premier XSL

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
     
    <?xml version="1.0" encoding="UTF-8"?>
    <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
      <xsl:output method="xml" indent="yes"/>
     
      <xsl:template match="/persons">
    	<xsl:processing-instruction name="xml-stylesheet">type="text/xsl" href="test2.xsl"</xsl:processing-instruction>
        <root>
          <xsl:apply-templates select="person"/>
        </root>
      </xsl:template>
     
      <xsl:template match="person">
        <name username="{@username}">
          <xsl:value-of select="name" />
        </name>
      </xsl:template>
     
    </xsl:stylesheet>
    Deuxieme XSL:

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
     
    <?xml version="1.0" encoding="iso-8859-1"?>
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
     
     
    	<xsl:template match="/">
    			<html>
    				<head></head>
    				<body style="font-family:Verdana; font-size:18pt; color:green">
    					blablabla
    					<xsl:apply-templates />
    					blablabla
    				</body>
    			</html>
    	</xsl:template>
     
    	<xsl:template match="name">
    		<p style="font-family:Verdana; font-size:30pt; color:red">
    			blibli
    		</p>
    	</xsl:template>
     
    </xsl:stylesheet>

    Lorsque j'ouvre le premier XML j'obtient bien le XML suivant r�sultant de la premi�re transformation
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
     
    <?xml version="1.0" encoding="UTF-16"?>
    <?xml-stylesheet type="text/xsl" href="test2.xsl"?>
    <root>
    <name username="JS1">John</name>
    <name username="MI1">Morka</name>
    </root>
    et celui ci est bien transform� comme je veux par le deuxieme XSL, mais je suis oblig� de le faire manuellement.


    Comment faire en sorte que tout se fasse tout seul sans utiliser de script ou de code suppl�mentaire? Est ce un probl�me au niveau des HREF? Peut etre le deuxieme XML est stock� dans un dossier temporaire et du coup ne voit pas le deuxieme XSL?

    Merci beaucoup d'avance pour votre aide

    Seydou

  2. #2
    Membre habitu�
    Inscrit en
    Ao�t 2007
    Messages
    11
    D�tails du profil
    Informations forums :
    Inscription : Ao�t 2007
    Messages : 11
    Par d�faut
    Vous pouvez me dire hein, si ma question est stupide je le prendrais pas mal

  3. #3
    Mod�rateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 584
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 584
    Par d�faut
    Hello,

    Stupide je ne sais pas, mais tu utilises quoi pour faire ta transformation ?

    A priori je ne vois pas pourquoi ce programme d�ciderait de faire une autre transformation juste apr�s, juste parce que tu aurais eu l'id�e de produire <?xsl-stylesheet?> dans le r�sultat.

    Logiquement il vaudrait mieux faire la transformation en une seule passe, �a t'apporte quelque chose de ne pas le faire ?
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  4. #4
    Membre habitu�
    Inscrit en
    Ao�t 2007
    Messages
    11
    D�tails du profil
    Informations forums :
    Inscription : Ao�t 2007
    Messages : 11
    Par d�faut
    �a me permet de ne pas avoir a changer tous les xslt des mails juste parce que je veux changer la police: un XSLT pour chaque mail et un XSLT unique (ou pas d'ailleurs) pour le style.

    Allez apparemment c'est pas possible. Du coup j'h�site entre soit mettre les donn�es du mail directement dans le premier XML, soit faire les transformations directement en javascript dans la page HTML. Le truc c'est que j'apporte une micro�volution � un gros logiciel qui existe d�j� et je sais pas exactement ce qui se passe derri�re. J'ai un compte admin qui me permet de modifier les XSLT des mails, fin. Donc le moins ya de choses a changer dans ce que je vais proposer, le mieux c'est. Et je propose a mon maitre de stage, qui lui discute avec la MOE. J'ai pas un lien direct avec eux. C'est pour ca que je ne voulais pas toucher au XML de base. Ma solution me permettais de leur dire j'ai une solution, faut juste rajouter un XSLT s�par� pour le style et ca tourne tout seul, rien a changer.. et j'aurais fait toutes les modifs qu'il faut.

    Apr�s je sais que pour faire �voluer un SI faut partir de la base et pas rajouter des briques au fur et � mesure sans vision d'ensemble (#bonEleve), mais bon, c'est juste des mails..

    EDIT: Pour r�pondre � ta question, pour l'instant j'utilise le navigateur pour tester. C'est vrai que c'est une question pertinente � leur poser thanks

Discussions similaires

  1. transformation xslt
    Par yos dans le forum XSL/XSLT/XPATH
    R�ponses: 3
    Dernier message: 05/07/2005, 16h43
  2. transformation xslt
    Par yos dans le forum XSL/XSLT/XPATH
    R�ponses: 2
    Dernier message: 28/06/2005, 16h46
  3. xhtml-->xml transformation xslt
    Par yos dans le forum XSL/XSLT/XPATH
    R�ponses: 10
    Dernier message: 15/06/2005, 15h23
  4. xhtml->xml transformation xslt
    Par yos dans le forum XSL/XSLT/XPATH
    R�ponses: 6
    Dernier message: 14/06/2005, 11h17
  5. [XSLT] R�cup�ration de la transformation Xslt
    Par Pignoufy dans le forum Format d'�change (XML, JSON...)
    R�ponses: 4
    Dernier message: 06/04/2005, 15h11

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