Test de Cocoon

Bien que les exemples Cocoon soient un bon moyen de vérifier que l’installation s’est bien passée, vous voudrez certainement mettre vos propres documents dans le système. À la différence des autres outils permettant de créer des applications, que nous avons abordés dans les derniers chapitres, la plupart des utilisations de Cocoon commencent par publier des informations plutôt que d’interagir avec les utilisateurs. L’exemple suivant est une première étape vers la publication de vos propres informations, bien que vous aurez besoin d’un livre sur XSLT pour apprendre comment en tirer le maximum.

Nous commencerons par un document XML simple, contenant une phrase de test :

<?xml version="1.0"?>

<phrase>

test, test, 1... 2... 3...

</phrase>

Sauvez ce document sous le nom test.xml dans le répertoire principal de Cocoon. Puis, nous aurons besoin d’une feuille de style XSLT, que nous sauvegarderons sous le nom test2html.xsl dans le même répertoire. Elle a pour but de transformer le document « phrase » en un document HTML :

<?xml version="1.0"?>

<xsl:stylesheet version="1.0"

xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

 

<xsl:template match="phrase">

<html>

<head><title><xsl:value-of select="." /></title></head>

<body><h1><xsl:value-of select="." /></h1></body>

</html>

</xsl:template>

 

</xsl:stylesheet>

Cette feuille de style crée un document HTML lorsqu’elle rencontre un élément phrase et utilise son contenu (désigné par <xsl:value-of select="."/>, qui renvoie le contenu du contexte courant) pour remplir le titre du document HTML ainsi qu’un en-tête de section dans le corps de ce document. Ce qui apparaissait une fois dans le document XML apparaîtra donc deux fois dans le résultat HTML.

Maintenant que nous disposons de toutes les pièces dont a besoin Cocoon pour produire du HTML, nous devons encore lui indiquer le but de ces composantes. Cocoon utilise une site map, stockée dans le fichier XML sitemap.xmap, pour gérer tous ses traitements. Un traitement est défini par un pipeline, qui peut être une combinaison sophistiquée de feuilles de style et de code mais qui, dans notre cas, se contente de fournir un toit à un document XML et à sa transformation. En ajoutant un seul élément map:pipeline à la fin de l’élément map:pipelines, nous pouvons ajouter notre test à la liste des pipelines exécutés par Cocoon.

<map:pipeline>

<map:match pattern="test" />

<map:generate src="test.xml" />

<map:transform src="test2html.xsl" />

<map:serialize />

</map:pipeline>

Ce pipeline correspondra à toutes les requêtes pour « test » reçues par Cocoon. Cela signifie que nous verrons le résultat sur http://localhost/cocoon/test. Il prendra le document test.xml, le transformera à l’aide de la feuille de style test2html.xsl, puis sérialisera le document pour le délivrer à l’aide de son sérialisateur HTML standard. Lorsque vous aurez sauvegardé le fichier sitemap.xmap modifié, Cocoon sera prêt à afficher notre test -- il n’est pas nécessaire de redémarrer Cocoon ou Apache.

Si vous faites pointer un navigateur vers http://localhost/cocoon/test, vous verrez apparaître le résultat de la transformation. Un examen du code source révèle que Cocoon a travaillé et que son sérialisateur HTML a même ajouté un méta-contenu :

<html><head>

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>test,

test, 1... 2... 3...</title></head>

<body>

<h1>

test, test, 1... 2... 3...

</h1>

</body></html>

Il ne s’agit là que d’un très petit avant-goût des possibilités de Cocoon, mais ces bases montrent que vous pouvez l’utiliser avec Tomcat sans devoir modifier profondément votre installation Apache.

