Server-side XML. PAS FINI... mais ok pour un début. Originaux. Auteurs et version. Prérequis: Java de base, servlets, GUI et XML



Documents pareils
La base de données XML exist. A. Belaïd

XML par la pratique Bases indispensables, concepts et cas pratiques (3ième édition)

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

TP1. Outils Java Eléments de correction

PHP et mysql. Code: php_mysql. Olivier Clavel - Daniel K. Schneider - Patrick Jermann - Vivian Synteta Version: 0.9 (modifié le 13/3/01 par VS)

Généralités. javadoc. Format des commentaires. Format des commentaires. Caractères spéciaux. Insérer du code

Projet Java EE Approfondi

Faculté de Génie Chaire industrielle en infrastructures de communication. La technologie XML. Wajdi Elleuch

BIRT (Business Intelligence and Reporting Tools)

Module BD et sites WEB

Thierry BOULANGER. par la pratique. Bases indispensables Concepts et cas pratiques XML. 3 ième édition. Nouvelle édition

Architectures web/bases de données

INTERNET est un RESEAU D ORDINATEURS RELIES ENTRE EUX A L ECHELLE PLANETAIRE. Internet : interconnexion de réseaux (anglais : net = réseau)

JavaServer Pages (JSP)

Utilisation de Jakarta Tomcat

Introduction aux concepts d ez Publish

Module d anonymisation

Apache Cocoon Framework d'applications XML Sylvain Wallez Anyware Technologies

Web Tier : déploiement de servlets

les techniques d'extraction, les formulaires et intégration dans un site WEB

Serveur d'archivage 2007 Installation et utilisation de la BD exist

Configuration système requise

Avant-propos 1. Avant-propos Organisation du guide À qui s'adresse ce guide?...4

Table des matières PRESENTATION DU LANGAGE DS2 ET DE SES APPLICATIONS. Introduction

Hébergement de site web Damien Nouvel

Master d Informatique Corrigé du partiel novembre 2010

Programmation Web. Madalina Croitoru IUT Montpellier

Module Com231A - Web et Bases de Données Notion 5 : Formulaires et utilisation des Bases de Données avec PHP

Langage HTML (2 partie) <HyperText Markup Language> <tv>lt La Salle Avignon BTS IRIS</tv>

XML, PMML, SOAP. Rapport. EPITA SCIA Promo janvier Julien Lemoine Alexandre Thibault Nicolas Wiest-Million

A. Architecture du serveur Tomcat 6

Jahia. Guillaume Monnette École Ingénieurs 2000 Marne-La-Vallée IR3

Mise en œuvre des serveurs d application

Magento. Magento. Réussir son site e-commerce. Réussir son site e-commerce BLANCHARD. Préface de Sébastien L e p e r s

Serveur d'application Client HTML/JS. Apache Thrift Bootcamp

Introduction à Eclipse

TP JEE Développement Web en Java. Dans ce TP nous commencerons la programmation JEE par le premier niveau d une application JEE : l application web.

Application Web et J2EE

PHP 5.4 Développez un site web dynamique et interactif

Installation d un serveur HTTP (Hypertext Transfer Protocol) sous Débian 6

Environnements de développement (intégrés)

Les architectures 3-tiers Partie I : les applications WEB

Gestion de stock pour un magasin

Catalogue des Formations Techniques

1. La plate-forme LAMP

Table des matières L INTEGRATION DE SAS AVEC JMP. Les échanges de données entre SAS et JMP, en mode déconnecté. Dans JMP

L envoi d un formulaire par courriel. Configuration requise Mail Texte Mail HTML Check-list

Curriculum Vitae de Michel Casabianca

BOUCHARD Nicolas. GENTILE Pierre

SYNC FRAMEWORK AVEC SQLITE POUR APPLICATIONS WINDOWS STORE (WINRT) ET WINDOWS PHONE 8

Tous les autres noms de produits ou appellations sont des marques déposées ou des noms commerciaux appartenant à leurs propriétaires respectifs.

Votre premier projet Android

Activité sur Meteor. Annexe 1 : notion de client-serveur et notion de base de données

Serveur d Applications Web : WebObjects

