View
108
Download
0
Category
Preview:
Citation preview
STAF 2X XSL/FO
Glaus & Ruckstuhl
Mars 2002
© 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
REVISION XML
© 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, …
© 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
© 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
© 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
© Glaus & Ruckstuhl TECFA 2002 8
L comme Language
Langage de description de documents Règles à respecter
© 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
© 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;
© 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 ]]> 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.
© 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>
© 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.
© 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">
© 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+)
© 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
© 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
© 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">
]>
© 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
© 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">
© 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
© 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>
Recommended