CURSUS DE FORMATION AUX NOUVELLES TECHNOLOGIES DE DEVELOPPEMENT UV EJB Entité Module Java Expert.
CURSUS DE FORMATION AUX NOUVELLES TECHNOLOGIES DE DEVELOPPEMENT UV Java / XML Module XML.
-
Upload
elaine-weber -
Category
Documents
-
view
110 -
download
0
Transcript of CURSUS DE FORMATION AUX NOUVELLES TECHNOLOGIES DE DEVELOPPEMENT UV Java / XML Module XML.
CURSUS DE FORMATION AUX NOUVELLES TECHNOLOGIES DE DEVELOPPEMENT
UV Java / XML
Module XML
Module UV Java / XMLPage 2 / 119
Deruelle LaurentCopyright © 2002 Laurent Deruelle
Module XML
Introduction : eXtensible Markup Language Premiers pas en XML Le langage de base XML par l’exemple Les DTD Les liens les feuilles de styles CSS et XSL
Module UV Java / XMLPage 3 / 119
Deruelle LaurentCopyright © 2002 Laurent Deruelle
Introduction
Buts de cet exposé– présentation de XML : un nouveau paradigme internet– parallèle avec SGML et HTML
Applications– publications de documents sur le web– préparation de corpus pour le TAL
– exemple : le corpus prématurés (HTML -> XML)
– présentations d ’outils XML
Module UV Java / XMLPage 4 / 119
Deruelle LaurentCopyright © 2002 Laurent Deruelle
Références bibliographiques
Manuels de référence– « XML, langage et applications », Alain Michard, Editions
Eyrolles, 1999 (noté désormais [XML 99])– « GUIDEXPRESS XML », Andréas Petrausch, Editions Micro
Application, 2000 (noté désormais [XML 00])
Autres manuels– http://tecfa.unige.ch/guides/xml/slides/xml.pdf
Module UV Java / XMLPage 5 / 119
Deruelle LaurentCopyright © 2002 Laurent Deruelle
Liens (1)
Pages sur le site TAL-Paris3www.cavi.univ-paris3.fr/ilpga/ilpga/tal/cours/parcours/cours/cours9.htm
Pages officielles sur l ’hypertoile– www.xml.org– www.w3.org– www.softwareag.com/xml/– www.xmlsoftware.com– www.xml.com/pub– etc.
Module UV Java / XMLPage 6 / 119
Deruelle LaurentCopyright © 2002 Laurent Deruelle
Liens (2)
Pages sur l ’hypertoile à voir absolument pour commencer– XML expliqué aux débutants
• http://www.chez.com/xml/initiation/
– Le langage XML
• http://www.citeweb.net/apetitje/xml/
• Plus qu'un tutoriel ce site donne l'essentiel (centré MicroSoft)
Module UV Java / XMLPage 7 / 119
Deruelle LaurentCopyright © 2002 Laurent Deruelle
Logiciels/Utilitaires pour XML
Cf Site TAL pour un répertoire complet et adresses des outils à tester– Navigateurs/Editeurs :
• IE 5, Netscape 6, XML Notepad, XML-Spy, Amaya, Exml, Zveno Swish XML Editor etc.
• adresses sur le site TAL
– Voir aussi :• Majix : programme Java pour convertir documents WORD (i.e
RTF) vers XML– www.tetrasix.com
Module UV Java / XMLPage 8 / 119
Deruelle LaurentCopyright © 2002 Laurent Deruelle
Un peu d ’histoire : rappels
SGML (ISO standard 1986)– norme internationale pour la représentation des documents– langage trop complexe pour le WEB
HTML (1990…)– application « pauvre » de SGML pour le WEB – langage sémantiquement figé
XML (1997…)– une version simplifiée de SGML adaptée au WEB– standardisation en cours, langage ouvert– disponible avec IE 5, Netscape 5, 6 (?)
Module UV Java / XMLPage 9 / 119
Deruelle LaurentCopyright © 2002 Laurent Deruelle
Les limites HTML
HTML ne permet pas de "marquer" les informations en fonction de leur signification. – si l'on souhaite présenter des informations concernant la chimie ou la
météorologie• pas de balises ATOM ou MOLECULE pour les chimistes, ni de balises
CARTE ou TEMPERATURE pour les météorologues. – Il est hors de question de songer à intégrer de telles balises dans la
norme HTML :• la prise en compte des spécificités de tous les métiers et de toutes les
spécialisations est impossible
Module UV Java / XMLPage 10 / 119
Deruelle LaurentCopyright © 2002 Laurent Deruelle
– HTML est fait pour être affiché dans un « browser »• pas pour échanger de l ’information entre programmes
– HTML est faible pour l ’hypertexte HTML ne respecte pas de sémantique formelle
– on peut sans aucune contraintes, construire un document avec des balises H2, et sans balises H1.
– Si ceci est acceptable en terme de rendu final du document, ce ne l'est en aucun cas en termes de sémantique du langage.
– HTML est faible pour décrire le contenu d ’information• en HTML on ne sait faire que de la recherche « full-text » => beaucoup de bruit
Module UV Java / XMLPage 11 / 119
Deruelle LaurentCopyright © 2002 Laurent Deruelle
XML, version simplifiée de SGML pour le Web
La norme SGML n'a pas été retenue en raison de sa lourdeur et de sa complexité : – un très grand nombre de fonctionnalités qui sont très rarement utilisées– le support des différents jeux de caractères internationaux est quelque
peu léger. Le W3C a créé une norme plus simple, dérivée de SGML, et
renforcée là ou SGML comporte des faiblesses. Cette norme est la norme XML.
Module UV Java / XMLPage 12 / 119
Deruelle LaurentCopyright © 2002 Laurent Deruelle
HTML vs XML
Module UV Java / XMLPage 13 / 119
Deruelle LaurentCopyright © 2002 Laurent Deruelle
Normalisation des documents
Structurer l ’information– pour la retrouver facilement– l ’utiliser dans des applications
Faire des hypertextes efficaces Afficher et imprimer de manière flexible Un format normalisé pour
– diffuser, échanger, stocker, chercher...
Module UV Java / XMLPage 14 / 119
Deruelle LaurentCopyright © 2002 Laurent Deruelle
Module XML
Introduction Premiers pas en XML Le langage de base XML par l’exemple Les DTD Les liens les feuilles de styles CSS et XSL
Module UV Java / XMLPage 15 / 119
Deruelle LaurentCopyright © 2002 Laurent Deruelle
Introduction par l ’exemple
Exemple :– Génération d ’un document XML– Affichage du document– Ajout d ’une feuille de style– raffinements...
Module UV Java / XMLPage 16 / 119
Deruelle LaurentCopyright © 2002 Laurent Deruelle
Création d ’un document XML avec WordPad
Module UV Java / XMLPage 17 / 119
Deruelle LaurentCopyright © 2002 Laurent Deruelle
Visualisation du document avec IE5
Module UV Java / XMLPage 18 / 119
Deruelle LaurentCopyright © 2002 Laurent Deruelle
Visualisation du document avec XML-Spy
Module UV Java / XMLPage 19 / 119
Deruelle LaurentCopyright © 2002 Laurent Deruelle
Ajout d ’une feuille de style (1)
But : Ajout des attributs d ’affichage pour distinguer les éléments du document
Module UV Java / XMLPage 20 / 119
Deruelle LaurentCopyright © 2002 Laurent Deruelle
Ajout d ’une feuille de style (2)
Création du fichier demo3.css
Module UV Java / XMLPage 21 / 119
Deruelle LaurentCopyright © 2002 Laurent Deruelle
Ajout d ’une feuille de style (3)
Ajout de la spécification de la feuille de style demo3.css sur notre document
Module UV Java / XMLPage 22 / 119
Deruelle LaurentCopyright © 2002 Laurent Deruelle
Ajout d ’une feuille de style (4)
Affichage avec IE5
Module UV Java / XMLPage 23 / 119
Deruelle LaurentCopyright © 2002 Laurent Deruelle
Ajout d ’une feuille de style (5)
Affichage avec XML-Spy
Module UV Java / XMLPage 24 / 119
Deruelle LaurentCopyright © 2002 Laurent Deruelle
Module XML
Introduction Premiers pas en XML Le langage de base XML par l’exemple Les DTD Les liens les feuilles de styles CSS et XSL
Module UV Java / XMLPage 25 / 119
Deruelle LaurentCopyright © 2002 Laurent Deruelle
Introduction à XML
Deux types de documents XML– Document bien formé : obéit aux règles syntaxiques du
langage XML (document correct)– Document valide : document bien formé qui obéit en outre à
une structure type définie dans une DTD
Module UV Java / XMLPage 26 / 119
Deruelle LaurentCopyright © 2002 Laurent Deruelle
Structure d ’un document
Un prologue– facultatif mai conseillé
Un arbre d ’éléments – le contenu propre du document
Commentaires et instructions de traitement– facultatifs, présents dans le prologue ou dans l ’arbre
d ’éléments
Module UV Java / XMLPage 27 / 119
Deruelle LaurentCopyright © 2002 Laurent Deruelle
Le prologue
Une déclaration XML<?xml version=« 1.0 » encoding=‘ ISO-8859-1 standalone=yes>
Instructions de traitement– cf [XML 1999, (Chap1, 4.4.7)]
Une déclaration de type de document– indique le type de document auquel se conforme le
document en question<!DOCTYPE rapport SYSTEM « rapport.dtd » [déclaration]>
Module UV Java / XMLPage 28 / 119
Deruelle LaurentCopyright © 2002 Laurent Deruelle
L ’arbre d ’éléments (1)
Un élément d ’un document XML– une balise d ’ouverture– le contenu de l ’élément– une balise de fermeture– Exemple :
• <nom>contenu de l ’élément</nom>
Module UV Java / XMLPage 29 / 119
Deruelle LaurentCopyright © 2002 Laurent Deruelle
L ’arbre d ’éléments (2)
Tout élément fils de l ’arbre est complètement inclus dans son père– i.e. pas de recouvrement entre balises
Il existe un et un seul élément père qui contient tous les autres : l ’élément racine (root)
Module UV Java / XMLPage 30 / 119
Deruelle LaurentCopyright © 2002 Laurent Deruelle
Eléments et attributs
<NomElement [attribut1=‘ val1 ’…]>– une balise d ’ouverture se compose :
• <
• le nom de l ’élément
• un ou plusieurs attributs pour décrire certaines propriétés de l ’élément
• >
Module UV Java / XMLPage 31 / 119
Deruelle LaurentCopyright © 2002 Laurent Deruelle
Contenu d ’élément « visible »
<personne><nom>Serge Fleury</nom>
<adresse>ILPGA</adresse>
</personne> Contenu d ’élément « invisible »
<personnenom=« Serge Fleury »
adresse=« ILPGA »
</personne>
Module UV Java / XMLPage 32 / 119
Deruelle LaurentCopyright © 2002 Laurent Deruelle
Attribut prédéfini
Indication de langue• <p xml:lang=‘fr’>aquarelle</p>• <p xml:lang= ’en-GB’>Water</p>• <p xml:lang= ‘en_US’>Water</p>
– la valeur de l ’attribut xml:lang est hérité dans l ’arbre des éléments
Module UV Java / XMLPage 33 / 119
Deruelle LaurentCopyright © 2002 Laurent Deruelle
Contenu d ’un élément
Un élément peut contenir– d ’autres éléments– des données– des références à des entités– des sections littérales– des instructions de traitement
Module UV Java / XMLPage 34 / 119
Deruelle LaurentCopyright © 2002 Laurent Deruelle
Données
Constituées par un flot de caractères– tous les caractères sont acceptés sauf le e commercial
« & » et le caractère « plus petit que (<) »
Module UV Java / XMLPage 35 / 119
Deruelle LaurentCopyright © 2002 Laurent Deruelle
Références à des entités (1)
Entités prédéfinies– < => <– > => >– & => &– ' => ‘ – " => «
Module UV Java / XMLPage 36 / 119
Deruelle LaurentCopyright © 2002 Laurent Deruelle
Références à des entités (2)
Références à des caractères– références décimales
• < => <
• & => &
– références hexadécimales• c; => <
•  => &
– utilisation des numéros que ces caractères ont dans les tables ISO 10646 ou Unicode
Module UV Java / XMLPage 37 / 119
Deruelle LaurentCopyright © 2002 Laurent Deruelle
Références à des entités (3)
Entités internes– il est possible de créer ses propres entités et d ’y faire
référence dans le contenu des éléments
<!ENTITY nom_entity « valeur_entity »>
Module UV Java / XMLPage 38 / 119
Deruelle LaurentCopyright © 2002 Laurent Deruelle
Sections littérales
Si l ’on souhaite insérer une longue suite de caractères « spéciaux » il est préférable d ’utiliser une section littérale ou CDATA :
<![CDATA [<auteurs>S. Fleury & al.</auteurs>]]>
– réalisation :
<auteurs>S. Fleury & al.</auteurs>
Module UV Java / XMLPage 39 / 119
Deruelle LaurentCopyright © 2002 Laurent Deruelle
Instructions de traitement
Une indication de traitement est destinée aux applications qui manipulent les documents XML
<?cible arg1 arg2 …?>– cible : nom de l ’application– arg1, arg2 : chaînes passées à l ’application
Module UV Java / XMLPage 40 / 119
Deruelle LaurentCopyright © 2002 Laurent Deruelle
Entités et notations (1)
Entités externes via URL<?xml version=« 1.0 »?>
<!DOCTYPE livre [
<!ENTITY chap1 SYSTEM « chap1.xml »>
<!ENTITY chap2 SYSTEM « chap2.xml »>
<!ENTITY auteur «SF»>]>
<livre>
<titre>Mon livre</livre>
<auteur>&SF;</auteur>
&chap1;
&chap2;
</livre>
Module UV Java / XMLPage 41 / 119
Deruelle LaurentCopyright © 2002 Laurent Deruelle
Entités et notations (2)
Entités externes via identificateur public– cf [XML 1999]
Entités non XML– cf [XML 1999]
Module UV Java / XMLPage 42 / 119
Deruelle LaurentCopyright © 2002 Laurent Deruelle
XML et unicode
XML utilise le jeu de caractères de la norme ISO 10646– les caractères alphabétiques, symboles, idéogrammes sont
identifiés par un nombre codé sur 4 octets (32 bits) et sont décrits par une expression
Module UV Java / XMLPage 43 / 119
Deruelle LaurentCopyright © 2002 Laurent Deruelle
Stylistique XML : règle 1
Il est recommandé d ’inclure dans un document XML des « métadonnées » qui pourront être utilisées par diverses applications : ces informations peuvent décrire le document ou une partie
Module UV Java / XMLPage 44 / 119
Deruelle LaurentCopyright © 2002 Laurent Deruelle
Stylistique XML : règle 2
Il est recommandé de marquer toutes les constructions morpho-syntaxiques auxquelles devront être associées des règles de réalisation physique, typographique...
Module UV Java / XMLPage 45 / 119
Deruelle LaurentCopyright © 2002 Laurent Deruelle
Stylistique XML : règle 3
Il est inutile d ’introduire dans un document des indications précises de réalisation physique
Module UV Java / XMLPage 46 / 119
Deruelle LaurentCopyright © 2002 Laurent Deruelle
Stylistique XML : règle 4
Il est recommandé de marquer toutes les constructions morpho-syntaxiques qui ont une sémantique définie dans l ’univers du discours par un balisage spécifique– exemple : paragraphes, sections explicatives, notes
supplémentaires, commentaires…
Module UV Java / XMLPage 47 / 119
Deruelle LaurentCopyright © 2002 Laurent Deruelle
Stylistique XML : règle 5
Le choix de faire figurer une information comme valeur d ’attribut ou comme données dans un élément devra être mûrement réfléchi (cf supra).
Module UV Java / XMLPage 48 / 119
Deruelle LaurentCopyright © 2002 Laurent Deruelle
Module XML
Introduction Premiers pas en XML Le langage de base XML par l’exemple Les DTD Les liens les feuilles de styles CSS et XSL
Module UV Java / XMLPage 49 / 119
Deruelle LaurentCopyright © 2002 Laurent Deruelle
Exemple : une lettre
Module UV Java / XMLPage 50 / 119
Deruelle LaurentCopyright © 2002 Laurent Deruelle
Exemple : une lettre
Module UV Java / XMLPage 51 / 119
Deruelle LaurentCopyright © 2002 Laurent Deruelle
Ajout d ’attributs
Exemple : une lettre
Module UV Java / XMLPage 52 / 119
Deruelle LaurentCopyright © 2002 Laurent Deruelle
Module XML
Introduction Premiers pas en XML Le langage de base XML par l’exemple Les DTD Les liens les feuilles de styles CSS et XSL
Module UV Java / XMLPage 53 / 119
Deruelle LaurentCopyright © 2002 Laurent Deruelle
Structure Type de document
Un document valide obéit à une structure type de document défini dans une DTD
– un document valide est une instance de cette DTD
Une DTD est – l ’ensemble de toutes les déclarations contenues, soit
directement ou par référence à des entités externes, dans une déclaration de type de document
Module UV Java / XMLPage 54 / 119
Deruelle LaurentCopyright © 2002 Laurent Deruelle
<?xml version=« 1.0 »?><!DOCTYPE EXEMPLE [<!-- Début DTD --><!ELEMENT EXEMPLE (#PCDATA)><!-- Fin DTD -->]><-- Début instance -->
<EXEMPLE>Texte de l ’instance de document correspondant à la DTD définie ci-dessus</EXEMPLE>
<-- Fin instance -->
Structure Type de document
Module UV Java / XMLPage 55 / 119
Deruelle LaurentCopyright © 2002 Laurent Deruelle
Contenu d ’une DTD
Entités générales Entités paramètres Notations Déclarations d ’éléments Déclarations de listes d ’attributs Commentaires
Module UV Java / XMLPage 56 / 119
Deruelle LaurentCopyright © 2002 Laurent Deruelle
Déclaration d ’élément
<!ELEMENT nom modèle>– ordre spécifié :
• <!ELEMENT nom (ID1, ID2, ID3)>
– ordre libre :• <!ELEMENT nom (ID1 | ID2 | ID3)>
– Indicateur d ’occurrence d ’un élément :• ID? : l ’élément ID peut apparaître 0 ou 1 fois
• ID* : l ’élément ID peut apparaître 0 ou n fois
• ID+ : l ’élément ID peut apparaître 1 ou n fois
Module UV Java / XMLPage 57 / 119
Deruelle LaurentCopyright © 2002 Laurent Deruelle
– Données dans un élément
• <!ELEMENT DONNEES (#PCDATA)>
• les données sont constituées par un flot de caractères
– Modèle mixte
• <!ELEMENT MIXTE (#PCDATA | ID1 | ID2)*>
• dans cet exemple l ’élément mixte est composé de données et
d ’éléments, le caractère de répétition est obligatoirement l ’étoile
– Contenu libre
• <!ELEMENT LIBRE ANY>
– Elément vide
• <!ELEMENT VIDE EMPTY>
Déclaration d ’élément
Module UV Java / XMLPage 58 / 119
Deruelle LaurentCopyright © 2002 Laurent Deruelle
Déclaration de listes d ’attributs
<!ATTLIST Nom_élément Nom_attribut type_attribut défaut>
ex : <!ATTLIST ex1 nb (1|2|3) ‘ 1 ’>– Type d ’attributs :
• CDATA : chaîne de caractères prise telle quelle• ID ou IDREF : renvoi dans le document• ENTITY ou ENTITIES : entité externe non XML• NMTOKEN : noms symboliques formés de caractère
alphanumériques• NOTATION : attribut de notation
Module UV Java / XMLPage 59 / 119
Deruelle LaurentCopyright © 2002 Laurent Deruelle
– Valeur par défaut :• la valeur en question• #REQUIRED : attribut obligatoirement présent et valeur spécifié
par le créateur de l ’instance• #IMPLIED : présence de l ’attribut facultative• #FIXED ‘ Valeur ’ : l ’attribut prend toujours cette valeur
Déclaration de listes d ’attributs
Module UV Java / XMLPage 60 / 119
Deruelle LaurentCopyright © 2002 Laurent Deruelle
Déclaration d ’entités paramètres
Les entités déclarées dans un document sont appelées « générales »
Les entités déclarées dans une DTD sont appelées « paramètres »
<!ENTITY % nom « valeur »>
<!ENTITY % nom SYSTEM ‘ URL ’>
<!ENTITY % NOM PUBLIC ‘ lien public ’>– Référence à l ’entité par %nom;
Module UV Java / XMLPage 61 / 119
Deruelle LaurentCopyright © 2002 Laurent Deruelle
Les entités paramètres peuvent être déclarées librement dans la partie externe de la DTD
Dans la partie interne (entre les crochets [ et ] de DOCTYPE), elles sont déclarées librement mais ne peuvent pas être référencées dans une autre déclaration
Déclaration d ’entités paramètres
Module UV Java / XMLPage 62 / 119
Deruelle LaurentCopyright © 2002 Laurent Deruelle
Des exemples de documents XML
Sur le site TAL– Œuvres de Shakespeare
• Jon Bosak ([email protected])July 15, 1999
– Un manuel XML, des textes divers...
This is shaksper.200, a set of the plays of William Shakespeare marked up for electronic publication. The set began as ASCII files put into the public domain by Moby Lexical Tools in 1992. They were marked up in 1992 as a beginner's exercise in SGML DTD and stylesheet design (originally using the DynaText proprietary stylesheet language) and in 1996 were released along with a companion set of publicly available religious texts as the earliest examples of real documents marked up in (early) XML. The current distribution conforms to the XML 1.0 Recommendation released February 8, 1998.
This is shaksper.200, a set of the plays of William Shakespeare marked up for electronic publication. The set began as ASCII files put into the public domain by Moby Lexical Tools in 1992. They were marked up in 1992 as a beginner's exercise in SGML DTD and stylesheet design (originally using the DynaText proprietary stylesheet language) and in 1996 were released along with a companion set of publicly available religious texts as the earliest examples of real documents marked up in (early) XML. The current distribution conforms to the XML 1.0 Recommendation released February 8, 1998.
Module UV Java / XMLPage 63 / 119
Deruelle LaurentCopyright © 2002 Laurent Deruelle
Module XML
Introduction Premiers pas en XML Le langage de base XML par l’exemple Les DTD Les liens les feuilles de styles CSS et XSL
Module UV Java / XMLPage 64 / 119
Deruelle LaurentCopyright © 2002 Laurent Deruelle
Les liens : lien interne
Liens hypertextuels internes via ID ou IDREF :– Dans la DTD
<!ELEMENT SECTION (#PCDATA|xref)*>
<!ATTLIST SECTION TARGET ID #IMPLIED>
<!ELEMENT xref EMPTY>
<!ATTLIST xref ref IDREF #REQUIRED>
– Dans l ’instance<SECTION TARGET=‘ x12 ’>contenu</SECTION>
<SECTION>référence à la section <xref ref=‘ x12 ’></SECTION>
Module UV Java / XMLPage 65 / 119
Deruelle LaurentCopyright © 2002 Laurent Deruelle
Les liens : lien externe
Ressources cibles– URL– pointeur XML
• position absolue suivie d ’une cascade de renvoi relatifs qui spécifient la cible
• renvoi absolu :– http://foo.bar.fr/foobar.xml#root() (la racine de la cible)– http://foo.bar.fr/foobar.xml#id(t132) (l ’élément contenant l ’attribut
ID)– http://foo.bar.fr/foobar.xml#html(perso) (un élément <a> ayant un
attribut name qui a pour valeur perso)
Module UV Java / XMLPage 66 / 119
Deruelle LaurentCopyright © 2002 Laurent Deruelle
• Renvoi relatif sur nœud : – vise un nœud de l ’arbre localisé par rapport au nœud identifié
dans le renvoi absolu– types : child, descendant, ascendant, psibling, fsibling,
preceding, following
• Renvoi sur valeur d ’attribut– renvoi vers une valeur d ’attribut désigné par son nom
• Renvoi sur chaîne– renvoi vers une chaîne de caractères
• Renvoi sur intervalles– permet de un intervalles d ’éléments (les 3 premiers fils) d ’un
élément obtenu par le renvoi initial
Les liens : lien externe
Module UV Java / XMLPage 67 / 119
Deruelle LaurentCopyright © 2002 Laurent Deruelle
Syntaxe des liens
URL : – http://foo.bar.fr/cible.xml
URL+pointeur : – http://foo.bar.fr/cible.xml#root().child(1,titre)
• la résolution du pointeur est faite par l ’application cliente– http://foo.bar.fr/cible.xml|root().child(1,titre)
• la résolution du pointeur est faite par l ’application cliente ou par le serveur
Pointeur : – #root().child(1,titre)
Module UV Java / XMLPage 68 / 119
Deruelle LaurentCopyright © 2002 Laurent Deruelle
Caractéristiques des liens
Liens multi-directionnels Liens à multiples destinations « Inlining » de contenus dans un document Remplacement de contenus dans un document Bases de données pour organiser des locations de
liens
Module UV Java / XMLPage 69 / 119
Deruelle LaurentCopyright © 2002 Laurent Deruelle
Types de liens (1)
Lien simple inclus<a xml:link=‘simple’ href=‘http://lien/’>...</a>
– inclus dans le document d ’origine– une seule cible– unidirectionnel– on peut caractériser la cible (rôle, titre), l ’origine (idem), la
sémantique du lien (comportement lorsque le lien est traversé)… [XML 1999]
Module UV Java / XMLPage 70 / 119
Deruelle LaurentCopyright © 2002 Laurent Deruelle
Types de liens (2)
Lien étendus– il s ’agit en fait de pouvoir créer un lien multicible et de
laisser l ’application gérer la présentation des différentes cibles
– cf [XML 1999]
Module UV Java / XMLPage 71 / 119
Deruelle LaurentCopyright © 2002 Laurent Deruelle
Module XML
Introduction Premiers pas en XML Le langage de base XML par l’exemple Les DTD Les liens les feuilles de styles CSS et XSL
Module UV Java / XMLPage 72 / 119
Deruelle LaurentCopyright © 2002 Laurent Deruelle
Feuilles de styles avec XML
Cascading Style Sheet (CSS) eXtensible Stylesheet Language (XSL)
– On utilisera [XML 1999] pour une présentation complet des notions associées à des langages de descriptions des feuilles de styles avec XML
La présentation faite infra reprend celle faite sur le site :
• http://www.citeweb.net/apetitje/xml
Module UV Java / XMLPage 73 / 119
Deruelle LaurentCopyright © 2002 Laurent Deruelle
Cascading Style Sheet CSS1/2
Les Cascading Style Sheets ou Feuilles de Styles en Cascade ont été initialement conçues pour le langage HTML.
La première version du standard, dite CSS niveau 1 (CSS1), a été publiée en 1996
Module UV Java / XMLPage 74 / 119
Deruelle LaurentCopyright © 2002 Laurent Deruelle
Mai 1998, le W3 Consortium a publié une nouvelle version, dite CSS niveau 2 (CSS2). – Introduction de la notion de type de média qui permet de spécifier
la mise en page d'un document en vue de son affichage sur écran, de son impression sur papier, ou d'indiquer les conditions de sa réalisation par synthèse vocale ou sur des terminaux braille.
– Les spécifications complètes : http://www.w3c.org/TR/CSS
Cascading Style Sheet CSS1/2
Module UV Java / XMLPage 75 / 119
Deruelle LaurentCopyright © 2002 Laurent Deruelle
Création d ’une feuille CSS
plusieurs manières de procéder : en incluant en-tête de page HTML les styles que l'on
souhaite employer dans la page en question.
en écrivant une feuille de style dans un fichier séparé.
Cette seconde solution est celle qui a été retenue pour l'utilisation avec XML
Module UV Java / XMLPage 76 / 119
Deruelle LaurentCopyright © 2002 Laurent Deruelle
Cela s'écrit de la façon suivante :
<?xml version='1.0'?>
<?xml-stylesheet href="FeuilleDeStyle.css" type="text/css" ?>
Création d ’une feuille CSS
Module UV Java / XMLPage 77 / 119
Deruelle LaurentCopyright © 2002 Laurent Deruelle
Concepts de base
Il est facile de concevoir des feuilles de style simples. Exemple pour définir la couleur bleue à l'élément (ou
balise) H1, on écrira :
H1 { color: blue }
Module UV Java / XMLPage 78 / 119
Deruelle LaurentCopyright © 2002 Laurent Deruelle
La règle de style
Une règle de style se compose
– d'un sélecteur qui indique l'élément auquel elle s'applique, et d'une ou de plusieurs propriétés ainsi que leur valeur respective.
– Le couple propriété: valeur forme ce que l'on appelle la déclaration.
sélecteur {propriété1: valeur ; propriété2: valeur }
Module UV Java / XMLPage 79 / 119
Deruelle LaurentCopyright © 2002 Laurent Deruelle
On peut regrouper les sélecteurs en les séparant par une virgule.
H1, H2, H3 { font-family: arial }
On peut regrouper les déclarations.H1 {
font-weight: bold; font-size: 12pt;line-height: 14pt; font-family: arial; font-variant: normal;font-style: normal;}
La règle de style
Module UV Java / XMLPage 80 / 119
Deruelle LaurentCopyright © 2002 Laurent Deruelle
Héritage
Dans le premier exemple, nous avons spécifié la couleur bleue à l'élément H1. Supposons maintenant que nous avons un élément en italique à l'intérieur de celle-ci.
<H1>Le titre d'un document <EM>est</EM> très important !</H1>
Module UV Java / XMLPage 81 / 119
Deruelle LaurentCopyright © 2002 Laurent Deruelle
Si aucune couleur n'a été spécifiée pour l'élément EM, le mot en italique "est" héritera automatiquement de la couleur de son élément parent (H1), soit bleue pour notre exemple.
Il en va également de même pour toutes les autres propriétés à savoir font-family, font-size, etc...
Héritage
Module UV Java / XMLPage 82 / 119
Deruelle LaurentCopyright © 2002 Laurent Deruelle
Pour définir un style "par défaut" pour tout un document il suffit de le définir sur l'élément parent à tous les autres - l ’élément racine - i.e en HTML, l'élément <BODY>. – BODY { color : black;background: white;font-style: arial;}
Héritage
Module UV Java / XMLPage 83 / 119
Deruelle LaurentCopyright © 2002 Laurent Deruelle
Sélecteur de classe
Afin d'accroître le contrôle de granularité sur les éléments, un nouvel attribut a été ajouté à HTML : 'CLASS'.
Tous les éléments contenus dans l'élément racine peuvent être regroupés par classe. Ces classes seront définies dans la feuille de style.
Module UV Java / XMLPage 84 / 119
Deruelle LaurentCopyright © 2002 Laurent Deruelle
<HTML><HEAD><TITLE>Titre</TITLE><STYLE TYPE="text/css">H1.citation { font-style: italic; font-weight: bold }</STYLE></HEAD><BODY><H1 CLASS=citation>La vie est trop courte pour se faire la guerre</H1></BODY></HTML>
Sélecteur de classe
Module UV Java / XMLPage 85 / 119
Deruelle LaurentCopyright © 2002 Laurent Deruelle
Cas 1 : dans l ’exemple précédent, l'élément H1 est « surchargé » dans le document HTML.
Cas 2 : on aurait pu aussi écrire une feuille de style de la façon suivante :
.citation { font-style: italic; font-weight: bold }
Sélecteur de classe
Module UV Java / XMLPage 86 / 119
Deruelle LaurentCopyright © 2002 Laurent Deruelle
Il existe une méthode plus élégante pour utiliser les classes sans avoir surcharger des éléments prédéfinis. Il s'agit de l'élément DIV qui a été réservé à cet effet.
<DIV CLASS=aspect1> Ce texte apparaîtra avec les propriétés définies dans la classe aspect1 </DIV> ...
Sélecteur de classe
Module UV Java / XMLPage 87 / 119
Deruelle LaurentCopyright © 2002 Laurent Deruelle
Commentaires
Les commentaires utilisés à l'intérieur des feuilles de style sont similaires à ceux que l'on utilise en langage
C.
EM { color: red } /* rouge, vraiment rouge !! */
Module UV Java / XMLPage 88 / 119
Deruelle LaurentCopyright © 2002 Laurent Deruelle
<STYLE TYPE="text/css">
body {font-family: arial, helvetica; font-size:9pt}
td {font-family: arial, helvetica;font-size:9pt}
H1 {font-family: arial, helvetica;font-size:12pt;font-style:italic}
a {font-family: arial, helvetica;font-size:9pt;font-weight:bold;color:#b80000}
a:hover {font-family: arial, helvetica;color:#FF0000}
a.main {font-family: arial, helvetica;font-size:9pt;font-weight:bold;color:#b80000}
a.sub {font-family: arial, helvetica;font-size:9pt;color:#b80000}p {font-size:12pt;text-align: justify}
UL {text-align: justify}
LI {list-style-image: url(./images/pucerouge.gif) }CODE {font-size:11pt}
</STYLE>
Exemple de feuille de style utilisée pour toutes les pages du site :
http://www.citeweb.net/apetitje/xml
Exemple de feuille de style
Module UV Java / XMLPage 89 / 119
Deruelle LaurentCopyright © 2002 Laurent Deruelle
eXtensible Stylesheet Language (XSL)
IMPORTANT : la norme XSL n'étant pas encore achevée
Présentation faite sur la base du document de travail du W3C de Juillet 1998
Module UV Java / XMLPage 90 / 119
Deruelle LaurentCopyright © 2002 Laurent Deruelle
Généralités
Pour définir une règle de style il faut :
– 1. décrire le squelette ou arbre du document
– 2. décrire le style que l'on veut appliquer à chaque articulation du squelette ou à chaque de noeud de l'arbre
Module UV Java / XMLPage 91 / 119
Deruelle LaurentCopyright © 2002 Laurent Deruelle
un document XML est une structure arborescente
Structure arborescente
Module UV Java / XMLPage 92 / 119
Deruelle LaurentCopyright © 2002 Laurent Deruelle
Les règles
template rule
– décrit la structure de chaque noeud de l'arbre ainsi que le style à appliquer à ce noeud.
Une feuille de style XSL est tout simplement un document XML qui contient tout un ensemble de règles.
Module UV Java / XMLPage 93 / 119
Deruelle LaurentCopyright © 2002 Laurent Deruelle
Une règle se décompose en deux parties : – on associe un motif (pattern) au patron (template) afin d'identifier chaque
noeud de l'arbre
– on associe une action, une mise en forme, un formatage ou une transformation au noeud résultant
– Un motif sélectionne un noeud en utilisant un ou plusieurs des critères suivants :
un nom
l'ancêtre de l'élément
un identifiant unique (ID)
des jokers
un attribut de l'élément source
sa position relative par rapport à ses éléments voisins ou frères
Les règles
Module UV Java / XMLPage 94 / 119
Deruelle LaurentCopyright © 2002 Laurent Deruelle
Le formatage de l'arbre
Dans l'ancienne spécification, la mise en forme des noeuds de l'arbre se fait en utilisant les balises du jeu d'instruction de HTML; c'est actuellement ce qui fonctionne avec Internet Explorer 5.0.
Module UV Java / XMLPage 95 / 119
Deruelle LaurentCopyright © 2002 Laurent Deruelle
Dans la nouvelle spécification, la mise en forme ressemble plus à la syntaxe de CSS à laquelle quelques éléments on été scindés pour d'augmenter la précision du formatage des documents.
Le formatage de l'arbre
Module UV Java / XMLPage 96 / 119
Deruelle LaurentCopyright © 2002 Laurent Deruelle
<xsl: template match="accueil">
<fo:blockfont-family="times new roman, serif"font-size="12pt"text-color="red"</fo:block>
</xsl:template>
Le formatage de l'arbre
Module UV Java / XMLPage 97 / 119
Deruelle LaurentCopyright © 2002 Laurent Deruelle
le document XML : <accueil>Bonjour monde !</accueil> le fichier XSL
– <xsl:stylesheet><xsl:template match="/"><b><i><xsl:value-of select="accueil"/></i></b></xsl:template></xsl:stylesheet>
le résultat :– Bonjour monde !
Le formatage de l'arbre
Module UV Java / XMLPage 98 / 119
Deruelle LaurentCopyright © 2002 Laurent Deruelle
Module XML
Introduction : eXtensible Markup Language Premiers pas en XML Le langage de base XML par l’exemple Les DTD Les liens les feuilles de styles CSS et XSL
Exemple 1
« bonjour le monde »
Module UV Java / XMLPage 100 / 119
Deruelle LaurentCopyright © 2002 Laurent Deruelle
Utilisation de CSS (1 : le doc)
<?xml version="1.0" standalone="no"?><!DOCTYPE accueil SYSTEM "bonjour.dtd"><?xml:stylesheet type="text/css" href="bonjour.css"?><document> <salutation>Bonjour monde !</salutation></document>
Module UV Java / XMLPage 101 / 119
Deruelle LaurentCopyright © 2002 Laurent Deruelle
Utilisation de XSL (1 : le doc)
<?xml version="1.0" standalone="no"?><!DOCTYPE accueil SYSTEM "bonjour.dtd"><?xml:stylesheet type="text/xsl" href="bonjour.xsl"?><document> <salutation>Bonjour monde !</salutation></document>
Module UV Java / XMLPage 102 / 119
Deruelle LaurentCopyright © 2002 Laurent Deruelle
Utilisation de CSS/XSL (2 : la DTD)
<?xml version="1.0"?>
<!ELEMENT document (#PCDATA)><!ELEMENT salutation (#PCDATA)>
Module UV Java / XMLPage 103 / 119
Deruelle LaurentCopyright © 2002 Laurent Deruelle
Utilisation de CSS (3 : la feuille de style)
<STYLE TYPE="text/css">
document {font-family: arial, helvetica}
salutation {font-size:16pt;font-style:italic;font-weight:bold}
</STYLE>
Module UV Java / XMLPage 104 / 119
Deruelle LaurentCopyright © 2002 Laurent Deruelle
Utilisation de XSL (3 : la feuille de style)
Module UV Java / XMLPage 105 / 119
Deruelle LaurentCopyright © 2002 Laurent Deruelle
Rendu avec IE 5 sans CSS
Module UV Java / XMLPage 106 / 119
Deruelle LaurentCopyright © 2002 Laurent Deruelle
Rendu avec IE 5 avec CSS
Module UV Java / XMLPage 107 / 119
Deruelle LaurentCopyright © 2002 Laurent Deruelle
Rendu avec IE 5 avec XSL
Exemple 2
Une pièce de Ionesco
Module UV Java / XMLPage 109 / 119
Deruelle LaurentCopyright © 2002 Laurent Deruelle
<?xml version="1.0"?><document> <chapitre num="1"> <titre>I. Expérience du théâtre</titre><para>Quand on me pose la question : « Pourquoi écrivez vous des pièces de théâtre ? » je me sens toujourstrès embarrasé, je ne sais quoi répondre. Il me semble parfois que je me suis mis à écrire du théâtre parce que je le détestais. Je lisais des œuvres littéraires, des essais, j'allais au cinéma avec plaisir. J'écoutais de temps à autre de la musique, je visitais les galeries d'art, mais je n'allais pour ainsi dire jamais au théâtre.</para></chapitre><chapitre num="2"> <titre>II. Controverses et témoignages</titre><para>Je suis paraît-il, un auteur dramatique d'avant-garde. La chose me paraît même évidente puisque je me trouve ici, aux entretiens sur le théâtre d'avant-garde. Cela est tout à fait officiel.</para><para>Maintenant, que veut dire avant-garde ? Je ne suis pas docteur en théâtralogie, ni en philosophie de l'art, à peine ce qu'on appelle un homme de théâtre.</para></chapitre><livre>Notes et contre-notes</livre><auteur>Eugène Ionesco</auteur></document>
Le doc
Module UV Java / XMLPage 110 / 119
Deruelle LaurentCopyright © 2002 Laurent Deruelle
Module UV Java / XMLPage 111 / 119
Deruelle LaurentCopyright © 2002 Laurent Deruelle
<STYLE TYPE="text/css">document {font-family: times new roman, helvetica;
float: right;border-style: solid;width: auto; border-width: 2px;margin-left: 10%;margin-right: 10%;padding-left: 10px;padding-right: 10px;}
titre {display: block; font-family: arial, helvetica;font-size:12pt;font-style:italic;font-weight:bold;margin-top: 3mm;margin-bottom: 5mm}
para {display: block;text-align: justify;margin-bottom: 5mm;}
livre,auteur {display: block;font-size:10pt;font-style: italic}
</STYLE>
Feuille de style CSS
Module UV Java / XMLPage 112 / 119
Deruelle LaurentCopyright © 2002 Laurent Deruelle
Module UV Java / XMLPage 113 / 119
Deruelle LaurentCopyright © 2002 Laurent Deruelle
<STYLE TYPE="text/css">A {}document {
float: right;border-style: solid;width: auto; border-width: 2px;margin-left: 10%;margin-right: 10%;padding-left: 10px;padding-right: 10px;
background-image: url(../../images/foggy.png);}
titre {display: block; font-family: arial, helvetica;font-size:12pt;font-style:italic;font-weight:bold;margin-top: 3mm;margin-bottom: 5mm}
auteur {display: block;font-size:10pt;font-style:italic;}
livre {font-size: 10pt;font-weight:bold;margin-left: 80%;}
para {display: block;text-align: justify;margin-bottom: 5mm;}
</STYLE>
Feuille de style CCS
Module UV Java / XMLPage 114 / 119
Deruelle LaurentCopyright © 2002 Laurent Deruelle
Module UV Java / XMLPage 115 / 119
Deruelle LaurentCopyright © 2002 Laurent Deruelle
<?xml version="1.0"?><xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl"><xsl:template match="/"><HTML> <BODY>
<xsl:for-each select="document/chapitre">
<H1>Chapitre <xsl:value-of select="@num"/></H1> <b><xsl:value-of select="titre"/></b> <p><xsl:for-each select="para">
<p><xsl:value-of/></p></xsl:for-each></p>
</xsl:for-each> </BODY></HTML></xsl:template></xsl:stylesheet>
Feuille de style XSL
Module UV Java / XMLPage 116 / 119
Deruelle LaurentCopyright © 2002 Laurent Deruelle
Module UV Java / XMLPage 117 / 119
Deruelle LaurentCopyright © 2002 Laurent Deruelle
<?xml version="1.0"?><xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl"><xsl:template match="/"><HTML> <BODY>
<H1>Sommaire</H1><xsl:for-each select="document/chapitre">
<H2>Chapitre <xsl:value-of select="@num"/></H2> <blockquote>
<b><xsl:value-of select="titre"/></b> </blockquote>
</xsl:for-each><HR/><xsl:for-each select="document/chapitre">
<H1>Chapitre <xsl:value-of select="@num"/></H1> <b><xsl:value-of select="titre"/></b> <p><xsl:for-each select="para">
<p><xsl:value-of/></p></xsl:for-each></p>
</xsl:for-each> </BODY></HTML></xsl:template></xsl:stylesheet>
Feuille de style XSL
Module UV Java / XMLPage 118 / 119
Deruelle LaurentCopyright © 2002 Laurent Deruelle
Module UV Java / XMLPage 119 / 119
Deruelle LaurentCopyright © 2002 Laurent Deruelle
XML : une norme qui évolue
Des modifications sont à prévoir En attendant, il faut s ’y préparer… avec ce qui est
déjà disponible