INFORMATIQUE & WEB. PARCOURS CERTIFICAT PROFESSIONNEL Programmation de sites Web. 1 an 7 MODULES. Code du diplôme : CP09

PRODUCTS LIST (updated 11th January 2010)

Livre Blanc WebSphere Transcoding Publisher

Ingénieur Développement Nouvelles Technologies

SYSTÈMES D INFORMATIONS

HTML. Notions générales

Logiciel : GLPI Version : SYNCRHONISATION DE GLPI AVEC ACTIVE DIRECTORY. Auteur : Claude SANTERO Config. : Windows 2003.

1-Introduction 2. 2-Installation de JBPM 3. 2-JBPM en action.7

Bases Java - Eclipse / Netbeans

Réf. : S2I-CIELL2-PI-1.0. Version : 1.0. Auteurs : S2I-TOULON

Cours Plugin Eclipse. Université Paris VI / Parcours STL / Master I Pierre-Arnaud Marcelot - Iktek - pamarcelot@iktek.com

MANUEL D INSTALLATION de GEONETWORK sur un serveur LINUX CentOS 4

CRÉER, ROUTER ET GÉRER UNE NEWSLETTER, UN ING

Les sites Internet dynamiques. contact : Patrick VINCENT pvincent@erasme.org

< Atelier 1 /> Démarrer une application web

Formation Webase 5. Formation Webase 5. Ses secrets, de l architecture MVC à l application Web. Adrien Grand <jpountz@via.ecp.fr> Centrale Réseaux

Configurer la supervision pour une base MS SQL Server Viadéis Services

Sécurité des sites Web Pas un cours un recueil du net. INF340 Jean-François Berdjugin

Atelier Webmaster de site pédagogique: portails communautaires [Version 1.0]

Introduction à Linux (pour le HPC) «Linux 101» Présentation :

HTTP. Technologies du Web. Programmation Web côté serveur. Mastère spécialisé Management et nouvelles technologies, 16 novembre 2009

Europa. Développement JEE 5. avec Eclipse. K a r i m D j a a f a r. A v e c l a c o n t r i b u t i o n d e O l i v i e r S a l v a t o r i

Comparatif CMS. Laurent BAUREN S Bérenger VIDAL Julie NOVI Tautu IENFA

Tutoriel Création d une source Cydia et compilation des packages sous Linux

Architecture JEE. Objectifs attendus. Serveurs d applications JEE. Architectures JEE Normes JEE. Systèmes distribués

Présentation Windows Azure Hadoop Big Data - BI

Manuel d'installation

Tutoriel de formation SurveyMonkey

THEME PROJET D ELABORATION D UNE BASE DE DONNEES SOUS LE SERVEUR MYSQL

Le serveur HTTPd WASD. Jean-François Piéronne

Comment créer des rapports de test professionnels sous LabVIEW? NIDays 2002

Serveur Subversion Debian GNU/Linux

Programmation Internet Cours 4

Gestion des références bibliographiques. Comment simplifier la gestion des références bibliographiques?

Guide d installation de MySQL

Apache Camel. Entreprise Integration Patterns. Raphaël Delaporte BreizhJUG

Hébergement de sites Web

Compte Rendu d intégration d application

Introduction à. Oracle Application Express

TP1 : Initiation à Java et Eclipse

Survol des nouveautés

Transcription:

Server-side XML xml-ser Server-side XML Code: xml-ser PAS FINI... mais ok pour un début Originaux url: http://tecfa.unige.ch/guides/tie/html/xml-ser/xml-ser.html url: http://tecfa.unige.ch/guides/tie/pdf/files/xml-ser.pdf Auteurs et version Daniel K. Schneider Version: 0.9 (modifé le 20/2/01 par DKS) Prérequis: Java de base, servlets, GUI et XML Module technique précédent: xml-dom (utile pour néophytes) Module technique précédent: xml-tech (matière obligatoire!) Module technique précédent: xml-xslt (matière obligatoire!) Module technique suppl.: java-intro (pour XSP)

Server-side XML -. xml-ser-2 Module technique suppl.: java-jsp (pour XSP) Module technique suppl.: java-servl (pour XSP) Objectifs Server-side XML de base Off-line XML vers HTML Server-side XML avancé

