Académique Documents
Professionnel Documents
Culture Documents
Pr Gaoussou CAMARA
Professeur Assimilé en Informatique
gaoussou.camara@uadb.edu.sn
Aperçu 1
<!DOCTYPE html>
<html>
<body>
<p>I am normal</p>
<p style="color:red;">I am red</p>
<p style="color:blue;">I am blue</p>
<p style="font-size:50px;">I am big</p>
</body>
</html>
Gaoussou CAMARA
Aperçu 2
<!DOCTYPE html>
<html>
<head>
<title>Coucou</title>
<style>
body {
color: blue;
text-decoration: underline;
font-size: 42px;
}
</style>
</head>
<body>
<p>Voici du texte bleu</p>
<img alt="Une image de licorne :)" src="licorne.png"/>
</body>
</html>
Gaoussou CAMARA
Outline
Généralités
Le document XML
Les éléments
Arbre XML
Les attributs
Les dérivées
XML Schema
Gaoussou CAMARA
Généralités
• Standard de représentation et d’échange de données sur le Web
• Existence de limites du langage HTML lorsqu’il s’agit d’exploiter
les données du Web
• Les normes successives de HTML ont laissé la présentation
prendre de plus en plus de place dans un document HTML
• Nécessité de définir un nouveau langage qui serait centré sur la
description des données : XML
• XML a été développé en 1998 par le XML Working Group au sein
du World Wide Web Consortium (W3C)
• La spécification de XML est disponible à l’URL :
https://www.w3.org/TR/xml/
Gaoussou CAMARA
Généralités
• XML est un profil d’application ou une forme restreinte de SGML
(Standard Generalized Markup Language)
• SGML : langage normalisé de balisage généralisé
• Par construction, les documents XML sont des documents
conformes à SGML
• Méta-langage de marquage qui permet de définir son propre
système de balises représentant explicitement la structure d’un
document
• Un module logiciel appelé parseur XML est utilisé pour lire les
documents XML et pour accéder à leur contenu et à leur
structure
Gaoussou CAMARA
Généralités
• Un objet de données est un document XML s’il est bien formé ;
c’est-à-dire lorsqu’il respecte la syntaxe du langage XML
• Chaque document XML a une structure logique et une structure
physique
• Physiquement, le document se compose d’unités appelées
entités
• Une entité peut appeler d’autres entités pour causer leur
inclusion dans le document
Gaoussou CAMARA
Le document XML
• Logiquement, le document se compose de :
- déclarations
- d’éléments
- de commentaires
- d’appels de caractère
- et d’instructions de traitement
➡ qui sont indiqués dans le document par du balisage explicite
Gaoussou CAMARA
Les éléments
• Les éléments constituent les principaux composants logiques
d’un document XML
• Les éléments ont des limites marquées :
- soit par des balises ouvrantes (<LIVRE>) et fermantes
(</LIVRE>)
- soit, pour les éléments vides, par une balise d’élément vide
(<ELEMENTVIDE />)
• Un document doit contenir un élément racine unique, qui doit
contenir tous les autres éléments
Gaoussou CAMARA
Les éléments
• Chaque élément a un nom et un contenu
• Le contenu d’un élément peut être de type
- CDATA (Character Data) : données brutes non analysables par
un parseur XML
- PCDATA (Parseable Character Data) : une suite de caractères
analysables par un parseur XML
- Enumération : séquence d’autres éléments appelés sous-
éléments
- NMTOKEN : mot-clé ou liste de mots-clés
- ANY : tout texte possible
- EMPTY : élément vide
Gaoussou CAMARA
Les éléments
Exemple
<BIBLIO>
<LIVRE ISBN= “2-212-09052-8” LANG= “FR”>
<AUTEUR>
<NOM>Michard</NOM><PRENOM>Alain</PRENOM>
</AUTEUR>
<TITRE>XML, Langage et Applications</TITRE>
<EDITEUR>Eyrolles</EDITEUR>
<PRIX monnaie= “XOF”>3000</PRIX>
</LIVRE>
<LIVRE ISBN= “2-7440-0628-9” LANG= “FR”>
<AUTEUR>
<NOM>Ladd</NOM> <PRENOM>Eric</PRENOM>
</AUTEUR>
<AUTEUR>
<NOM>O’Donnel</NOM><PRENOM>Jim</PRENOM>
</AUTEUR>
<TITRE>HTML4, XML et Java 2</TITRE>
<EDITEUR>Campus Press</EDITEUR>
<PRIX monnaie= “XOF”>4500</PRIX>
</LIVRE>
</BIBLIO>
Gaoussou CAMARA
Les éléments
Exemple
• Ce document contient plusieurs éléments
• Chaque élément se compose
- d’une balise de début
- d’un contenu
- et d’une balise de fermeture
• L’élément racine est ici délimité par les balises <BIBLIO> et
</BIBLIO>
• Dans l’élément <EDITEUR>Eyrolles</EDITEUR>, le contenu
Eyrolles est délimité par les balises <EDITEUR> et </EDITEUR>
Gaoussou CAMARA
Arbre XML
biblio
livre
livre
…
isbn
lang prix
auteur date_achat
2-212-09052-8 titre
editeur
FR
monnaie 3000
nom prenom
nom
XOF
1998
Eyrolles
XML,Langage et Applications
Michard Alain
Gaoussou CAMARA
Les attributs
• On peut associer à un élément un jeu de spécifications d’attribut
• Spécification d’attribut = nom + valeur (nom="valeur")
• Les attributs constituent un autre type important de marquage
• Ce sont des couples noms-valeurs qui apparaissent après le nom
d’un élément dans la balise ouvrante
• Exemple :
- <LIVRE ISBN="2-212-09052-8" LANG="FR">
- L’élément LIVRE admet deux attributs
‣ ISBN qui a pour valeur 2-212-09052-8
Gaoussou CAMARA
Les attributs
• Les attributs peuvent être de type CDATA, ils ont alors pour
valeur des séquences de caractères non analysables par un
parseur XML
• Mais il existe des types d’attributs spéciaux permettant
d’identifier un élément et de le référencer à partir d’un autre
élément
• Ce sont les attributs de type ID, IDREF, IDREFS
• Un attribut de type ID sert d’identifiant à un élément
• Dans un même document, deux éléments ne peuvent pas avoir la
même valeur ID
Gaoussou CAMARA
Les attributs
• Un attribut de type IDREF permet d’effectuer une référence vers
un attribut de type ID
• La valeur d’un attribut de type IDREF doit correspondre à la
valeur d’un attribut de type ID déclaré dans le même document
• Un attribut de type IDREFS prend pour valeur une liste de valeurs
ID séparées par des espaces
• Dans l’exemple précédent, on pourrait
- introduire des attributs (id) de type ID pour les éléments auteur, et
- les référencer à l’aide d’attributs de type IDREF (auteur) ou IDREFS
(auteurs) au niveau des éléments livre
Gaoussou CAMARA
Les attributs
Exemple
<BIBLIO>
<AUTEUR id="MA" >
<NOM>Michard</NOM> <PRENOM>Alain</PRENOM>
</AUTEUR>
<AUTEUR id="LE">
<NOM>Ladd</NOM> <PRENOM>Eric</PRENOM>
</AUTEUR>
<AUTEUR id="OJ">
<NOM>O’Donnel</NOM> <PRENOM>Jim</PRENOM>
</AUTEUR>
<LIVRE ISBN="2-212-09052-8" LANG="FR" auteur="MA">
…
</LIVRE>
<LIVRE ISBN="2-7440-0628-9" LANG="FR" auteurs="LE OJ">
…
</LIVRE>
</BIBLIO>
Gaoussou CAMARA
Standards dérivés
• Plusieurs standards ont été définis par le W3C pour compléter la
norme XML. Les plus importants sont : XSL, XML Query et Xlink
• XML Query spécifie les exigences d’un langage de requêtes pour
XML. Plusieurs propositions de langages de requêtes ont déjà été
faites
• Xlink permet la définition d’hyperliens puissants pour les
documents XML
• XSL est une spécification composée de trois parties :
- XPATH pour la sélection de nœuds (éléments ou attributs) dans un
document XML, XPATH est utilisé par XSLT
- XSLT (XSL Transformation) pour la réorganisation des documents XML
- et XSL-FO (XSL Formatting Objects) pour la présentation en ligne des
documents XML (formatage vers HTML)
Gaoussou CAMARA
Transition
Gaoussou CAMARA
Grammaires de documents XML
• Un document XML bien formé peut être valide s’il obéit à un
certain nombre de contraintes
• Ces contraintes sont décrites dans des grammaires de
documents XML généralement appelées schémas des documents
• Les documents DTD et les schémas XML permettent de décrire
des grammaires de documents XML
Gaoussou CAMARA
Grammaires de documents XML
Exemple de document XML
<BIBLIO>
<LIVRE ISBN=“2-212-09052-8” LANG=“FR”>
<AUTEUR>
<NOM>Michard</NOM><PRENOM>Alain</PRENOM>
</AUTEUR>
<TITRE>XML, Langage et Applications</TITRE>
<EDITEUR>Eyrolles</EDITEUR>
<PRIX monnaie=“XOF”>3000</PRIX>
</LIVRE>
<LIVRE ISBN=“2-7440-0628-9” LANG=“FR”>
<AUTEUR>
<NOM>Ladd</NOM> <PRENOM>Eric</PRENOM>
</AUTEUR>
<AUTEUR>
<NOM>O’Donnel</NOM><PRENOM>Jim</PRENOM>
</AUTEUR>
<TITRE>HTML4, XML et Java 2</TITRE>
<EDITEUR>Campus Press</EDITEUR>
<PRIX monnaie=“XOF”>4500</PRIX>
</LIVRE>
</BIBLIO>
Gaoussou CAMARA
Grammaires de documents XML
Exemple de DTD
< !ELEMENT biblio (livre+)>
< !ELEMENT livre (auteur+, titre, editeur, date_achat?, prix)>
< !ELEMENT auteur (nom, prenom)>
Gaoussou CAMARA
Grammaires de documents XML
• Un document XML respectant une grammaire est donc dit valide
• Mais un document XML peut ne pas être valide
• C’est dire que la définition d’une DTD ou d’un schéma est
facultative pour les documents XML
• Elle s’avère cependant très intéressante dans certains cas
(contrainte de saisie, mise à jour, échange d’informations par
exemple)
Gaoussou CAMARA
DTD (Document Type Definition)
• Permet de décrire la structure d’un document XML, i.e. la liste et
l’organisation des balises
• La DTD constitue la grammaire historique des documents XML et
reste, à l’heure actuelle, la plus utilisée
• Une DTD est constituée des éléments suivants
- déclaration d’en-tête de DTD
- définition d’éléments, d’attributs et d’entités XML
• La déclaration d’en-tête de document DTD contient notamment
le nom de la DTD
• Un élément XML est défini par son nom et son modèle de
contenu
Gaoussou CAMARA
DTD (Document Type Definition)
• Modèle de contenu d’un élément : description simple des éléments qui
peuvent apparaître dans le contenu de l’élément courant, de l’ordre
dans lequel ces éléments peuvent ou doivent apparaître
• Plusieurs types de modèles de contenu
- Séquences : liste des éléments possibles, entre parenthèses et séparés par
des virgules
- Choix : possibilité que l’un des éléments soit présent
- Indicateurs d’occurrence : permettent de spécifier à quelle fréquence un
élément doit (ou ne doit pas) apparaître dans un autre élément
‣ 3 indicateurs d’occurrence : le caractère ? (0 ou 1 fois), le caractère * (0
ou n fois) et le caractère + (1 ou n fois)
- Modèles PCDATA : permettent de représenter les éléments contenant des
chaînes de caractères
Gaoussou CAMARA
DTD (Document Type Definition)
Exemple
< !ELEMENT biblio (livre+)>
< !ELEMENT livre (auteur+, titre, editeur, date_achat?, prix)>
< !ELEMENT auteur (nom, prenom)>
< !ELEMENT nom (#PCDATA)>
< !ELEMENT prenom (#PCDATA)>
< !ELEMENT titre (#PCDATA)>
< !ELEMENT editeur (#PCDATA)>
< !ELEMENT date_achat (#PCDATA)>
< !ELEMENT prix (#PCDATA)>
< !ATTLIST livre ISBN CDATA #REQUIRED>
< !ATTLIST livre LANG CDATA>
< !ATTLIST prix monnaie CDATA>
Gaoussou CAMARA
DTD (Document Type Definition)
• Chaque élément XML peut recevoir un ou plusieurs attributs ; ils
sont déclarés en une fois sous la forme d’une liste d’attributs qui
joue plusieurs rôles
- Elle déclare le nom des attributs permis
- Elle indique le type de chaque attribut : CDATA, ID, IDREF, IDREFS
- Elle peut définir des contraintes sur les attributs :
‣ valeur par défaut de l’attribut (#FIXED)
‣ valeur facultative dans le document XML (#IMPLIED)
‣ valeur obligatoire dans le document XML (#REQUIRED)
Gaoussou CAMARA
DTD (Document Type Definition)
• Les entités peuvent être considérées comme des variables
• Elles sont déclarées dans une DTD et peuvent être utilisées dans
tout document respectant cette DTD
• Les entités peuvent être internes ou externes (c’est-à-dire faire
référence à un autre document par le biais d’une URI)
Gaoussou CAMARA
DTD (Document Type Definition)
• Une DTD peut être définie
- soit à l'intérieur du document XML
- soit dans un fichier séparé. Cette dernière solution est la plus
fréquente car la plus pratique
• Pour définir une DTD externe, il faut ajouter la ligne au début du
fichier XML
- <!DOCTYPE racine SYSTEM "nomdufichier.dtd">
• Exemple
- <!DOCTYPE biblio SYSTEM "biblio.dtd">
Gaoussou CAMARA
DTD (Document Type Definition)
• Dans le cas où la DTD n’est pas fournie, des outils,
communément appelés «DTD Generator», permettent de
générer la DTD d’un document XML à partir de son contenu
• L’utilisation des DTD ne permet, cependant, que d’exprimer la
structure "syntaxique" des documents XML
• Des extensions ont alors été proposées pour offrir des
grammaires XML permettant d’exprimer des aspects
"sémantiques"
Gaoussou CAMARA
DTD (Document Type Definition)
Exercice
• Voir Exercice 1 de la fiche de TD XML
Gaoussou CAMARA
Les schémas XML
• Les schémas XML ont été introduits pour palier aux limitations
des DTD
• Plusieurs langages de définition de schémas XML ont été
proposés ; les plus représentatifs sont : XML Schema, DSD,
Schematron, SOX, RELAX
• Parmi ces propositions, XML Schema est devenu une
recommandation du W3C
Gaoussou CAMARA
XML Schema
• En plus des fonctionnalités fournies par les DTD, XML-Schema
propose
- un grand nombre de types de données intégrées (booléens, entiers,
etc.) - https://www.w3.org/TR/xmlschema-2/
- la notion d’héritage : les éléments peuvent hériter du contenu et
des attributs d’un autre élément
- les indicateurs d’occurrence des éléments peuvent être des
nombres entiers positifs
• Un autre avantage de XML Schema, par rapport aux DTD est le
fait que les schémas soient définis en XML
- Cela permet de les manipuler comme des documents XML, et
bénéficier ainsi des outils existants
Gaoussou CAMARA
XML Schema
<xsd:schema xmlns:xsd="http://www.w3.org/2012/01/XMLSchema">
<xsd:element name="biblio">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref="LIVRE" minOccurs="1" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="LIVRE">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="auteur" minOccurs="1" maxOccurs="unbounded" type="tAuteur"/>
<xsd:element name="titre" type="xsd:string"/>
<xsd:element name="editeur" type="xsd:string"/>
<xsd:element name="date_achat" minOccurs="0" maxOccurs="1" type="xsd:date"/>
<xsd:element name="prix">
<xsd:attribute name="monnaie" type="xsd:string"/>
</xsd:element>
</xsd:sequence>
<xsd:attribute name="isbn" type="xsd:string" use="required"/>
<xsd:attribute name="lang" type="xsd:string"/>
</xsd:complexType>
</xsd:element>
<xsd:complexType name="tAuteur">
<xsd:sequence>
<xsd:element name="nom" type="xsd:string"/>
<xsd:element name="prenom" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>
</xsd:schema> Gaoussou CAMARA
XML Schema
https://www.w3.org/TR/xmlschema-2/
Gaoussou CAMARA
XML Schema
Exercice
• Voir Exercice 2 de la fiche de TD XML
Gaoussou CAMARA
Discussions
Gaoussou CAMARA
References
• https://www.w3.org/TR/xml/
• https://www.w3.org/TR/xmlschema-2/
• https://www.w3schools.com/xml/
• http://miage.univ-nantes.fr/miage/D2X1/chapitre_dtd/
section_exercices.htm
• https://openclassrooms.com/courses/java-et-le-xml/tp-
xml-dtd-et-xsd-en-folie
Gaoussou CAMARA
Credits
OpenClassRoom
Gaoussou CAMARA
Dr CAMARA Gaoussou
Université Alioune Diop de Bambey
Contact : gaoussou.camara@uadb.edu.sn
Site Web : http://sites.google.com/site/gaoussoucamara/