Une Introduction à XML
Plan du cours
• La structure des documents XML
• Les DTD
Objectifs
Appréhender les concepts de base de XML
Eléments, attributs et contenu
DTD
La Famille XML
SGML
XML
Xlink
XSL
XPointer
XLL
DSSL HyTime
+
TEI
XSL : eXtensible Stylesheet Language HyTime : Hypermedia Time-
based structuring language
DSSL : Document Style Semantics and
Specification Language TEI : Text Encoding Initiative
XML plus en détail
Considérez le document HTML suivant :
<html>
<head>
<title>Construire une application XML</title>
</head>
<body>
<p>
[email protected] <br>
tél : 01 40 27 00 00 <br>
fax : 01 40 27 00 10 <br>
Département : Informatique</p>
</body>
</html>
• Facile : une sorte de "fichier de signature"
• Mais : le balisage décrit la manière dont l’information sera
affichée par un browser
• Parce que : aucune sémantique, aucune logique !...
En premier exemple de XML
Considérez le document XML suivant :
<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE MEMBRE SYSTEM "http://…/MEMBRE.dtd">
<!-- Un membre du CNAM -->
<MEMBRE TYPE="IE" ID="M28">
<NOM> PUJOS </NOM>
<PRENOM> Jean-Marc </PRENOM>
<MEL>
[email protected] </MEL>
<TEL> 01 40 27 00 00 </TEL>
<FAX> 01 40 27 00 10 </FAX>
<EQUIPE LAB="Département">Informatique</EQUIPE>
</MEMBRE>
Les avantages de XML
Préserve la sémantique et la structure des données
:
• On pourrait utiliser un "script " pour accéder à l’adresse
électronique du vingt huitième membre figurant dans un
document XML
==> /DB/MEMBRE[28]/MEL/text()
Accent sur l’organisation des données
• Sépare le contenu, de la structure et de la
présentation
Quelques propriétés de XML
Supporte les jeux de caractères Unicode
• Attention minuscule majuscule
• Les données peuvent contenir presque tous les caractères
Les espaces en dehors du balisage sont par défaut,
préservés
Les chaînes littérales sont délimitées par des quotes
simples ou doubles
Les éléments et leur contenu
balise ouvrante
<MEMBRE TYPE="IE" ID="M28">
<LOGIN ID="pujos"/>
<NOM> PUJOS </NOM> élément vide
<PRENOM> Jean-Marc </PRENOM>
<MEL>
[email protected] </MEL>
<TEL> 01 40 27 00 00 </TEL> élément
<FAX> 01 40 27 00 10 </FAX>
<EQUIPE LAB="Département">Informatique</EQUIPE>
</MEMBRE>
balise fermante contenu textuel
Les éléments et leurs attributs
nom d'attribut
<MEMBRE TYPE="IE" ID="M28">
<LOGIN ID="pujos"/>
<NOM> PUJOS </NOM>
valeur d'attribut
<PRENOM> Jean-Marc </PRENOM>
<MEL>
[email protected] </MEL>
<TEL> 01 40 27 00 00 </TEL>
<FAX> 01 40 27 00 10 </FAX>
<EQUIPE LAB="Département">Informatique</EQUIPE>
</MEMBRE>
Autres éléments
Déclaration XML
<?xml version=“1.0"?>
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
Commentaires
<!-- ceci est un commentaire -->
Section CDATA
<![CDATA[Langue & Dialogue]]>
Instruction de traitement (pour une application)
<?edit line="wrap"?>
Structure d’un document XML (1)
Un document XML comporte des éléments avec ou
sans attributs qui fournissent des méta-informations
sur l'information ou sur le contenu du document. Un
document XML comporte :
• un prologue qui contient toutes les
informations autres que les données ou les
éléments,
• l'arbre des éléments avec un élément
racine,
• éventuellement des commentaires.
Structure d’un document XML (2)
<?xml version="1.0"?>
<!DOCTYPE bibliotheque [ <!ELEMENT bibliotheque (livre+)>
<!ELEMENT livre (titre, auteur, ref)>
<!ELEMENT titre (#PCDATA)>
Prologue
<!ELEMENT auteur (#PCDATA)>
<!ELEMENT ref (#PCDATA)>
]>
<bibliotheque> Elément
<livre> <titre>N ou M</titre> racine
<auteur>Agatha Christie</auteur>
<ref>Policier-C-15</ref>
</livre>
<livre><titre>Le chien des Baskerville</titre>
<auteur>Sir Arthur Conan Doyle</auteur> Arbre d’éléments
<ref>Policier-D-3</ref>
</livre>
<livre><titre>Dune</titre>
<auteur>Franck Heckbert</auteur>
<ref>Fiction-H-1</ref>
</livre>
</bibliotheque>
Structure d’un document XML (3)
Document Type Definition
Définition de type de document
• Contraintes sur les noms des éléments et des attributs
• Occurrences des éléments et des attributs
• Structure et organisation des éléments
Approche SGML traditionnelle mais :
• Optionnelle en XML et syntaxe simplifiée
• Production valide et distribution bien-formée
➔ Ce sont les DTD Document Type Definition qui définissent les éléments et les règles
d'utilisation (noms des éléments, attributs possibles pour un élément, imbrications).
Cependant des documents XML peuvent ne pas avoir de DTD. Si un document a une
DTD associée et qu'il se conforme à cette DTD, il est dit valide. S'il n'a pas de DTD et
qu'il suit les règles définies par XML (par exemple : ses éléments sont correctement
imbriqués) il est bien formé.
Document XML bien formé
Un document XML est bien formé (l'analyseur XML peut construire son
arborescence) si :
• il contient une déclaration XML ;
• il contient un ou plusieurs éléments ;
• il contient un élément racine encapsulant tous les autres éléments et leurs attributs (ex
<HTML> ... </HTML>);
• les éléments non vides ont une balise de début et de fin ;
• les éléments non vides sont correctement imbriqués (<P> <EM> ... </EM> </P>);
• les éléments vides ont un / à la fin de la balise avant le > ; <toto></toto> = <toto/>
• les noms des balises ouvrantes et fermantes correspondent ;
• un nom d'attribut apparaît uniquement dans la balise ouvrante et une seule fois dans cette
balise ;
• les valeurs des attributs sont entre guillemets ou apostrophes ;
• la valeur des attributs n'appelle pas d'entités externes directement ou indirectement ;
• les caractères réservés sont remplacés par des références d'entités (par ex. < pour <) ;
• toutes les références à des entités non binaires doivent commencer par & et finir par ;
• s'il n'y a pas de DTD, les seules entités utilisées sont celles réservées de XML & <
> ' " ;
• s'il y a une DTD toutes les entités non réservées utilisées sont déclarées dans la DTD.
Document XML valide
Un document est valide s'il :
• est bien formé,
• fait référence a une DTD,
• se conforme a la DTD.
Les DTD Document Type Definition définissent les éléments et les
règles d'utilisation : noms des éléments, attributs possibles pour un
élément, imbrications (HTML 4.0 est une DTD de SGML).
Le document ne contient aucune information concernant l'affichage,
c'est sa feuille de style qui définira la présentation sur un média.
Description d’une DTD
La définition de type de document donne la grammaire de
l'application XML. Elle décrit :
• les éléments types : elle donne les noms de tous les éléments
et leur modèle de contenu,
• les attributs pour chaque élément (nom, type et valeur par
défaut),
• les entités binaires ou textuelles pouvant être incluses dans un
document (les caractères non ASCII par exemple),
• les notations qui servent à identifier les types spécifiques de
données externes binaires.
Exemple de DTD
<!ELEMENT MEMBRE Types
(LOGIN, NOM?, PRENOM?,MEL, TEL+, FAX*, EQUIPE)>
d’éléments
<!ELEMENT LOGIN EMPTY>
<!ATTLIST LOGIN ID ID #REQUIRED>
... Listes d’attributs
Elément de données
<!ELEMENT NOM (#PCDATA)>
...
Entités
<!ENTITY W3C "World Wide Web Consortium">
générales
<!ENTITY chap1 SYSTEM "http://…/coursXML.xml">
<!ENTITY img2 SYSTEM "image2.gif" NDATA gif>
... Entité paramètre
Utilisation d'une DTD
<!DOCTYPE MEMBRE SYSTEM "http://…/MEMBRE.dtd">
<MEMBRE TYPE="IE" ID="M28">
…
…
</MEMBRE>
➔ Une DTD est partagée par tous les documents
qui l'instancient donc, pour ne pas dupliquer la DTD
(dans chaque document), un utilise un identifieur
système (URL ou fichier local, SYSTEM ID) qui fait
appel à la DTD.
Arborescence XML
Une structure XML représente un arbre hiérarchique
MEMBRE
TYPE="IE" ID="M28"
LOGIN NOM ... EQUIPE
id="pujos" LAB="Département"
PUJOS Informatique