Vous êtes sur la page 1sur 36

Cours Construction

d’Applications Réparties (CAR)


1ère Année Master Génie Logiciel

2020-2021 Mme Z.LAAREDJ


Les Services Web
Partie 03

2
Le langage XML

 eXtensible Markup Language : langage de description et


d’échanges de données structurés
 Les principales évolutions vis-à-vis de HTML
La définition libre de nouvelles balises et de nouveaux
attributs
Le support de structure complexe de documents
La vérification de la structure d’un document par rapport à une
grammaire type défini dans un document DTD (Document Type
Description)
3
La séparation entre le contenu et la mise en page
Le langage XML

4
Origine de XML

 XML est issu de la Gestion de Documents (GED)


 Séparation du fond de la forme.
Forme = présentation à partir de la structure (style)
Fond = structure + données (contenu)
 Langage à balises : encadrement des champs par des balises début
et fin
 Multiples précurseurs dont les plus connues
SGML pour la structuration
HTML pour la présentation
5
Qu’est ce que XML ?

 Un langage d'échange extensible basé sur le balisage


L’utilisateur peut définir ses propres balises
Exemple : <Auteur> TamerÖzsu</Auteur>
 Plus simple que SGML (Standardized Generalized Markup
Language)
 Plus ouvert que HTML
 Développé par XML WorkingGroup dirigé par le W3C (depuis
1996)
 XML 1.0 : recommandation officielle du W3C depuis le 10 février
6
1998
Caractéristiques de XML

 Langage
Portable, échangeable, universel
Lisible
Présentable (navigateurs Web)
Avec garantie possible de cohérence des données
Sans SGBD mais compatible avec tous les SGBD (import-
export)
 Il standardise la manière dont l'information est:
Échangée, présentée , archivée , retrouvée, transformée, etc.
7
Structure d’un document XML

 Un document XML se compose

d’un prologue, éventuellement vide

de commentaires et d’instructions de traitement, facultatifs

d’un arbre d’éléments

8
Structure d’un document XML

 Le prologue : contient
Une déclaration XML : facultative indique au processeur qui
va traiter le document:
La version du langage XML utilisée
Le codage de caractères utilisé
L'existence de déclarations extérieures au document via
champ standalone
<?xml version="1.0" encoding="ISO-8859-1" standalone="yes">
, Une déclaration de type de document : facultative, indique
la structure particulière à laquelle doit se conformer un document
9

<!DOCTYPE exemple SYSTEM "exemple.dtd" [ déclarations]>


Structure d’un document XML

 Les commentaires : ce sont les mêmes qu’en HTML . Ils se


positionnent n’importe où après le prologue et peuvent figurer sur
plusieurs lignes.
Exemple :
<!-- Date de création : 30/09/07 -->
 Les instructions de traitement : n’ont pas de rôle lié aux
données ou à la structuration de votre document. Elles servent à
donner à l’application qui utilise le document XML des informations.
On les positionne à n’importe quel endroit du document .
10
Exemple : <?xml-stylesheet type="text/xsl" href="affichage.xsl"?>
Structure d’un document XML

 Arbre d’éléments : les termes balise, tag ou encore nœud peuvent


être utilisé à la place du terme élément
 le contenu d’un élément peut être :
Rien : il n’y pas de contenu, l’élément est vide
Du texte : nous détaillerons par la suite cette notion
Un ou plusieurs éléments : éléments fils, l’élément les
contenant appelé un élément parent
Un mélange de textes et d’éléments : c’est une forme plus rare
qui peut révéler une erreur de structuration. Elle reste cependant
11
utile, lorsque l’on souhaite « décorer » un texte quelconque (cas
du paragraphe en HTML avec des zones en gras, italique…).
Exemples des documents XML

 Exemple

12
Structure d’un document XML

 Exemple

13
Structure d’un élément

 Un élément est de la forme:


<nom attr='valeur'> contenu </nom>
 <nom> est la balise d'ouverture
 </nom> est la balise de fermeture
 [ éléments vides, indifféremment <nom> </nom>ou <nom/>]
 contenu est le contenu d'un élément
 composé d’une liste (peut-être vide) de texte, d'autres éléments,
d'instructions de traitement et de commentaires
 attr='valeur' représente un ensemble éventuellement vide
14
d'attributs, c'est à dire de paires (nom,valeur).
Exemples d’éléments

15
Exemple d’un document XML avec des attributs

16
Structure d’un élément

 Un nom d'élément ou d’attribut est une suite non vide de


caractères pris parmi les caractères alphanumériques; le tiret-
souligné , le signe moins, le point
 Il doit satisfaire les contraintes suivantes :
Le premier caractère doit être alphabétique ou un tiret-souligné
(exemple : _toto)
Les trois premiers caractères ne doivent pas former une chaîne
dont la représentation en lettres minuscules est "xml« (exemple :
xmlSpécifification)
17
Le nom d’un élément ne peut commencer par un chiffre(
exemple : 1998-catalogue)
Syntaxe d’un attribut

 Un attribut est une paire nom='valeur' qui permet de caractériser


un élément. Un élément peut avoir plusieurs attributs. Dans ce cas,
les paires nom='valeur'seront séparées par un espace.
 Exemple :
<rapport langue='fr' dern-modif='08/07/99'>
<annuaire generator='SQL2XML V2.0' update='07.08.99'>
 La valeur d'un attribut est une chaîne encadrée par des guillemets
