0% ont trouvé ce document utile (0 vote)
16 vues54 pages

Cours - XML 2016 Part 1

Transféré par

Modou Diagne
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
16 vues54 pages

Cours - XML 2016 Part 1

Transféré par

Modou Diagne
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

XML

M. KASSE
Université Alioune DIOP de BAMBEY

[email protected]

MASTER 2 SIR
2014 2015
PLAN

Présentation de XML
La structure des documents XML
La validation des documents XML: DTD et
XMLSchema
L’extraction de fragments XML: XPath,
Xquery
La transformation des documents XML :
XSLT
Les services web
M. KASSE UADB 2
Chapitre 1

Présentation de XML

M. KASSE UADB 3
Présentation de XML
Le langage XML (eXtended Markup Language) est une
spécification du W3C depuis février 1998, mais les
premiers travaux autour de XML débutent dès 1996.

XML n’est pas une nouveauté mais une succession d’un


ensemble de technologies tels que le SGML, HTML …

Pour donner un aperçu rapide de XML, on peut le définir


tel un langage (ou une méthode) permettant de structurer
des données en employant un format texte comme support

M. KASSE UADB 4
Présentation de XML
Pourquoi XML ?
HTML n'est pas extensible, il ne peut pas répondre aux
besoins spécifiques de tous les domaines
(mathématiques, chimie, musique, astronomie...) et ne
définit plus le contenu du document

SGML, qui permettrait de définir de nouveaux


langages de balisage spécifiques, est complexe pour le
web

M. KASSE UADB 5
Présentation de XML
Le XML, en lui-même, <?xml version="1.0"?>
<demoXML>
ne fait rien !
<message>Voici du XML
• Alors que le Html a été
</message>
conçu pour afficher de
l'information, le XML a </demoXML>
été créé pour structurer
de l'information. Il ne Ce qui donne avec IE
fait rien d'autre !
• Voici un exemple de
XML.

M. KASSE UADB 6
Présentation de XML

Quelques applications :
MathML Mathematical Markup Language notation mathématique sur le
web
AML Astronomical Markup Language langage décrivant les différents types
de données utilisées en astronomie.
CML Chemical Markup Language pour la publication Internet des formules
chimiques, de molécules
VML Vector Markup Language langage de balisage d'information graphique
vectorielle
SMIL Synchronized Multimedia Integration Language pour la création
multimédia, il spécifie comment et quand des éléments multimédia peuvent
apparaître dans une page web
WML Wireless Markup Language le langage de balisage pour l'internet
mobile

M. KASSE UADB 7
Présentation de XML
<?xml version="1.0" encoding="iso-8859-1"?>
<xhtml:html xmlns:xhtml="http://www.w3.org/1999/xhtml">
<xhtml:body>
<math display="block"
xmlns="http://www.w3.org/1998/Math/MathML">
<msup>
<mrow>
<mo>(</mo>
<mi>a</mi>
<mo>+</mo>
<mi>b</mi> Ici on décrit l’expression : (a+b)^2
<mo>)</mo>
</mrow>
<mn>2</mn>
</msup>
</math>
</xhtml:body>
</xhtml:html>
M. KASSE UADB 8
Présentation de XML
XML repose sur le balisage d’un flux de texte, comme
HTML.
La différence fondamentale entre les deux langages est
qu’il n’existe aucune limitation quant aux balises de
XML !
En fait, chacun peut inventer ses propres balises.
Une balise (tag) se symbolise de la façon suivante :
<nom de balise> : on parle dans ce cas de balises
ouvrante.
Pour fermer une balise, on utilise le format suivant :
</nom de balise>.

M. KASSE UADB 9
Présentation de XML
Dans l’exemple précédent <demoXML> et <message>
sont des exemples de balises (tags).

Les balises sont des chaînes de caractères Unicode


encadrées par les caractères « <« et « > ».

Entre une balise de début et la balise de fin


correspondante, on peut trouver du texte ou d’autres
balises.

M. KASSE UADB 10
Présentation de XML
Pour schématiser, un fichier XML est composé de
deux sortes de texte Unicode :
• Du texte de balisage. Les balises sont simplement une
technique d’écriture pour représenter la notion
conceptuelle d’élément.
• Des données textuelles séparées par des balises. Les
données textuelles sont les contenus des éléments.
Lorsque des éléments sont imbriqués dans
d’autres éléments, ils génèrent des structures
arborescentes.

