8/2/2019 Support Cours XML
1/165
ENIS 2008-2009
Fadoua DRIRA HAMMAMI
IntroductionIntroduction
XML:XML: eXtensibleeXtensible MarkupMarkup LanguageLanguage
8/2/2019 Support Cours XML
2/165
ENIS 2008-2009
Fadoua DRIRA HAMMAMI
GML (1969)IBM (Goldfarb, Mosher&Lory)
SGML (1986)Normalisation ISO 8879
XML (1998)Recommandation W3C
HTML (1992)Recommandation W3C
XHTML (1999)Recommandation W3C
Solution de la gestion etde la publicationdocumentaire
Application (i.e. DTD) deSGML pour la prsentation des
documents sur le Web, Langagede visualisation,non adapt lchange entre
programmes
Mta-langage de structuration,simplifi compatible SGML,
permet de: Normaliser et structurerlinformation avec un point devue smantique
Sparer le contenuinformatif des donnes de leurreprsentation changer/partager lesdonnes
et HTMLdevient uneinstance de XML ; XHTML utilise les
mmes balises que HTML avec une syntaxeXML et des contraintes de mises en formeplus strictes.
Mta-langage gnral de balisage ;Normalisation de GML,Puissant mais complexe, taille desspcifications imposantes (>500pages)
Introduit la notion de DTD (grammairespcifique une application)
IntroductionIntroduction
8/2/2019 Support Cours XML
3/165
ENIS 2008-2009
Fadoua DRIRA HAMMAMI
IntroductionIntroductionXML versus SGML
Le modle de rfrence : SGML Standard : normalis depuis 1986 (ISO 8879) Generalized : langage gnraliste de haut niveau dabstraction
Utilis dans le monde de la gestion documentaire et de la publication Permet dtablir une distinction claire entre linformation (mots, images,etc .) et la prsentation de linformation (polices, couleurs, organisation, etc
.) Markup : fond sur la dfinition et lutilisation de balises
Syntaxe permissive (balises non refermes, attributs vides, etc .) Language : dcrit des informations relatives au contenu du document
Repose sur la dfinition de structures (DTD) pour normaliser la rdaction
Objectifs spcifiques de XML :
XML doit pouvoir tre utilis sans difficult sur Internet Il doit tre facile dcrire des programmes qui manipulent du XML Il doit tre facile de crer et de lire des documents XML (intelligibilit) le nombre doptions doit tre rduit au minimum.
8/2/2019 Support Cours XML
4/165
ENIS 2008-2009
Fadoua DRIRA HAMMAMI
IntroductionIntroductionXML versus HTML
HTML (HyperText Markup Language) est un langage ddi : Application de SGML pour la prsentation de documents sur le web.
La vocation de XML nest pas de se substituer HTML : Structuration versus prsentation
HTML rpond la question comment prsenter des donnes ? XML rpond la question comment structurer des donnes ?
Fond versus forme HTML sintresse la forme XML sintresse au fond
XML et HTML sont complmentaires : Lvolution du web va vers une sparation du fond et de la forme Il faudra conserver un langage de mise en forme style HTML
8/2/2019 Support Cours XML
5/165
ENIS 2008-2009
Fadoua DRIRA HAMMAMI
IntroductionIntroduction
XHTML n
autorise pas les simplifications que l
on pouvait se permettre en HTML.Une page XHTML est donc un document XML utilisant un langage clairement
spcifi. Un programme de validation peut y tre appliqu pour sassurer de saconformit parfaite. Plus de fiabilit, cest ce quapporte un langage XML.
8/2/2019 Support Cours XML
6/165
ENIS 2008-2009
Fadoua DRIRA HAMMAMI
IntroductionIntroductionXXML : Dfinition
XML est un mta-langage de description des donnes, c'est--dire quilpermet de dfinir des langages de description dinformations structures, encoreappels langages de structuration.
En soi, XML ne sert rien (au sens applicatif du terme). En revanche, il estpossible, partir dune de ces descriptions des donnes, dutiliser lesnombreuses applications de XML pour faire quelque chose avec cesdonnes. Par exemple : affichage en HTML, traitements automatiques desdonnes (extraction de donnes, tri, transformation). XML permet notamment(liste non exhaustive) de :
Normaliser et structurer linformation avec un point de vue smantique.
Sparer le contenu informatif des donnes de leur reprsentation. changer/partager des donnes entre systmes informatiques.
8/2/2019 Support Cours XML
7/165
ENIS 2008-2009
Fadoua DRIRA HAMMAMI
IntroductionIntroductionXML et les bases de donnes
Les bases de donnes relationnellesoffrent des performances intressantesmais elles noptimisent pas les usagescourants. (mlanger dans une mmebase des donnes de mme naturemais sans dpendance entre elles).
XML permet de stocker des donnes
selon des regroupements correspondantaux usages principaux : les donnessont regroupes selon leursdpendances.
8/2/2019 Support Cours XML
8/165
ENIS 2008-2009
Fadoua DRIRA HAMMAMI
Concepts de baseConcepts de base
XML:XML: eXtensibleeXtensible MarkupMarkup LanguageLanguage
8/2/2019 Support Cours XML
9/165
ENIS 2008-2009
Fadoua DRIRA HAMMAMI
Description dDescription dun document XMLun document XML
Prologue(Entte dudocument)
lmentdocument(lmentracine)
Balise fermante
Commentaire
Racine du document
Balise ouvrante
Dclaration XML
XML est la spcification de la syntaxe du langage de structuration. Undocument XML est dit bien form sil respecte la syntaxe XML.
Jean-Chrisotophe
Bernadac
Construire une application XML
Eyrolles
Paris
1999
8/2/2019 Support Cours XML
10/165
ENIS 2008-2009
Fadoua DRIRA HAMMAMI
Description dDescription dun document XMLun document XML
Le prologue d'un document XML comprend :
La dclaration XML Elle est optionnelle mais recommande, notamment pour y faire figurer le numro
de version.
Remarque : Si cette dclaration est incluse, lattribut version doitncessairement y figurer.
Lencodage par lattribut encoding Il permet dindiquer la reprsentation physique des caractres du fichier; afin
dviter de coder chaque caractre spcial.
Des commentaires Ils peuvent galement exister,
Ils ne peuvent tre placs lintrieur dune balise et ne sont pas obligatoirement
transmis lapplication.
8/2/2019 Support Cours XML
11/165
ENIS 2008-2009
Fadoua DRIRA HAMMAMI
Description dDescription dun document XMLun document XML
Lattribut SDD (Standalone Document Declaration) :
Il permet de dterminer si le document est autonome (ou autodescriptif). Si cenest pas le cas, cest quil fait rfrence une DTD (ou un schma XML)externe. Par dfaut, un document XML est considr comme autonome, puisquela DTD peut tre omise.
Remarque : Les attributs version, encoding et standalone qui figurent dans la dclaration
doivent y figurer dans cet ordre.
Le prologue du document peut galement contenir une dclaration de type dedocument (DTD), pour spcifier des informations additionnelles sur celui-ci.
8/2/2019 Support Cours XML
12/165
ENIS 2008-2009
Fadoua DRIRA HAMMAMI
Description dDescription dun document XMLun document XML
L'lment document est la seconde partie d'un document XML, correspond un lment unique, lment racine (comparable au en HTML) quipeut contenir d'autres lments de donnes. Un lment de donnes est un texte encadr par une balise de dbut et une
balise de fin.
Un lment de donnes peut tre enrichi par:
dautres lments imbriqus (structure arborescente) dans le cas dinformation de typecomplexe (numrations, possde des proprits)
des attributs dans le cas dinformation valeur unique de type simple (informationmonovalue)
Nom de llment
Attribut n1 Attribut n3Attribut n2
8/2/2019 Support Cours XML
13/165
ENIS 2008-2009
Fadoua DRIRA HAMMAMI
Description dDescription dun document XMLun document XML
La syntaxe XML comprend des rgles strictes. Dans un document XML bien form, Il doit y avoir une balise racine (qui englobe toutes les autres, BIBLIO dans lexemple).
Toute balise ouvrante doit tre associe avec une balise fermante, sauf llment sanscontenu (exemple: = ) .
Il ne doit pas y avoir dentrelacement de balises : (syntaxe incorrecte).
La casse (majuscules/minuscules) doit tre respecte (case sensitive).
Les noms des attributs doivent tre nots en minuscule.
Les valeurs des attributs doivent tre nots entre guillemets ou apostrophes.
Les caractres "" ou des guillemets simples ou doubles peut galement tre perturbant.Dans ce cas, on a recours >, ' et ".
Un nom doit commencer par une lettre ou par le caractre "_" et non par un chiffre ou
un autre signe de ponctuation. Un nom ne peut pas commencer par la squence de lettres x m l, quelle quen soit la
casse.
Aucun espace aprs le caractre d'ouverture < ou avant le caractre de fermeture >
8/2/2019 Support Cours XML
14/165
ENIS 2008-2009
Fadoua DRIRA HAMMAMI
Description dDescription dun document XMLun document XML
Le non respect des conditions prcdentes entranera systmatiquement une erreur.
< date> 09 2007
Soit le code erron suivant :
8/2/2019 Support Cours XML
15/165
ENIS 2008-2009
Fadoua DRIRA HAMMAMI
Description dDescription dun document XMLun document XML
Le non respect des conditions prcdentes entranera systmatiquement une erreur.
09 2007
Aprs une premire correction (suppressionde lespace dans llment date) ;
8/2/2019 Support Cours XML
16/165
ENIS 2008-2009
Fadoua DRIRA HAMMAMI
Description dDescription dun document XMLun document XML
Le non respect des conditions prcdentes entranera systmatiquement une erreur.
09 2007
Aprs une deuxime correction (ajout delencodage dans lentte) ;
8/2/2019 Support Cours XML
17/165
ENIS 2008-2009
Fadoua DRIRA HAMMAMI
Description dDescription dun document XMLun document XML
Le non respect des conditions prcdentes entranera systmatiquement une erreur.
09 2007
Aprs une troisime correction (rectification du nom de llment de la balise defermeture), on aboutit au code correct.
8/2/2019 Support Cours XML
18/165
ENIS 2008-2009
Fadoua DRIRA HAMMAMI
Exercice : structuration des donnExercice : structuration des donnes en XMLes en XML
Une bouteille d'eau Cristaline de 150 cl contient par litre 71 mg d'ions positifscalcium, et 5,5 mg d'ions positifs magnsium. On y trouve galement des ions ngatifscomme des chlorures 20 mg par litre et des nitrates avec 1 mg par litre. Elle est recueillie St-Cyr la Source, dans le dpartement du Loiret. Son code barre est 3274080005003 et sonpH est de 7,45. Comme la bouteille est sale, quelques autres matriaux comme du fer s'ytrouvent en suspension.
Une seconde bouteille d'eau Cristaline a t, elle, recueillie la source d'Aurledans les Alpes Maritimes. La concentration en ions calcium est de 98 mg/l, et en ionsmagnsium de 4 mg/l. Il y a 3,6 mg/l d'ions chlorure et 2 mg/l de nitrates, pour un pH de 7,4.Le code barre de cette bouteille de 50 cl est 3268840001008.
Une bouteille de mme contenance est de marque Volvic, et a t puise ...Volvic, bien connu pour ses sources donnant un pH neutre de 7. Elle comprend 11,5 mg/ld'ions calcium, 8,0 mg/l d'ions magnsium, 13,5 mg/l d'ions chlorures et 6,3 mg/l d'ionsnitrates. Elle contient galement des particules de silice. Son code barre est3057640117008.
PS : Volvic est dans le Puy-de-Dme...
8/2/2019 Support Cours XML
19/165
ENIS 2008-2009
Fadoua DRIRA HAMMAMI
Les composants de XMLLes composants de XML
XML:XML: eXtensibleeXtensible MarkupMarkup LanguageLanguage
8/2/2019 Support Cours XML
20/165
ENIS 2008-2009
Fadoua DRIRA HAMMAMI
Les composants de XMLLes composants de XML
XML est un mta-langage de balisage. Plusieurs entits lui sont associespour permettre la mise au point, la lecture ou la visualisation de linformationstructure.
Un processeur (ou parser) XML :
un module logiciel recevant en entre un document XML, produisant en sortieune structure de reprsentation interne (graphe dobjets ou flux dvnements),vrifiant que les donnes sont bien formes.
il permet de raliser linterface entre une application et un document XML. Lastructure produite est encapsule par une surface applicative standardise (API).
deux types de parseurs; le parseur SAX et le parseur DOM.
Parseur
XML
vnements
ou objets
Application
APIDocument XML
Traitement dun document XML par une application
8/2/2019 Support Cours XML
21/165
ENIS 2008-2009
Fadoua DRIRA HAMMAMI
Les composants de XMLLes composants de XML
Le modle objet de document (DOM) : (standardis par le W3C) Produit un graphe dobjets en mmoire.
dfinit des interfaces qui permettent daccder aux objets (lments) dundocument XML. Une interface propose des proprits et des mthodes pourchaque type dlment.
reprsente un document XML sous la forme dun arbre charg en mmoire etfournit des interfaces permettant de le manipuler.
a des interfaces indpendantes de tout langage de programmation; unavantage du point de vue de la standardisation mais un inconvnient car il nestpas optimis pour une langage particulier.
Exemple de parseurs : MSXML de Microsoft, SDK de Oracle
8/2/2019 Support Cours XML
22/165
ENIS 2008-2009
Fadoua DRIRA HAMMAMI
Les composants de XMLLes composants de XML
un arbre est form dune racine Document , de nuds internes (les lments ouattributs) et de nuds feuilles (contenant les valeurs dlment ou attributs).
Mthodes daccs et de modificationdes informations du nud courant
Mthodes de modification des fils dunud courant
getNodeName() : retourne le nom
getNodeType() : retourne le typegetNodeValue() : retourne la valeur
getOwnerDocument(): retourne le nuddocument racine
hasChildNodes(): retourne true si lenud possde un enfant
setNodeValue(): change la valeur
CloneNode() :copie un noeud
insertBefore(Nouveau_Noeud,
N
ud_Reference) : insre un nouveau n
udfils avant le nud rfrence dj existant
Replace_Child(Nouveau_Noeud,Ancien_Nud) : remplace un noeud
removeChild(Noeud) supprime le nud
appendChild(Noeud): ajoute un nud la finde la liste des nuds.
Interface Node
8/2/2019 Support Cours XML
23/165
8/2/2019 Support Cours XML
24/165
ENIS 2008-2009
Fadoua DRIRA HAMMAMI
Les composants de XMLLes composants de XML
Exemple : Cration dun document avec DOM
Soit lexemple suivant
Jean
Dupont
8/2/2019 Support Cours XML
25/165
ENIS 2008-2009
Fadoua DRIRA HAMMAMI
Les composants de XMLLes composants de XMLPublic class ExempleDOM{
Public static main (String argc[ ]) throws IOException, DOMException
{XMLDocument xmlDoc = new XmlDocument();
//cration des nuds
ElementNode nom = (ElementNode) xmlDoc.createElement("nom");
ElementNode prenom = (ElementNode) xmlDoc.createElement("prenom");
ElementNode nomfam = (ElementNode) xmlDoc.createElement("nomfamille");
//cration de larbre
xmlDoc.appendChild(nom); nom.appendChild(prenom);
prenom.appendChild(xmlDoc.createTextNode("Jean"); Nom.appendChild(nomfamille);
Nom.appendChild(xmlDoc.createTextNode("Dupont");
//positionnement d un attribut
Nom.setAttribute ("Ville","Paris");
//sortie
System.exit(0);
} }
8/2/2019 Support Cours XML
26/165
ENIS 2008-2009
Fadoua DRIRA HAMMAMI
Les composants de XMLLes composants de XML
LAPI simplifie pour XML (Simple API for XML), ou SAX : est
une alternative au DOM standardise par le groupe XML-DEV.
adapte lanalyse de documents XML volumineux et est plus complexe mettre en place, car elle ncessite la connaissance de la programmation en Javaet linstallation dun parser et dun environnement de dveloppement spcifiques.
ne prend pas en compte la structure d arbre dun document; des vnements
sont renvoys chaque fois que le parseur rencontre une nouvelle balise. adapt lchange des donnes entre applications.
SAX est une API lgre et rapide, ne construit pas limage de document enmmoire mais permet les traitements la vole.
8/2/2019 Support Cours XML
27/165
ENIS 2008-2009
Fadoua DRIRA HAMMAMI
Les composants de XMLLes composants de XML
Document XML Parser
FluxXML
.
Mthodesutilisateur
vnement
StartDocument
vnement
StartElement
vnement
endDocument
Principe dun parseur SAX
Types d'vnement : dbut et fin de document ; dbut et fin d'lments ; attributs, texte, .
8/2/2019 Support Cours XML
28/165
ENIS 2008-2009
Fadoua DRIRA HAMMAMI
Les composants de XMLLes composants de XML
8/2/2019 Support Cours XML
29/165
ENIS 2008-2009
Fadoua DRIRA HAMMAMI
Les composants de XMLLes composants de XML
8/2/2019 Support Cours XML
30/165
ENIS 2008-2009
Fadoua DRIRA HAMMAMI
Les composants de XMLLes composants de XML
Les espaces de nommage (XML Namespaces xmlns )
Objectifs :
mlanger du vocabulaire XML provenant de plusieurs grammaires.
viter les conflits entre des termes identiques ayant des significationsdiffrentes dans des domaines diffrents.
identifier de manire unique les balises XML.
Principe associer une URI (Uniform Ressource Identifier) au nom de llment.
lURI peut tre fictive (non vrifie) et pointe (quand mme) sur la grammaire delespace de nommage.
Exemple : dans le cas dune entreprise, le document XML associ peut comporterdeux sortes de noms, quil est important darriver diffrencier ; le nom de lentrepriseet les noms de ses personnels. La solution propose par xmlns est de dfinir les
balises suivantes et .
8/2/2019 Support Cours XML
31/165
ENIS 2008-2009
Fadoua DRIRA HAMMAMI
Les composants de XMLLes composants de XML
Le document XML associ lorganisation de lentreprise est :
DocNum inc
XX YY
8/2/2019 Support Cours XML
32/165
ENIS 2008-2009
Fadoua DRIRA HAMMAMI
Les composants de XMLLes composants de XML
Utilisation de liens avec Xlink (XML Linking Langague) :
une spcification qui permet de dcrire les liens entre les documents.
deux types de liens :
lien simple (xlink:type ="simple") tend la notion de lien HTML auxdocuments XML, avec des complments (possibilit de catgoriser les liens)
lien tendu (xlink:type ="extended") permet de dfinir des liens pluscomplexes (liens pointant vers des ressources multiples (cas de sitesmiroirs))
Exemple :
Version HTML
lien vers doc
Version Xlink
lien vers doc
8/2/2019 Support Cours XML
33/165
ENIS 2008-2009
Fadoua DRIRA HAMMAMI
Les composants de XMLLes composants de XML
XML permet de crer des liens vers dautres documents mais aussi de pointer surune partie prcise dun document XML.
Exemple : cas dun lien simple qui pointe sur lentre de lannuaire contenant lenumro de tlphone de Harry:
Numro de tlphone de Harry dans lannuaire
Requte Xpath ; Xpath est un langage dexpression dechemin pour adresser des parties des documents XML
8/2/2019 Support Cours XML
34/165
ENIS 2008-2009
Fadoua DRIRA HAMMAMI
Les composants de XMLLes composants de XML
Exemple : cas dun lien tendu ; un tel lien se compose : dun lment racine caractris par lattribut xlink : type= extended
des lments fils de type ressource , locator ou arc
ressource et locator dfinissent les nuds; ils sont similaires saufque ressource sont de vritables nuds alors que locator permettent de rfrencier des nuds (attribut hrefen plus). arc dfinissent les arcs.
La Capitale de la France
href=" /ville/Marseille.xml" />
href=" /ville/Lyon.xml" />
420 km
600 km
900 km
8/2/2019 Support Cours XML
35/165
ENIS 2008-2009
Fadoua DRIRA HAMMAMI
Les composants de XMLLes composants de XML
Le langage de feuilles de styles associ XML, XSL (Extended StyleSheetLanguage) :
permet la mise en forme de documents XML.
se compose des langages XPATH, qui permet la localisation des lments etdes parties dans un document XML (cest un langage de requte pour extrairedes donnes dun document XML), et XSLT (XSL Transformations), qui dfinit leformat de sortie du document. Lassociation dXSL un document XML permet
de complter le couple donnes / mta-donnes dfini dans le document en luiassociant des informations de formatage. Il existe aussi un troisime langage,XSL-Formatting Objects, qui permet daller plus loin dans la compositiondocumentaire, en dcrivant notamment la structure physique des pages desdocuments gnrs.
Les dclarations de type de document (DTD) ou les schmas XMLpermettent de dfinir la structure de linformation dcrite de faon plus oumoins approfondie. Lorsquun document XML est associ une DTD ou un schma XML et quil est conforme la description de linformationindique, on dit quil est valide.
8/2/2019 Support Cours XML
36/165
ENIS 2008-2009
Fadoua DRIRA HAMMAMI
Les composants de XMLLes composants de XML
Document XML
DTD ouschma
DTD ouschma
?
Bienform?
valide?
Interprtation dudocument
Message derreur/Document
non-interprt
Message derreur/Document
non-interprt
(Optionnel)
nonoui
non oui oui
non
Comment un document XML est interprt par le parser?
8/2/2019 Support Cours XML
37/165
ENIS 2008-2009
Fadoua DRIRA HAMMAMI
Grammaire XML:Grammaire XML:DTD etDTD et XMLXML--schschmama
XML:XML: eXtensibleeXtensible MarkupMarkup LanguageLanguage
8/2/2019 Support Cours XML
38/165
ENIS 2008-2009
Fadoua DRIRA HAMMAMI
Dfinition de type de document, donc une spcification du modle de donnesauquel appartient un document.
Une DTD se place dans le prologue dun document XML.
Pour quun document soit valid par une DTD, il faut : quil contienne une (et une seule) dclaration de type de document,
quil fasse rfrence, de faon interne ou externe, une DTD dcrivant sastructure.
Une DTD permet de vrifier quun document XML est conforme une syntaxedonne ( une grammaire).
La norme XML nimpose pas lutilisation de DTD mais elle impose le respectexact des rgles de base de la norme XML.
Une fois une DTD est associ un document XML, le parser est encharge de vrifier que le document obit aux rgles fixes par cette mmeDTD.
DTD = Document Type Definition
8/2/2019 Support Cours XML
39/165
ENIS 2008-2009
Fadoua DRIRA HAMMAMI
Une DTD peut tre dfinie de 2 faons : Sous forme interne, incluant la grammaire dans le document.
Sous forme externe, soit en appelant un fichier contenant la grammaire partirdun fichier local ou bien en y accdant par son URL.
Une DTD dcrit : les lments du document XML, de faon arborescente, en partant de
llment racine (mot-cl : ELEMENT), les attributs des diffrents lments, sous forme de liste (ATTLIST). les diffrentes entits auxquelles font rfrence les lments du document(ENTITY), les ventuelles notations, qui dclarent du contenu non XML, comme desdonnes graphiques ou binaires (mot-cl : NOTATION).
DTD = Document Type Definition
8/2/2019 Support Cours XML
40/165
ENIS 2008-2009
Fadoua DRIRA HAMMAMI
Les lments XML sont dfinis dans une balise . La syntaxe est :
Le paramtre contenureprsente soit un type de donnes prdfini, soitun lment de donnes compos, constitu lui mme d'lments
Types prdfinis:
#PCDATA : dsigne des donnes textuelles qui seront traites par le parseur.Exemple : en DTD: et en XML : texte
EMPTY : L'lment ne contient pas de donnes spcifiques.Exemple : en DTD : et en XML :
ANY : L'lment peut contenir tout type de donne (contenu libre).
Dclaration dlment simple
NB: Il est impratif dcrire ELEMENT en majuscule.
8/2/2019 Support Cours XML
41/165
ENIS 2008-2009
Fadoua DRIRA HAMMAMI
Dfinit une squence ou un choix dlment. Syntaxe spcifique avec oprateurs de composition dlments.
Dclaration dlment compos
(A,B)+Les parenthses permettent de regrouper des lments afin de leur appliquerles autres oprateurs.
( )
A,BL'lment A doit tre prsent et suivi de l'lment B,
A|BL'lment A ou B peut tre prsent (mais pas les deux)|
A?L'lment peut avoir 0 ou 1 occurrence?A*L'lment peut avoir 0 N occurrences*
A+L'lment doit avoir au moins une occurrence+
ExempleSignificationOprateur
NB: Lordre dans lequel sont dclars les diffrents composants dun lmentcomposite est trs important ; ces lments devront tre organiss en rapport aveccette dclaration, sinon le document XML sera non valide.
8/2/2019 Support Cours XML
42/165
ENIS 2008-2009
Fadoua DRIRA HAMMAMI
Le document annuaire.xml est valide par rapport la DTD annuaire.dtd
Paul
010200345
Document XML pour une DTD externe
annuaire.dtd
]>
Paul
010200345
Document XML pour une DTD interne
Dclaration dlment composExemple 1
8/2/2019 Support Cours XML
43/165
ENIS 2008-2009
Fadoua DRIRA HAMMAMI
Un lment NomPersonne est compos : Soit d'un sigle M, Mme, Mlle D'un prnom D'un 2me prnom Et d'un nom de famille
Personne.dtd
JohnEdouardMartin
Personne.xml
Dclaration dlment composExemple 2
8/2/2019 Support Cours XML
44/165
ENIS 2008-2009
Fadoua DRIRA HAMMAMI
Rdiger une DTD pour une Bibliographie. Cette bibliographie: contient des livres et des articles; les informations ncessaires pour un livre sont :
son titre gnral; les noms des auteurs ; ses tomes et pour chaque tome, leur nombre de pages ;
des informations gnrales sur son dition comme par exemple le nom delditeur, le lieu ddition, le lieu dimpression, son numro ISBN ;
les informations ncessaires pour un article sont : son titre ; les noms des auteurs ; ses rfrences de publications : nom du journal, numro des pages, anne depublication et numro du journal
on rservera un champ optionnel pour un avis personnel
Dclaration dlment composExercice
8/2/2019 Support Cours XML
45/165
ENIS 2008-2009
Fadoua DRIRA HAMMAMI
Dclaration dattributs
balise spcifie l'lment auquel est attach l'attribut
Attributest le nom de l'attribut dclar
Type dfinit le type de donne de l'attribut choisi parmi: CDATA pour des donnes textuelles. Valeur numre, liste de choix. Exemple (M | Mme | Mlle). ID sert d'identifiant unique pour cette instance d'lment. Deuxattributs de type ID ne peuvent donc pas avoir la mme valeur dansun mme document XML.
IDREF rfrence une cl.
Mode prcise le caractre obligatoire ou non de l'attribut #REQUIRED, #IMPLIED ou #FIXED
Un attribut permet de complter un lment, cest une sorte dadjectif.
8/2/2019 Support Cours XML
46/165
ENIS 2008-2009
Fadoua DRIRA HAMMAMI
Dclaration dattributs
#REQUIRED : l'attribut doit figurer dans chaque instance de l'lment
#IMPLIED : l'attribut est facultatif
#FIXED "valeur par dfaut" : l'attribut peut figurer ou non dans le document.S'il est prsent, il doit alors avoir la valeur "Edit-Corp" sinon le parseur peutfournir la valeur par dfaut.
Une valeur par dfaut : l'attribut peut apparatre ou non dans le document.S'il est absent, le parseur peut fournir la valeur par dfaut. Si une valeur est
dfinie, il peut tre n'importe quelle valeur figurant dans la liste ATTLIST.
8/2/2019 Support Cours XML
47/165
ENIS 2008-2009
Fadoua DRIRA HAMMAMI
Dclaration dattributs
]>MarieJeanPierreJulie
8/2/2019 Support Cours XML
48/165
ENIS 2008-2009
Fadoua DRIRA HAMMAMI
Dclaration dattributsExercice
Modifier la DTD prcdente...
- en ajoutant un attribut optionnel soustitre l'lment titre ;- en faisant de l'lment tome un lment vide et en lui ajoutant un
attribut requis nb_pages et un attribut optionnel soustitre ;
- en faisant de l'lment nom_journal un attribut de l'lment journalet en lui donnant comme valeur par dfaut Feuille de Chou ;- en faisant de l'lment annee un attribut de type numr, prenant
comme valeurs possibles 2002, 2003, 2004, "avant_2002" et "inconnue" etproposant comme valeur par dfaut inconnue.
8/2/2019 Support Cours XML
49/165
ENIS 2008-2009
Fadoua DRIRA HAMMAMI
Dclaration dentits
Entit dfinie dans le document
Une telle entit sert en gnral d'abrviation pour des informations rptitives,de raccourci pour des noms longs
rutilisable dans un document par simple appel &nom;
]>
&cie;&imp;
]>
Utilisation des entits Juste un exemple
8/2/2019 Support Cours XML
50/165
ENIS 2008-2009
Fadoua DRIRA HAMMAMI
Dclaration dentits
]>
&MR;
DUPONT
Jean
Monsieur
DUPONT
Jean
8/2/2019 Support Cours XML
51/165
ENIS 2008-2009
Fadoua DRIRA HAMMAMI
Dclaration dentits
Entit dfinie lexterne
Les entits dfinies l'extrieur des documents sont utilises de la mme faonmais sont dclares ainsi :
]>
&chap1;&chap2;
8/2/2019 Support Cours XML
52/165
ENIS 2008-2009
Fadoua DRIRA HAMMAMI
Dclaration dentits
Entits prdfinies
Les entits prdfinies permettent l'utilisation de certains caractres sansqu'ils puissent tre confondus avec les caractres spciaux utiliss par lesdocuments XML pour le balisage.
lt : caractre ''amp : caractre ''quot : caractre '"' (guillemet double)apos : caractre "'" (guillemet simple ou apostrophe)
8/2/2019 Support Cours XML
53/165
ENIS 2008-2009
Fadoua DRIRA HAMMAMI
Dclaration dentits
Entit paramtre
Ce type dentit permet la dclaration dun paramtre utilisable uniquement dansla DTD. La DTD doit tre externe au document pour pouvoir utiliser des entitsparamtres. Une entit paramtre se dclare et sutilise avec le signe %.
180
8/2/2019 Support Cours XML
54/165
ENIS 2008-2009
Fadoua DRIRA HAMMAMI
Limites des DTD
Expression de cardinalits limite Pas de nombre prcis doccurrences dun lment dans une grammaire
XML : * (0 N), ? (0 ou 1), + (1 N)
La structuration des DTD est crite avec une syntaxe particulirediffrente de la syntaxe XML. ncessit de se procurer dun outil spcifique pour dvelopper des DTD
difficile interprter difficile traduire en schma objets
Syntaxe des DTD trs limite un seul type des donnes est dfini : il sagit de PCDATA (du texte) Impossible de typer les donnes ou de poser des contraintes sur les
valeurs (virgules flottantes, format de date, longueur dune chane)
Propositions de complments Les schmas XML du W3C
8/2/2019 Support Cours XML
55/165
ENIS 2008-2009
Fadoua DRIRA HAMMAMI
Les schmas XML : Objectifs
Un schma XML permet de dcrire les classes de documents XML. Il
dfinit un ensemble de composants : La signification, lutilisation et les relations entre diffrents lments et leur contenu. les attributs et leurs valeurs Les types de donnes, les attributs associs ces donnes, les entits et les
notations.
Le schma XML est spcifi en XML pas de nouveau langage balisage de dclaration utilise un espace de nom xsd: (ou xs:)
Prsente de nombreux avantages ditable avec un diteur XML classique sans faire appel des programmes ddis. abstraction faite sur la dfinition des diffrents lments (organisation des balises ou
de leur contenu)
possibilit de typer des donnes (types simples ou complexes). possibilit de dfinir des contraintes (domaines des valeurs, cardinalits, existence) plus riche et plus complet que les DTD.
8/2/2019 Support Cours XML
56/165
ENIS 2008-2009
Fadoua DRIRA HAMMAMI
Les schmas XML : Structure de base
Comme tout document XML, un schma XML commence par un prologue et a unlment racine.
lment racine
Tout schma XML doit commencer par le prfixe xsd
8/2/2019 Support Cours XML
57/165
ENIS 2008-2009
Fadoua DRIRA HAMMAMI
Les schmas XML : Exemple
Le document XML-Schma (entree.xsd)
8/2/2019 Support Cours XML
58/165
ENIS 2008-2009
Fadoua DRIRA HAMMAMI
Les schmas XML : Exemple
Le document XML sans rfrence au espace de noms
Jean-Claude 0123456789
Le document XML avec rfrence au espace de noms
< annuaire:nom> Jean-Claude
0123456789
L h XML C t
8/2/2019 Support Cours XML
59/165
ENIS 2008-2009
Fadoua DRIRA HAMMAMI
Les schmas XML : Concepts
Les principales clauses de dfinition de schma sont les suivantes :
qui permet dassocier un type un lment;
qui permet dassocier un type un attribut ;
qui permet de spcialiser un type de classe choisiparmi les multiples types de base ;
qui permet de dfinir un type complexe comme unesquence, alternative ou un ensemble de types.
L h XML D l ti dl t
8/2/2019 Support Cours XML
60/165
ENIS 2008-2009
Fadoua DRIRA HAMMAMI
Les schmas XML : Dclaration dlments
Un lment dans un schma XML se dclare avec la balise .
Llment contacts est un typedfini par lutilisateur
Llment remarque est de typesimple prdfini de XML schma
8/2/2019 Support Cours XML
61/165
ENIS 2008-2009
Fadoua DRIRA HAMMAMI
Les schmas XML : Dclaration dlments
La base dun schma XML: llment qui peut avoir un type:
Simple si sa valeur a un type prdfini en XML-Schmaou une extension de ces types.
Types primitifs: string, boolean, float, double, integer,
Types drivs : drivent dun type primitif ou dun autre type driv. Ils sontobtenus par hritage soit par extension (ajout dlments) soit par restriction(ajout de contraintes).
Complexe sil contient des sous lments ou sil comporte un attribut
xsd:all : collection non ordonne d'lments typs
xsd:choice : choix entre lments typs xsd:sequence : collection ordonne d'lments typs
Les schmas XML : Dclaration dlments
8/2/2019 Support Cours XML
62/165
ENIS 2008-2009
Fadoua DRIRA HAMMAMI
Les schmas XML : Dclaration dlments
Hirarchie des types prdfinis
Les schmas XML : Dclaration dlments
8/2/2019 Support Cours XML
63/165
ENIS 2008-2009
Fadoua DRIRA HAMMAMI
Les schmas XML : Dclaration dlmentsTypes primitifs
Les schmas XML : Dclaration dlments
8/2/2019 Support Cours XML
64/165
ENIS 2008-2009
Fadoua DRIRA HAMMAMI
Les schmas XML : Dclaration d lmentsTypes drives
Les schmas XML : Dclaration dlments
8/2/2019 Support Cours XML
65/165
ENIS 2008-2009
Fadoua DRIRA HAMMAMI
Les schmas XML : Dclaration d lmentsTypes dfinis par restriction
minlengthlengthmaxlengthpatternenumeration
minInclusivemaxInclusiveminExclusivemaxExclusive...
Booleannumberfloatdoubledate
time...
Fait appel une expression
Les schmas XML : Dclaration dlments
8/2/2019 Support Cours XML
66/165
ENIS 2008-2009
Fadoua DRIRA HAMMAMI
Les schmas XML : Dclaration d lmentsQuelques exemples dexpressions
A*B B, AB, AAB, AAAB, AAAAB
[xyz]A xA, yA, zA
A?B B, AB
A+B AB, AAB, AAAB, AAAAB
[A-C]y Ay, By, Cy
C \s \d C suivi dun espace suivi dun dcimal
8/2/2019 Support Cours XML
67/165
ENIS 2008-2009
Fadoua DRIRA HAMMAMI
Les schmas XML : Dclaration dlments
Spcification de type par restriction :
< xsd: restriction base = "xsd:string ">
< /xsd: restriction>
Exemple 1: cas o le type nameType est dfini comme chane decaractres de longueur maximale 32.
< xsd: restriction base = "xsd:string ">
< /xsd: restriction>
Exemple 2: cas dune expression SEQ forme par trois nombresdcimaux suivis par un tiret puis par deux majuscules.
Cet attribut spcifie lenom de type dedonnes en cours dedfinition.
Cet attribut spcifie lenom de type dedonnes primitif.
8/2/2019 Support Cours XML
68/165
ENIS 2008-2009
Fadoua DRIRA HAMMAMI
Les schmas XML : Dclaration dlments
Spcification de type par extension :
< xsd:complexContent >
< xsd:extension base = "Adresse " >< xsd:sequence>
< / xsd:complexContent >
Exemple 1: cas de lajout de llment pays ladresse (cas dune base detype complexe)
Les types spcialiss par extension sont appels contenus complexes et sont
marqus par une balise < complexContent >. La clause introduit ce sous-typage avec en attribut le nom du type de base.
8/2/2019 Support Cours XML
69/165
ENIS 2008-2009
Fadoua DRIRA HAMMAMI
Les schmas XML : Dclaration dlments
Spcification de type par extension :
Exemple 2: cas de lajout de lunit de mesure la valeur donne (casdune base de type simple)
Si on suppose que la valeur de mesure est un entier encadr entre 0 et 120 etque lunit de mesure peut prendre soit la valeur m soit cm alors onpeut dfinir les types simples ValeurMesure et UniteMesure comme suit :
L h XML D l ti dl t
8/2/2019 Support Cours XML
70/165
ENIS 2008-2009
Fadoua DRIRA HAMMAMI
Les schmas XML : Dclaration dlments
L h XML D l ti dl t
8/2/2019 Support Cours XML
71/165
ENIS 2008-2009
Fadoua DRIRA HAMMAMI
Les schmas XML : Dclaration dlments
quivalent enDTD
XML-Schma
L h XML D l ti dl t
8/2/2019 Support Cours XML
72/165
ENIS 2008-2009
Fadoua DRIRA HAMMAMI
Les schmas XML : Dclaration dlments
quivalent enDTD
XML-Schma
Les schmas XML : Dclaration dlments
8/2/2019 Support Cours XML
73/165
ENIS 2008-2009
Fadoua DRIRA HAMMAMI
Les schmas XML : Dclaration dlments
lment aveccontenu nondfini
lment aveccontenuvariable
Type
quivalent en DTDXML-Schma
Les schmas XML : Dclaration dattributsDclaration simple
8/2/2019 Support Cours XML
74/165
ENIS 2008-2009
Fadoua DRIRA HAMMAMI
Dclaration simple
La dfinition dattributs associs un lment se fait dans un lment qui possde les attributs suivants: Name : nom de lattribut
Type : type de lattribut, par exemple xsd:string, xsd:boolean,
Use : permet de prciser si lattribut est obligatoire ou optionnel. Valeurs possibles:required (obligatoire), optional (facultatif),
Fixed ou default (valeur par dfaut)
Exemple: . On souhaite modliser cet lmentdans un XML-Schma. Lattribut at1 est optionnel et a comme valeur par dfaut"a". Lattribut at2 est obligatoire et a comme valeur par dfaut "true" .
Les schmas XML : Dclaration dattributsDclaration complexe
8/2/2019 Support Cours XML
75/165
ENIS 2008-2009
Fadoua DRIRA HAMMAMI
Dclaration complexe
Lattribut choix peut prendre 3 valeurs: oui, non et ne sait pas.
Les schmas XML : Rutilisation de type
8/2/2019 Support Cours XML
76/165
ENIS 2008-2009
Fadoua DRIRA HAMMAMI
Type simple avec restriction
Type complexe (squence)
Les schmas XML : Rutilisation de type
8/2/2019 Support Cours XML
77/165
ENIS 2008-2009
Fadoua DRIRA HAMMAMI
Une bibliothque contient au moins un livre
Les schmas XML : Identifiant
8/2/2019 Support Cours XML
78/165
ENIS 2008-2009
Fadoua DRIRA HAMMAMI
Les schmas XML : Identifiant
Les schmas XML : Exercice
8/2/2019 Support Cours XML
79/165
ENIS 2008-2009
Fadoua DRIRA HAMMAMI
Reprenons lexercice prcdent sur les DTD mais cette fois-ci avec un schma. Onne dclarera pour le moment que le type de chanes de caractres. Rdiger un
schma XML pour une bibliographie qui:
contient des livres et des articles; les informations ncessaires pour un livre (lment livre) sont :
son titre gnral (lment titre) ; les noms des auteurs (lment auteur) ; ses tomes (lment tomes) et pour chaque tome (lment tome), leur nombre depages (lment pages) ;
des informations gnrales sur son dition (lment infoEdition) comme parexemple le nom de lditeur (lment editeur), le lieu ddition (lment LieuEdition), le lieu dimpression(lment LieuImpression), son numro ISBN(lment ISBN) ;
les informations ncessaires pour un article (lment article) sont : son titre (lment titre) ; les noms des auteurs (lment auteur) ; ses rfrences de publications (lment infoPublication): nom du journal (lmentnomJournal), numro des pages (lment pages), anne de publication (lmentanneePublication) et numro du journal (lment numeroJournal) ;
on rservera un champ optionnel, pour chaque livre et chaque article pour un avis(lment avis) personnel
Les schmas XML : Exercice
8/2/2019 Support Cours XML
80/165
ENIS 2008-2009
Fadoua DRIRA HAMMAMI
Modifier le schma prcdent...
Dclaration dattributs:- en ajoutant un attribut optionnel soustitre l'lment titre ;- en faisant de l'lment tome un lment vide et en lui ajoutant un
attribut requis nbPages et un attribut optionnel soustitre ;- en faisant de l'lment nomJournal un attribut de l'lment infoPublication
et en lui donnant comme valeur par dfaut Feuille de Chou ;
Utilisation de types intgrs :- llment pages doit tre un entier positif, de mme pournumeroJournal
Dclaration de types:- dfinir un type simple nomm numro ISBN, bas sur une restriction du
type xsd: string, se limitant une chane de caractres compose de 10 chiffres.
Les schmas XML : Exercice
8/2/2019 Support Cours XML
81/165
ENIS 2008-2009
Fadoua DRIRA HAMMAMI
Soit la DTD suivante :
titre (M.|Mme |Mlle) # IMPLIEDsuffixe (Fils |Pere |Mere|fille) # IMPLIED
>
Reprsenter ces information selon le document XML Schma
Les schmas XML : Rsum
8/2/2019 Support Cours XML
82/165
ENIS 2008-2009
Fadoua DRIRA HAMMAMI
Un type simple(i.e. xsd:string)
ou le nom duncomplexTypemais pas les deux
Dclarationdlment
Nom dedlment Un entier
non ngatif,valeur pardfaut 1
Un entiernon ngatif ou unbounded valeur pardfaut 1
Les schmas XML : Rsum
8/2/2019 Support Cours XML
83/165
ENIS 2008-2009
Fadoua DRIRA HAMMAMI
ou
Les schmas XML : Rsum
8/2/2019 Support Cours XML
84/165
ENIS 2008-2009
Fadoua DRIRA HAMMAMI
Un type simplexsd:stringxsd:integerxsd:boolean
...
Dclarationdattribut
Nom delattribut
required(obligatoire)
optional
(optionnel)
Lattribut use doittre optionnel pourdfinir lattribut
default
Les schmas XML : Rsum
8/2/2019 Support Cours XML
85/165
ENIS 2008-2009
Fadoua DRIRA HAMMAMI
ou
Les schmas XML : Rsum
8/2/2019 Support Cours XML
86/165
ENIS 2008-2009
Fadoua DRIRA HAMMAMI
ComplexContent et SimpleContent dpendent du type de la base sur laquelle va treeffectue la restriction ou lextension- dans le cas dune base de type simple, il sagit de simpleContent- dans le cas dune base de type complexe, il sagit de complexContent.
Y doit tre de type simpleX doit tre de type complexe
8/2/2019 Support Cours XML
87/165
ENIS 2008-2009
Fadoua DRIRA HAMMAMI
Mise en forme dMise en forme dunun
documentdocument
XML:XML: eXtensibleeXtensible MarkupMarkup LanguageLanguage
Les feuilles de style CSS
8/2/2019 Support Cours XML
88/165
ENIS 2008-2009
Fadoua DRIRA HAMMAMI
CSS : abrviation de Cascading Style Sheets (Feuille de style).
CSS est un langage de description de styles. Il permet de spcifier dans une page web les polices de caractres
utiliser, leurs attributs daffichage (gras, italique, soulign, taille,couleur), la couleur ou limage de fond, les formats de puces,
Les CSS sont une solution pour sparer le contenu de la forme.
Sparer le travail de la rdaction de celui de la prsentation. Les CSS assurent la cohrence graphique dun site.
Plusieurs pages peuvent partager la mme feuille de style.
La modification de la charte graphique dun site web est facilite parlutilisation des CSS. Seule la feuille de style est modifie. Maintenance et adaptation (aux diffrents priphriques daffichage et de
sortie) sont facilites.
Les feuilles de style CSS
8/2/2019 Support Cours XML
89/165
ENIS 2008-2009
Fadoua DRIRA HAMMAMI
Le C (Cascading) de CSS signifie quon peut dfinir des styles CSS en cascadedune manire similaire lhritage. Chaque nouvelle dfinition dun style CSS hrit vient le complter ou le redfinir. En cas de contradiction sur un aspect particulier, cest la dernire dfinition rencontre
dans lordre des dclarations qui limporte.
Les lments enfants hritent de certaines valeurs de leurs lments parentsdans l'arborescence du document. Chacune des proprits dfinit si elle est
hrite, ou non. Supposons un lment (ici EM) dans un lment H1 : Le titre est important !
Si aucune couleur n'est prcise pour l'lment EM, le mot accentu "est" hritera dela couleur de l'lment parent, ainsi l'lment H1 ayant une couleur bleu, EM le seragalement.
Pour appliquer une proprit de style "par dfaut" un document, un auteurpeut l'appliquer la racine de l'arborescence du document. On peut utiliser les
lments HTML ou BODY pour cet usage.
volution des CSS
8/2/2019 Support Cours XML
90/165
ENIS 2008-2009
Fadoua DRIRA HAMMAMI
Le langage CSS a beaucoup volu et a intgr de nombreuses nouveautsau fur et mesure des rvisions successives.
Les diffrentes versions officielles de ce standard sont les suivantes: CSS1 (level 1), recommandation depuis dcembre 1996. CSS2 (level 2), recommandation depuis mai 1998.
CSS3 (level 3), en cours dlaboration.
CSS1 et CSS2 sont supports par la plupart des navigateurs web (Microsft
Internet Explorer, Nestcape Navigator, Mozilla,).
CSS2 apporte de nombreuses fonctionnalits, notamment davantage definesse dans les rglages daffichage graphique, ainsi que la gestion du son.
CSS3 (en cours) propose un support international encore mieux amlioravec une gestion de laffichage des langues arabes et chinoises ainsi que
lintgration des dessins vectoriels (dcrire des formes gomtriques enXML).
Syntaxe des CSS
8/2/2019 Support Cours XML
91/165
ENIS 2008-2009
Fadoua DRIRA HAMMAMI
Une rgle de style des CSS est compose :- dun slecteur,- et dau moins une dclaration.
Exemple de rgle:
h1 {color: #0000FF; font-family: Arial; font-size: 12px;}
slecteur dclaration (compose dune proprit et de saValeur )
h1 est le slecteur qui dfinit le style qui sera appliqu la balise html ,la dclaration attribue la couleur bleue et la police Arial de taille 12 au titre.
Syntaxe des CSS
8/2/2019 Support Cours XML
92/165
ENIS 2008-2009
Fadoua DRIRA HAMMAMI
La dclaration du style proprement dite est place entre desaccolades { }
La proprit et sa valeursont spares l'une de l'autre par :
Les expressions compltes contenant proprit et valeur sont
spares par ;
balise { proprit de style: valeur;proprit de style: valeur; }
Il est possible de grouper plusieurs slecteurs ayant une rgle de
style identique, spars par une virgule : h1, h2, h3 { color: red }
Application des rgles de styles des CSS
8/2/2019 Support Cours XML
93/165
ENIS 2008-2009
Fadoua DRIRA HAMMAMI
Plusieurs manires :
1. Grce une feuille de style intgre au document Celle-ci sera situe dans l'entte, entre les balises On utilisera alors la balise qui prvient le navigateur que des CSS
sont utilises.
style interne au document
html, body { font-family: sans-serif; background-color: white }h1, h2 { color: blue }p {text-align: justify }
Application des rgles de styles des CSS
8/2/2019 Support Cours XML
94/165
ENIS 2008-2009
Fadoua DRIRA HAMMAMI
2. Grce l'attribut style : appel style en ligne- ajouter du CSS une balise donne
Un style en ligne...
3. En faisant appel une feuille de style externe : balise dansl'entte du document :
appel une feuille de style externe
8/2/2019 Support Cours XML
95/165
ENIS 2008-2009
Fadoua DRIRA HAMMAMI
La balise avertit le navigateur qu'il faudra raliser un lien.
L'attribut rel=stylesheet prcise que le navigateur trouvera unefeuille de style externe.
L'attribut type="text/css" prcise que l'information est du texte et detype cascading style sheets (css).
L'attribut de lien href=" ... " donne le chemin d'accs et le nom du
fichier lier.
Quelques proprits des CSS
8/2/2019 Support Cours XML
96/165
ENIS 2008-2009
Fadoua DRIRA HAMMAMI
Pour les polices font-family:nom de la police; font-size:la taille; font-color:la couleur; font-weight:normal|bold|light;
Pour lalignement du texte text-align:left|right|center|justify;
Pour larrire-plan background-color:couleur; background-image:url|none;
Pour les couleurs utiliser de prfrence la valeur hexadcimale (Exemple : #0033CC correspond
la couleur bleue) La couleur peut galement tre appele par un nom prdfini tel red, blue,
yellow
CSS : ExempleLe document "style.css" contient:
8/2/2019 Support Cours XML
97/165
ENIS 2008-2009
Fadoua DRIRA HAMMAMI
Le document style.css contient:
H1 {
color: #FF0000 ;
font-weight: bold ;
text-align : center;
}
body {
background: #FFFFFF ;
font-size: 150% ;
text-align : justify;
}
On redfinit la balise H1
le fond dcran sera blanc
le texte sera moiti plus grand
le texte sera justifi
le texte sera rouge
en gras
centr
On redfinit la balise BODY
CSS : ExempleLe document test.html contient:
8/2/2019 Support Cours XML
98/165
ENIS 2008-2009
Fadoua DRIRA HAMMAMI
bonjourLes feuilles de style vous apportentl'option de sparer l'information
sur vos pages, en modifiant leurprsentation.
Rsultat avec lafeuille de style
Rsultat sans lafeuille de style
XML et CSS
8/2/2019 Support Cours XML
99/165
ENIS 2008-2009
Fadoua DRIRA HAMMAMI
Contrairement HTML, XML a t prvu pour contenir uniquement des donnes et des
informations sur ces donnes (mta-donnes) mais aucune notion deprsentation.
Les donnes XML ne sont jamais mlanges avec les informationspermettant de dterminer leur prsentation.
Pour obtenir un affichage des donnes dans un document XML, ilest ncessaire dintroduire le concept de feuille de style. XML est un nouveau langage, faut-il galement crer un nouveau
format de feuilles de style ou bien adopter un standard existant?
XML et CSS : Exempletitre {
8/2/2019 Support Cours XML
100/165
ENIS 2008-2009
Fadoua DRIRA HAMMAMI
display: block;
width: 250px;
font-size: 16pt ;
font-family: arial ;
font-weight: bold;
background-color: red;
color: white;
}
auteur {
display: block;
font-size: 12pt;
padding-left: 10px;
}
editeur {
display: block;
font-size: 12pt;
color: red ;font-weight: bold;
}
Initiation XML
D.Hunter et al.
Eyrolles
XQuery
P. Walmsley
OReilly
XML et CSS : Limites
8/2/2019 Support Cours XML
101/165
ENIS 2008-2009
Fadoua DRIRA HAMMAMI
CSS a t initialement prvu pour la prsentation des documents HTML CSS propose donc uniquement des fonctions de mise en forme assez simples. pas de possibilit de filtres (en fonction de certains critres) et de tris, il faudrait donc
que le fichier XML prsenter ne contienne que ce que lon souhaite afficher et dansle bon ordre.
Mme dfauts que HTML :- Syntaxe non modifiable et non extensible
- Syntaxe difficile normaliser- Difficults pour trouver des lments
Solution : XSL (eXtensible Stylesheet Language) est un langage de feuilles destyles associ XML mais aussi un langage de transformation de documentXML (trier un document et/ou extraire uniquement linformation pertinente pour laprsenter).
XSL est un langage plus performant ayant des possibilits plus tenduesque le langage CSS.
XSL: eXtensible StyleSheet LangagueXSL est un langage XML constitu de deux parties :
8/2/2019 Support Cours XML
102/165
ENIS 2008-2009
Fadoua DRIRA HAMMAMI
XSL est un langage XML constitu de deux parties :
XSLT (XSL Transformation) : un langage pour transformer un fichier XMLen un autre fichier XML
Les feuilles XSLT sont aussi des documents XML bien forms et valides :dclaration XML en premire ligne, dclaration de lencodage, rgles defermeture des balises, etc.
Mais, bien qutant une application XML, il nexiste ni DTD ni schma caractre normatif pour dcrire formellement le langage.
XSL-FO (XSL Formatting Objects) : un vocabulaire XML pour spcifier desinstructions de formatage (affichable ou imprimable en PDF par exemple).
XSL-FO est une liste extensive de primitives de formatage de bas niveau: blocsde texte, marges, enchanements, entte, pied de page
Exemple : est quivalent la balise en HTML est quivalent la balise en HTML
Les deux parties XML sont complmentaires, mais indpendantes.
Les feuilles de style XSLT
8/2/2019 Support Cours XML
103/165
ENIS 2008-2009
Fadoua DRIRA HAMMAMI
Une dclaration standard de feuille de style XSLT est la suivante.
Cest lespace de nom qui contient les normes XSL
Dans le fichier ".xml", il faut faire rfrence la feuille de style ".xsl" associe par:
Les feuilles XSLT sont fondes sur des structures nommes modles(templates) Un modle spcifie ce qui doit tre recherch dans larbre source et ce qui
doit tre plac dans larbre rsultat. Le contenu dun modle est encadr par une balise qui
possde un attribut match.
Le modle de dpart de toute feuille de style XSLT est associ la racine du document, dfini par .
Les feuilles de style XSLT: ExempleBiblio.xsl
Permet
Balise pour dfinir ledbut de la feuille
8/2/2019 Support Cours XML
104/165
ENIS 2008-2009
Fadoua DRIRA HAMMAMI
Exemple value-of select
Mes Livres
Auteur :
Titre :
Editeur :
Page :
dutiliser/dinterprter les
tags HTML
sert appliquer un style un bloc de texte nonbalis
permet de recopier la valeur textuelle d
un noeud (lmentou attribut) spcifi par lattribut select. Il sagit duneexpression XPath value par rapport au noeud courant.
Les feuilles de style XSLT: ExempleBiblio.xml
8/2/2019 Support Cours XML
105/165
ENIS 2008-2009
Fadoua DRIRA HAMMAMI
D. Hunter, C.CAGLE, et alInitiation XMLEyrolles856
Jean-Christophe Bernadac Construire une application XML EyrollesXXX
Les feuilles de style XSLT: Exemple
8/2/2019 Support Cours XML
106/165
ENIS 2008-2009
Fadoua DRIRA HAMMAMI
Seul le premier noeudrencontr dans ledocument source estpris en considrationmalgr la prsencedautres noeuds
Les feuilles de style XSLT: Exemple
Biblio.xsl
8/2/2019 Support Cours XML
107/165
ENIS 2008-2009
Fadoua DRIRA HAMMAMI
Exemple value-of select
Mes Livres
Auteur :
Titre :
Editeur :
Page :
Permet de fairelaffichage deplusieurs lments la fois; traitementitratif chaquenud qualifiant
Les feuilles de style XSLT: Exemple
8/2/2019 Support Cours XML
108/165
ENIS 2008-2009
Fadoua DRIRA HAMMAMI
Les feuilles de style XSLT: ExempleBiblio.xsl
8/2/2019 Support Cours XML
109/165
ENIS 2008-2009
Fadoua DRIRA HAMMAMI
Utilisation dunmodle pourlaffichage;
spcificationdes rgles deprsentation
Exemple de sortie HTML
Mes Livres
Auteur :
Titre :
Editeur :
Page :
Les feuilles de style XSLT: TrisAffichera les lments classs par ordre alphabtique (croissant) de titres
8/2/2019 Support Cours XML
110/165
ENIS 2008-2009
Fadoua DRIRA HAMMAMI
Affichera les lments classs par ordre alphabtique (croissant) de titres
Affichera les lments classs par ordre alphabtique (dcroissant) de titres
Exemples dutilisation : Cas de lutilisation dun modle pour laffichage :
Cas de lutilisation dun appel itratif sur un noeud donn
Auteur :
Titre :
Les feuilles de style XSLT: Tris
8/2/2019 Support Cours XML
111/165
ENIS 2008-2009
Fadoua DRIRA HAMMAMI
Les feuilles de style XSLT: Filtrage
Le langage XSL permet aussi de filtrer les donnes du fichier XML associ selon
8/2/2019 Support Cours XML
112/165
ENIS 2008-2009
Fadoua DRIRA HAMMAMI
e a gage S pe et auss de t e es do es du c e assoc se o
des critres comme gal (=), pas gal (!=), plus grand que (>), plus petit que ( 2]
XPATH: Fonctions densemble
8/2/2019 Support Cours XML
141/165
ENIS 2008-2009
Fadoua DRIRA HAMMAMI
Exemple: /Animaux/ [count( )>=2]
Name(node-set) : retourne le nom qualifi du premier nud de lensemblede nuds pass en argument Exemple: //Animaux/*[name()!="Chats"]
Tous les nuds peuvent tre convertis en chane de caractres.
Syntaxe: string(object)
XPATH: Conversion des nuds en chanes
8/2/2019 Support Cours XML
142/165
ENIS 2008-2009
Fadoua DRIRA HAMMAMI
Syntaxe: string(object) retourne la chane correspondante, en fonction du type:
Type de nud Rsultat
Text La valeur du noeud
Comment La valeur du noeud
Attribute La valeur du noeudElement La concatnation des valeurs de nuds texte du contenu
Document La concatnation des valeurs de nuds texte du contenu
Namesapce La valeur du noeud
Remarque: Ensemble de nuds, le premier nud seulement est converti
XPATH: Conversion des nuds en chanes
Exemple: string (/Animaux/*) retourne Lassie noir Mdor marron
string(/Animaux) retourne Lassie noir Mdor marron Flix blanc Tom gris
8/2/2019 Support Cours XML
143/165
ENIS 2008-2009
Fadoua DRIRA HAMMAMI
On peut effectuer des comparaisons, des oprations. Cela implique
un typage et des conversions de type
XPATH : Typage
8/2/2019 Support Cours XML
144/165
ENIS 2008-2009
Fadoua DRIRA HAMMAMI
un typage et des conversions de type. Types XPath :
les numriques (Comparaisons habituelles (, !=), Oprations (+, -, *,
div, mod), la fonction number() qui permet de tenter une conversion )
les chanes de caractres
les boolens (true et false), pour les conversions des numriques : 0 ou
NaN sont false, tout le reste est true, des chanes : une chane vide estfalse, tout le reste est true, des ensembles de noeuds : un ensemble
vide est false, tout le reste est true
enfin les ensembles de noeuds
XPATH: Exercice
th Ki l A i / th
Utiliser le fichier XML suivant pourrpondre aux questions suivantes en
utilisant le langage XPATH:
Soit le fichier Awards.xml
8/2/2019 Support Cours XML
145/165
ENIS 2008-2009
Fadoua DRIRA HAMMAMI
Kingsley AmisThe Old Devils1986
Margaret AtwoodThe Blind Assassin2000
Peter CareyOscar and Lucinda1988
J M CoetzeeDisgrace1999
ut sa t e a gage1. Le deuxime livre dans la liste
2. Lauteur du troisime livre
3. Le titre du livre qui a gagn en 200
4. Le nom de lauteur du libre intitul
Disgrace 5. Le nom de tous les auteurs dont le
livre a gagn depuis 1995
6. Nombre total de prix discerns
XML:XML: eXtensibleeXtensible MarkupMarkup LanguageLanguage
8/2/2019 Support Cours XML
146/165
ENIS 2008-2009
Fadoua DRIRA HAMMAMI
XQueryXQuery
Langage de requte pour XMLLangage de requte pour XML
XML:XML: eXtensibleeXtensible MarkupMarkup LanguageLanguage
Besoin dBesoin dun langage de requtes pour XMLun langage de requtes pour XML
Si XML simpose comme standard dchange de donnes sur le web, ildevient naturel que les applications puissent exprimer leurs requtes surdes donnes au format XML.
8/2/2019 Support Cours XML
147/165
ENIS 2008-2009
Fadoua DRIRA HAMMAMI
W3C a mis en place en octobre 1999, un groupe de travail pour laspcification dun langage de requtes pour XML. Nom propos pour celangage XQuery.
Les langages de requtes existants ne peuvent pas tre utiliss sur lesdonnes XML. Classiquement, le langage de base de donnes est SQL. Les
fonctionnalits de SQL sur les tables (collections de tuples) doivent donctre tendues pour permettre des oprations similaires sur les forts(collection darbres o chaque arbre est un document XML),
Besoin dBesoin dun langage de requtes pour XMLun langage de requtes pour XML
XQuery est un sur-ensemble de SQL :
Les fonctionnalits de SQL sur les tables sont tendues pour supporter des
oprations sur les arbres.
8/2/2019 Support Cours XML
148/165
ENIS 2008-2009
Fadoua DRIRA HAMMAMI
p
RequteSQL Recherchedinformation
Structuredarbre
XQuery
XML versus Relationnel
Structure htrogne/ Structure rgulire
Mta-donnes disperses dans les donnes/ Mta-donnesspares
8/2/2019 Support Cours XML
149/165
ENIS 2008-2009
Fadoua DRIRA HAMMAMI
pspares.
lments imbriqus sur plusieurs niveaux/ Donnes plates
Ordre intrinsque sur les lments/ Pas dordre sur les donnes.
Donnes parses/ Donnes souvent denses (trs peu de trous)
Absence dlment ou lments vides/ Valeur Null
XQuery doit prendre en compte la spcifi des donnes XML. En XML, il est naturel de chercher de manire indpendante du niveau
XQuery : principe
Langage pour interroger les donnes (arbres) XML
= requtes, plus pour interroger (et trouver des lments) que pourtransformer
8/2/2019 Support Cours XML
150/165
ENIS 2008-2009
Fadoua DRIRA HAMMAMI
, p p g (transformer
plus souple que XSL qui est plus une transformation darbre XML,mais utilisant tous les deux les expressions XPath
XQuery est un langage de requtes complet qui permet :
de crer des noeuds et de construire des arbres nouveaux,
de dfinir et d'instancier des variables,
de dfinir des fonctions, ...
FonctionnalitFonctionnalits des de XQueryXQuery
Projection darbres sur des sous-arbres. Il sagit dextraire des sous-arbresdes arbres de collections.
Slection darbres et de sous-arbres en utilisant des prdicats sur lesvaleurs des feuilles Les prdicats classiques (= = > < !=) peuvent tre
8/2/2019 Support Cours XML
151/165
ENIS 2008-2009
Fadoua DRIRA HAMMAMI
valeurs des feuilles. Les prdicats classiques (=, =,>,
8/2/2019 Support Cours XML
152/165
ENIS 2008-2009
Fadoua DRIRA HAMMAMI
0142462375
Absinthe
10 quai Quarantaine Honfleur
Fruits de mer Jean
Marrakech
Saint-Genevive
Paris
Ali Moussa
Le Grand Htel
Promenade M. Proust
Cabourg
14000
guidenormand.xml
guideXX.xml
repertoirenormand.xml
XQueryXQuery : Expression XPATH: Expression XPATH
Lister les noms des restaurants du guide normand
Document ("guidenormand.xml") //Restaurant/Nom/text()
Retourne le nuddocument correspondantau documentguidenormand.xml
8/2/2019 Support Cours XML
153/165
ENIS 2008-2009
Fadoua DRIRA HAMMAMI
Cas dune requte applique un document et qui retourne, sous format texte,les noms des restaurants cits dans le document "guidenormand.xml".
Ralisationaveclinterface IPSI
NB: le documentguidenormand.xmldoit tre plac dansle rpertoireexamples/data
Requte
Rsultat
XQueryXQuery : Expression XPATH: Expression XPATH
Remarque : Document ("guidenormand.xml") //Restaurant/Nom
retourne les noms des restaurants munis de leur balise.
8/2/2019 Support Cours XML
154/165
ENIS 2008-2009
Fadoua DRIRA HAMMAMI
Ralisationaveclinterface IPSI
NB: le documentguidenormand.xmldoit tre plac dansle rpertoireexamples/data
Requte
Rsultat
XQueryXQuery : Expression: Expression FlowerFlower(FLWR)(FLWR)
Une requte FLWR est une expression de la forme for let
where return applique une ou plusieurs collections darbresdfinies dans le bloc for permettant de retourner les arbres
8/2/2019 Support Cours XML
155/165
ENIS 2008-2009
Fadoua DRIRA HAMMAMI
dfinies dans le bloc for permettant de retourner les arbresconstruits par le bloc return partir des arbres mmoriss par lebloc let et/ou slectionns par le bloc where.
La forme gnrale dune requte FLWR :
for $ in [, $ in ] //itrationlet $:= //assignationwhere //slectionreturn //construction
XQueryXQuery : Expression: Expression FlowerFlower(FLWR)(FLWR)
Exemple : lister le nom des restaurants de la ville de Cabourg du fichierguidenormand.xml :
for $R in document("guidenormand xml")//Restaurant
8/2/2019 Support Cours XML
156/165
ENIS 2008-2009
Fadoua DRIRA HAMMAMI
for $R in document( guidenormand.xml )//Restaurant
where $R/Adresse/Ville="Cabourg"
return $R/Nom
Cette requte est une
simple slection qui peuttre exprime directementavec XPATH
document("guidenormand.xml")//Restaurant[Adresse/Ville="Cabourg"]/Nom
XQueryXQuery : Imbrication de requtes: Imbrication de requtes
Lister le nom des restaurants avec leur numro de tlphone dans la rue delhtel "Le Grand Htel"
for $R in document("guidenormand.xml")//Restaurant,$H in document("repertoirenormand.xml")//Hotel
8/2/2019 Support Cours XML
157/165
ENIS 2008-2009
Fadoua DRIRA HAMMAMI
where $H/Adresse/Rue= $R/Adresse/Rue and $H/Nom = "Le Grand Htel"
return
{$R/Nom/text() }
{$R/Telephone/text() }
XQueryXQuery : Imbrication de requtes: Imbrication de requtes
Nom et adresse des restaurants deux toiles
for $R in document("guidenormand.xml")// Restaurant
where $R/@categorie= "**"
return
8/2/2019 Support Cours XML
158/165
ENIS 2008-2009
Fadoua DRIRA HAMMAMI
return
{$R/Nom}
{$R/Adresse//text() }
8/2/2019 Support Cours XML
159/165
XQueryXQuery : Imbrication de requtes: Imbrication de requtes
Pour chaque manager dans le guide, lister son nom et le nom de sesrestaurants, groups lintrieur dun lment Manage
for $M in document("guidenormand.xml")// Restaurant/Managerreturn
8/2/2019 Support Cours XML
160/165
ENIS 2008-2009
Fadoua DRIRA HAMMAMI
{$M}
{document("guidenormand.xml")//Restaurant[Manager=$M]/Nom}
XQueryXQuery : Calcul d: Calcul dagragrgatsgats
Combien de restaurants y-a-t-il dans le document guidenormand?
let $R :=document("guidenormand.xml")//Restaurant
return { count($R)}
8/2/2019 Support Cours XML
161/165
ENIS 2008-2009
Fadoua DRIRA HAMMAMI
return { count($R)}
Cette requte peut tre exprimeplus simplement par application de
la fonction count une expressionXPATH
{ count(document("guidenormand.xml")
//Restaurant)}
XQueryXQuery : Tri: Tri
Trier par ordre alphabtique les noms des restaurants et afficher dans unebalise le nom du restaurant suivi de son adresse.
for $R in document("guidenormand.xml")//Restaurant
8/2/2019 Support Cours XML
162/165
ENIS 2008-2009
Fadoua DRIRA HAMMAMI
order by $R/Nom ascending
return
{$R/Nom}
{$R/Adresse//text()}
Exercice
tant donne une table relationnelle avec des rsultats des lectionsprsidentielles de 4 bureaux de votes
6589Dupond1Lyon69
3398Toto1Lyon69
VoixCandidatBureauNomVilleIdVille
8/2/2019 Support Cours XML
163/165
ENIS 2008-2009
Fadoua DRIRA HAMMAMI
5167Dupond1Marseille634568Toto1Marseille63
4532Dupond1Paris71
3340Toto1Paris71
4090Dupond2Lyon69
5645Toto2Lyon69
6589Dupond1Lyon69
1. Donnez une reprsentation XML de cette table
2. Donnez la DTD du document trouv en 1)
3. Exprimez dans la DTD la contrainte que les deux seuls candidats sont Toto et Dupond.
Exercice4. Traduisez les requtes SQL suivantes en utilisant des expressions XPATH :
Select Bureau from votes
Select voix from votes where ville= Lyon and candidat= Dupond
Select ville from votes where candidat= Toto and voix>5000 Select A.Candidat from votes A, votes B
8/2/2019 Support Cours XML
164/165
ENIS 2008-2009
Fadoua DRIRA HAMMAMI
where (A.voix>B.voix) and (A.ville=B.ville) and (A.bureau=B.bureau)
5. Soit le programme XSLT suivant :
Vote :
/ / /
/
Exercice
Quel est le rsultat de lapplication de ce programme XSLT sur le document XML trouv en 1
mailto:%3Cxsl:value-ofselect=%22../@num8/2/2019 Support Cours XML
165/165
ENIS 2008-2009
Fadoua DRIRA HAMMAMI
Quel est le rsultat de l application de ce programme XSLT sur le document XML trouv en 1.
6. Donnez le rsultat de la requte XQuery
for $a in //bureau, $x in $a/candidat, $y in $a/candidat[not [@nom=$x/@nom]]
return if ($x/@voix>$y/@voix) then ($a/../@nomVille,$a/@num,$x/@nom)
else ($a/../@nomVille,$a/@num,$y/@nom))
7. Donnez pour chaque candidat son nom et la somme de ses voix.
8. Donnez la requte XQuery qui donne le nom du vainqueur des lections