Académique Documents
Professionnel Documents
Culture Documents
2021/2022
Qu’est-ce que XML ?
XML ou eXtensible Markup Language est un langage informatique de balisage générique.
Langage de Langage de
Langage de requête
programmation description
(SQL, XQuery, …)
(C, Java, C++, ...) (HTML, XML, …)
XML est un langage qui permet de décrire des données à l'aide de balises et de règles que l'on peut
personnaliser. Ces balises permettent de structurer de manière hiérarchisée et organisée ces données.
2
Comment est né XML ?
● Au début, il y avait SGML (Standard Generalized Markup Langage):
○ Standard pour définir des langages de balisage pour la représentation de documents
électroniques (métalangage).
○ Une DTD (Document Type Definition) spécifie les règles sur un ensemble de balises pour
définir un langage.
○ L’idée est de pouvoir décrire la structure d’un document et de ses éléments sans donner
des spécification sur la présentation (peu importe son extension – html, docx, txt, pdf,
etc.–).
○ Complexe et ambigu (une balise ouvrante n’est pas forcément suivie d’une balise
fermante).
3
Comment est né XML ? (suite)
● Ensuite, il y a eu HTML (HyperText Markup Language), entre autres.
○ Une application de SGML pour décrire des documents pour le Web (pages Web).
○ Trop de balises qui décrivent plutôt la présentation (<b>, <blink>, <i>) que la structure
(<body>, <title>, <acronym>).
○ CSS (Cascading Style Sheet) pour décrire la présentation du contenu d’un document HTML
et laisser HTML ne décrire que la structure et le sens des éléments.
○ Trop de balises qui décrivent la présentation quand même.
○ Erreurs de syntaxe HTML sont très souvent ignorées par les navigateurs Web.
○ Difficile pour une application (Ex. moteurs de recherche) d’analyser (parser) un contenu
HTML erroné.
4
Comment est né XML ? (suite)
● XML (eXtensible Markup Language)
○ Version simplifiée de SGML
○ XML adopte des conventions qui le rendent le document plus facile à parser (Ex. balise
ouvrante => balise fermante)
○ Extensible, car les balises ne sont pas prédéfinies comme c’est le cas en HTML.
5
Objectifs du langage XML
6
Langages apparentés
Plusieurs technologies et langages se sont développés autour de XML :
● XLink et XPointer : établir des liens entre les documents ou des fragments de documents XML
● XPath : pour sélectionner des éléments du document XML
● XQuery : s’apparente à SQL mais pour XML
● Schéma XSD : pour valider des documents XML
● XSLT : feuille de style pour transformer des documents XML
7
Où trouver XML ?
● Documents Microsoft Office Word (.docx)
8
Où trouver XML ?
● Keyhole Markup Language (KML) pour la géolocalisation : https://developers.google.com/kml
9
Où trouver XML ?
● Really Simple Syndication (RSS) et Atom Syndication Format
10
Principe de base
Un document XML contient du texte organisé sous forme de balises.
Balises
Une balise porte un nom qui est entouré de chevrons; elle commence par un < et se termine par un >.
On distingue deux (02) types de balises : les balises par paires et les balises uniques.
1. Balises par paires : elles sont composées d’une balise ouvrante et d’une balise fermante.
11
Principe de base (suite)
Une balise par paires peut contenir une valeur simple : chaîne de caractères, nombre entier, réel, etc.
Exemple 3 : <balise1>Hello World !</balise1>
<balise2>12.5</balise2>
Une balise par paires peut contenir une autre balise. On parle alors d’arborescence.
Exemple 4 : <balise1>
<balise2>Hello World !</balise2>
</balise1>
Une balise par paires peut également contenir un mélange de valeurs simples et de balises.
12
Principe de base (suite)
2. Balises uniques : ce sont des balises par paires, qui n’ont pas de contenu.
Elles désignent donc des éléments vides.
Exemple 5 : <balise/>
14
Structure d’un document XML (suite)
2. Corps du document : il est constitué de l'ensemble des éléments qui décrivent les données.
Un élément unique, désigné comme l’élément racine, contient tous les autres éléments.
Éléments
Un élément est habituellement formé d’une balise ouvrante, d’un contenu et d’une balise fermante.
Le contenu de l’élément peut être constitué de :
● Données caractères : ce sont du texte correspondant au contenu informatif de l’élément.
15
Structure d’un document XML (suite)
● Éléments emboîtés : des éléments sont correctement emboîtés si un élément débutant à
l’intérieur d’un autre élément se termine aussi à l’intérieur du même élément.
Exemple 2 :
<livre>
<titre>XML : guide de l’administrateur</titre>
<auteur>William Stanek</auteur>
<pages>388</pages>
<prix>22.71</prix>
</livre>
19
Structure d’un document XML (suite)
● Références d’entités prédéfinies
On peut également utiliser une référence à une entité prédéfinie pour insérer l’un des
cinq (05) caractères suivants dans un document XML.
' ‘ '
" “ "
20
Structure d’un document XML (suite)
● Sections CDATA : lorsqu’on ajoute du texte à un élément, on peut insérer n’importe quel
caractère excepté les caractères <, & ou la chaîne ]]>.
Le parseur XML interpréterait < comme le début d’un élément emboîté, & comme le
début d’une entité ou d’une référence de caractères, et ]]> comme la fin d’une section
CDATA.
Une section CDATA est un bloc de texte dans lequel on peut insérer librement n’importe
quel caractère excepté la chaîne ]]>.
21
Structure d’un document XML (suite)
Exemple 6 :
<page>
Voici un exemple de page HTML très simple :
< ! [CDATA[
<HTML>
<HEAD>
<TITLE> Données semi-structurées </TITLE>
</HEAD>
<BODY>
<P> Insertion de sections CDATA </P>
</BODY>
</HTML>
]]>
</page>
22
Structure d’un document XML (suite)
Attributs
Un attribut est une paire (nom, valeur) associée à la définition d’un élément.
Il ajoute une information sur le contenu de l’élément.
Il peut être inséré dans le marqueur d’ouverture d’un élément ou dans un marqueur d’élément vide.
Exemple 7 : <prix devise=”euro”> 22.71 </prix>
Quelques règles :
● Les règles de nommage sont les mêmes que pour les balises.
● La valeur d'un attribut doit être délimitée par des guillemets simples ou doubles.
● La valeur d’un attribut ne peut contenir le caractère < ou &.
● Un attribut étant unique, il ne peut apparaître qu'une seule fois dans la même balise.
23
Structure d’un document XML (suite)
Commentaire
Un commentaire est une annotation dans le document XML que le programmeur peut lire mais que le
parseur XML ignore.
Instructions de traitement
Elles servent à donner des informations à l’application qui utilise le document XML et peuvent être
placées à n’importe quel endroit du document, après le prologue.
29
Solution (1)
<?xml version="1.0" encoding="UTF-8"?>
<livre titre="XML étape par étape">
<auteurs>
<auteur nom="Young" prenom="Michael"/>
<auteur nom="Smith" prenom="John"/>
</auteurs>
<sections>
<section titre="Section 1">
<chapitre titre="Chapitre 1">
<paragraphe>Premier paragraphe</paragraphe>
<paragraphe>Deuxième paragraphe</paragraphe>
</chapitre>
<chapitre titre="Chapitre 2">
<paragraphe>Premier paragraphe</paragraphe>
<paragraphe>Deuxième paragraphe</paragraphe>
</chapitre>
</section> 30
Solution (2)
<section titre="Section 2">
<chapitre titre="Chapitre 1">
<paragraphe>Premier paragraphe</paragraphe>
<paragraphe>Deuxième paragraphe</paragraphe>
</chapitre>
<chapitre titre="Chapitre 2">
<paragraphe>Premier paragraphe</paragraphe>
<paragraphe>Deuxième paragraphe</paragraphe>
</chapitre>
</section>
</sections>
</livre>
31
Exercice 3
On se propose de créer un nouveau document livre2.xml reprenant l’exercice précédent.
Placez dans deux paragraphes un bloc de texte contenant l’extrait suivant :
<element id="10">></element>
Pour le premier paragraphe, employez les entités prédéfinies.
Pour le deuxième paragraphe, employez une section CDATA.
32
Solution
<?xml version="1.0" encoding="UTF-8"?>
<livre titre="XML étape par étape">
...
<chapitre titre="Chapitre1">
<paragraphe> <element id="10"> &gt; </element> </paragraphe>
<paragraphe>
<![CDATA[
<element id="10">></element>
]]>
</paragraphe>
</chapitre>
...
</livre>
33
Exercice 4
Proposez une structuration XML pour représenter l'agenda électronique suivant :
Dans l'agenda de M. Jack, il y a son nom, son numéro de téléphone (0965 29 07), des dates d'anniversaire, des rendez-vous et des
notes.
Sa femme, Sally, est née un 23 Mars, son fils Charles est né un 15 Juillet et son ami David est né un 26 Décembre. Sa mémoire
n'étant pas très fiable, il a dû faire des rappels une semaine à l'avance pour chaque anniversaire et noter les idées de cadeaux
qu'il comptait leur offrir. Son anniversaire à lui est prévu le 19 Octobre, mais il n'a pas jugé nécessaire d'ajouter un rappel dans
son agenda.
Il a prévu une partie de pétanque avec ses amis le 15 Juin à 10h30. Il doit ensuite retrouver sa femme et son fils pour déjeuner
vers 13h00 et rendre visite à David vers 16h00 au café du quartier. Le 20 Juin, il a rendez-vous chez son médecin à 10h00.
Dans son agenda, il a aussi noté une liste de courses (lait, farine et 5 oeufs) ainsi que le titre d'un livre (100 ans de solitude), qu'il
voulait lire plus tard.
34
Espaces de noms
Les espaces de noms servent à éviter les conflits de noms d'éléments et d’attributs intervenant dans
différentes structures de données d’un même document ou lors de l’intégration de documents XML à
partir de différentes applications.
Exemple 1 :
<employe>
<livre>
<nom>Doe</nom>
<titre>XML: Guide de l’admin</titre>
<prenom>John</prenom>
<auteur>William Stanek</titre>
<titre>Administrateur réseau</titre>
<pages>388</pages>
<age>35</age>
</livre>
</employe>
35
Déclaration d’un espace de noms
Les conflits de nom dans XML peuvent facilement être évités en utilisant un préfixe de nom.
La déclaration d’un espace de noms s’effectue alors en ajoutant le préfixe approprié aux éléments
et aux attributs. On parle ainsi de noms qualifiés.
Syntaxe : prefixe_espace_de_noms:partie_locale
Le préfixe d’un espace de noms doit être ajouté uniformément (aux deux balises).
36
Associer des URI à des espaces de noms
Chaque espace de noms déclaré dans un document doit être associé à un URI.
Un URI (Uniform Resource Identifier) est une chaîne de caractères qui identifie une ressource Internet.
L'URI le plus courant est l'URL qui identifie une adresse de domaine Internet.
On associe un URI à un espace de noms en définissant l’attribut xmlns.
Exemple 4 :
<book:livre xmlns:book=”http://recherche.univ-bejaia.dz/books”>
<book:titre>XML étape par étape</book:titre>
<book:auteur>Michael Young</book:auteur>
<book:pages>388</book:pages>
</book:livre>
<staff:employe xmlns:staff=”http://www.univ-bejaia.dz/staff”>
<staff:nom>John Doe</staff:nom>
<staff:titre>Administrateur réseau</staff:titre>
</staff:employe>
38
Associer des URI à des espaces de noms (suite)
Exemple 5 :
<document xmlns:book=”http://recherche.univ-bejaia.dz/books”
xmlns:staff=”http://www.univ-bejaia.dz/staff”>
<book:livre>
<book:titre>XML étape par étape</book:titre>
<book:auteur>Michael Young</book:auteur>
<book:pages>388</book:pages>
</book:livre>
<staff:employe>
<staff:nom>John Doe</staff:nom>
<staff:titre>Administrateur réseau</staff:titre>
</staff:employe>
</document>
39
Application d’un espace de noms sur un attribut
Les espaces de noms peuvent s’appliquer via un préfixe sur un attribut ou une valeur d’attribut.
Exemple 6 :
<livre>
<titre>XML : guide de l’administrateur</titre>
<auteur>William Stanek</auteur>
<format xmlns:p=”http://www.print.com” xmlns:l=”http://www.read.com” p:pages=”388” l:pages=“200”>
<papier type=”p:A4”/>
</format>
</livre>
Ceci peut servir à contourner la règle qui veut que l’on ne puisse pas avoir plusieurs fois un attribut
de même nom sur une déclaration d’élément.
40
Espaces de noms par défaut
La définition d'un espace de noms par défaut pour un élément nous évite d'utiliser des préfixes dans
tous les éléments enfants. Il suffit alors de définir un attribut xmlns sans aucun préfixe.
Exemple 7 :
<livre xmlns=”http://www.recherche.univ-bejaia.dz/books”>
<titre>XML : guide de l’administrateur</titre>
<auteur>William Stanek</auteur>
<pages>388</pages>
</livre>
L’élément livre déclare un espace de noms par défaut associé à l’URI http://www.recherche.univ-bejaia.dz/books.
Les éléments titre, auteur et pages se trouvent automatiquement dans l’espace de noms par défaut.
41
Quelques espaces de noms classiques
● XML L'espace de noms identifié par l’URI “http://www.w3.org/XML/1998/namespace” définit
l’espace de noms XML.
● XLink L'espace de noms identifié par l’URI “http://www.w3.org/1999/xlink” permet de créer
des hyperliens dans des documents XML.
● XHTML L'espace de noms "http://www.w3.org/1999/xhtml" identifie des éléments XHTML.
● XSLT L'espace de noms identifié par l’URI "http://www.w3.org/1999/XSL/Transform" permet
de décrire des éléments XSLT.
● XML Schemas L'espace de noms “http://www.w3.org/2001/XMLSchema” permet de décrire
des schémas XML.
42
Exercice 4
Créez un document livre3.xml sur la base de livre1.xml en respectant les points suivants :
● Mettez tous les éléments dans l’espace de noms http://www.books.com sans utiliser d’espace de
noms par défaut.
● Mettez la deuxième section dans un espace de noms http://www.imprimeur.com.
● Mettez le dernier paragraphe du dernier chapitre de la dernière section sans espace de noms.
43
Solution (1)
<p1:livre titre="XML étape par étape" xmlns:p1="http://www.books.com" xmlns:p2="http://www.imprimeur.com">
<p1:auteurs>
<p1:auteur nom="Young" prenom="Michael"/>
<p1:auteur nom="Smith" prenom="John"/>
</p1:auteurs>
<p1:sections>
<p1:section titre="Section 1">
<p1:chapitre titre="Chapitre 1">
<p1:paragraphe>Premier paragraphe</p1:paragraphe>
<p1:paragraphe>Deuxième paragraphe</p1:paragraphe>
</p1:chapitre>
<p1:chapitre titre="Chapitre 2">
<p1:paragraphe>Premier paragraphe</p1:paragraphe>
<p1:paragraphe>Deuxième paragraphe</p1:paragraphe>
</p1:chapitre>
</p1:section>
44
Solution (2)
<p2:section titre="Section 2">
<p2:chapitre titre="Chapitre 1">
<p2:paragraphe>Premier paragraphe</p2:paragraphe>
<p2:paragraphe>Deuxième paragraphe</p2:paragraphe>
</p2:chapitre>
<p2:chapitre titre="Chapitre 2">
<p2:paragraphe>Premier paragraphe</p2:paragraphe>
<paragraphe>Deuxième paragraphe</paragraphe>
</p2:chapitre>
</p2:section>
</p1:sections>
</p1:livre>
45
Références
46