Vous êtes sur la page 1sur 41

XML, DTD et XML Schema

Pr Gaoussou CAMARA
Professeur Assimilé en Informatique

Université Alioune Diop de Bambey, B.P. 30, Bambey, Sénégal.

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

Grammaire de documents XML

DTD (Document Type Definition)

Les schémas XML

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

‣ LANG qui vaut FR

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

XML sépare un document proprement dit de sa grammaire, de son


format d'affichage et de ses mécanismes d'hyperliens

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

Resources (slides and figures) from Moussa Lo,


Gaston Berger University, Senegal

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/

Vous aimerez peut-être aussi