XML(Extensible Markup Language )
XML est un format/langage standard conçu pour le stockage et la publication et l’échange de
documents entre sites distants ou applications différentes.
XML n’a pas de balises prédéfinies et permet aux créateurs de spécifier leur propre jeu de
balise pour structurer leurs données
Un métalangage (permet de définir d’autres langages)
Mr. AISSAOUA HABIB 1
Technologies liées à XML
XSL, langage évolué pour la définition de feuilles de style.
Xlink pour ajouter des liens hypertextes à un fichier XML.
XPath pour identifier des nœuds ou ensemble de nœuds dans un document XML
Xquery langage de requête permettant d’extraire des informations d'un document XML
DOM Document Object Model pour construire en mémoire le document XML sous forme
arborescente
Etc.
Mr. AISSAOUA HABIB 2
Un document XML bien formé
Un document XML bien formé est un document qui est conforme aux règles syntaxiques du
langage XML. Les règles que doit suivre un document XML sont les suivantes:
1. Commence par une déclaration XML (attribut version obligatoire) avec possibilité de choisir
un encodage (le défaut est utf-8): <?xml version="1.0" encoding="ISO-8859-1"?>
2. Structure hiérarchique:
veiller à l'ordre de fermeture des balises : la première ouverte est toujours la dernière fermée,
pas de croisements de type <i>...<b>...</i> .... </b>
sensible à la casse
Mr. AISSAOUA HABIB 3
les valeurs des attributs sont entre guillemets ou apostrophes ;
un seul élément racine (root):
l’élément root ne peut apparaître qu’une fois et ne doit pas apparaître dans un autre élément
les caractères réservés sont remplacés par des références d'entités: <, &, >,", ’
- utilisez < & > &aquot; ' …
Un document est valide s'il :
Est bien formé,
Fait référence à une DTD (Document Type Definition) ou à un schéma XSD,
Se conforme à la DTD ou au schéma XSD.
Mr. AISSAOUA HABIB 4
Structure d’un document XML
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,
Des commentaires.
Des instructions de traitement
1. Prologue:
Mr. AISSAOUA HABIB 5
version : de façon générale 1.0
• Il existe deux versions 1.0 et 1.1
encoding : valeur par défaut UTF-8
standalone : valeur par défaut yes
• Cette information permet de savoir si votre document XML est autonome ou si un
autre document lui est rattaché.
Commentaires XML: On peut placer des commentaires à peu près partout dans un
document XML. La syntaxe est identique à celle d’un fichier HTML. Un commentaire peut
d’étendre sur plusieurs lignes. La seule contrainte est de ne pas pouvoir employer les
caractères -- dans le commentaire, même s’ils ne sont pas suivis de >
Mr. AISSAOUA HABIB 6
Les instructions de traitement: sont destinées aux applications qui traitent les documents
XML. Les instructions de traitement sont délimitées par les chaînes de caractères '<?' et '?>'.
<?nom arg1 arg2 ... argn ?>
Appel d'un processeur XSLT
<?xml-stylesheet type="text/xsl" href="myXsl.xslt"?>
Espaces de nom: Les espaces de noms (ou namespace) sont destinés à lever les
ambiguïtés éventuelles des intitulés de balise, au moyen d'un identifiant de
ressource uniforme (URI)
– On utilise le symbole « : » dans les noms XML et tout ce qui précède le
deux-points est appelé le « préfixe ».
Mr. AISSAOUA HABIB 7
– Tout attribut ou élément qui utilise un préfixe donné fait automatiquement
partie de l'espace de noms identifié par l'URI.
– On définit un « préfixe » à l'aide d'un attribut ayant comme préfixe « xmlns
». La définition du préfixe est alors valable pour l'ensemble de l'élément
Mr. AISSAOUA HABIB 8
Mr. AISSAOUA HABIB 9
Espaces de noms par défaut
– La déclaration d'un espace de noms par défaut se fait dans le premier élément
qui utilise le vocabulaire, grâce au mot clef xmlns comme XML namespace
Mr. AISSAOUA HABIB 10
Mr. AISSAOUA HABIB 11
Validation de document avec DTD (Document Type Definition) :
Afin de vérifier qu'un document XML est conforme à une syntaxe donnée, DTD nous permet
de décrire la structure et l'ensemble des règles que doit suivre le document:
– liste des balises
– attributs des balises
– organisation des balises
La validation est le mécanisme qui vérifie qu’un document XML respecte une DTD
DTD
Analyse Analyse Valide
XML syntaxique Bien syntaxique selon une
niveau 1 formé niveau 2 DTD
On distingue 2 types de DTD : les internes et les externes.
Mr. AISSAOUA HABIB 12
Une DTD interne s'écrit dans ce qu'on appelle le DOCTYPE. On le place sous le prologue du
document et au dessus du contenu XML. Voyons plus précisément la syntaxe :
<!DOCTYPE racine [ ]>
La DTD interne est ensuite écrite entre les []. Dans ce DOCTYPE, le mot racine doit être
remplacé par le nom de la balise qui forme la racine du document XML.
Une DTD externe est une DTD qui est écrite dans un autre document que le document XML.
Il existe 2 types de DTD : les DTD externes PUBLIC et les DTD externes SYSTEM. Avec
les DTD externes SYSTEM, on fait appelle au fichier contenant la grammaire à partir d'un
fichier local. Avec PUBLIC, en y accédant par son URL.
Mr. AISSAOUA HABIB 13
Exemple d’un document XML ayant une DTD externe cours.dtd
Les éléments dans la DTD: pour déclarer les éléments autorisés à apparaître dans le document,
ainsi que leurs imbrications possibles, on utilise la forme suivante:
ELEMENT : mot clé pour déclarer une balise
nom : le nom de la balise
(contenu) : représente soit un type de donnée prédéfini, soit une règle d'utilisation de l'élément.
Mr. AISSAOUA HABIB 14
Mr. AISSAOUA HABIB 15
Type DTD XML
Elément avec <!ELEMENT elt (s1, s2)> <elt>
plusieurs sous <!ELEMENT s1 EMPTY> <s1/>
éléments <!ELEMENT s2 EMPTY> <s2/>
</elt>
Elément avec <!ELEMENT elt (#PCDATA|s1)> <elt>texte</elt>
contenu <!ELEMENT s1 EMPTY> ou
variable <elt><s1/></elt>
Elément à <!ELEMENT elt ANY> <elt>texte</elt>
contenu non <!ELEMENT s1 EMPTY> ou
défini <elt><s1/></elt>
etc.
Mr. AISSAOUA HABIB 16
Il est possible de moduler le nombre d'apparitions d'un sous-élément en utilisant des quantifieurs
après les noms d'éléments:
Mr. AISSAOUA HABIB 17
Prenons l'exemple suivant:
Cette définition impose que la balise <personne/> contienne obligatoirement la balise <nom
/> puis éventuellement <prenom/>
Mr. AISSAOUA HABIB 18
Regardons alors la validité de ces documents XML :
Mr. AISSAOUA HABIB 19
Déclaration des attributs: Les attributs sont précisés dans l’instruction ATTLIST. Cette
dernière, étant indépendante de l’instruction ELEMENT, on précise à nouveau le nom de
l’élément sur lequel s’applique l’attribut. Une déclaration d'attributs typique aura la forme
suivante:
ATTLIST : mot clé pour déclarer un attribut
nom : le nom de la balise
nom-attribut : le nom de l’attribut
type : type de l’attribut
CDATA : chaîne de caractères
liste de valeurs possibles ("v1"|"v2"|"v3")
valeur-par-defaut: valeur par défaut de l’attribut si aucune valeur n’est fournie
Mr. AISSAOUA HABIB 20
Contrainte : définit les contraintes que doit respecter l’attribut, n’est pas obligatoire.
• REQUIRED : l’attribut est obligatoire
• IMPLIED : l’attribut est optionnel
• FIXED : la valeur de l’attribut est fixé
Un attribut peut être déclaré comme identifiant unique d’un élément avec le mot clé ID. Un
attribut peut être déclaré comme référence vers un autre élément (clé étrangère) avec le mot clé
IDREF
Ainsi on pourra avoir une déclaration d'attribut comme suite:
Ce qui signifie que l'on affecte à l'élément disque deux attributs IDdisk et type. Le premier attribut
est un identifiant unique obligatoire. L'attribut type peut être soit K7, MiniDisc, Vinyl ou CD,
sachant que ce dernier sera affecté par défaut.
Mr. AISSAOUA HABIB 21
Mr. AISSAOUA HABIB 22
Mr. AISSAOUA HABIB 23
Mr. AISSAOUA HABIB 24
Mr. AISSAOUA HABIB 25
Mr. AISSAOUA HABIB 26