M. KASSE UADB 11
Présentation de XML
Pour comprendre un document XML, il est
nécessaire de disposer d’un répertoire des balises
utilisées dans ce document, ainsi que d’une
grammaire décrivant la structuration des balises
entre elles.
Ces documents indispensables à la compréhension
métier des fichiers XML sont les DTD
(DocumentType Definition) ou les schémas
XML.
XML est souvent défini comme un « langage de
balises sémantiques ».

M. KASSE UADB 12
Principes du langage XML
Les documents XML sont destinés essentiellement à être
traités par des programmes informatiques appelés
processeurs XML.
Les documents XML doivent être facilement lisibles par
l’homme
Un document XML doit obligatoirement être bien formé :
obéir à la spécification XML
• Chaque élément doit avoir une balise de début et la balise
de fin correspondante
• Les balises doivent être correctement imbriquées entre elles
• Tout document XML doit avoir un et un seul élément
racine : un élément qui contient tous les autres
• Les valeurs associées aux attributs doivent être encadrées
par les délimiteurs « ‘‘ » ou « ‘ »

M. KASSE UADB 13
Principes du langage XML
Les processeurs XML sont des programmes permettant
de vérifier que des documents XML sont bien formés.
Ils traitent le contenu des éléments de manière
déterministe. On parle aussi d’analyseurs syntaxiques
XML (XML parsers)
Le fonctionnement d’un processeur XML peut être décrit
de la manière suivante :
• À la rencontre d’une balise de début, entrer dans l’état de
traitement de cette balise
• À la rencontre de la balise de fin correspondante, sortir de cet état
et revenir à l’état précédent
• S’il n’y a pas d’état précédent, alors on vient de quitter l’état de
traitement de l’élément racine : par conséquent, le document est
bien formé.
• Si une balise de fin ne correspond pas à l’état en cours, le
document est mal formé
M. KASSE UADB 14
Principes du langage XML
Document XML bien formé (vs valide)
• Il ne doit exister qu'une seule balise racine
• Toute balise ouverte doit être fermée
• Les noms des balises doivent commencer par une
lettre ou "_", les autres caractères peuvent être des
chiffres, des lettres, "_", "." ou "-".
• Les noms des balises ne doivent pas commencer par
xml
• pas de balise male imbriquée
ATTENTION: XML est key sensitive
M. KASSE UADB 15
1
EXEMPLES
<?xml version="1.0" encoding="ISO-8859-1"?>
<personne> 5
<nom> <?xml version="1.0" encoding="ISO-8859-1"?>
<prenom> <personne>
</nom> Ko : Balise non fermée
</prenom>
<personne> <?xml version="1.0" encoding="ISO-8859-1"?>
Ko : Mauvaise imbrication <personne/>
Ok : Élément vide
2 4
<?xml version="1.0" encoding="ISO-8859-1"?>
<personne>
</Personne>
Ko : Personne différent de personne 3
<?xml version="1.0" encoding="ISO-8859-1"?>
<xmlmine>
</xmlmine>
Ko : Pas de nom de balise commençant par xml
M. KASSE UADB 16
XML

M. KASSE
Université Alioune DIOP de BAMBEY

[email protected]

MASTER 2 SIR
2014 2015
Chapitre 2

Documents XML : Structure


Logique et Structure
Physique

M. KASSE UADB 18
Structure des documents XML
La structure logique d’un document XML est une
arborescence: structure hiérarchique et ordonnée

M. KASSE UADB 19
Structure des documents XML
La structure logique d’un document XML est une
arborescence d’informations obtenue par un processeur
XML à partir d’un contenu physique constitué d’une
simple suite linéaire de caractères Unicode.
Du point de vue logique, un document XML est composé :
• D’éléments constituant la grammaire d’organisation ;
• De textes constituant les données ;
• éventuellement
• De déclarations contenues dans un préambule,
• De commentaires,
• D’instructions de traitement.

M. KASSE UADB 20
Structure des documents XML

Un document XML peut exister physiquement d’un


seul bloc mais dépend le plus souvent de l’assemblage de
plusieurs unités physiques existant séparément et
appelées entités.

Les entités peuvent être schématisées comme des


