(Extensible Stylesheet Language Transformation) |
XSLT est très puissant
Un exemple:
<?xml version="1.0"?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:template match="page">
<xsl:template match="title">
<xsl:template match="content">
<xsl:template match="comment">
</xsl:stylesheet>
|
<?xml version="1.0"?> <?xml-stylesheet href="hello-page-html.xsl" type="text/xsl"?> <?cocoon-process type="xslt"?> <!-- modified from an example by Stefano Mazzocchi "stefano@apache.org" --> <page> <title>Hello Cocoon friend</title> <content> Here is some content :) </content> <comment> Written by DKS/Tecfa, adapted from S.M./the Cocoon samples </comment> </page> |
Le Modèle objet de document (DOM - Document Object Model)
Le Modèle objet de document est un langage normalisé
d'interface (API, Application Programming Interface) qui va permettre à
un programme (Java) de naviguer dans un arbre XML (ou HTML) et d'en lire
ou d'en modifier le contenu
Avec DOM , HTML et XML les documents peuvent être manipulés comme des objets, au lieu d'être simplement un stream. Du point de vue de DOM, un document est un arbre composé d'objet.DOM fournit une méthode générale pour accéder aux données structurées d'un document structuré.
Chaque langage qui implémente DOM peut utiliser XML comme une interface pour stocker, retrouver et processer une structure d'objets génériques hiérarchisés.
Templates de base
<xsl:apply-templates />examine tous les noeuds enfants, voici la règle pour la racine.
<xsl:template match="/">
<html>
<xsl:apply-templates/>
</html>
</xsl:template>L'attribut "select" de apply-templates
permet de choisir un enfant nommé (au lieu de tous)
<xsl:template match="projet">
<xsl:apply-templates select="titre"/>
</xsl:template>xsl:value-of
prend la valeur de qc et le copie vers le document "sortie"
autrement dit: sélection d'un seul sous-noeud<xsl:template match="project">
<P>
<xsl:value-of select="problem/title"/>
</P>
</xsl:template>
Ce qu'il faut retenir, c'est que pour définir une règle de style il faut :
XSLT (XSL Transformation) va permettre, si nécessaire,
de transformer une DTD (un arbre XML) "orientée contenu" en une
autre DTD (un autre arbre XML) "orientée restitution" (c'est-à-dire
constituée d"objets formateurs" (formatting objects). C'est à
ce niveau que l'ordre de restitution final sera établi
(par exemple, que la bibliographie sera classée
par ordre alphabétique d'auteurs), que les légendes du type
"figure n° x" seront ajoutées, que seront fabriqués automatiquement
les tables des matières, index alphabétiques, liens (logiques)
de navigation, etc.).
Le langage normalisé de feuille de style XSL (Extensible
Style Language) va permettre ensuite de spécifier
comment un type de document (= une DTD "orientée
restitution") donné va être restitué sur un support
donné.
C'est à ce niveau que seront réglés
les problèmes du type "saut de page", notes présentées
en bas de page ou en fin de chapitre, etc., que les liens de navigation
seront fabriqués (hyperliens pour les versions électroniques,
renvoi à un n° de page ou de paragraphe ou de note pour les
versions papier...)