22
STAF 2X XSL/FO Glaus & Ruckstuhl Mars 2002

STAF 2X XSL/FO Glaus & Ruckstuhl Mars 2002. © Glaus & Ruckstuhl TECFA 20022 Programme du 18 et 19 mars Revision XML Introduction à XSL/FO (intérêts et

Embed Size (px)

Citation preview

Page 1: STAF 2X XSL/FO Glaus & Ruckstuhl Mars 2002. © Glaus & Ruckstuhl TECFA 20022 Programme du 18 et 19 mars Revision XML Introduction à XSL/FO (intérêts et

STAF 2X XSL/FO

Glaus & Ruckstuhl

Mars 2002

Page 2: STAF 2X XSL/FO Glaus & Ruckstuhl Mars 2002. © Glaus & Ruckstuhl TECFA 20022 Programme du 18 et 19 mars Revision XML Introduction à XSL/FO (intérêts et

© Glaus & Ruckstuhl TECFA 2002 2

Programme du 18 et 19 mars

Revision XML Introduction à XSL/FO (intérêts et applications) Théorie sur le langage XSL/FO Utilisation FOP Pratique du langage XSL/FO Installation de logiciels Travaux pratiques

Page 3: STAF 2X XSL/FO Glaus & Ruckstuhl Mars 2002. © Glaus & Ruckstuhl TECFA 20022 Programme du 18 et 19 mars Revision XML Introduction à XSL/FO (intérêts et

REVISION XML

Page 4: STAF 2X XSL/FO Glaus & Ruckstuhl Mars 2002. © Glaus & Ruckstuhl TECFA 20022 Programme du 18 et 19 mars Revision XML Introduction à XSL/FO (intérêts et

© Glaus & Ruckstuhl TECFA 2002 4

XML : introduction

Né : fin 96 Père : W3C Petit-fils de SGML (ISO-1986) Cousin d’HTML Reconnu le : 10/02/98 – version 1.0 Descendance – XHMTL, MathML, …

Page 5: STAF 2X XSL/FO Glaus & Ruckstuhl Mars 2002. © Glaus & Ruckstuhl TECFA 20022 Programme du 18 et 19 mars Revision XML Introduction à XSL/FO (intérêts et

© Glaus & Ruckstuhl TECFA 2002 5

XML : introduction (2)

Extensible Markup Language Méta-langage qui permet de créer et de

formater ses propres balises de document XSL : Extensible Stylesheet Language,

permet aux documents d’être toujours formatés de la même manière

DTD

Page 6: STAF 2X XSL/FO Glaus & Ruckstuhl Mars 2002. © Glaus & Ruckstuhl TECFA 20022 Programme du 18 et 19 mars Revision XML Introduction à XSL/FO (intérêts et

© Glaus & Ruckstuhl TECFA 2002 6

X comme eXtensible

HTML : nombre fini de balises XML : possibilité de définir les balises

HTML : balises pour formater XML : balises pour structurer

DTD ou Schéma pour définir les balises

Page 7: STAF 2X XSL/FO Glaus & Ruckstuhl Mars 2002. © Glaus & Ruckstuhl TECFA 20022 Programme du 18 et 19 mars Revision XML Introduction à XSL/FO (intérêts et

© Glaus & Ruckstuhl TECFA 2002 7

M comme Markup

Tous les éléments sont repérés au moyen de balises

Les balises servent à structurer le document

Page 8: STAF 2X XSL/FO Glaus & Ruckstuhl Mars 2002. © Glaus & Ruckstuhl TECFA 20022 Programme du 18 et 19 mars Revision XML Introduction à XSL/FO (intérêts et

© Glaus & Ruckstuhl TECFA 2002 8

L comme Language

Langage de description de documents Règles à respecter

Page 9: STAF 2X XSL/FO Glaus & Ruckstuhl Mars 2002. © Glaus & Ruckstuhl TECFA 20022 Programme du 18 et 19 mars Revision XML Introduction à XSL/FO (intérêts et

© Glaus & Ruckstuhl TECFA 2002 9

Règles syntaxiques

1. Commencer par une déclaration XML2. Balisage sensible à la casse3. La valeur des attributs doit être quotée4. Balises non vides appariées <br></br>5. Balises vides fermées <br/>6. Les élèments ne doivent pas se chevaucher

<jour> <mois> </jour> </mois> interdit7. Un élément doit encapsuler tous les autres8. Ne pas utiliser les caractères < et & seuls

Page 10: STAF 2X XSL/FO Glaus & Ruckstuhl Mars 2002. © Glaus & Ruckstuhl TECFA 20022 Programme du 18 et 19 mars Revision XML Introduction à XSL/FO (intérêts et

© Glaus & Ruckstuhl TECFA 2002 10

XML bien formé

Le document doit soit utiliser un DTD, soit contenir une déclaration XML dont l’attribut standalone est fixé à « no »;

<?xml version=+1.0 » standalone=« no »?> Toutes les valeurs associées aux attributs d’un élément

doivent être entre guillemets; Un élément doit avoir une balise ouvrante et une balise

fermante, à moins qu’il s’agisse d’un élément vide; Si une balise est un élément vide autonome, il doit contenir

une barre oblique fermante (/) avant la fin de la balise; Toutes les balises ouvrantes et fermantes doivent être

emboîtées correctement;

Page 11: STAF 2X XSL/FO Glaus & Ruckstuhl Mars 2002. © Glaus & Ruckstuhl TECFA 20022 Programme du 18 et 19 mars Revision XML Introduction à XSL/FO (intérêts et

© Glaus & Ruckstuhl TECFA 2002 11

XML bien formé (2)

Les caractères de balisage isolés ne sont pas autorisés au sein du texte: > ou & doivent être représentés sous la forme de références d’entités. De plus, la séquence ]]> doit être exprimée sous la forme ]]&gt; si elle est utilisée en texte naturel;

Les documents XML bien formés sans DTD associé ont par défaut des attributs de type CDATA.

Page 12: STAF 2X XSL/FO Glaus & Ruckstuhl Mars 2002. © Glaus & Ruckstuhl TECFA 20022 Programme du 18 et 19 mars Revision XML Introduction à XSL/FO (intérêts et

© Glaus & Ruckstuhl TECFA 2002 12

Exemple XML

<?xml version="1.0" Encoding= "ISO-8859-1" ? ><rapport langue="fr">

<auteur>Glaus & Ruckstuhl</auteur> <titre>XSL/FO</titre> <date>12/03/2002</date> <commentaire> Livraison confirmée

<jour>18/03</jour><heure>09H00</heure><lieu> GENEVE</lieu>

</commentaire></rapport>

Page 13: STAF 2X XSL/FO Glaus & Ruckstuhl Mars 2002. © Glaus & Ruckstuhl TECFA 20022 Programme du 18 et 19 mars Revision XML Introduction à XSL/FO (intérêts et

© Glaus & Ruckstuhl TECFA 2002 13

DTD : Document Type Definition

Permet de définir le « vocabulaire » et la structure qui seront utilisés dans le document XML;

Grammaire du langage dont les phrases sont des documents XML (instances);

Peut être mise dans un fichier et être appelé dans le document XML.

Page 14: STAF 2X XSL/FO Glaus & Ruckstuhl Mars 2002. © Glaus & Ruckstuhl TECFA 20022 Programme du 18 et 19 mars Revision XML Introduction à XSL/FO (intérêts et

© Glaus & Ruckstuhl TECFA 2002 14

DTD : élément et attribut

!ELEMENT tag (contenu) Décrit une balise qui fera partie du vocabulaire Ex : <!ELEMENT livre (auteur, editeur)>

!ATTLIST tag [attribut type #mode [valeur]] Définit la liste des attributs pour une balise Ex : <!ATTLIST auteur

genre CDATA #REQUIRED

ville CDATA #IMPLIED>

<!ATTLIST editeur

ville CDATA #FIXED "Geneve">

Page 15: STAF 2X XSL/FO Glaus & Ruckstuhl Mars 2002. © Glaus & Ruckstuhl TECFA 20022 Programme du 18 et 19 mars Revision XML Introduction à XSL/FO (intérêts et

© Glaus & Ruckstuhl TECFA 2002 15

DTD : opérateurs d’occurence

Notations (a, b) séquence

(a|b) liste de choix

a? élément optionnel [0,1]

a* élément répétitif [0,N]

a+ élément répétitif [1,N]

Exemples (nom, prenom, rue, ville)

(oui|non)

(nom, prenom?, rue, ville)

(produit*, client)

(produit*, vendeur+)

Page 16: STAF 2X XSL/FO Glaus & Ruckstuhl Mars 2002. © Glaus & Ruckstuhl TECFA 20022 Programme du 18 et 19 mars Revision XML Introduction à XSL/FO (intérêts et

© Glaus & Ruckstuhl TECFA 2002 16

Types de données des attributs DTD

CDATA Donnée composée de caractères

Enumération Une série de valeurs dont on ne peut en choisir qu’une

ENTITY Une entité déclarée dans le DTD

ENTITIES Entités multiples séparées par des espaces blanc et déclarées dans le DTD

ID Un identificateur d’élément unique

IDREF Valeur d’un attribut de type ID unique

IDREFS IDREF multiples associés à des éléments NMTOKEN

NMTOKEN Une marque associée à un nom XML

NMTOKENS Des marques associées à des noms XML multiples séparées par des espaces blancs

NOTATION Une notation déclarée dans le DTD

Page 17: STAF 2X XSL/FO Glaus & Ruckstuhl Mars 2002. © Glaus & Ruckstuhl TECFA 20022 Programme du 18 et 19 mars Revision XML Introduction à XSL/FO (intérêts et

© Glaus & Ruckstuhl TECFA 2002 17

Modificateurs par défaut pour les attributs DTD

#REQUIRED La valeur de l’attribut doit être spécifiée avec l’élément

#IMPLIED La valeur de l’attribut peut ne pas être spécifiée

#FIXED La valeur de l’attribut est fixée et ne peut être modifiée par l’utilisateur

Page 18: STAF 2X XSL/FO Glaus & Ruckstuhl Mars 2002. © Glaus & Ruckstuhl TECFA 20022 Programme du 18 et 19 mars Revision XML Introduction à XSL/FO (intérêts et

© Glaus & Ruckstuhl TECFA 2002 18

Exemple DTD

<?xml version="1.0" Encoding= "ISO-8859-1" ? ><!DOCTYPE memo [

<!ELEMENT memo (to, from, date, body)><!ELEMENT to (#PCDATA)><!ELEMENT from (#PCDATA)><!ELEMENT date (#PCDATA)><!ELEMENT body (#PCDATA|jour|heure|lieu)><!ELEMENT jour (#PCDATA)><!ELEMENT heure (#PCDATA)><!ELEMENT lieu (#PCDATA)><!ATTLIST memo langue CDATA "Alsacien"><!ATTLIST memo urgence CDATA "normal">

]>

Page 19: STAF 2X XSL/FO Glaus & Ruckstuhl Mars 2002. © Glaus & Ruckstuhl TECFA 20022 Programme du 18 et 19 mars Revision XML Introduction à XSL/FO (intérêts et

© Glaus & Ruckstuhl TECFA 2002 19

XSL : Extensible Stylesheet Language

XSL consiste à appliquer à chaque document XML rencontré des règles de formatage d’éléments que vous definissez;

Séparation de données et de la présentation

Page 20: STAF 2X XSL/FO Glaus & Ruckstuhl Mars 2002. © Glaus & Ruckstuhl TECFA 20022 Programme du 18 et 19 mars Revision XML Introduction à XSL/FO (intérêts et

© Glaus & Ruckstuhl TECFA 2002 20

XSL : formatage général

Toutes les feuilles de style XSL doivent correspondre à des documents XML bien formés et chaque élément XSL doit utiliser l’espace de désignation xsl:

Toutes les feuilles de style XSL doivent débuter avec la balise <xsl:stylesheet> représentant l’élément racine XSL et se terminer avec la balise correspondante </xsl:stylesheet>

Au sein de la balise ouvrante, l’espace de désignantion doit être défini:

<xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl">

Page 21: STAF 2X XSL/FO Glaus & Ruckstuhl Mars 2002. © Glaus & Ruckstuhl TECFA 20022 Programme du 18 et 19 mars Revision XML Introduction à XSL/FO (intérêts et

© Glaus & Ruckstuhl TECFA 2002 21

Eléments XSL

<xsl:apply-templates>

Indique que les fils directs de l’élément source devraient être traités de manière additionnelle

<xsl:template> Localise différents éléments à partir desquels les règles de la feuille de style peuvent être appliquées

<xsl:value-of> Extrait une valeur spécifique de l’arbre source

<xsl:for-each> Permet de sélectionner un nombre quelconque de frères identiques dans un document XML

<xsl:attribute> Ajoute un attribut possèdant le nom spécifié à un élément de l’arbre cible <xsl:attribute>

<xsl:comment> Insère un commentaire dans le document XML

Page 22: STAF 2X XSL/FO Glaus & Ruckstuhl Mars 2002. © Glaus & Ruckstuhl TECFA 20022 Programme du 18 et 19 mars Revision XML Introduction à XSL/FO (intérêts et

© Glaus & Ruckstuhl TECFA 2002 22

Exemple XSL

<?xml version="1.0" encoding="ISO-8859-1"?><xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"><xsl:template match="programme"><xsl:processing-instruction name="cocoon-format">type="text/html"</xsl:processing-

instruction> <HTML><HEAD><TITLE><xsl:value-of select="entete" /></TITLE></HEAD><BODY bgcolor="#FFFFFF"><xsl:apply-templates /></BODY></HTML></xsl:template><xsl:template match="cours"><BR><BR><center><font color="black" size="14pt" face="comic sans ms,

verdana"><xsl:value-of select="titre" /></font></center></BR></BR></xsl:template></xsl:stylesheet>