Server-side XML - 1. Table des matières détaillée xml-ser-3 1. Table des matières détaillée 1. Table des matières détaillée 3 2. Introduction 4 3. Simple XML + XSLT vers HTML 5 3.1 Produire du html statique avec XT/XP sous Windows 6 3.2 Les outils Java du Projet Apache 7 3.3 Produire du html statique avec Xalan/LotusXSL 10 3.4 XML/XSL vers HTML on the fly avec un servlet 12 4. "Basics" du Cocoon Framework 13 4.1 Principe de base 13 4.2 XML + XSL simple 14 4.3 Interfaces SQL 16 4.4 LDAP Interface 17 4.5 Xinclude Processor 18 5. Cocoon - XSP 20 5.1 Anatomie d une simple page XSP 22 5.2 Traitement de formulaires (GET/POST) 23 5.3 SQL avec ESQL 25 6. A la main avec Java like real Women 28

Server-side XML - 2. Introduction xml-ser-4 2. Introduction Il s agit d un domaine nouveau Rien n est sûr, à part les standards XML et XSLT Certaines technologies simples (comme les servlets XSLT sont solides) Certains projets (comme Cocoon) nécessitent d abord une expérimentation ils véhiculent une nouvelle approche pour le Web-publishing (pas seulement des nouvelles technologies pour stocker/servir de l information) [ manque un overview ici... à faire rapidement en principe! ]

Server-side XML - 3. Simple XML + XSLT vers HTML xml-ser-5 3. Simple XML + XSLT vers HTML On utilise des programmes Java à Tecfa, il existe d autres possibilités qui ne sont pas mentionnées ici. Pour XSLT, voir le module xml-xslt. Important: Il faut utiliser une définition correcte de stylesheets. La version officielle et qui marche avec les processeurs XSL récents est: <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

Server-side XML - 3. Simple XML + XSLT vers HTML xml-ser-6 3.1 Produire du html statique avec XT/XP sous Windows Actuellement la stratégie la plus simple (parmi les gratuites) est d utiliser les outils de James Clark. 1. Téléchargez depuis le site http://www.jclark.com/xml/xt.html la version "XT packaged as a Win32 executable" pour Windows et faites Unzip dans un répertoire (par ex: c:\progra~1\xtwin). 2. Si, vous n avez pas déjà Internet Explorer installé chez vous, il faut télécharger et installer "Microsoft Java VM" depuis le site: url: http://www.microsoft.com/java/vm/dl_vm32.htm ou installer carrément Explorer bien sur 3. Vous ajoutez le "path" dans le fichier autoexec.bat soit en éditant le fichier autoexec.bat avec un éditeur, soit en tapant la commande qui suit depuis une fenêtre DOS : set path=%path%;c:\progra~1\xtwin 4. Vous exécutez XT depuis une fenêtre DOS comme suit: Syntaxe: xt source stylesheet result par exemple: xt test.xml test.xsl test.html Note: Sous Unix et Mac il faut avoir Java installé et suivre les instructions sur le site de Clark. C est la même solution que celle proposé dans

Server-side XML - 3. Simple XML + XSLT vers HTML xml-ser-7 3.2 Les outils Java du Projet Apache A. Les processeurs XSLT: Xalan et LotusXSL Xalan est le processeur XSLT du projet Apache/XML. Il est basé sur LotusXSL qui a été donné par IBM à Apache (fin 1999). LotusXSL continue d exister, mais comme wrapper/extension à Xalan. Xerces, le parseur XML utilisé par Xalan est aussi un ancien produit IBM (xml4j). Note: B. Alternatives Même dans le monde Java il existe de bonnes alternatives (autres implémentations de XSLT et du parseur XML) XT (de James Clark qui à écrit la librarie XML qui se trouve dans PhP et Mozilla), on suggère utiliser XT pour faire du simple XML+XSLT sous Windows (voir Produire du html statique avec XT/XP sous Windows [6]) Saxon