(") ou des apostrophes simples ('). Une valeur d'attribut ne doit pas
contenir les caractères ^, %et &.
18
 Un élément a un ensemble d’attributs (ordre n’a pas de
sémantique pour les attributs)
Exemple : Book.xml

19
Espaces de noms (namespace)

 Définition

Une recommandation du W3C pour résoudre le problème de

conflits de noms dans un document XML par exemple l’élément

titre peut représenter le titre d’un livre, mais pourquoi pas le titre

de noblesse d’une personne

Mécanismes permettant de partitionner les balises XML

(permet d’avoir deux fois le même nom de balise)


20
Espaces de noms (namespace)

 Définition

Un espace de nom est défini dans n’importe quelle balise par

l’attribut xmlns et par une URI.

L’URL ne signifie pas qu’il doit y avoir un document sur votre

serveur HTTP. Ce n’est qu’un identifiant et n’importe quelle

chaîne de caractères pourrait en réalité être employée.

21
Espaces de noms (namespace)

 Déclaration des espaces de noms dans un document XML


L’espace de noms par défaut
S’applique à l’élément où se situe sa déclaration et à tout
son contenu.
Précisé par un pseudo-attribut « xmlns »
Exemple

<chapitre xmlns="http://www.masociete.com">
<paragraphe>
...
</paragraphe> 22
</chapitre
Espaces de noms (namespace)

 Déclaration des espaces de noms dans un document XML


L’espace de noms explicite
L’espace de noms par défaut présente l’inconvénient d’être
peu contrôlable sur un document de taille importante.
La notion de préfixe est introduite pour régler ce problème
Le principe consiste à préfixer chaque nom d’élément par
un nom logique « unique » qui identifie le domaine auquel il
fait référence.
Exemple
<p:resultat xmlns:p="http://www.masociete.com">
23

</p:resultat>
Espaces de noms (namespace)

 Les avantages de cette structuration


Lever les ambigüités sur des éléments de DTD différentes qui
porteraient le même nom (nom de produit, de personne, …)
Favorisent la modularité des documents XML et les sources
multiples de ces derniers
Rendre plus lisible un document XML contenant des
informations de sources diverses

24
Document bien formé

 Un document XML doit représenter un arbre d'éléments


 Il existe dans un document un et un seul élément père qui contient
tous les autres. C'est la racine du document.
 Un élément distinct de la racine est totalement inclus dans son
père
Exemple

<p> <b> texte </p> texte </b> ???


<p> <b> texte </b> texte </p> ???
25
Document bien formé

 Exemple

26
Validation d’un document XML

 La validation renforce la qualité des échanges en contraignant


l’émetteur de données et le consommateur de données à vérifier la
cohérence des données structurées en XML.
 Par cohérence, il faut entendre à la fois le vocabulaire (éléments,
attributs et espaces de noms) mais également, chose aussi
importante, l’ordre et les quantités.
 Un document est dit valide si:
Son prologue contient une grammaire (un outil de validation )
Son arbre d'éléments respecte la structure définie par la
27
déclaration de type
Validation d’un document XML

 Grammaire : deux façons de définir une grammaire XML :


DTD
Langage de définition de grammaire XML
Largement utilisé
Expression faible (type, structure)
XML Schéma
Langage XML de définition de grammaire XML
De plus en plus utilisé
Expression puissante (type, structure, héritage)
28
 Un document XML est dit valide lorsqu’il est conforme à une
grammaire
Validation d’un document XML

 Le DTD
Langage de description des documents
Ne définit que la structure du document XML
Exemple de DTD pour représenter un document « Livre »

29
Validation d’un document XML

 Les faiblesses de modèle DTD


Les DTD ne sont pas écrites en XML, ce qui signifie que les
technologies existantes pour manipuler des documents XML
telles que DOM ne peuvent être utilisées pour parser des schémas
de documents
Les DTD ne supportent pas les espaces de nom ce qui rend
impossible l’import de schémas externes afin de réutiliser du
code existant
Les DTD n’offrent qu’un typage très limité des données
30
Validation d’un document XML

 Les schémas XML


langage de définition de schéma, proposé par W3C
Conçu pour pallier les faiblesses des DTD
propose, en plus les fonctionnalités fournies par les DTD, des
nouveautés
Un grand nombre de types de données intégrées (les
booléens, les entiers, les intervalles de temps, etc).
La possibilité de créer des nouveaux types par ajout de
contraintes sur un type existant
31
Des types de données utilisateurs qui permet de créer un
type propre de données nommé
Validation d’un document XML

 Les schémas XML


Les nouveautés
La notion d’héritage. Les éléments peuvent hériter du
contenu et des attributs d’au autre élément.
Le support des espaces de nom
Les indicateurs d’occurrences des éléments peuvent être
tout nombre non négatif
Une grande facilité de conception modulaire de schémas

32
Validation d’un document XML

 Les schémas XML

33
Normes autour de XML

34
Exemples d’applications XML

 XHTML

 MathML

 SVG

 XSL

 SOAP

 WSDL

 XML Schema
35
Forces de XML

 Séparation de la structure et de la présentation

 Moins confus que HTML

 Plus simple que SGML

 Idéal pour l'échange de données semi-structurées

 Utilisable entre machines

36

Vous aimerez peut-être aussi