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 :

[XSLT][JSP] solution technique pour cas typique


Sujet :

XSL/XSLT/XPATH XML

  1. #1
    Candidat au Club
    [XSLT][JSP] solution technique pour cas typique
    Salut,
    Je dois développer une appli mais je n'arrive pas à me décider pour la solution technique, je fais donc appel à votre savoir faire pour m'aiguiller:

    J'ai des données dans un page XML, et je dois présenter ces données dans un browser IE.
    la présentation m'oblige a executer des requetes sur ces données, la technologies qui me semblait la plus adpatée
    est le XLS. Cependant avec cette solution, je me heurte a plusieurs problèmes :
    - 1 page xml = 1 page xsl , hors j'ai plusieurs pages XSL (1 par requete) pour la même page XML.
    - 1 de mes pages XSL effectue une requete avec un filtre sur une valeur qui est dynamique, hors le XSL est statique,
    d'ou l'idée d'utiliser du jsp pour générer la page xsl avec la bonne valeur de filtre.

    La question générale est en fait :
    Comment générer l'affichage dans un browser IE du résultat d'une requête dynamique sur des données XML.
    Il me semble que le JSP est indiqué mais je ne sais pas comment faire car je ne connais pas la techno.

    qu'en pensez vous chers spécialistes ? :-)
    Merci...

  2. #2
    Membre du Club
    Je c pas si ma solution est la plus adapté... Mais en fait je ne c pas comment tu fais tourner tes pages XML... Mais en fait a la fac on a installer Tomcat(serveur d'appli) et Cocoon et avec ca tu peu faire pas de truc... Comme créé d pages XML dynamiquement a partir d'une base de données... Mais l'installation de tout ca est un peu longue qd on ne connais pas...
    Bonne chance...

    P.S: je pense que pour ton k il y a de meilleurs solution mais s'en est une...

    [@+]
    Qwerty roule n'amasse pas mousse

  3. #3
    Membre confirmé
    je reprend dans l'ordre tes problèmes :

    1)un document XML n'est pas lié à une seule feuille xsl. Tu dois penser ca car dans ton document XML il y a une référence vers une feuille xsl
    Attention c'est une facilité afin de faire effectuer la transformation directement par IE. Mais dans la plupart des cas (99%) on ne doit pas utiliser IE pour une raison simple : un document XML représente des données structurées indépendantes de la facon dont on présente ces données. Donc pas de référence vers un fichier xsl dans un xml (je me répète je sais)!

    Une solution est de créer une page statique transform.html contenant le script de transformation en javascript ou vbscript. Cf. l'api msxml. Cette solution est à utiliser si ton document XML est statique.
    Maintenant si ton document XML est généré, tu dois faire la transformation dans la JSP. Pour cela utilise l'api Xalan d'Apache.

    2)tu peux fournir des paramètres à une feuille xsl, pour cela tu déclares ton ou tes paramètres : <xsl:param name="champ"/> ensuite tu peux utiliser ce paramètre comme une variable : <xsl:value-of select="$champ"/>
    Le passage de paramètres n'est possible qu'avec l'api msxml, d'ou l'utilité du 1). Donc inutile de faire générer la feuille xsl par une page jsp (à moins d'aimer les usines à gaz)

    Ta question est donc de présenter le résultat d'une requete JDBC? Voici le déroulement :
    -requete JDBC, obtention d'un resultset
    -parcours du resultSet et création d'une chaine de caractère contenant les données que tu formattes en XML.
    -transformation de cette chaine avec Xalan en utilisant ta feuille XSL. tu obtiens une chaine formattée en html qui représente ta page.
    -la JSP envoie cette chaine au browser qui l'affiche.

    ta page html pourra être de nouveau un formulaire qui renverra l'ordre d'aller chercher ou mettre à jour des données, etc...

    Inspires-toi du design-pattern MVC : une servlet controleur, tes vues avec des JSP, le modèle sous forme de classe java...
    "Les gens normaux croient que si ca marche, c'est qu'il n'y a rien à reparer. Les ingénieurs croient que si ca marche, c'est que ca ne fait pas encore assez de choses."
    --Scott Adams

  4. #4
    Membre confirmé
    La solution Cocoon me parait lourde (mais je ne connais pas la taille de l'appli), bien que très efficace dans le domaine et présentant l'avantage d'être exécutée côté serveur, pouvant être mise en place sans connaissance préalable du JSP. Il suffit de configurer les pipelines correctement.

    L'utilisation d'une transformation côté Client, surtout par JS/VBS est à proscrire, à moins d'être certain de la version du navigateur client, les comportements pouvant varier d'un patch de sécurité à l'autre...