Title: eXtensible Markup Language
1eXtensible Markup Language
- Xavier Blanc
- Xavier.Blanc_at_lip6.fr
2Plan
- De HTML Ã XML
- Documents bien formés
- Documents valides
- Liens
- Feuilles de style
- Traitement de documents XML
- Applications
3de HTML Ã XML
4HTML
- Langage à balises
- Balises obligatoires (head, body, )
- Balises à valeur sémantique (h1, meta, )
- Balises à valeur dhabillage (center, small, ..)
- Nombre fini de balises
- Balises différentes suivant les navigateurs
- Pas dévolution possible pour lutilisateur
5HTML
- Aucune séparation de la forme et du fond
- Balises de fond (Meta, Head, )
- Balises de forme (center, small, )
- Balises de fond forme (h1, h2, )
?Durée de vie limitée à la durée de vie des
outils capables de visionner ces documents.
6Lapport de XML
- Ensemble non fini de balises
- Lutilisateur peut créer de nouvelles balises
- Séparation de la forme et du fond
- Un document XML sera constitué dau moins deux
entités (le fond et la forme) - Séparation du contenu et de la grammaire
- Permet la validation des documents
7Historique
- XML est un standard un W3C (World Wide Web
Consortium) - XML est basé sur le standard SGML
- Les travaux de XML ont commencé en 1996
- En 1999, XML est considéré comme étant le
standard déchange dinformation du futur
8Documents bien formés
- règles syntaxiques de XML
9Un document XML bien formé
ltlivregt lttitregt le super livre
lt/titregt ltchapitregt ltnumerogt 1
lt/numerogt lttitregt titre du chapitre 1
lt/titregt ltcontenugt blabla blabla
lt/contenugt lt/chapitregt ltchapitregt lt/chapitr
egtlt/livregt
10Documents XML bien formés
- Un document XML bien formé est un document qui
est conforme aux règles syntaxiques du langage
XML. - Un document bien formé pourra être traité par un
parseur XML sans générer dexception. - Un document XML bien formé pourra être associé
avec une feuille de style.
11Règles syntaxiques XML
- Un document XML est constitué de
- Un prologue qui contient un ensemble
dinformations sur le document - Un ensemble déléments avec leurs contenus les
éléments et leurs contenus sont les données du
document - Des commentaires qui peuvent être inclus
nimporte où dans le document
12Le prologue
- La déclaration XMLlt?xml version1.0
encodingISO-8859-1 standaloneyes ?gt - Permet de préciser la version du document
- Permet de préciser lencodage utilisé
- Permet de savoir si le document est autonome ou
pas (lien vers dautres documents)
13Le prologue
- XML permet de définir des types de documents.
- Un type de documents est une sorte de grammaire,
on peut alors valider un document par rapport Ã
une grammaire. - Le prologue permet de déclarer le type dun
document.lt!DOCTYPE livre SYSTEM "livre.dtd" gt
14Ensemble déléments
- Les éléments des documents XML sont composés
dune balise douverture, dun contenu et dune
balise de clôture. - ltnomgt contenue de lélément lt/nomgt
- Le nom dune balise est composé de caractères
alphanumériques, du tiret-souligné, du signe
moins ou du point. Il ne faut pas quil soit
composé despaces. Un nom doit commencer par un
caractère alphabétique ou du caractère
tiret-souligné. Un nom ne doit pas commencer par
XML/Xml/xML/...
15Ensemble déléments
- Une balise douverture peut avoir un ensemble
dattributs. Ex ltlivre date 01-01-2000 gt - Un attribut est une paire nomvaleur
- Les noms des attributs suivent les mêmes règles
que les noms des éléments - La valeur est une chaîne de caractères encadrée
par les caractères guillemets ou apostrophe - Lattribut xmllang est prédéfini et sa valeur
représente le langage utilisé dans le
document Ex ltp xmllang fr gt ...
16Ensemble déléments
- Le contenu dun élément peut être
- un ensemble déléments
- et/ou des données sous forme de chaînes de
caractères ne contenant pas les caractères et lt - et/ou des références
17Ensemble déléments
- Une référence peut être
- une référence à un caractère alphanumérique, elle
doit commencer par x, puis inclure le numéro du
caractère et finir par Ex x38 est une
référence vers - une référence prédéfinie comme par exemple amp
ou apos qui sont deux références vers et  - une référence vers quelque chose défini dans la
DTD (Data Type Definition). Elle commence alors
par , puis par le nom de la référence, et finit
par Ex ma_reference (avec
ma-reference texte long  - Ce couple (nom, valeur) est appelé une entité
18Ensemble déléments
- Les balises de clôture sont composées des noms
correspondant aux balises douvertures précédés
du caractère / Ex lt/livregt - En élément peut être vide (sans contenu), dans ce
cas, il na quune seule balise (composée du nom
suivi du caractère /) Ex ltElement_vide/gt
19Sections littérales
- Lorsque le parseur scanne un élément, il remplace
toutes les références par leurs valeurs. - Pour empêcher cela, il faut utiliser une section
littérale. Une section littérale est encadrée par
lt!CDATA et par gtEx lt!CDATA ltauteursgt
Dupond amp gt
20Instructions de traitement
- Il est possible dinclure des instructions de
traitement dans un document XML - La déclaration dune instruction de traitement se
fait de la facon suivante lt?nom arg1 arg2 .. ?gt - nom est le nom de lapplication cible
- arg1, arg2, sont les arguments de
l application - Les noms XML, XmL, sont réservés
21Commentaire
- Des commentaires peuvent être inclus dans le
contenu dun élément XML. Ils doivent être
encadrés par les marques lt!-- et --gt - Un commentaire est une chaîne de caractères
quelconque qui ne contient pas la chaîne -- - Exemple lt!-- un commentaire --gtlt!-- un
commentaire qui nest -- pas bien formé --gt
22Documents bien formés
- Le plus petit lt?xml version1.0
encodingISO-8859-1 standaloneyes
?gtltlivre/gt - Un autre lt?xml version1.0 encodingISO-8859-
1 standaloneyes ?gtltlivre date 01-01-2000 gt
ltchapitregt XML amp HTML lt/chapitregt lt!--
préciser la version de HTML--gtlt/livregt
23Documents valides
24Document Type Definition
- En XML, un type de document représente une
structure (une grammaire) Ex le type livre
précise quun livre est composé de chapitres,
qui sont composés de parties - Un type de document est défini dans une DTD
(Document Type Definition) - Une DTD peut être inclue ou référencée par un
document XML
25Document Type Definition
- On peut vérifier la validité dun document par
rapport à la DTD quil référence ou quil inclut.
On parlera alors de document XML valide - Un document XML valide est donc un document XML
bien formé qui a une DTD et qui est conforme Ã
cette DTD - Il existe déjà de nombreuses DTD, il est alors
possible de les utiliser pour construire des
documents XML valides Ex La DTD MathML pour
les équations
26Document Type Definition
- Pour associer un document XML Ã une DTD, il faut
le faire avec lélément lt!DOCTYPEgtEx lt!DOCTYPE
livre SYSTEM "livre.dtd" gt - On considère quun document XML est constitué de
deux choses La DTD et la donnée. - Un document XML bien formé peut ne pas être
composé de DTD - Un document XML valide doit avoir une DTD
27Data Type Definition
- Une DTD est définie dans lélémentlt!DOCTYPE name
SYSTEM "fichier.dtd" delaration gt - name est le nom du type de document
- SYSTEM "fichier.dtd" est une référence vers le
fichier.dtd. Ce fichier contient tout ou une
partie de la DTD. Cest la partie externe de la
DTD - declaration permet de définir tout ou une
partie de la DTD. CÂ est la partie interne de la
DTD
28Contenu dune DTD
- Déclarations des entités
- Déclarations des éléments et de leurs contenus
- Déclarations des attributs des éléments
- Commentaires
29Les entités
- Une entité est un couple (nom, valeur). On
référence le nom pour utiliser la valeur. Ex
amp (amp,) - Une entité peut être interne (définie dans le
document) ou externe (définie ailleurs) - Les entités internes ont des valeurs de chaînes
de caractères XML et sont utilisées comme moyen
dabréviation. - Les entités externes peuvent être de type
- XML utilisé pour segmenter un document en
parties - non XML utilisé pour inclure des sons, images
...
30Déclaration des entités
- Les entités doivent être déclarées dans la DTD
- Un document peut référencer nimporte quelle
entité qui a été déclaré dans la DTD mais aussi
les entités prédéfinis (amp, apos, ) - La déclaration dune entité se fait de la manière
suivante lt!ENTITY nom valeurgt - La valeur doit être entre guillemets
31Les entités externes XML
- Permet la segmentation dun document XML
- Ex lt!DOCTYPE livre lt!ENTITY chapitre-1
SYSTEM "./chap1.xml"gt lt!ENTITY chapitre-2 SYSTEM
"./chap2.xml"gt gtltlivregt chapitre-1 chapitr
e-2lt/livregt - Le mot clé SYSTEM indique une URL, voir le mot
clé PUBLIC avec les identificateurs public
32Les entités externes non-XML
- Les entités externes non-XML servent à inclure
des images, du son ou autre dans un document XML - Avant de définir l entité, il faut définir son
format en utilisant une NOTATIONEx lt!NOTATION
img  "./PsP" gt - Puis définir lentitéEx lt!ENTITY fond SYSTEM
"./fond.img" NDATA imggt - LÂ utilisation se fait donc ainsi Ex ltphoto
val fond /gt
33Les entités paramètres
- Ces entités sont définies dans une DTD mais elles
sont aussi utilisées dans une DTD - Une entités paramètre est forcement XML
- Une entités paramètre se définie comme une entité
générale si ce nest quil y a le caractère .Ex
lt!ENTITY nom valeurgt - Pour référencer une entité paramètre on utilise
le caractère Ex nom
34Les éléments dans la DTD
- La déclaration dun élément se fait de la manière
suivante lt!ELEMENT nom modèlegt - Le nom correspond au nom de lélément
- Le modèle défini le contenu de lélément
- éléments fils
- données
- mélanges éléments fils et données
- nimporte quoi respectant la syntaxe XML
- élément vide
35Les éléments dans la DTD
- Pour décrire les éléments fils dun élément, il
suffit de donner leurs noms entre parenthèses. - Si lordre des élément fils est important on les
sépare par des virgules sinon par des barres
verticales. - Pour préciser les multiplicités des éléments fils
on utilise (soit fils le nom de lélément fils)
- fils une fois et une seule
- fils? 0 ou 1 fois
- fils 0, 1 ou plus dune fois
- fils au moins un fois
- il est possible de faire des groupes déléments
fils en utilisant des parenthèses.
36Les éléments dans la DTD
- Exemples de définition délément lt!ELEMENT
livre (titre, intro, chapitre)gtlt!ELEMENT
chapitre (titre , (titre_partie, partie))gt...
37Les éléments dans la DTD
- Lorsquun élément ne contient que des données
(i.e. un chaîne de caractère), on le défini de
cette manière avec le mot clé PCDATAT - Ex lt!ELEMENT partie (PCDATA)gt
38Les éléments dans la DTD
- Il est possible quun élément ait des éléments
fils mais aussi des données. Il est tout à fait
possible de définir ce type délément dans une
DTD. - Ex lt!ELEMENT toto (PCDATA, titi, tutu)gt
39Les éléments dans la DTD
- Lorsquun élément peut contenir soit du texte,
soit nimporte quel ensemble délément fils, il
faut utiliser le mot clé ANYEx lt!ELEMENT elmt
ANYgt - Lorsquun élément est un élément vide, il faut
utiliser le mot clé EMPTYEx lt!ELEMENT elmt
EMPTYgt
40Les attributs dans la DTD
- La déclaration des attributs dun élément se fait
de la manière suivante lt!ATTLIST element
(attribut type default)gt - element correspond au nom de lélément qui
contient lattribut - attribut correspond au nom de lattribut
- type correspond au type de lattribut
- default contient des indications sur la valeur
par défaut
41Les attributs dans la DTD
- Le type de lattribut peut être
- CDATA pour une chaîne de caractère
- ID ou IDREF pour des références internes au
document - ENTITY ou ENTITIES pour des références externes
non-XML - NOTATION pour associer le contenu de lélément Ã
une application
42Les attributs dans la DTD
- Lindication sur la valeur par défaut peut être
- REQUIRED indique que lattribut doit avoir une
valeur une fois le document créé. - IMPLIED indique que lattribut est optionnel.
- FIXED valeur indique que lattribut est une
constante
43Les attributs dans la DTD
- Quelques exemples lt!ATTLIST ex1 att1 CDATA
IMPLIEDgtlt!ATTLIST ex2 att1 CDATA
IMPLIED att2 ENTITY REQUIREDgt...
44Sections conditionnelles
- lt! INCLUDE contenu gt fait que le contenu
appartient à la DTD - lt!IGNORE contenu gt fait que le contenu
nappartient pas à la DTD - En utilisant des entités paramètres et en les
redéfinissant dans le document, il est alors
possible davoir une DTD conditionnelle
45Liens
46Avec les attributs ID et IDREF
- Lattribut ID permet dassocier un identifiant Ã
un élémentEx lt!ELEMENT cible
(PCDATA)gtlt!ATTLIST cible identifiant ID
IMPLIEDgt - L attribut IDREF permet de référencer un élément
qui possède un attribut IDEx lt!ELEMENT
référence EMPTYgtlt!ATTLIST référence ref IDREF
REQUIREDgtDoùltcible identifiant01234gt
blabla lt/ciblegtlt!-- une référence --gtltréférence
ref01234/gt
47XPointer XML Pointer Language
- XPointer est le standard qui permet de référencer
des ressources - Un XPointer est constitué dune référence de base
puis dune cascade de références. Ainsi il est
possible de référencer la valeur de lattribut
couleur du 3ème éléments fils de lélément de
type voiture.
48XPointer XML Pointer Language
- La référence de base dun XPointer est
- root() la racine du document cible
- origin() lorigine du pointeur.
- id(nb) lélément ayant un attribut id avec nb
comme valeur - html(val) un élément ltAgt ayant un attribut name
avec val comme valeur
49XPointer XML Pointer Language
- Les cascades de référence peuvent être
- child(), descendant(), ancestor(), avec les
paramètres suivant - nb le numéro de l occurrence
- element, pi, comment, text, all
- nom le nom dun élément
- un nom dattribut et/ou une valeur dattribut
- attr(nom) pour la valeur dun attribut nom
- ...
50XPointer XML Pointer Language
- Un XPointer peut être précédé dun URL, il faut
utiliser le caractère comme séparateur - Exemples de XPointerhttp//un.deux.fr/toto.xmlro
ot().child(1,titre)http//un.deux.fr/toto.xmlid(
0123)...
51XLink XML Linking Language
- Un XLink permet de lier plusieurs ressource entre
elles. - Les XLink peuvent être
- simples / étendus les liens simples nont
quune seule cible contrairement aux liens
étendus - inclus / exclus La ressource qui décrit les
liens inclus est inclue dans le liens, elle est
considérée comme lorigine.
52XLink XML Linking Language
- DTD du lien simplelt!ELEMENT lk-simple
EMPTYgtlt!ATTLIST lk-simple xmllink CDATA FIXED
simple href CDATA REQUIRED inline (true
false) true role CDATA IMPLIED title CDATA
IMPLIED content-role CDATA IMPLIED content-tit
le CDATA IMPLIED show (embed replace new)
IMPLIED actuate (auto user)
IMPLIED behavior CDATA IMPLIEDgt
53XLink XML Linking Language
- Pour les liens étendus, la valeur de lattribut
xml.link est extended - Un lien étendu est composé de plusieurs cibles.
Chaques cibles est représenté par un élément avec
lattribut xml.link qui a comme valeur locator
54Feuilles de style
- Lhabillage de documents XML
55La forme et le fond
- Un document XML contient des informations qui
vont être présentées sur différents supports
(ecran, feuille, son, ) - Il est possible de créer des feuilles de style
pour décrire comment se fait cette présentation - Les feuilles de style sont référencées par les
documents XML, elles nen font pas parties
56CSS Cascading Style Sheets
- CSS est un standard du W3C pour décrire des
feuilles de style. - CSS-1 a été défini en 1996, CSS-2 en 1998
- CSS-1 est supporté par les navigateur version 4
de netscape et microsoft. - CSS-2 est supporté par les navigateur version 5
de netscape et microsoft - Le W3C sest engagé pour quune version N soit
toujours valide par rapport au version Nx de la
norme.
57CSS Cascading Style Sheets
- Il est possible de définir plusieurs feuilles de
style pour un document XML - Il est possible de définir une feuille de style
avec des propriétés valables uniquement pour les
écrans et des propriétés valables uniquement pour
les imprimantes. - Il est possible quune feuille de style importe
dautres feuilles de style
58CSS Cascading Style Sheets
- Le principe de base de CSS est le
suivantselecteur propriété1
valeur propriété2 valeur - Selecteur indique quel est (ou quels sont)
lélément affecté par ces propriétés. - Les propriétés sont des indications sur la forme,
CSS définit 122 propriétés
59CSS Cascading Style Sheets
- Ex de feuille de style CSS
- _at_media screen, print
-
- background black
- color yellow
- font-weight bold
- font-size14pt
- font-family Garamond
- font-style normal
-
-
60CSS Cascading Style Sheets
61CSS Cascading Style Sheets
62XSL eXtensible Stylesheet Language
- XSL est un standard pour décrire des feuilles de
style - La spécification date de Avril 1999, elle nest
pas encore totalement stabilisée - XSL permet plus de chose que CSS
- La présentation nest pas basé sur larbre du
document XML - Il est possible de rajouter des informations (ex
table des matières, )
63XSL eXtensible Stylesheet Language
- Pour afficher un document
- Larbre source est transformé en fonction des
directives de la feuille de style XSL - Larbre transformé est mis en sortie (écran,
papier) - Une feuille de style XSL décrit les directives de
transformation de larbre source.
64XSL eXtensible Stylesheet Language
- Structure dun feuille XSLltxslgt ltdefine-scriptgt
var foo function bar(xx)
lt/define-scriptgt ltdefine-style name
"style-para" Â lt! attributs de formatage
--gt /gt ltdefine-macro nameitem lt! forme
resultat --gt lt/define-macrogt ltimport
href"feuille.xsl" /gt ltid attribute"sqd" /gt
65XSL eXtensible Stylesheet Language
- Structure dune feuille XSL (suite) ltrulegt ltroo
t/gt ltHTMLgt ltBODYgt ltchildren/gt lt/BODYgt
lt/HTMLgt lt/rulegt ltrulegt ltelement
type"para"/gt lttarget-element type"code"
/gt ltPREgt ltchildren/gtlt/PREgt lt/rulegt
66XSL eXtensible Stylesheet Language
- Exemple de feuille XSLltxslgt ltrulegt ltroot/gt lt
HTMLgt ltBODYgt ltchildren/gt lt/BODYgt lt/HTM
Lgt lt/rulegt ltrulegt ltelement type"cours"/gt lt
target-element type"auteur"/gt ltH1gt Salut je
lis auteur lt/H1gt lt/rulegtlt/xslgt
67XSL eXtensible Stylesheet Language
68Traitement de documents XML
69Parseur
- XML offre de nouveaux horizons applicatifs
- Il nest pas possible dimaginer létendu de ce
domaine applicatif - Cependant, toutes les applications auront besoin
de parseur - Il y a deux types de parseur normalisés
- SAX
- DOM
70SAX Simple API for XML
- SAX est un type de parseur XML
- SAX a été construit par des internautes en 1997,
ils voulaient standardiser ce type de parseur - SAX est implanté en Java et en Python
- SAX est un parseur événementiel
- Lorsque que le parseur lit un élément du
document, il lance un événement - Il est utilisé par les applications qui
considèrent les documents XML comme des flots de
données
71SAX Simple API for XML
- SAX étant un parseur événementiel, il propose un
ensemble dinterface pour implanter des handler - DocumentHandler
- startElement()
- starDocument()
- ErrorHandler
- Error()
- Il suffit ensuite de créer un parseur XML,
daffecter les handler puis de commencer Ã
scanner le document
72SAX Simple API for XML
- Exemple dapplication utilisant SAX
- public class MyHandler extends DocumentHandler
public void startElement(String n,
AttributeList att) - System.out.println("Start element " n)
-
-
- .DocumentHandler dh new MyHandler()parser.se
rDocumentHandler(dh)
73DOM Document Object Model
- DOM est un type de parseur XML
- DOM a été standardisé par le W3C
- LAPI du DOM est définit en IDL CORBA
- DOM est un parseur compilé
- Lecture de la totalité du document XML
- Création dune structure arborescente dobjet qui
représente le document XML
74DOM Document Object Model
- Le DOM est un parseur compilé, son API est
composé de toutes les entités dun document XML - Document Objet qui représente le document XML
- Element Objet qui représente un élément XML
- Node Objet dont tous les autres objets héritent
- Pour construire une application qui utilise le
DOM, il suffit de créer un parseur et dappeler
la méthode parse qui retourne un objet de type
Document
75DOM Document Object Model
- Exemple dapplication utilisant DOM
- try DOMParserWrapper parser new Document
docu parser.parser(uri) -
76Conclusion pour les traitements
- SAX et DOM sont deux types de parseur
standardisés par les internautes pour SAX et par
le W3C pour DOM - SAX est plus orienté traitement du document comme
un flot dinformation - DOM est plus orienté transformation de document
ou archivage - Il existe de nombreuses implantations gratuites
en Java de SAX et de DOM (Sun, IBM, )
77Applications
78MOF Meta Object Facility
79XMI XML Metadata Interchange
80Bibliographie
81Les documents utilisé pour ce support
-  XML Langage et applications  EyrollesAlain
Michard - www.w3c.org le site du W3C
- http//www.alphaworks.ibm.com/formula/xml/
- http//babel.alis.com/web_ml/xml/Â
- http//www.xmltechno.com/