Apache La référence
titlepage.xhtml
APACHE-la-REF_split_000.htm
APACHE-la-REF_split_001.htm
APACHE-la-REF_split_002.htm
APACHE-la-REF_split_003.htm
APACHE-la-REF_split_004.htm
APACHE-la-REF_split_005.htm
APACHE-la-REF_split_006.htm
APACHE-la-REF_split_007.htm
APACHE-la-REF_split_008.htm
APACHE-la-REF_split_009.htm
APACHE-la-REF_split_010.htm
APACHE-la-REF_split_011.htm
APACHE-la-REF_split_012.htm
APACHE-la-REF_split_013.htm
APACHE-la-REF_split_014.htm
APACHE-la-REF_split_015.htm
APACHE-la-REF_split_016.htm
APACHE-la-REF_split_017.htm
APACHE-la-REF_split_018.htm
APACHE-la-REF_split_019.htm
APACHE-la-REF_split_020.htm
APACHE-la-REF_split_021.htm
APACHE-la-REF_split_022.htm
APACHE-la-REF_split_023.htm
APACHE-la-REF_split_024.htm
APACHE-la-REF_split_025.htm
APACHE-la-REF_split_026.htm
APACHE-la-REF_split_027.htm
APACHE-la-REF_split_028.htm
APACHE-la-REF_split_029.htm
APACHE-la-REF_split_030.htm
APACHE-la-REF_split_031.htm
APACHE-la-REF_split_032.htm
APACHE-la-REF_split_033.htm
APACHE-la-REF_split_034.htm
APACHE-la-REF_split_035.htm
APACHE-la-REF_split_036.htm
APACHE-la-REF_split_037.htm
APACHE-la-REF_split_038.htm
APACHE-la-REF_split_039.htm
APACHE-la-REF_split_040.htm
APACHE-la-REF_split_041.htm
APACHE-la-REF_split_042.htm
APACHE-la-REF_split_043.htm
APACHE-la-REF_split_044.htm
APACHE-la-REF_split_045.htm
APACHE-la-REF_split_046.htm
APACHE-la-REF_split_047.htm
APACHE-la-REF_split_048.htm
APACHE-la-REF_split_049.htm
APACHE-la-REF_split_050.htm
APACHE-la-REF_split_051.htm
APACHE-la-REF_split_052.htm
APACHE-la-REF_split_053.htm
APACHE-la-REF_split_054.htm
APACHE-la-REF_split_055.htm
APACHE-la-REF_split_056.htm
APACHE-la-REF_split_057.htm
APACHE-la-REF_split_058.htm
APACHE-la-REF_split_059.htm
APACHE-la-REF_split_060.htm
APACHE-la-REF_split_061.htm
APACHE-la-REF_split_062.htm
APACHE-la-REF_split_063.htm
APACHE-la-REF_split_064.htm
APACHE-la-REF_split_065.htm
APACHE-la-REF_split_066.htm
APACHE-la-REF_split_067.htm
APACHE-la-REF_split_068.htm
APACHE-la-REF_split_069.htm
APACHE-la-REF_split_070.htm
APACHE-la-REF_split_071.htm
APACHE-la-REF_split_072.htm
APACHE-la-REF_split_073.htm
APACHE-la-REF_split_074.htm
APACHE-la-REF_split_075.htm
APACHE-la-REF_split_076.htm
APACHE-la-REF_split_077.htm
APACHE-la-REF_split_078.htm
APACHE-la-REF_split_079.htm
APACHE-la-REF_split_080.htm
APACHE-la-REF_split_081.htm
APACHE-la-REF_split_082.htm
APACHE-la-REF_split_083.htm
APACHE-la-REF_split_084.htm
APACHE-la-REF_split_085.htm
APACHE-la-REF_split_086.htm
APACHE-la-REF_split_087.htm
APACHE-la-REF_split_088.htm
APACHE-la-REF_split_089.htm
APACHE-la-REF_split_090.htm
APACHE-la-REF_split_091.htm
APACHE-la-REF_split_092.htm
APACHE-la-REF_split_093.htm
APACHE-la-REF_split_094.htm
APACHE-la-REF_split_095.htm
APACHE-la-REF_split_096.htm
APACHE-la-REF_split_097.htm
APACHE-la-REF_split_098.htm
APACHE-la-REF_split_099.htm
APACHE-la-REF_split_100.htm
APACHE-la-REF_split_101.htm
APACHE-la-REF_split_102.htm
APACHE-la-REF_split_103.htm
APACHE-la-REF_split_104.htm
APACHE-la-REF_split_105.htm
APACHE-la-REF_split_106.htm
APACHE-la-REF_split_107.htm
APACHE-la-REF_split_108.htm
APACHE-la-REF_split_109.htm
APACHE-la-REF_split_110.htm
APACHE-la-REF_split_111.htm
APACHE-la-REF_split_112.htm
APACHE-la-REF_split_113.htm
APACHE-la-REF_split_114.htm
APACHE-la-REF_split_115.htm
APACHE-la-REF_split_116.htm
APACHE-la-REF_split_117.htm
APACHE-la-REF_split_118.htm
APACHE-la-REF_split_119.htm
APACHE-la-REF_split_120.htm
APACHE-la-REF_split_121.htm
APACHE-la-REF_split_122.htm
APACHE-la-REF_split_123.htm
APACHE-la-REF_split_124.htm
APACHE-la-REF_split_125.htm
APACHE-la-REF_split_126.htm
APACHE-la-REF_split_127.htm
APACHE-la-REF_split_128.htm
APACHE-la-REF_split_129.htm
APACHE-la-REF_split_130.htm
APACHE-la-REF_split_131.htm
APACHE-la-REF_split_132.htm
APACHE-la-REF_split_133.htm
APACHE-la-REF_split_134.htm
APACHE-la-REF_split_135.htm
APACHE-la-REF_split_136.htm
APACHE-la-REF_split_137.htm
APACHE-la-REF_split_138.htm
APACHE-la-REF_split_139.htm
APACHE-la-REF_split_140.htm
APACHE-la-REF_split_141.htm
APACHE-la-REF_split_142.htm
APACHE-la-REF_split_143.htm
APACHE-la-REF_split_144.htm
APACHE-la-REF_split_145.htm
APACHE-la-REF_split_146.htm
APACHE-la-REF_split_147.htm
APACHE-la-REF_split_148.htm
APACHE-la-REF_split_149.htm
APACHE-la-REF_split_150.htm
APACHE-la-REF_split_151.htm
APACHE-la-REF_split_152.htm
APACHE-la-REF_split_153.htm
APACHE-la-REF_split_154.htm
APACHE-la-REF_split_155.htm
APACHE-la-REF_split_156.htm
APACHE-la-REF_split_157.htm
APACHE-la-REF_split_158.htm
APACHE-la-REF_split_159.htm
APACHE-la-REF_split_160.htm
APACHE-la-REF_split_161.htm
APACHE-la-REF_split_162.htm
APACHE-la-REF_split_163.htm
APACHE-la-REF_split_164.htm
APACHE-la-REF_split_165.htm
APACHE-la-REF_split_166.htm
APACHE-la-REF_split_167.htm
APACHE-la-REF_split_168.htm
APACHE-la-REF_split_169.htm
APACHE-la-REF_split_170.htm
APACHE-la-REF_split_171.htm
APACHE-la-REF_split_172.htm
APACHE-la-REF_split_173.htm
APACHE-la-REF_split_174.htm