Server-side XML - 3. Simple XML + XSLT vers HTML xml-ser-8 C. A télécharger (1)Il faut déjà un JDK (1.1x ou 2x) (2) Un parseur XML url: http://xml.apache.org/xerces-j/index.html Note: d autres parseurs (comme XT ou xml4j peuvent marcher aussi, mais c est déconseillé) (3) Un processeur XML, à choix: url: http://xml.apache.org/xalan/overview.html url: http://www.alphaworks.ibm.com/tech/lotusxsl Prenez LotusXML si vous pensez installer un servlet XML->HTML, sinon Xalan fait l affaire. Si vous pensez installer un serveur Java (comme Tomcat) et Cocoon (XML publishing framework), sachez Xalan et Xerces sont distribubés avec Cocoon Note pour ceux qui veulent juste obtenir les *.jar avec les classes, voir dans: url: http://tecfa.unige.ch/guides/java/classes/

Server-side XML - 3. Simple XML + XSLT vers HTML xml-ser-9 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

Server-side XML - 3. Simple XML + XSLT vers HTML xml-ser-10 3.3 Produire du html statique avec Xalan/LotusXSL Cette stratégie demande un effort supplémentaire, mais elle marche partout et elle est efficace (Alternativement vous pouvez faire la même chose avec XT/XP) (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 Voir le module "java-util" si nécessaire. (2) Voici la syntaxe "ligne de commandes" de Xalan Syntaxe: 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 Script qui initialise le bon java/classpath sous Unix/Tecfa source /local/env/java12-xalan.csh Commande (2 exemples) 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

Server-side XML - 3. Simple XML + XSLT vers HTML xml-ser-11 (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 : faites un fichier xslate.bat et adaptez à vos besoins! classpath pour les fichiers *.jar! @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 Placez ce fichier à un endroit où DOS le trouve!

Server-side XML - 3. Simple XML + XSLT vers HTML xml-ser-12 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 Solution très portable, mais moins efficace que la solution précédente ou encore un framework comme Cocoon, car chaque page est traduite "on the fly" à chaque requête. Ici on montre comme utiliser le servlet LotusXML tel qu il est installé à Tecfa Attention: pour le moment c est cassé / Conflit entre Cocoon et LotusXSL / Conflit entre le dernier LotusXSL et JWS...) url: http://tecfa2.unige.ch:8080/servlet/defaultapplyxsl?url=/staf/staf-e/staf18/proj/ proj11.xml&xslurl=/staf/staf-e/staf18/project.xsl Enfin, une ancienne version tourne, entrez un URL (sur une seule ligne)comme: url: http://tecfa2.unige.ch:8080/servlet/xslatorservlet?xml=http://tecfa.unige.ch/staf/stafe/staf18/demo-project.xml&xsl=http://tecfa.unige.ch/staf/staf-e/staf18/project.xsl

Server-side XML - 4. "Basics" du Cocoon Framework xml-ser-13 4. "Basics" du Cocoon Framework A TECFA tous les fichiers *.sxml sont envoyés à Cocoon pour traitement 4.1 Principe de base Cocoon est un "publishing framework" basé XML et écrit en Java Philosophie de base = séparation des tâches: 1. Création de XML: Typiquement ces fichiers sont produits par des auteurs/ spécialistes de contenu avec un éditeur XML. 2. Traitement de XML: Certains vocabulaires ou tags nécessitent un traitement spécial par un "logicsheet". Imaginez un tag <publications name="dill"> qui fait de sorte à ce que toutes les publications de "dill" soient sorties d une base de données. 3. Mise en forme (rendering de XML). Le contenu XML final sera mise en forme par une feuille de style. Actuellement surtout du HTML, mais on peut servir des contenus HTML, PDF, XML, WML, XHTML, VRML, etc. en fonction du client) Résumé: Cocoon/XSP permet de séparer contenu, "logique" et style.... ceci est quasi-impossible avec Php, Jsp, Asp etc.

Server-side XML - 4. "Basics" du Cocoon Framework xml-ser-14 4.2 XML + XSL simple Principe: Vous faites un fichier *.sxml (contenu) et un fichier *.xsl (style) Vous devez indiquer à Cocoon comment traiter le fichier xml et comment utiliser la feuille de style dans le fichier xsl selon les règles ci-dessous Entêtes à mettre dans les fichiers (S)XML et XSL: Fichier XML (extension = *.sxml): <?xml version="1.0" encoding="iso-8859-1"?> <?xml-stylesheet href="votre_ficher_xsl.xsl" type="text/xsl"?> <?cocoon-process type="xslt"?> Fichier XSL (extension =.xsl): <?xml version="1.0" encoding="iso-8859-1"?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/xsl/transform"> // doit aller DANS le template pour la racine XML!!! <xsl:template match="votre_racine"> <xsl:processing-instruction name="cocoon-format">type="text/html" </xsl:processing-instruction>...