fichiers provenant de différents moyens de stockage
situés à différents emplacements

Chaque entité peut elle-même appeler d’autres entités


M. KASSE UADB
Structure des documents XML

M. KASSE UADB
Structure des documents XML

La structure physique d’un document XML


Séquence de caractères "à plat"
Spécifie l'encodage caractère
Spécifie le découpage en fichiers
Peut contenir des caractères non significatifs (indentations)

La structure logique d’un document XML


Une arborescence d’informations obtenue par un processeur
XML à partir du contenu physique
M. KASSE UADB
Structure des documents XML

M. KASSE UADB 24
Préambule et déclarations
une déclaration XML
<?xml version='1.0" encoding="ISO-8859-1" ?>
Le préambule (prolog) s’il est présent, précède le texte de
balisage et les données textuelles d’un document. Il
contient des déclarations qui peuvent être les suivantes :

• La déclaration XML. Elle n’est pas obligatoire. La


spécification XML précise cependant qu’elle devrait
être placée au début d’un document XML. Si elle est
présente, elle doit apparaître en premier

M. KASSE UADB 25
Préambule et déclarations
une déclaration de type de document
<!DOCTYPE bulletin_météo SYSTEM "meteo.dtd" [ ]>

La déclaration de type de document (Document Type


Declaration : différente de la DTD). Elle n’est obligatoire
que pour la validation. Si elle est présente, elle doit se
trouver dans le préambule et suivre la déclaration XML.
La déclaration de type de document permet de référencer
et/ou définir localement deux sortes d’entités :
• Des définitions de type de document (DTD) contenant
des déclarations de balisage ;
• Des entités (autres que des DTD).

M. KASSE UADB 26
Préambule et déclarations
La déclaration XML débute par « <?xml » et se termine
par « ?> ». Elle fournit trois informations sous la forme de
pseudo-attributs.
version : cet attribut est obligatoire quand la déclaration
XML est présente <?xml version=‘‘1.0’’ ?>
encoding : cet attribut indique le type de codage que
doivent utiliser les processeurs XML afin de traduire des
octets en caractères Unicode à la réception d’un document,
ou de transformer des caractères Unicode en données
binaires pour le transport.
Il permet à des applications de se comprendre.
<?xml version=‘‘1.0’’ encoding=‘‘ISO-8859-1’’ ?>
M. KASSE UADB 27
Préambule et déclarations
standalone : cet attribut indique la nature autonome
ou non d’un document.

Un document est déclaré non-autonome lorsque


l’entité document qui le représente est dépendante de
déclarations de balisage externes

<?xml version=‘‘1.0’’ encoding=‘‘UTF8’’standalone=‘‘no’’ ?>

M. KASSE UADB 28
Structure des documents XML
La déclaration XML : encoding

M. KASSE UADB 29
Commentaires et instructions
de traitement
Les commentaires peuvent être placés dans un fichier XML ou
un fichier DTD :
<!-- commentaire -->
Instructions de traitement (Processing Instructions)
• Instructions spéciales pour les applications qui manipulent les
documents XML : <?cible arg1 arg2 …?>
• cible : nom de l'application
• arg1, arg2 : arguments passées à l'application
• <?xml-stylesheet type="text/css" href="style.css" ?>
• Cette instruction indique au navigateur d'afficher les données
XML en appliquant la feuille de style : "style.css"

M. KASSE UADB 30
Structure physique : Entités
Un document XML est physiquement découpé en
entités
Qu’est-ce q’une entité ?
• Une entité est un fragment nommé de document
• Ces sont des « raccourcis » vers des portions de documents
allant du caractère au document complet
Ces entités doivent être définies dans l'en-tête du
document XML, ou dans la DTD, et peuvent être
référencées à une ou plusieurs reprises dans le
document.

M. KASSE UADB 31
Structure physique : Entités
Pourquoi utiliser des entités ?
• Pour gagner du temps dans les mises à jour
• Pour mémoriser des caractères particuliers ou
des phrases fréquentes

