UP PREVIOUS NEXT   Technologies Internet et Education, © TECFA
  3. Simple XML + XSLT vers HTML

3. Simple XML + XSLT vers HTML

Important: Il faut utiliser une définition correcte de stylesheets.
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

et non pas:

<xsl:stylesheet xmlns:xsl="http://www.w3.org/XSL/Transform/1.0">

.... problème no #1 mentionné dans les forums quand le processeur XSL refuse de coopérer

3.1 Produire du html statique avec XT/XP sous Windows

set path=%PATH%;C:\Progra~1\XTWin
  1. Vous exécutez XT depuis une fenêtre DOS comme suit:

xt source stylesheet result

par exemple: xt test.xml test.xsl test.html

3.2 Les outils Java du Projet Apache

A. Les processeurs XSLT: Xalan et LotusXSL

B. Alternatives

C. A télécharger

(1)Il faut déjà un JDK (1.1x ou 2x)
(2) Un parseur XML

Note: d'autres parseurs (comme XT ou xml4j peuvent marcher aussi, mais c'est déconseillé)

(3) Un processeur XML, à choix:
Note pour ceux qui veulent juste obtenir les *.jar avec les classes, voir dans:

D. Installation

(1) Désarchiver/décomprimer les archives téléchargées qq part
  • Il faut décomprimer les fichiers *.jar avec la commande suivante (à taper dans une fenêtre unix/dos):
jar tvf <fichier>          (permet de visualiser le contenu !)
jar xvf xalan_0_19_2.jar   (installe l'archive)
  • jar est distribué avec les JDK. Si votre OS ne le trouve pas, tapez le chemin complet, ou mettez le répertoire JDKxx/bin dans votre path, out copiez juste le programme jar.exe à un endroit que le chemin trouve ......
  • Important (!): *.jar est souvent utilise à la place de *.zip ou *.gz dans le monde Java. A ne pas confondre: Archives *.jar qui contiennet tout un package de soft, doc et exemple et les fichier *.jar qui contiennent juste les classes java du package.
  • Jar décomprime aussi les fichiers *.zip (utilisateurs Solaris et Linus)
(2) Identifier ou se trouvent les fichiers *.jar qui contiennent les packages

Exemple (Suns/Tecfa):

/local/java/classes/xerces/xerces.jar
/local/java/classes/xalan/xalan.jar
  • Vous pouvez les copier dans un endroit central ou vous garder vos *.jar

3.3 Produire du html statique avec Xalan/LotusXSL

(1) Installation: définir path et classpath, le shell (unix/dos/..) doit trouver:
  1. java (la Java VM, par ex. celle distribuée avec les JDK de SUN)
  2. les classes de xerces et xalan
  3. Voir le module " java-util " si nécessaire.
(2) Voici la syntaxe "ligne de commandes" de Xalan

java org.apache.xalan.xslt.Process -IN foo.xml -XSL foo.xsl - OUT foo.html

Arguments supplémentaires (pleins d'autres, voir la doc !)

-VALIDATE (fait une validation, off par défaut !!)

-TEXT (output text only)

Exemple 3-1: Utilisation de Xalan en ligne de commande

source /local/env/java12-xalan.csh
    java org.apache.xalan.xslt.Process -IN proj11.xml -XSL project.xsl -OUT test.html
    java org.apache.xalan.xslt.Process -validate -IN proj11.xml -XSL project.xsl -OUT test.html
(3) Pour simplifier la vie il faut se faire un script qui fait (1) + (2)

Pour Unix/Tecfa, tapez:

xslate -IN proj11.xml -XSL project.xsl -OUT test.html

Pour KroSoft/Dos :

@echo off
rem ***********************************
rem * Script ecrit par Olivier Clavel *
rem * clavelo8@etu.unige.ch           *
rem ***********************************
 
echo **Traduction de fichier XML vers HTML en utilisant XSL**
rem - *** Attention : vous devez adapter ce classpath a votre environnement. ***
rem - dans le cas présent, les fichiers sont pris sur un drive réseau H: monté sur /comm a tecfa
     set CLASSPATH=H:\tecfa\www\guides\java\classes\xerces.jar;H:\tecfa\www\guides\java\classes\xalan.jar
rem - on fait un echo de la commande avant de l'exécuter
echo Vous executez la commande : java org.apache.xalan.xslt.Process %1 %2 %3 %4 %5 %6 %7 %8 %9
rem - on pipe java a more pour voir les instruction renvoyées si elles font plus d'une page
java org.apache.xalan.xslt.Process %1 %2 %3 %4 %5 %6 %7 %8 %9 | more
 

3.4 XML/XSL vers HTML on the fly avec un servlet

NOTE: depuis le 5/2000 ce service est hors usage, utilisez Cocoon à la place

 


UP PREVIOUS NEXT -- TIE