Server-side XML - 4. "Basics" du Cocoon Framework xml-ser-15 Exemple 4-1: Cocoon XML + XSL examples url: http://tecfa.unige.ch/guides/xml/cocoon/simple/ montre un simple exemple <?xml version="1.0"?> <?xml-stylesheet href="hello-page-html.xsl" type="text/xsl"?> <?cocoon-process type="xslt"?> <title>hello Cocoon friend</title> <content>... </content> <comment> Written by DKS/Tecfa, adapted from S.M./the Cocoon samples </comment> </page> hello-page-html.xsl: <?xml version="1.0"?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/xsl/transform"> <xsl:template match="page"> <xsl:processing-instruction name="cocoon-format">type="text/html"</ xsl:processing-instruction> <html> <head> <title> <xsl:value-of select="title"/> </title> </head> <body bgcolor="#ffffff"> <xsl:apply-templates/> </body> </html> </xsl:template>... </xsl:stylesheet>

Server-side XML - 4. "Basics" du Cocoon Framework xml-ser-16 4.3 Interfaces SQL Cocoon possède 3 interfaces: Le processeur SQL de Cocoon (très démodé) url: http://tecfa.unige.ch/guides/xml/cocoon/mysql/ La "tag library" sql de XSP (démodée, mais documentée) url: http://tecfa.unige.ch/guides/xml/cocoon/mysql-xsp/ La "tag library" ESQL (pas documentée)... voir plus loin dans ce document!

Server-side XML - 4. "Basics" du Cocoon Framework xml-ser-17 4.4 LDAP Interface Même principe que pour SQL url: http://tecfa2.unige.ch/guides/xml/cocoon/ldap/ldap.sxml url: http://tecfa2.unige.ch/guides/xml/cocoon/ldap/ldap.sxml.text url: http://tecfa2.unige.ch/guides/xml/cocoon/ldap/ldap.xsl <?xml version="1.0"?> <?xml-stylesheet href="ldap.xsl" type="text/xsl"?> <?cocoon-process type="ldap"?> <?cocoon-process type="xslt"?> <page> <ldap-defs> <ldap-server name="tecfa"> <initializer>com.sun.jndi.ldap.ldapctxfactory</initializer> <ldap-serverurl>ldap://tecfa2.unige.ch:389</ldap-serverurl> </ldap-server> <ldap-querydefs name="standard" default="yes"/> </ldap-defs> <ldap-query server="tecfa" ldap-searchbase="o=tecfa.unige.ch" defs="standard"> givenname=daniel </ldap-query> </page>

Server-side XML - 4. "Basics" du Cocoon Framework xml-ser-18 4.5 Xinclude Processor Xinclude est un standard (working draft) W3C pour construire des documents composites ("composite infoset") à partir d autre documents ou bouts de documents ("infosets") url: http://www.w3.org/tr/xinclude/ Xinclude est essentiellement bâti sur le standard XPointer qui repose lui-même sur XPath. Définition de XPointer : "supports addressing into the internal structures of XML documents. It allows for examination of a hierarchical document structure and choice of its internal parts based on various properties, such as element types, attribute values, character content, and relative position. " Template: <?xml version="1.0" encoding="iso-8859-1"?> <?xml-stylesheet href="style.xsl" type="text/xsl"?> <?cocoon-process type="xinclude"?> <?cocoon-process type="xslt"?> <page xmlns:xinclude="http://www.w3.org/1999/xml/xinclude"> <include xinclude:parse="xml" xinclude:href="inclure.xml"/> </page>