M. KASSE UADB 32
Entité XML définie dans le
document
Une telle entité sert en général d'abbréviation pour des informations
répétitives ou qui peuvent être modifiées en bloc:
<?xml version="1.0"?>
<!DOCTYPE démo [
<!ELEMENT démo (#PCDATA|important)>
<!ELEMENT important (#PCDATA)>
<!ENTITY cie "Les aliments de Dakar SA">
<!ENTITY imp "<important>Attention!</important>">
]>
<démo>
&cie;
&imp;
</démo>
Ce document déclare les entités cie et imp, et les utilise. Pour ce faire, on
utilise une balise formée du caractère "&", suivi du nom de l'entité, suivi du
caractère ";".

M. KASSE UADB 33
Entité XML définie dans le
document
Le document précédent est équivalent au suivant:
<?xml version="1.0"?>
<!DOCTYPE démo [
<!ELEMENT démo (#PCDATA|important)>
<!ELEMENT important (#PCDATA)>
<!ENTITY cie "Les aliments de Dakar SA">
<!ENTITY imp "<important>Attention!</important>">
]>
<démo>
Les aliments de Dakar SA
<important>Attention!</important>
</démo>
Un parseur XML fournira à une application exactement la même
information dans les deux cas.

M. KASSE UADB 34
Entité XML définie à l'externe
Entité XML définie à l'externe
Les entités définies à l'extérieur des documents sont utilisées de la
même façon mais sont déclarées ainsi :
<?xml version="1.0"?>
<!DOCTYPE doc [
<!ENTITY chap1 SYSTEM "../chapitres/chap1.xml">
<!ENTITY chap2 SYSTEM "../chapitres/chap2.xml">
]>
<doc>
&chap1;
&chap2;
</doc>
Dans cet exemple, on suppose que les fichiers "chap1.xml" et
"chap2.xml" contiennent les chapitres marqués en XML.

M. KASSE UADB 35
Types d’entités
On distingue :
• entités prédéfinies
• entités caractères
• entités générales qui sont des fragments de
l’élément du document,
• entités paramètres qui sont des fragments
de DTD.

M. KASSE UADB 36
Déclaration d’une entité
Déclaration d’une entité paramètre :
• interne
• <!ENTITY% nom "entité">
• externe
• <!ENTITY% nom SYSTEM nom du fichier
contenant l’entité>

M. KASSE UADB 37
Déclaration d’une entité
Déclaration d’une entité générale :
• interne
• <!ENTITY nom "entité">
• externe
• <!ENTITY nom SYSTEM "nom du fichier
contenant l’entité">

M. KASSE UADB 38
Déclaration d’une entité
Par exemple :
<!ENTITY % identificateur ID #REQUIRED>

<!ENTITY ref "refuge">

<!ENTITY monentite SYSTEM


"mon_site/entites.xml">

M. KASSE UADB 39
Référence à une entité
Une référence à une entité paramètre a la
forme suivante :
%nom;
• Par exemple :
• <!ATTLIST renvoi cible %identificateur>
• au lieu de :
• <!ATTLIST renvoi cible ID #REQUIRED>

M. KASSE UADB 40
Référence à une entité
Une référence à une entité générale a la
forme suivante :
&nom;
• Par exemple :
• <para>S'élever au-dessus du &ref; des Drayères en
direction est. Suivre…</para>
• au lieu de :
• <para>S'élever au-dessus du refuge des Drayères
en direction est. Suivre…</para>

M. KASSE UADB 41
Entités caractères
Un caractère non disponible sur la station de
travail peut être représenté par son code Unicode
en décimal ou en hexadécimal, sous la forme
d’une référence a une entité :
• &#code décimal;
• &#xcode hexadécimal;
Par exemple :
• &#38; caractère & (son code ascii est 38 et
hexadécimal 26)
• &#x03A6; lettre grecque Φ
• © s’écrit &#169; ou &#xA9;
M. KASSE UADB 42
Entités prédéfinies
Les caractères < > & ' " qui sont des délimiteurs
XML peuvent être remplacés dans un texte par une
référence à une entité prédéfinie.
Ces entités sont les suivantes :
• &lt; référe le caractère <
• &gt; référe le caractère >
• &amp; référe le caractère &
• &apos; référe le caractère '
• &quot; référe le caractère "

M. KASSE UADB 43
Espaces de noms
L’importation d’éléments ou d’attributs contenus
dans des entités externes peut entraîner des
conflits de noms
Ces conflits peuvent être évités en définissant des
espaces de noms
Les espaces de noms en XML, c’est un moyen
• d’éviter les conflits de noms.
• d’identifier de façon universelle les noms
utilisés dans les documents

M. KASSE UADB 44
Espaces de noms
Les documents XML sont eux-mêmes des espaces
de noms :
• Les noms d’éléments doivent être uniques dans
un document ;
• De plus, chaque élément est un espace de noms
pour ses attributs

M. KASSE UADB 45
Concept d’espace de noms
Le concept d’espace de noms (ou espace de
nommage) correspond à la notion de collections
de noms dans laquelle on puise pour parler ou
écrire.
Notion analogue à celle d’un vocabulaire : les
noms existent, et l’on s’en sert à volonté pour
exprimer ce que l’on a envie ou besoin de dire.

M. KASSE UADB 46
Concept d’espace de noms
Chaque instance de document contient zéro ou
plusieurs instances de noms.
Une instance de nom est locale (c’est-àdire
qualifiée par aucun espace de noms) ou est
identifié par un et un seul espace de noms
référencé par sa partie préfixe.
Les instances de noms qualifiées ont ainsi un «
contexte » permettant d’éviter les conflits de
noms.

M. KASSE UADB 47
Concept d’espace de noms
Une instance de document XML déclare zéro, une
ou plusieurs instances d’espaces de noms.
Une même instance d’espaces de noms peut être
déclarée par zéro, une ou plusieurs instances de
documents XML.
Les instances d’espaces de noms qui qualifient les
noms d’un document XML doivent avoir été
déclarées dans cette instance de document.
Une instance d’espace de noms est une URI.

M. KASSE UADB 48
Notion d’URI (Uniform Resource
Identifiers)
Permettent d’identifier les espaces de noms
Doivent être persistantes et universellement
uniques
Structure des URI
Structure générique [procédure:]information-
spécifique[#fragment]
des modèles conformes à cette structure : les URL
et les URN

M. KASSE UADB 49
Notion d’URI
URL (Uniform Resource Locator)
Exemple simple d’URI
Basé sur une structure hiérarchique
Structure d’une URL
• La partie procédure correspond à un protocole
• L’information-spécifique indique un nom d’hôte

M. KASSE UADB 50
Notion d’URI
URN (Uniform Resource Name)
Nom indépendant d’un quelconque mode d’accès
Exemple
Un numéro de carte étudiant, un ISBN d’un livre ou
la référence à une partie de la documentation d’un
projet
• urn:numéro:222-77777-4
• urn:ISBN:2-1177-1048-9
• urn:projet-K822-AXF556.specs.chp04.eth

M. KASSE UADB 51
Déclaration d’un espace de
noms
La déclaration d’un espace de noms et de son
préfixe associé consiste à insérer dans la balise
ouvrante d’un élément contenant des noms
(d’éléments ou d’attributs) issus de cet espace,
l'attribut :
xmlns:préfixe="URI de l'espace de noms"
On peut déclarer un espace de noms par
défaut par l’attribut :
xmlns="URI de l'espace de noms"

M. KASSE UADB 52
Exemple d’espace de noms
<?xml version="1.0" encoding="UTF-8" ?>
<dossier_scolaire>
<dénomination xmlns="http://uadb.edu.sn/etudiants">
Abdou Gaye
</dénomination>
<dénomination xmlns="http://uadb.edu.sn/diplomes">
Mastère
</dénomination>
<dénomination xmlns="http://uadb.edu.sn/matieres">
Informatique
</dénomination>
</dossier_scolaire>
M. KASSE UADB 53
Exemple d’espace de noms
Supposons que <guide xmlns:livre="monSite/dtdLivre.xml">
<livre:titre>Itinéraires skieurs dans la Vallée
• l’URI « monSite/dtdLivre.xml de la Clarée </livre:titre>
» contienne une DTD pour la <livre:auteur>Jean-Gabriel
description de livres et Ravary</livre:auteur>
• que les éléments auteur, editeur <livre:editeur>Le Polygraphe</livre:editeur>
et annee du guide « Itinéraires <livre:annee>1991</livre:annee>
skieurs » soient conformes à …
ces définitions, la description <vallon>
de ce guide pourrait être la <nom>Vallon des Muandes</nom>
suivante : …
</guide>

M. KASSE UADB 54

Vous aimerez peut-être aussi