XML eXtensible Markup Language Xavier Blanc [email protected].
-
Upload
raimond-basset -
Category
Documents
-
view
117 -
download
0
Transcript of XML eXtensible Markup Language Xavier Blanc [email protected].
![Page 2: XML eXtensible Markup Language Xavier Blanc Xavier.Blanc@lip6.fr.](https://reader035.fdocuments.us/reader035/viewer/2022062404/551d9d81497959293b8bab2c/html5/thumbnails/2.jpg)
Plan
De HTML à XML Documents bien formés Documents valides Liens Feuilles de style Traitement de documents XML Applications
![Page 3: XML eXtensible Markup Language Xavier Blanc Xavier.Blanc@lip6.fr.](https://reader035.fdocuments.us/reader035/viewer/2022062404/551d9d81497959293b8bab2c/html5/thumbnails/3.jpg)
de HTML à XML
Généralités
![Page 4: XML eXtensible Markup Language Xavier Blanc Xavier.Blanc@lip6.fr.](https://reader035.fdocuments.us/reader035/viewer/2022062404/551d9d81497959293b8bab2c/html5/thumbnails/4.jpg)
HTML
Langage à balises– Balises obligatoires (head, body, …)– Balises à valeur sémantique (h1, meta, …)– Balises à valeur d’habillage (center, small, ..)– Nombre fini de balises– Balises différentes suivant les navigateurs
Pas d’évolution possible pour l’utilisateur
![Page 5: XML eXtensible Markup Language Xavier Blanc Xavier.Blanc@lip6.fr.](https://reader035.fdocuments.us/reader035/viewer/2022062404/551d9d81497959293b8bab2c/html5/thumbnails/5.jpg)
HTML
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.
![Page 6: XML eXtensible Markup Language Xavier Blanc Xavier.Blanc@lip6.fr.](https://reader035.fdocuments.us/reader035/viewer/2022062404/551d9d81497959293b8bab2c/html5/thumbnails/6.jpg)
L’apport de XML
Ensemble non fini de balises– L’utilisateur peut créer de nouvelles balises
Séparation de la forme et du fond– Un document XML sera constitué d’au moins deux
entités (le fond et la forme)
Séparation du contenu et de la grammaire– Permet la validation des documents
![Page 7: XML eXtensible Markup Language Xavier Blanc Xavier.Blanc@lip6.fr.](https://reader035.fdocuments.us/reader035/viewer/2022062404/551d9d81497959293b8bab2c/html5/thumbnails/7.jpg)
Historique
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 d’information du futur
![Page 8: XML eXtensible Markup Language Xavier Blanc Xavier.Blanc@lip6.fr.](https://reader035.fdocuments.us/reader035/viewer/2022062404/551d9d81497959293b8bab2c/html5/thumbnails/8.jpg)
Documents bien formés
règles syntaxiques de XML
![Page 9: XML eXtensible Markup Language Xavier Blanc Xavier.Blanc@lip6.fr.](https://reader035.fdocuments.us/reader035/viewer/2022062404/551d9d81497959293b8bab2c/html5/thumbnails/9.jpg)
Un document XML bien formé
Exemple de document XML :
<livre><titre> le super livre </titre><chapitre>
<numero> 1 </numero><titre> titre du chapitre 1 </titre><contenu> blabla blabla </contenu>
</chapitre><chapitre>
…</chapitre>
</livre>
![Page 10: XML eXtensible Markup Language Xavier Blanc Xavier.Blanc@lip6.fr.](https://reader035.fdocuments.us/reader035/viewer/2022062404/551d9d81497959293b8bab2c/html5/thumbnails/10.jpg)
Documents 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 d’exception.
Un document XML bien formé pourra être associé avec une feuille de style.
![Page 11: XML eXtensible Markup Language Xavier Blanc Xavier.Blanc@lip6.fr.](https://reader035.fdocuments.us/reader035/viewer/2022062404/551d9d81497959293b8bab2c/html5/thumbnails/11.jpg)
Règles syntaxiques XML
Un document XML est constitué de :– Un prologue : qui contient un ensemble
d’informations 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 n’importe où dans le document
![Page 12: XML eXtensible Markup Language Xavier Blanc Xavier.Blanc@lip6.fr.](https://reader035.fdocuments.us/reader035/viewer/2022062404/551d9d81497959293b8bab2c/html5/thumbnails/12.jpg)
Le prologue
La déclaration XML<?xml version=“1.0” encoding=‘ISO-8859-1’ standalone=‘yes’ ?>
– Permet de préciser la version du document– Permet de préciser l’encodage utilisé– Permet de savoir si le document est autonome ou
pas (lien vers d’autres documents)
![Page 13: XML eXtensible Markup Language Xavier Blanc Xavier.Blanc@lip6.fr.](https://reader035.fdocuments.us/reader035/viewer/2022062404/551d9d81497959293b8bab2c/html5/thumbnails/13.jpg)
Le 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 d’un document.<!DOCTYPE livre SYSTEM "livre.dtd" >
![Page 14: XML eXtensible Markup Language Xavier Blanc Xavier.Blanc@lip6.fr.](https://reader035.fdocuments.us/reader035/viewer/2022062404/551d9d81497959293b8bab2c/html5/thumbnails/14.jpg)
Ensemble d’éléments
Les éléments des documents XML sont composés d’une balise d’ouverture, d’un contenu et d’une balise de clôture.<nom> contenue de l’élément </nom>
Le nom d’une balise est composé de caractères alphanumériques, du tiret-souligné, du signe moins ou du point. Il ne faut pas qu’il soit composé d’espaces. 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/...
![Page 15: XML eXtensible Markup Language Xavier Blanc Xavier.Blanc@lip6.fr.](https://reader035.fdocuments.us/reader035/viewer/2022062404/551d9d81497959293b8bab2c/html5/thumbnails/15.jpg)
Ensemble d’éléments
Une balise d’ouverture peut avoir un ensemble d’attributs.Ex : <livre date=‘ 01-01-2000 ’> …
Un attribut est une paire nom=valeur 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 L’attribut xml:lang est prédéfini et sa valeur représente le langage
utilisé dans le documentEx : <p xml:lang=‘ fr ’> ...
![Page 16: XML eXtensible Markup Language Xavier Blanc Xavier.Blanc@lip6.fr.](https://reader035.fdocuments.us/reader035/viewer/2022062404/551d9d81497959293b8bab2c/html5/thumbnails/16.jpg)
Ensemble d’éléments
Le contenu d’un é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 <– et/ou des références
![Page 17: XML eXtensible Markup Language Xavier Blanc Xavier.Blanc@lip6.fr.](https://reader035.fdocuments.us/reader035/viewer/2022062404/551d9d81497959293b8bab2c/html5/thumbnails/17.jpg)
Ensemble 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 : 8 est une référence vers &– une référence prédéfinie comme par exemple & ou '
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é
![Page 18: XML eXtensible Markup Language Xavier Blanc Xavier.Blanc@lip6.fr.](https://reader035.fdocuments.us/reader035/viewer/2022062404/551d9d81497959293b8bab2c/html5/thumbnails/18.jpg)
Ensemble d’éléments
Les balises de clôture sont composées des noms correspondant aux balises d’ouvertures précédés du caractère /
Ex : </livre> En élément peut être vide (sans contenu),
dans ce cas, il n’a qu’une seule balise (composée du nom suivi du caractère /)
Ex : <Element_vide/>
![Page 19: XML eXtensible Markup Language Xavier Blanc Xavier.Blanc@lip6.fr.](https://reader035.fdocuments.us/reader035/viewer/2022062404/551d9d81497959293b8bab2c/html5/thumbnails/19.jpg)
Sections 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 <![CDATA[ et par ]]>Ex : <![CDATA[ <auteurs> Dupond & ]]>
![Page 20: XML eXtensible Markup Language Xavier Blanc Xavier.Blanc@lip6.fr.](https://reader035.fdocuments.us/reader035/viewer/2022062404/551d9d81497959293b8bab2c/html5/thumbnails/20.jpg)
Instructions de traitement
Il est possible d’inclure des instructions de traitement dans un document XML
La déclaration d’une instruction de traitement se fait de la facon suivante :<?nom arg1 arg2 .. ?>
nom est le nom de l’application cible arg1, arg2, … sont les arguments de l ’application Les noms XML, XmL, … sont réservés
![Page 21: XML eXtensible Markup Language Xavier Blanc Xavier.Blanc@lip6.fr.](https://reader035.fdocuments.us/reader035/viewer/2022062404/551d9d81497959293b8bab2c/html5/thumbnails/21.jpg)
Commentaire
Des commentaires peuvent être inclus dans le contenu d’un élément XML. Ils doivent être encadrés par les marques <!-- et -->
Un commentaire est une chaîne de caractères quelconque qui ne contient pas la chaîne --
Exemple :<!-- un commentaire --><!-- un commentaire qui n’est -- pas bien formé -->
![Page 22: XML eXtensible Markup Language Xavier Blanc Xavier.Blanc@lip6.fr.](https://reader035.fdocuments.us/reader035/viewer/2022062404/551d9d81497959293b8bab2c/html5/thumbnails/22.jpg)
Documents bien formés
Le plus petit :<?xml version=“1.0” encoding=‘ISO-8859-1’ standalone=‘yes’ ?><livre/>
Un autre :<?xml version=“1.0” encoding=‘ISO-8859-1’ standalone=‘yes’ ?><livre date=‘ 01-01-2000 ’>
<chapitre> XML & HTML </chapitre><!-- préciser la version de HTML-->
</livre>
![Page 23: XML eXtensible Markup Language Xavier Blanc Xavier.Blanc@lip6.fr.](https://reader035.fdocuments.us/reader035/viewer/2022062404/551d9d81497959293b8bab2c/html5/thumbnails/23.jpg)
Documents valides
XML et grammaire
![Page 24: XML eXtensible Markup Language Xavier Blanc Xavier.Blanc@lip6.fr.](https://reader035.fdocuments.us/reader035/viewer/2022062404/551d9d81497959293b8bab2c/html5/thumbnails/24.jpg)
Document Type Definition
En XML, un type de document représente une structure (une grammaire)
Ex : le type livre précise qu’un livre estcomposé de chapitres, qui sont composésde 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
![Page 25: XML eXtensible Markup Language Xavier Blanc Xavier.Blanc@lip6.fr.](https://reader035.fdocuments.us/reader035/viewer/2022062404/551d9d81497959293b8bab2c/html5/thumbnails/25.jpg)
Document Type Definition
On peut vérifier la validité d’un document par rapport à la DTD qu’il référence ou qu’il 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
![Page 26: XML eXtensible Markup Language Xavier Blanc Xavier.Blanc@lip6.fr.](https://reader035.fdocuments.us/reader035/viewer/2022062404/551d9d81497959293b8bab2c/html5/thumbnails/26.jpg)
Document Type Definition
Pour associer un document XML à une DTD, il faut le faire avec l’élément <!DOCTYPE>Ex : <!DOCTYPE livre SYSTEM "livre.dtd" >
On considère qu’un 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
![Page 27: XML eXtensible Markup Language Xavier Blanc Xavier.Blanc@lip6.fr.](https://reader035.fdocuments.us/reader035/viewer/2022062404/551d9d81497959293b8bab2c/html5/thumbnails/27.jpg)
Data Type Definition
Une DTD est définie dans l’élément<!DOCTYPE name SYSTEM "fichier.dtd" [delaration] >– 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. C’est 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
![Page 28: XML eXtensible Markup Language Xavier Blanc Xavier.Blanc@lip6.fr.](https://reader035.fdocuments.us/reader035/viewer/2022062404/551d9d81497959293b8bab2c/html5/thumbnails/28.jpg)
Contenu d’une DTD
Déclarations des entités Déclarations des éléments et de leurs
contenus Déclarations des attributs des éléments Commentaires
![Page 29: XML eXtensible Markup Language Xavier Blanc Xavier.Blanc@lip6.fr.](https://reader035.fdocuments.us/reader035/viewer/2022062404/551d9d81497959293b8bab2c/html5/thumbnails/29.jpg)
Les entités
Une entité est un couple (nom, valeur). On référence le nom pour utiliser la valeur. Ex : & (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 d’abré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 ...
![Page 30: XML eXtensible Markup Language Xavier Blanc Xavier.Blanc@lip6.fr.](https://reader035.fdocuments.us/reader035/viewer/2022062404/551d9d81497959293b8bab2c/html5/thumbnails/30.jpg)
Déclaration des entités
Les entités doivent être déclarées dans la DTD Un document peut référencer n’importe quelle
entité qui a été déclaré dans la DTD mais aussi les entités prédéfinis (amp, apos, …)
La déclaration d’une entité se fait de la manière suivante :<!ENTITY nom valeur>– La valeur doit être entre guillemets
![Page 31: XML eXtensible Markup Language Xavier Blanc Xavier.Blanc@lip6.fr.](https://reader035.fdocuments.us/reader035/viewer/2022062404/551d9d81497959293b8bab2c/html5/thumbnails/31.jpg)
Les entités externes XML
Permet la segmentation d’un document XML Ex :
<!DOCTYPE livre [<!ENTITY chapitre-1 SYSTEM "./chap1.xml"><!ENTITY chapitre-2 SYSTEM "./chap2.xml">]>
<livre>&chapitre-1;&chapitre-2;
</livre> Le mot clé SYSTEM indique une URL, voir le mot clé
PUBLIC avec les identificateurs public
![Page 32: XML eXtensible Markup Language Xavier Blanc Xavier.Blanc@lip6.fr.](https://reader035.fdocuments.us/reader035/viewer/2022062404/551d9d81497959293b8bab2c/html5/thumbnails/32.jpg)
Les 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 : <!NOTATION img "./PsP" >
Puis définir l’entitéEx : <!ENTITY fond SYSTEM "./fond.img" NDATA img>
L ’utilisation se fait donc ainsi :Ex : <photo val=‘ fond ’/>
![Page 33: XML eXtensible Markup Language Xavier Blanc Xavier.Blanc@lip6.fr.](https://reader035.fdocuments.us/reader035/viewer/2022062404/551d9d81497959293b8bab2c/html5/thumbnails/33.jpg)
Les 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 n’est qu’il y a le caractère %.Ex : <!ENTITY % nom valeur>
Pour référencer une entité paramètre on utilise le caractère %Ex : %nom;
![Page 34: XML eXtensible Markup Language Xavier Blanc Xavier.Blanc@lip6.fr.](https://reader035.fdocuments.us/reader035/viewer/2022062404/551d9d81497959293b8bab2c/html5/thumbnails/34.jpg)
Les éléments dans la DTD
La déclaration d’un élément se fait de la manière suivante :<!ELEMENT nom modèle>
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– n’importe quoi respectant la syntaxe XML– élément vide
![Page 35: XML eXtensible Markup Language Xavier Blanc Xavier.Blanc@lip6.fr.](https://reader035.fdocuments.us/reader035/viewer/2022062404/551d9d81497959293b8bab2c/html5/thumbnails/35.jpg)
Les éléments dans la DTD
Pour décrire les éléments fils d’un élément, il suffit de donner leurs noms entre parenthèses.
Si l’ordre 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 d’une fois– fils+ = au moins un fois
il est possible de faire des groupes d’éléments fils en utilisant des parenthèses.
![Page 36: XML eXtensible Markup Language Xavier Blanc Xavier.Blanc@lip6.fr.](https://reader035.fdocuments.us/reader035/viewer/2022062404/551d9d81497959293b8bab2c/html5/thumbnails/36.jpg)
Les éléments dans la DTD
Exemples de définition d’élément :<!ELEMENT livre (titre, intro, chapitre+)><!ELEMENT chapitre (titre , (titre_partie, partie)+)>...
![Page 37: XML eXtensible Markup Language Xavier Blanc Xavier.Blanc@lip6.fr.](https://reader035.fdocuments.us/reader035/viewer/2022062404/551d9d81497959293b8bab2c/html5/thumbnails/37.jpg)
Les éléments dans la DTD
Lorsqu’un é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 :<!ELEMENT partie (#PCDATA)>
![Page 38: XML eXtensible Markup Language Xavier Blanc Xavier.Blanc@lip6.fr.](https://reader035.fdocuments.us/reader035/viewer/2022062404/551d9d81497959293b8bab2c/html5/thumbnails/38.jpg)
Les éléments dans la DTD
Il est possible qu’un é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 :<!ELEMENT toto (#PCDATA, titi, tutu)*>
![Page 39: XML eXtensible Markup Language Xavier Blanc Xavier.Blanc@lip6.fr.](https://reader035.fdocuments.us/reader035/viewer/2022062404/551d9d81497959293b8bab2c/html5/thumbnails/39.jpg)
Les éléments dans la DTD
Lorsqu’un élément peut contenir soit du texte, soit n’importe quel ensemble d’élément fils, il faut utiliser le mot clé ANYEx : <!ELEMENT elmt ANY>
Lorsqu’un élément est un élément vide, il faut utiliser le mot clé EMPTYEx : <!ELEMENT elmt EMPTY>
![Page 40: XML eXtensible Markup Language Xavier Blanc Xavier.Blanc@lip6.fr.](https://reader035.fdocuments.us/reader035/viewer/2022062404/551d9d81497959293b8bab2c/html5/thumbnails/40.jpg)
Les attributs dans la DTD
La déclaration des attributs d’un élément se fait de la manière suivante :<!ATTLIST element (attribut type default)+>
element correspond au nom de l’élément qui contient l’attribut
attribut correspond au nom de l’attribut type correspond au type de l’attribut default contient des indications sur la valeur par défaut
![Page 41: XML eXtensible Markup Language Xavier Blanc Xavier.Blanc@lip6.fr.](https://reader035.fdocuments.us/reader035/viewer/2022062404/551d9d81497959293b8bab2c/html5/thumbnails/41.jpg)
Les attributs dans la DTD
Le type de l’attribut 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
![Page 42: XML eXtensible Markup Language Xavier Blanc Xavier.Blanc@lip6.fr.](https://reader035.fdocuments.us/reader035/viewer/2022062404/551d9d81497959293b8bab2c/html5/thumbnails/42.jpg)
Les attributs dans la DTD
L’indication sur la valeur par défaut peut être :– #REQUIRED indique que l’attribut doit avoir une
valeur une fois le document créé.– #IMPLIED indique que l’attribut est optionnel.– #FIXED ‘valeur’ indique que l’attribut est une
constante
![Page 43: XML eXtensible Markup Language Xavier Blanc Xavier.Blanc@lip6.fr.](https://reader035.fdocuments.us/reader035/viewer/2022062404/551d9d81497959293b8bab2c/html5/thumbnails/43.jpg)
Les attributs dans la DTD
Quelques exemples :<!ATTLIST ex1 att1 CDATA #IMPLIED><!ATTLIST ex2 att1 CDATA #IMPLIED
att2 ENTITY #REQUIRED>...
![Page 44: XML eXtensible Markup Language Xavier Blanc Xavier.Blanc@lip6.fr.](https://reader035.fdocuments.us/reader035/viewer/2022062404/551d9d81497959293b8bab2c/html5/thumbnails/44.jpg)
Sections conditionnelles
<![ INCLUDE [ contenu ]]> fait que le contenu appartient à la DTD
<![IGNORE [ contenu ]]> fait que le contenu n’appartient pas à la DTD
En utilisant des entités paramètres et en les redéfinissant dans le document, il est alors possible d’avoir une DTD conditionnelle
![Page 45: XML eXtensible Markup Language Xavier Blanc Xavier.Blanc@lip6.fr.](https://reader035.fdocuments.us/reader035/viewer/2022062404/551d9d81497959293b8bab2c/html5/thumbnails/45.jpg)
Liens
Navigation XML
![Page 46: XML eXtensible Markup Language Xavier Blanc Xavier.Blanc@lip6.fr.](https://reader035.fdocuments.us/reader035/viewer/2022062404/551d9d81497959293b8bab2c/html5/thumbnails/46.jpg)
Avec les attributs ID et IDREF
L’attribut ID permet d’associer un identifiant à un élémentEx : <!ELEMENT cible (#PCDATA)><!ATTLIST cible identifiant ID #IMPLIED>
L ’attribut IDREF permet de référencer un élément qui possède un attribut IDEx : <!ELEMENT référence EMPTY><!ATTLIST référence ref IDREF #REQUIRED>
D’où<cible identifiant=‘01234’> blabla </cible><!-- une référence --><référence ref=‘01234’/>
![Page 47: XML eXtensible Markup Language Xavier Blanc Xavier.Blanc@lip6.fr.](https://reader035.fdocuments.us/reader035/viewer/2022062404/551d9d81497959293b8bab2c/html5/thumbnails/47.jpg)
XPointer XML Pointer Language
XPointer est le standard qui permet de référencer des ressources
Un XPointer est constitué d’une référence de base puis d’une cascade de références. Ainsi il est possible de référencer la valeur de l’attribut couleur du 3ème éléments fils de l’élément de type voiture.
![Page 48: XML eXtensible Markup Language Xavier Blanc Xavier.Blanc@lip6.fr.](https://reader035.fdocuments.us/reader035/viewer/2022062404/551d9d81497959293b8bab2c/html5/thumbnails/48.jpg)
XPointer XML Pointer Language
La référence de base d’un XPointer est :– root() : la racine du document cible– origin() : l’origine du pointeur.– id(nb) : l’élément ayant un attribut id avec nb
comme valeur– html(val) : un élément <A> ayant un attribut name
avec val comme valeur
![Page 49: XML eXtensible Markup Language Xavier Blanc Xavier.Blanc@lip6.fr.](https://reader035.fdocuments.us/reader035/viewer/2022062404/551d9d81497959293b8bab2c/html5/thumbnails/49.jpg)
XPointer 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 d’un élément un nom d’attribut et/ou une valeur d’attribut
– attr(nom) pour la valeur d’un attribut nom– ...
![Page 50: XML eXtensible Markup Language Xavier Blanc Xavier.Blanc@lip6.fr.](https://reader035.fdocuments.us/reader035/viewer/2022062404/551d9d81497959293b8bab2c/html5/thumbnails/50.jpg)
XPointer XML Pointer Language
Un XPointer peut être précédé d’un URL, il faut utiliser le caractère # comme séparateur
Exemples de XPointerhttp://un.deux.fr/toto.xml#root().child(1,titre)http://un.deux.fr/toto.xml#id(0123)...
![Page 51: XML eXtensible Markup Language Xavier Blanc Xavier.Blanc@lip6.fr.](https://reader035.fdocuments.us/reader035/viewer/2022062404/551d9d81497959293b8bab2c/html5/thumbnails/51.jpg)
XLink XML Linking Language
Un XLink permet de lier plusieurs ressource entre elles.
Les XLink peuvent être :– simples / étendus : les liens simples n’ont qu’une
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 l’origine.
![Page 52: XML eXtensible Markup Language Xavier Blanc Xavier.Blanc@lip6.fr.](https://reader035.fdocuments.us/reader035/viewer/2022062404/551d9d81497959293b8bab2c/html5/thumbnails/52.jpg)
XLink XML Linking Language
DTD du lien simple<!ELEMENT lk-simple EMPTY><!ATTLIST lk-simple
xml:link CDATA #FIXED ‘simple ’href CDATA #REQUIREDinline (true | false) ‘true’role CDATA #IMPLIEDtitle CDATA #IMPLIEDcontent-role CDATA #IMPLIEDcontent-title CDATA #IMPLIEDshow (embed | replace | new) #IMPLIEDactuate (auto | user) #IMPLIEDbehavior CDATA #IMPLIED
>
![Page 53: XML eXtensible Markup Language Xavier Blanc Xavier.Blanc@lip6.fr.](https://reader035.fdocuments.us/reader035/viewer/2022062404/551d9d81497959293b8bab2c/html5/thumbnails/53.jpg)
XLink XML Linking Language
Pour les liens étendus, la valeur de l’attribut xml.link est ‘extended’
Un lien étendu est composé de plusieurs cibles. Chaques cibles est représenté par un élément avec l’attribut xml.link qui a comme valeur ‘locator’
![Page 54: XML eXtensible Markup Language Xavier Blanc Xavier.Blanc@lip6.fr.](https://reader035.fdocuments.us/reader035/viewer/2022062404/551d9d81497959293b8bab2c/html5/thumbnails/54.jpg)
Feuilles de style
L’habillage de documents XML
![Page 55: XML eXtensible Markup Language Xavier Blanc Xavier.Blanc@lip6.fr.](https://reader035.fdocuments.us/reader035/viewer/2022062404/551d9d81497959293b8bab2c/html5/thumbnails/55.jpg)
La 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 n’en font pas parties
![Page 56: XML eXtensible Markup Language Xavier Blanc Xavier.Blanc@lip6.fr.](https://reader035.fdocuments.us/reader035/viewer/2022062404/551d9d81497959293b8bab2c/html5/thumbnails/56.jpg)
CSS : 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 s’est engagé pour qu’une version N soit
toujours valide par rapport au version N+x de la norme.
![Page 57: XML eXtensible Markup Language Xavier Blanc Xavier.Blanc@lip6.fr.](https://reader035.fdocuments.us/reader035/viewer/2022062404/551d9d81497959293b8bab2c/html5/thumbnails/57.jpg)
CSS : 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 qu’une feuille de style importe d’autres feuilles de style
![Page 58: XML eXtensible Markup Language Xavier Blanc Xavier.Blanc@lip6.fr.](https://reader035.fdocuments.us/reader035/viewer/2022062404/551d9d81497959293b8bab2c/html5/thumbnails/58.jpg)
CSS : 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
![Page 59: XML eXtensible Markup Language Xavier Blanc Xavier.Blanc@lip6.fr.](https://reader035.fdocuments.us/reader035/viewer/2022062404/551d9d81497959293b8bab2c/html5/thumbnails/59.jpg)
CSS : Cascading Style Sheets
Ex de feuille de style CSS :@media screen, print {
*{background : black;color : yellow;font-weight : bold;font-size:14pt;font-family : Garamond;font-style : normal;
}}
![Page 60: XML eXtensible Markup Language Xavier Blanc Xavier.Blanc@lip6.fr.](https://reader035.fdocuments.us/reader035/viewer/2022062404/551d9d81497959293b8bab2c/html5/thumbnails/60.jpg)
CSS : Cascading Style Sheets
![Page 61: XML eXtensible Markup Language Xavier Blanc Xavier.Blanc@lip6.fr.](https://reader035.fdocuments.us/reader035/viewer/2022062404/551d9d81497959293b8bab2c/html5/thumbnails/61.jpg)
CSS : Cascading Style Sheets
![Page 62: XML eXtensible Markup Language Xavier Blanc Xavier.Blanc@lip6.fr.](https://reader035.fdocuments.us/reader035/viewer/2022062404/551d9d81497959293b8bab2c/html5/thumbnails/62.jpg)
XSL : eXtensible Stylesheet Language
XSL est un standard pour décrire des feuilles de style
La spécification date de Avril 1999, elle n’est pas encore totalement stabilisée
XSL permet plus de chose que CSS– La présentation n’est pas basé sur l’arbre du
document XML– Il est possible de rajouter des informations (ex :
table des matières, …)
![Page 63: XML eXtensible Markup Language Xavier Blanc Xavier.Blanc@lip6.fr.](https://reader035.fdocuments.us/reader035/viewer/2022062404/551d9d81497959293b8bab2c/html5/thumbnails/63.jpg)
XSL : eXtensible Stylesheet Language
Pour afficher un document – L’arbre source est transformé en fonction des
directives de la feuille de style XSL– L’arbre transformé est mis en sortie (écran, papier)
Une feuille de style XSL décrit les directives de transformation de l’arbre source.
![Page 64: XML eXtensible Markup Language Xavier Blanc Xavier.Blanc@lip6.fr.](https://reader035.fdocuments.us/reader035/viewer/2022062404/551d9d81497959293b8bab2c/html5/thumbnails/64.jpg)
XSL : eXtensible Stylesheet Language
Structure d’un feuille XSL<xsl>
<define-script>var foo = …function bar(xx) {…}
</define-script><define-style name= "style-para"
<!– attributs de formatage -->/><define-macro name=item
<!– forme resultat --> </define-macro><import href="feuille.xsl" /><id attribute="sqd" />
![Page 65: XML eXtensible Markup Language Xavier Blanc Xavier.Blanc@lip6.fr.](https://reader035.fdocuments.us/reader035/viewer/2022062404/551d9d81497959293b8bab2c/html5/thumbnails/65.jpg)
XSL :eXtensible Stylesheet Language
Structure d’une feuille XSL (suite)<rule>
<root/><HTML>
<BODY><children/></BODY>
</HTML></rule><rule>
<element type="para"/><target-element type="code" /><PRE> <children/></PRE>
</rule>
![Page 66: XML eXtensible Markup Language Xavier Blanc Xavier.Blanc@lip6.fr.](https://reader035.fdocuments.us/reader035/viewer/2022062404/551d9d81497959293b8bab2c/html5/thumbnails/66.jpg)
XSL : eXtensible Stylesheet Language
Exemple de feuille XSL<xsl>
<rule><root/><HTML><BODY><children/></BODY></HTML></rule><rule><element type="cours"/><target-element type="auteur"/><H1> Salut je lis auteur </H1></rule>
</xsl>
![Page 67: XML eXtensible Markup Language Xavier Blanc Xavier.Blanc@lip6.fr.](https://reader035.fdocuments.us/reader035/viewer/2022062404/551d9d81497959293b8bab2c/html5/thumbnails/67.jpg)
XSL : eXtensible Stylesheet Language
![Page 68: XML eXtensible Markup Language Xavier Blanc Xavier.Blanc@lip6.fr.](https://reader035.fdocuments.us/reader035/viewer/2022062404/551d9d81497959293b8bab2c/html5/thumbnails/68.jpg)
Traitement de documents XML
DOM et SAX
![Page 69: XML eXtensible Markup Language Xavier Blanc Xavier.Blanc@lip6.fr.](https://reader035.fdocuments.us/reader035/viewer/2022062404/551d9d81497959293b8bab2c/html5/thumbnails/69.jpg)
Parseur
XML offre de nouveaux horizons applicatifs Il n’est pas possible d’imaginer 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
![Page 70: XML eXtensible Markup Language Xavier Blanc Xavier.Blanc@lip6.fr.](https://reader035.fdocuments.us/reader035/viewer/2022062404/551d9d81497959293b8bab2c/html5/thumbnails/70.jpg)
SAX : 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
![Page 71: XML eXtensible Markup Language Xavier Blanc Xavier.Blanc@lip6.fr.](https://reader035.fdocuments.us/reader035/viewer/2022062404/551d9d81497959293b8bab2c/html5/thumbnails/71.jpg)
SAX : Simple API for XML
SAX étant un parseur événementiel, il propose un ensemble d’interface pour implanter des handler
– DocumentHandler startElement() starDocument()
– ErrorHandler Error()
Il suffit ensuite de créer un parseur XML, d’affecter les handler puis de commencer à scanner le document
![Page 72: XML eXtensible Markup Language Xavier Blanc Xavier.Blanc@lip6.fr.](https://reader035.fdocuments.us/reader035/viewer/2022062404/551d9d81497959293b8bab2c/html5/thumbnails/72.jpg)
SAX : Simple API for XML
Exemple d’application utilisant SAXpublic class MyHandler extends DocumentHandler {
public void startElement(String n, AttributeList att) {
System.out.println("Start element :" + n);}
}….
DocumentHandler dh = new MyHandler();parser.serDocumentHandler(dh);
![Page 73: XML eXtensible Markup Language Xavier Blanc Xavier.Blanc@lip6.fr.](https://reader035.fdocuments.us/reader035/viewer/2022062404/551d9d81497959293b8bab2c/html5/thumbnails/73.jpg)
DOM : Document Object Model
DOM est un type de parseur XML DOM a été standardisé par le W3C L’API du DOM est définit en IDL CORBA DOM est un parseur compilé
– Lecture de la totalité du document XML– Création d’une structure arborescente d’objet qui
représente le document XML
![Page 74: XML eXtensible Markup Language Xavier Blanc Xavier.Blanc@lip6.fr.](https://reader035.fdocuments.us/reader035/viewer/2022062404/551d9d81497959293b8bab2c/html5/thumbnails/74.jpg)
DOM : Document Object Model
Le DOM est un parseur compilé, son API est composé de toutes les entités d’un 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 d’appeler la méthode parse qui retourne un objet de type Document
![Page 75: XML eXtensible Markup Language Xavier Blanc Xavier.Blanc@lip6.fr.](https://reader035.fdocuments.us/reader035/viewer/2022062404/551d9d81497959293b8bab2c/html5/thumbnails/75.jpg)
DOM : Document Object Model
Exemple d’application utilisant DOM
try {DOMParserWrapper parser = new …Document docu = parser.parser(uri);
…
![Page 76: XML eXtensible Markup Language Xavier Blanc Xavier.Blanc@lip6.fr.](https://reader035.fdocuments.us/reader035/viewer/2022062404/551d9d81497959293b8bab2c/html5/thumbnails/76.jpg)
Conclusion 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 d’information
DOM est plus orienté transformation de document ou archivage
Il existe de nombreuses implantations gratuites en Java de SAX et de DOM (Sun, IBM, …)
![Page 77: XML eXtensible Markup Language Xavier Blanc Xavier.Blanc@lip6.fr.](https://reader035.fdocuments.us/reader035/viewer/2022062404/551d9d81497959293b8bab2c/html5/thumbnails/77.jpg)
Applications
XMI
![Page 78: XML eXtensible Markup Language Xavier Blanc Xavier.Blanc@lip6.fr.](https://reader035.fdocuments.us/reader035/viewer/2022062404/551d9d81497959293b8bab2c/html5/thumbnails/78.jpg)
MOF : Meta Object Facility
UML Models
MOF Model
IDLMeta-model
UMLMeta-model
UML ModelsUML Models IDL Interfaces
M3 layermeta-meta-model
M2 layermeta-model
M1 layermodels
M0 layer
![Page 79: XML eXtensible Markup Language Xavier Blanc Xavier.Blanc@lip6.fr.](https://reader035.fdocuments.us/reader035/viewer/2022062404/551d9d81497959293b8bab2c/html5/thumbnails/79.jpg)
XMI : XML Metadata Interchange
Meta-Level Metadata XMI DTDs XMI documents
M3 The MOF Model MOF DTD
M2UML MetaModel(ODP and others)
UML DTD(ODP and others)
MOF MetaModelDocuments
M1UML Models
(ODP and others)
UML Model Documents(ODP and others)
M0 Instances
![Page 80: XML eXtensible Markup Language Xavier Blanc Xavier.Blanc@lip6.fr.](https://reader035.fdocuments.us/reader035/viewer/2022062404/551d9d81497959293b8bab2c/html5/thumbnails/80.jpg)
Bibliographie
A vous de jouer
![Page 81: XML eXtensible Markup Language Xavier Blanc Xavier.Blanc@lip6.fr.](https://reader035.fdocuments.us/reader035/viewer/2022062404/551d9d81497959293b8bab2c/html5/thumbnails/81.jpg)
Les 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/