Server-side XML - 4. "Basics" du Cocoon Framework xml-ser-19 Exemple 4-2: Simples extractions avec Xinclude et Xpointer url: http://tecfa.unige.ch/staf/staf-f/staf18/resultlist.sxml url: http://tecfa.unige.ch/staf/staf-f/staf18/resultlist.sxml.text <?xml version= 1.0 encoding= ISO-8859-1?> <?xml-stylesheet href="dtd/evallist.xsl" type="text/xsl"?> <?cocoon-process type="xinclude"?> <?cocoon-process type="xslt"?> <page xmlns:xinclude="http://www.w3.org/1999/xml/xinclude"> <include xinclude:parse="xml" xinclude:href="proj/proj1/info.xml"/> <specification> <include xinclude:parse="xml" xinclude:href="proj/proj1/ specification.xml#xpointer(//specification/evaluation)"/> </specification> <include xinclude:parse="xml" xinclude:href="proj/proj12/info.xml"/> <specification> <include xinclude:parse="xml" xinclude:href="proj/proj12/ specification.xml#xpointer(//specification/evaluation)"/> </specification> </page>

Server-side XML - 5. Cocoon - XSP xml-ser-20 5. Cocoon - XSP XSP = extensible Server Pages Une alternative à Php / JSP dans certains cas Principe plus élégant: on construit an arbre XML au lieu de faire des "print" Fonctionne un peu près comme JSP (page compilation) Fournit un certain nombre de "tag libraries" (SQL, Xforms, etc.) et permet d en ajouter Exemple 5-1: Good Morning ou good Afternoon url: http://tecfa.unige.ch/guides/xml/cocoon/xsp/xsp-good.sxml <?xml version="1.0"?> <?cocoon-process type="xsp"?> <?cocoon-process type="xslt"?> <?xml-stylesheet href="simple-page-html.xsl" type="text/xsl"?> <xsp:page language="java" xmlns:xsp="http://www.apache.org/1999/xsp/core" xmlns:util="http://www.apache.org/1999/xsp/util" <page> <title>good morning or good afternoon</title> <p> It is <util:time format="hh:mm, dd-mm-yyyy"/> </p> <p>... or <util:time format=""/> if you prefer. </p> </page> </xsp:page>

Server-side XML - 5. Cocoon - XSP xml-ser-21 Exemple 5-2: Date L exemple suivant ressemble plus à un programme de type JSP url: http://tecfa2.unige.ch/guides/xml/cocoon/xsp/xsp-date.sxml <?cocoon-process type="xsp"?> <?cocoon-process type="xslt"?> <?xml-stylesheet href="simple-page-html.xsl" type="text/xsl"?> <xsp:page language="java" xmlns:xsp="http://www.apache.org/1999/xsp/core" > <xsp:logic> // Define a variable to hold the time of day Date now = new Date(); </xsp:logic> <page> <title>time of Day</title> <p> To the best of my knowledge, it s now about <!-- Substitute time of day here --> <xsp:expr>now</xsp:expr> </p> </page> </xsp:page>

Server-side XML - 5. Cocoon - XSP xml-ser-22 5.1 Anatomie d une simple page XSP?cocoon-process type="xsp"?> <?cocoon-process type="xslt"?> <?xml-stylesheet href="votre_sheet.xsl" type="text/xsl"?> <xsp:page language="java" xmlns:xsp="http://www.apache.org/1999/xsp/ Core"> <xsp:logic> du code Java (comme les scriptlets <% %> en JSP </xsp:logic> <xsp:expr> une simple expression Java (comme les <%= %> en JSP ) </xsp:expr> </xsp:page>

Server-side XML - 5. Cocoon - XSP xml-ser-23 5.2 Traitement de formulaires (GET/POST) Exemple 5-3: Simple calcul Il s agit ici de l exemple canonique que DKS utilise partout (php, js, java...) pour montrer comment traiter un formulaire url: http://tecfa.unige.ch/guides/xml/cocoon/simple-calcul/form.html (formulaire) url: http://tecfa.unige.ch/guides/xml/cocoon/simple-calcul/calcul.sxml.text (source XSP) <xsp:page language="java" xmlns:xsp="http://www.apache.org/1999/xsp/core"> <page> <xsp:logic> String choice = request.getparameter("choice"); String choice2 = request.getparameter("choice2"); int score = 0; if ((choice == null) (choice2 == null)) { <xsp:content>please use the <a href="form.html">form</a> </xsp:content> return; } else score = Integer.parseInt(choice) + Integer.parseInt(choice2); </xsp:logic> <title>form - XSP Demo </title> <content> You entered <xsp:expr>choice</xsp:expr> and

Server-side XML - 5. Cocoon - XSP xml-ser-24 </page> </xsp:page> <xsp:expr>choice2</xsp:expr>. That makes <xsp:expr>score</xsp:expr>. </content> <comment> Made by Daniel.Schneider@tecfa.unige.ch (3/99) </comment> explications à suivre, pour le moment voir la doc servlet ou JSP pour cet exemple...

Server-side XML - 5. Cocoon - XSP xml-ser-25 5.3 SQL avec ESQL Exemple 5-4: XSP/ESQL simple 1 url: http://tecfa.unige.ch/guides/xml/cocoon/mysql-esql/simple-taglib.sxml url: http://tecfa.unige.ch/guides/xml/cocoon/mysql-esql/simple-taglib.sxml.text <?xml version="1.0"?> <?cocoon-process type="xsp"?> <?cocoon-process type="xslt"?> <?xml-stylesheet href="simple-taglib-html.xsl" type="text/xsl"?> <xsp:page language="java" xmlns:xsp="http://www.apache.org/1999/xsp/core" xmlns:esql="http://apache.org/cocoon/sql/v2" > <page> <title>cocoon XSP ESQL TagLibs demo</title> <author> <name>daniel Schneider, code stolen from examples in the Cocoon distribution</name> </author> <p> Shows some of Cocoon s SQL/XSP tag library. Also shows how to build a simple table with xsl </p> <esql:connection> <esql:driver>org.gjt.mm.mysql.driver</esql:driver> <esql:dburl>jdbc:mysql://tecfa.unige.ch/demo</esql:dburl> <esql:username>nobody</esql:username> <esql:password></esql:password>

Server-side XML - 5. Cocoon - XSP xml-ser-26 <esql:execute-query> <esql:query>select * FROM demo1 order by id;</esql:query> <esql:results> <ROWSET> <esql:row-results> <ROW> <esql:get-columns/> </ROW> </esql:row-results> </ROWSET> </esql:results> </esql:execute-query> </esql:connection> <p> See <a href="./">directory and appended README.html</a> for more information. </p> </page> </xsp:page> Les balises <ROWSET> et <ROW> sont des balises arbitraires qu on insère pour "entourer" les résultats d une balise (sinon on obtient une liste à plat) <esql:results> : le "result tree" selon les spécifications <esql:row-results> retourne chaque ligne selon les spécifications La balise <esql:get-columns> retourne les colonnes d une ligne entourés des balises portant le nom du label de la colonne

Server-side XML - 5. Cocoon - XSP xml-ser-27 Exemple 5-5: XSP/ESQL simple 2 url: http://tecfa.unige.ch/guides/xml/cocoon/mysql-esql/simple-taglib2.sxml url: http://tecfa.unige.ch/guides/xml/cocoon/mysql-esql/simple-taglib2.sxml.text Choix selectif de certaines colonnes Chaque résultat est inséré dans des balises (choisis au "hasard") <esql:results> <ROWSET> <esql:row-results> <ROW> <id><esql:get-int column="id"/></id> <login><esql:get-string column="login"/></login> <fullname><esql:get-string column="fullname"/></fullname> <url><esql:get-string column="url"/></url> <food><esql:get-string column="food"/></food> </ROW> </esql:row-results> </ROWSET> </esql:results> Exemple 5-6: XSP/ESQL simple 2 avec un paramètre url: http://tecfa.unige.ch/guides/xml/cocoon/mysql-esql/simple-taglib-query.sxml url: http://tecfa.unige.ch/guides/xml/cocoon/mysql-esql/simple-taglib-query.sxml.text

Server-side XML - 6. A la main avec Java like real Women xml-ser-28 6. A la main avec Java like real Women Outils Il vous faut un serveur Java et un parseur XML comme Xerces Alternativement: Php, des modules cgi écrits en Perl, Python, etc. Le principe: analyser la structure d un fichier XML extraire les éléments qui vous intéressent transformations et calculs etc. rendering en HTML Il existe 2 type des parseurs: DOM (traduit un fichier XML sous forme d arbre informatique) SAX (identifie et crache élément par élément)... voir les modules Java-XML (à refaire) ou Php-XML (à faire)