SlideShare une entreprise Scribd logo
1  sur  23
Télécharger pour lire hors ligne
1
Année universitaire : 2014– 2015
REPUBLIQUE DU SENEGAL***** * * ********
UNIVERSITE CHEIKH ANTA DIOP DE DAKAR
eXtensible Markup Langage(XML)
Rapport de cours XML
Classe : Master1 2014-2015
Rédigé par: Professeur
El Hadji Dame Sy DIOP M. ADAM ABDOULAYE
ECOLE SUPERIEURE POLYTECHNIQUE
DEPARTEMENT GENIE INFORMATIQUE
2
Plan
I- Présentation de XML........................................................................................................ 3
a- Historique................................................................................................................... 3
b- Intérêts........................................................................................................................ 3
c- Langages apparentés..................................................................................................... 4
d- Dialectes...................................................................................................................... 4
II- Syntaxe de XML............................................................................................................ 5
a- Premier exemple ........................................................................................................ 5
b- Syntaxe et structure................................................................................................... 5
c- Exemples minimaux ...................................................................................................... 6
III- DTD .............................................................................................................................. 11
a- Premier exemple :........................................................................................................ 11
b- Déclaration d’éléments............................................................................................ 13
c- Déclaration d’attribut................................................................................................. 13
d- Outils de validation.................................................................................................. 14
IV- Schéma XML ............................................................................................................... 14
a- Introduction ............................................................................................................. 14
b- Un premier exemple ................................................................................................ 14
c- Structure globale d’un Schéma XML........................................................................ 20
d- Déclaration d’éléments............................................................................................ 20
e- Définition de type ........................................................................................................ 22
f- Déclaration d’attributs ............................................................................................... 23
Tables des figures
Figure 1: exemple simple de document xml .............................................................................. 5
Figure 2: Exercice France Italie Espagne.................................................................................. 6
Figure 3: Vue au niveau du navigateur de l'exercice France Italie Espagne.............................. 7
Figure 4: Document xml de l'exercice Amandine et sa garde robe............................................ 8
Figure 5: Document XML relatif aux maitres et leurs eleves .................................................... 9
Figure 6: Document XML de l'exercice du polyedre............................................................... 10
Figure 7: DTD de l'exercice Amandine et sa garde robe ......................................................... 12
Figure 8: DTD de l'exercice les enseignants et leurs eleves .................................................... 13
Figure 9: Schema XML du polyedre........................................................................................ 15
Figure 10: Schema XML de l'agenda....................................................................................... 17
Figure 11: Schema XML de l'exercice sur les enseignants et de leurs eleves ......................... 18
Figure 12: Hierarchie des types atomiques .............................................................................. 21
Figure 13: Hierarchie de construction de type ......................................................................... 22
3
I- Présentation de XML
Le langage XML (eXtensible Markup Language) est un format général de documents orienté
texte. Il s'est imposé comme un standard incontournable de l'informatique. Il est aussi bien
utilisé pour le stockage de documents que pour la transmission de données entre applications.
Sa simplicité, sa flexibilité et ses possibilités d'extension ont permis de l'adapter à de
multiples domaines allant des données géographiques au dessin vectoriel en passant par les
échanges commerciaux. De nombreuses technologies se sont développées autour de XML et
enrichissent ainsi son environnement.
Le langage XML dérive de SGML (Standard Generalized Markup Language) et de HTML
(HyperText Markup
Language). Comme ces derniers, il s'agit d'un langage orienté texte et formé de balises qui
permettent d'organiser les données de manière structurée.
a- Historique
L'historique suivant retrace les grandes étapes qui ont conduit à la naissance de XML.
L'ancêtre de XML est le langage SGML qui a été introduit en 1986 par C. Goldfarb. SGML a
été conçu pour des documentations techniques de grande ampleur. Sa grande complexité a
freiné son utilisation en dehors des projets de grande envergure. En 1991, T. Berners-Lee a
défini le langage HTML pour le WEB. Ce langage est une version simplifiée à l'extrême de
SGML, destinée à une utilisation très ciblée. XML est, en quelque sorte, intermédiaire entre
SGML et HTML.
Il évite les aspects les plus complexes de SGML tout en gardant suffisamment de souplesse
pour une utilisation généraliste. La version 1.0 de XML a été publiée en 1998 par le
consortium W3C (World Wide Web Consortium). Une redéfinition XHTML de HTML 4.0 à
travers XML a été donnée en 1999. Une seconde version 1.1, qui est simplement une mise à
jour pour les caractères spéciaux en lien avec Unicode, a, ensuite, été publiée en 2004.
b- Intérêts
XML est devenu omniprésent dans le monde de l'informatique. De nombreux standards sont
apparus et permettent à des applications différentes de stocker mais surtout de partager des
documents. L'exemple le plus emblématique et le plus connu est le format OpenDocument qui
est utilisé par OpenOffice, maintenant appelé LibreOffice, mais aussi par d'autres suites
bureautiques comme KOffice. Un autre exemple est le format de dessins vectoriels SVG
utilisé par Inkscape. Ce succès de XML est en grande partie dû à ses qualités. Nous allons
d'abord énumérer ces caractéristiques essentielles qui ont conduit à ce développement puis
nous allons les détailler plus en profondeur.
• Séparation stricte entre contenu et présentation
• Simplicité, universalité et extensibilité
• Format texte avec gestion des caractères spéciaux
• Structuration forte
• Modèles de documents (DTD et Schémas XML)
• Format libre
Une des idées directrices de XML est la séparation entre contenu et présentation. Il faut bien
distinguer le contenu d'un document et la présentation qui en est donnée. Un même contenu
peut être rendu de façons très différentes.
Ce document peut, par exemple, se présenter comme un livre imprimé ou comme une
collection de pages WEB. Le contenu est constitué, au départ, de textes et d'illustrations mais
aussi de liens entre ces éléments. L'organisation du texte en chapitres, sections et sous-
sections ainsi que les renvois entre chapitres font partie intégrante du contenu du document.
La présentation est au contraire la façon de présenter ce contenu au lecteur. Un des premiers
principes de XML est d'organiser le contenu de manière indépendante de la présentation. Ce
principe de séparation est déjà présent dans HTML. Le rendu d'une page HTML est
4
globalement confié au navigateur. Les paragraphes des documents HTML sont, par exemple,
écrits au kilomètre, sans indication de fins de lignes. Il appartient au navigateur de les
découper en lignes en fonction de la taille de la page. C'est très différent d'un document PDF
où le découpage en pages et en lignes est figée par le document. La séparation n'est cependant
pas totale en HTML. Certaines balises comme <ul> et <li> sont destinées à la structuration du
document. Pour ces deux balises, il s'agit d'écrire une énumération. La présentation de cette
énumération (marges, symbole marquant chaque entrée, …) est déléguée au navigateur.
D'autre balises comme <i> ou <b> donnent davantage des indications de présentation. Cette
séparation entre contenu et présentation a été accrue en HTML par l'introduction de CSS. Une
feuille de style CSS est chargée de donner au navigateur toutes les informations relatives à la
présentation. Le document HTML peut alors se recentrer sur la structuration du contenu de
façon indépendante de la présentation.
Cette séparation entre contenu et présentation est difficile à obtenir. Le rédacteur d'un
document a souvent une présentation en tête et il est tentant pour lui d'essayer de l'imposer.
La séparation est encore plus marquée en XML car la signification des balises n'est pas figée
comme en HTML. La règle est alors de choisir les balises pour organiser le document en
privilégiant la structure de celui-ci par rapport à une éventuelle présentation.
Un second principe de XML est une structuration forte du document.
Cependant, une des caractéristiques essentielles de XML est son extensibilité et sa flexibilité.
Contrairement à HTML, le vocabulaire, c'est-à-dire l'ensemble des balises autorisées, n'est pas
figé.
c- Langages apparentés
Un des atouts indéniables de XML est le nombre de technologies et de langages qui se sont
développés autour de
lui. Ceux-ci enrichissent les outils pour la manipulation des documents XML. La liste ci-
dessous énumère les
principaux langages qui font partie de l'environnement XML :
- XPath : C’est un langage d'expressions permettant de sélectionner des éléments dans
un document XML. Il est la pierre angulaire du langage XSLT pour la transformation
de documents
- XQuery : C’est un langage permettant d'extraire des informations à partir d'un ou
plusieurs documents XML et de synthétiser de nouvelles informations à partir de
celles extraites. Il s'apparente à un langage d'interrogation de bases de données et joue
le rôle de SQL pour les documents XML.
- Schéma XML : Ils remplacent les DTD héritées de SGML pour décrire des modèles
de documents. Ils sont beaucoup plus souples et beaucoup plus puissants que les DTD.
Ils sont abordés en détail au IV de ce rapport
XSLT : C’est un langage permettant d'exprimer facilement des transformations complexes
entre documents XML. Il s'appuie sur la structuration forte des documents XML vus comme
des arbres. Chaque transformation est décrite par des règles pour chacun des éléments du
document. Malheureusement on ne le traitera pas dans ce rapport
d- Dialectes
De très nombreux dialectes ont été définis pour appliquer XML à des domaines très variés. Le
grand avantage est que ces différents dialectes partagent la même syntaxe de base et que tous
les outils XML peuvent être utilisés pour spécifier et manipuler ces documents. Il n'y a nul
besoin de développer des outils spécifiques à ces différents dialectes. La liste ci-dessous
énumère quelques-uns de ces dialectes :
- RSS(Really Simple Syndication) : Permet l’abonnement à des flux de données
- XUL(XML-based User interface Language) : Langage de description d'interfaces
graphiques développé par le projet Mozilla.
5
- SVG(Scalable Vector Graphics) : Description de dessins vectoriels
- MathML(Mathematical Markup Language) : Description de formules mathématiques
- OpenStreetMap : Cartes libres
II- Syntaxe de XML
La syntaxe de XML est relativement simple. Elle est constituée de quelques règles pour
l'écriture d’une entête et des balises pour structurer les données. Ces règles sont très similaires
à celles du langage HTML utilisé pour les pages WEB mais elles sont, en même temps, plus
générales et plus strictes. Elles sont plus générales car les noms des balises sont libres. Elles
sont aussi plus strictes car elles imposent qu'à toute balise ouvrante corresponde une balise
fermante.
a- Premier exemple
Figure 1: exemple simple de document xml
Pour cet exemple on a utilisé l’encodage iso-8859-1 mais il en existe d’autres tels que utf-8,
us-ascii, utf-16 etc
Le standalone signifie si le document est autonome ou si un autre document lui est rattaché.
Le document XML peut être divisé en deux parties à savoir : le prologue et le corps. Le
corps est constitué d’un élément racine qui contient l’intégralité du document et peut contenir
des sous-éléments
b- Syntaxe et structure
Il y a, en français, l'orthographe et la grammaire. La première est constituée de règles pour la
bonne écriture des mots. La seconde régit l'agencement des mots dans une phrase. Pour qu'une
phrase en français soit correcte, il faut d'abord que les mots soient bien orthographiés et,
ensuite, que la phrase soit bien construite. Il y aurait encore le niveau sémantique mais nous le
laisserons de côté. XML a également ces deux niveaux. Pour qu'un document XML soir
correct, il doit d'abord être bien formé et, ensuite, être valide. La première contrainte est de
nature syntaxique. Un document bien formé doit respecter certaines règles syntaxiques
propres à XML qui sont explicitées dans ce chapitre. Il s'agit, en quelque sorte, de
l'orthographe d'XML. La seconde contrainte est de nature structurelle. Un document valide
doit respecter un modèle de document. Un tel modèle décrit de manière rigoureuse comment
doit être organisé le document. Un modèle de documents peut être vu comme une grammaire
pour des documents XML. La différence essentielle avec le français est que la grammaire
d'XML n'est pas figée. Pour chaque application, il est possible de choisir la grammaire la plus
6
appropriée. Cette possibilité d'adapter la grammaire aux données confère une grande
souplesse à XML. Il existe plusieurs langages pour écrire des modèles de document. Les DTD
(Document Type Description), héritées de SGML, sont simples mais aussi assez limitées.
Elles sont décrites au III. Les schémas XML sont beaucoup plus puissants. Ils sont décrits
dans le IV.
Un document XML est généralement contenu dans un fichier texte dont l'extension est .xml. Il
peut aussi être réparti en plusieurs fichiers en utilisant les entités externes ou XInclude qui ne
seront pas traités dans ce rapport.
c- Exemples minimaux
Quelques exemples minimalistes de documents XML sont donnés ci-dessous.
Exercice1 : Ecrire le document XML
La France, l’Italie, l’Espagne ont pour capitales respectives Paris, Rome et Madrid.
Leurs populations respectives sont de : 64 100 000 M en 2007, 58 133509 M et 44 708 964 M
en 2006
Figure 2: Exercice France Italie Espagne
7
Figure 3: Vue au niveau du navigateur de l'exercice France Italie Espagne
Exercice 2 :
Amandine possède trois (3) robes et deux (2) pantalons. La première robe est rose d’été la
deuxième est verte d’été la troisième est bleu d’hiver. Le premier pantalon est blanc d’été et le
second est beige d’hiver.
8
Figure 4: Document xml de l'exercice Amandine et sa garde robe
Exercice3 :
Mr Dupont et Mme Martin son enseignant de français, Mlle Durant est enseignant de Maths.
- Mr Dupont a 132 élèves.
- Mme Martin a 161 élèves.
- Mlle Durant a 143 élèves.
Donner un document XML
9
Figure 5: Document XML relatif aux maitres et leurs eleves
.
Exo4 : Polyèdre
10
Figure 6: Document XML de l'exercice du polyedre
Le XML peut avoir (comme le Html) des attributs avec des valeurs. En XML, les valeurs des
attributs doivent obligatoirement être entre des guillemets, au contraire du Html où leur
absence n'a plus beaucoup d'importance.
Ainsi, l'écriture suivante est incorrecte car il manque les guillemets.
<date anniversaire=071185 />
La bonne écriture est :
<date anniversaire="07111920" />
Le XML est un langage strict. Votre document doit impérativement respecter la syntaxe du
XML. On dira alors que le document est "bien formé" [Well-formed]. Seuls les documents
"bien formés" seront affichés correctement. A la moindre erreur de syntaxe, le document ne
sera pas ou ne sera que partiellement affiché.
Syntaxe : &nom_de_l’entité;
Exemple :
: donne
: donne
: donne
11
III- DTD
Le DTD ou Document Type Declaration ou encore Document Type Definition est l'ensemble
des règles et des propriétés que doit suivre le document XML. Ces règles définissent
généralement le nom et le contenu de chaque balise et le contexte dans lequel elles doivent
exister. Cette formalisation des éléments est particulièrement utile lorsqu'on utilise de façon
récurrente des balises dans un document XML.
L'étude détaillée des DTDs dépassent de loin le cadre de ce rapport mais un bref aperçu est
cependant utile surtout pour comprendre le fonctionnement des langages dérivés du XML qui
ne manquent pas d'utiliser ces fameux DTDs.
En effet, par les DTDs externes, plusieurs concepteurs peuvent se mettre d'accord pour utiliser
un DTD commun pour échanger leurs données. Avec le XHTML ou le WML, vous signalez
dans l'en-tête du document que vous utilisez (et suivez) les normes du W3C concernant les
langages précités.
Les DTD ont l'avantage d'être relativement simples à utiliser mais elles sont parfois aussi un
peu limitées. Les
schémas XML permettent de décrire de façon plus précise encore la structure d'un
document. Ils sont
plus sophistiqués mais plus difficiles à mettre en oeuvre. Les DTD sont donc particulièrement
adaptées pour des
petits modèles de documents. En revanche, leur manque de modularité les rend plus difficiles
à utiliser pour des
modèles plus conséquents.
On distingue deux types de DTD : Les DTD internes et les DTD externes.
- DTD Interne
On peut inclure son propre DTD au code source du fichier XML. On parlera alors d'un DTD
interne.
Le DTD interne suit la syntaxe suivante :
<!DOCTYPE élément-racine [
déclaration des éléments
]>
- DTD Externe
Le DTD externe suivra la syntaxe suivante :
<?xml version="1.0" standalone="no"?>
<! élément-racine " ">
a- Premier exemple :
12
Figure 7: DTD de l'exercice Amandine et sa garde robe
<!ELEMENT vetements (vetement+)>
<!ELEMENT vetement (type,numero,couleur,saison)>
<!ELEMENT type (#PCDATA)>
<!ELEMENT numero (#PCDATA)>
<!ELEMENT couleur (#PCDATA)>
<!ELEMENT saison (#PCDATA)>
Déclaration de l'élément vetements devant contenir une suite non vide d'éléments vetement.
Déclaration de l'élément vetement devant contenir type,numero,couleur,saison
Déclaration des éléments (type, numero, couleur, saison) qui devront contenir
uniquement du texte ( )
13
Figure 8: DTD de l'exercice les enseignants et leurs eleves
b- Déclaration d’éléments
Les déclarations d'éléments constituent le cœur des DTD car elles définissent la structure des
documents valides. Elles spécifient quels doivent être les enfants de chaque élément et l'ordre
de ces enfants.
La déclaration d'un élément est nécessaire pour qu'il puisse apparaître dans un document.
Cette déclaration précise le nom et le type de l'élément. Le nom de l'élément doit être un nom
XML et le type détermine les contenus valides de l'élément. On distingue les contenus purs
uniquement constitués d'autres éléments, les contenus textuels uniquement constitués de texte
et les contenus mixtes qui mélangent éléments et texte.
De manière générale, la déclaration d'un élément prend la forme suivante où et
sont respectivement le nom et le type de l'élément. Le type de l'élément détermine quels sont
ses contenus autorisés.
<! >
c- Déclaration d’attribut
Pour qu'un document soit valide, tout attribut présent dans la balise ouvrante d'un élément
doit être déclaré. La déclaration d'attribut prend la forme générale suivante où attribut est le
nom de l'attribut et element le nom de l'élément auquel il appartient. Cette déclaration
comprend également le type type et la valeur par défaut
14
default de l'attribut. Le nom de l'attribut doit être un nom XML.
<! >
RQ : Les DTD proposent un choix fini de type pour les attributs Les types les plus utilisés
sont
, et …
d- Outils de validation
Il existe plusieurs outils permettant de valider un document XML par rapport à une DTD. Il
existe d'abord des sites WEB dont l'avantage est une interface conviviale. L'utilisateur peut
fournir son document par un simple copier/coller ou en le téléchargeant. Comme la validation
est réalisée sur une machine distante, la DTD doit être, soit accessible via une URL, soit
directement incluse dans document.
 Page de validation du W3C [http://validator.w3.org/]
 Page de validation du Scholarly Technology Group de l'université de Brown
[http://www.stg.brown.edu/service/xmlvalid/]
L'inconvénient majeur de ces sites WEB est la difficulté de les intégrer à une chaîne de
traitement automatique
puisqu'ils requièrent l'intervention de l'utilisateur. Dans ce cas, il est préférable d'utiliser des
IDE comme
, , et pleins d’autres. Avec l'option valid, il réalise la validation du
document passé en paramètre.
IV- Schéma XML
a- Introduction
Les schémas XML permettent, comme les DTD, de définir des modèles de documents. Il est
ensuite possible de vérifier qu'un document donné est valide pour un schéma, c'est-à-dire
respecte les contraintes données par le schéma. Les schémas ont été introduits pour combler
certaines lacunes des DTD.
La première différence entre les schémas et les DTD est d'ordre syntaxique. La syntaxe des
DTD est une syntaxe héritée de SGML qui est différente de la syntaxe XML pour le corps des
documents. En revanche, la syntaxe des schémas est une syntaxe purement XML. Un schéma
est, en effet, un document XML à part entière avec un élément racine et un
espace de noms.
Les DTD manquent cruellement de précision dans la description des contenus des éléments.
Cette lacune se manifeste surtout au niveau des contenus textuels et des contenus mixtes. Il
est, par exemple, impossible d'imposer des contraintes sur les contenus textuels des éléments.
Le seul type possible pour les contenus textuels est #PCDATA qui autorise toutes les chaînes
de caractères. Les types pour les attributs sont un peu plus nombreux mais ils restent encore
très limités. À l'inverse, les schémas possèdent une multitude de types prédéfinis pour les
contenus textuels. Ces types couvrent les chaînes de caractères, les nombres comme les
entiers et les flottants ainsi que les heures et les dates. Ces types peuvent, en outre, être affinés
par des mécanismes de et .
b- Un premier exemple
15
Figure 9: Schema XML du polyedre
Code source du schéma xml de l’exercice du polyèdre
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
elementFormDefault="qualified">
<xs:element name="listdepolyedre">
<xs:complexType>
<xs:sequence>
<xs:element maxOccurs="unbounded" ref="polyedre"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="polyedre">
<xs:complexType>
<xs:sequence>
<xs:element ref="Nom"/>
<xs:element ref="Matricule"/>
<xs:element ref="Couleur"/>
<xs:element ref="NbreFace"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="Nom" type="xs:string"/>
<xs:element name="Matricule" type="xs:string"/>
<xs:element name="Couleur" type="xs:string"/>
<xs:element name="NbreFace" type="xs:string"/>
</xs:schema>
16
17
Figure 10: Schema XML de l'agenda
CODE SOURCE EXERCICE
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
elementFormDefault="qualified">
<xs:element name="agenda" type="personnes"/>
<xs:complexType name="personnes">
<xs:sequence>
<xs:element ref="personnes"/>
</xs:sequence>
</xs:complexType>
<xs:element name="personnes">
<xs:complexType>
<xs:sequence>
<xs:element maxOccurs="unbounded" ref="personne"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="personne">
<xs:complexType>
<xs:sequence>
<xs:element ref="nom"/>
<xs:element ref="prenom"/>
<xs:element ref="telephone"/>
<xs:element ref="adresse"/>
18
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="nom" type="xs:string"/>
<xs:element name="prenom" type="xs:string"/>
<xs:element name="telephone" type="xs:string"/>
<xs:element name="adresse">
<xs:complexType>
<xs:sequence>
<xs:element ref="rue"/>
<xs:element ref="codepostale"/>
<xs:element ref="ville"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="rue" type="xs:string"/>
<xs:element name="codepostale" type="xs:string"/>
<xs:element name="ville" type="xs:string"/>
</xs:schema>
Figure 11: Schema XML de l'exercice sur les enseignants et de leurs eleves
CODE SOURCE EXERCICE AVEC
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
elementFormDefault="qualified">
<xs:element name="enseignants">
<xs:complexType>
<xs:sequence>
19
<xs:element maxOccurs="unbounded" ref="enseignant"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="enseignant">
<xs:complexType>
<xs:sequence>
<xs:element ref="matiere"/>
<xs:element ref="nbeleve"/>
<xs:element ref="identité"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="matiere" type="xs:string"/>
<xs:element name="nbeleve" type="xs:string"/>
<xs:element name="identité">
<xs:complexType>
<xs:sequence>
<xs:element ref="civilité"/>
<xs:element ref="nom"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="civilité" type="xs:string"/>
<xs:element name="nom" type="xs:string"/>
</xs:schema>
CODE SOURCE
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
elementFormDefault="qualified">
<xs:element name="vetements">
<xs:complexType>
<xs:sequence>
<xs:element maxOccurs="unbounded" ref="vetement"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="vetement">
<xs:complexType>
<xs:sequence>
<xs:element ref="type"/>
<xs:element ref="numero"/>
<xs:element ref="couleur"/>
<xs:element ref="saison"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="type" type="xs:string"/>
20
<xs:element name="numero" type="xs:string"/>
<xs:element name="couleur" type="xs:string"/>
<xs:element name="saison" type="xs:string"/>
</xs:schema>
Élément racine xs:schema avec la déclaration de l'espace de noms des schémas associé au
préfixe xsd.
Documentation du schéma.
Déclaration de l'élément sans type car il est
Déclaration de l'élément contenu dans
c- Structure globale d’un Schéma XML
Un schéma XML se compose essentiellement de déclarations d'éléments et d'attributs et de
définitions de types.
Chaque élément est déclaré avec un type qui peut être, soit un des types prédéfinis, soit un
nouveau type défini dans le schéma. Le type spécifie quels sont les contenus valides de
l'élément ainsi que ses attributs. Un nouveau type est obtenu soit par construction, c'est-à-dire
une description explicite des contenus qu'il autorise, soit par dérivation, c'est-à-dire
modification d'un autre type. Un schéma peut aussi contenir des imports d'autres schémas, des
définitions de groupes d'éléments et d'attributs et des contraintes de cohérences.
La structure globale d'un schéma est donc la suivante.
<?xml version="1.0" encoding="iso-8859-1"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<!-- Déclarations d'éléments, d'attributs et définitions de types -->
...
</xs:schema>
Les sont déclarés par l'élément et les par l'élément
. Les
sont définis par les éléments et .
RQ : on peut utiliser xsd, ou xs, ou un autre nom quelconque car ce n’est qu’un
nommage
d- Déclaration d’éléments
Pour qu'un document soit valide pour un schéma, tout élément apparaissant dans le document
doit être déclaré
dans le schéma. Cette déclaration lui donne un type qui détermine, d'une part, les contenus
possibles et, d'autre
part, les attributs autorisés et obligatoires. Contrairement aux DTD, les attributs ne sont pas
directement associés
aux éléments. Ils font partie des types qui sont donnés aux éléments.
La déclaration la plus simple d'un élément prend la forme suivante :
< : ="element" ="type"/>
Le type peut être numérique:
21
etc…
Le type peut aussi être chaine ou nom :
etc…
Le type peut aussi être date :
etc…
Cependant, les schéma reprennent certains types des DTD à savoir :
Figure 12: Hierarchie des types atomiques
22
e- Définition de type
Parmi les types, les schémas XML distinguent les types simples introduits par le constructeur
xsd:simpleType et les types complexes introduits par le constructeur xsd:complexType. Les
types simples décrivent des contenus textuels, c'est-à-dire ne contenant que du texte. Ils
peuvent être utilisés pour les éléments comme pour les attributs. Ils sont généralement
obtenus par dérivation des types prédéfinis. Au contraire, les types complexes décrivent des
contenus purs constitués uniquement d'éléments ou des contenus mixtes constitués de texte et
d'éléments. Ils peuvent uniquement être utilisés pour déclarer des éléments. Seuls les types
complexes peuvent définir des attributs.
Figure 13: Hierarchie de construction de type
Figure : Hiérarchie de construction des types
Syntaxe de création de type simple par union
<simpleType name=”nouveauType”>
<union membertypes=”date string” />
</simpleType>
<element name=”dateNaissance” type=”nouveauType” />
Syntaxe de création de type simple par list
<simpleType name=”nouveauType”>
<list itemType=”int” />
</simpleType>
<element name=”serieNumerique” type=”nouveauType” />
<serieNumerique> 15 20 1857</ serieNumerique >
< serieNumerique >55 38 77</ serieNumerique >
Syntaxe de création de type simple par restriction
<simpleType name=”typeFruit”>
<restriction base=”string”>
<enumeration value=”raisin” /> est une facette
<enumeration value=”pomme” /> est une facette
<enumeration value=”raison” /> est une facette
</restriction>
</simpleType>
23
<attribute name=”fruit” type=”typeFruit” />
f- Déclaration d’attributs
La déclaration d'un attribut est semblable à la déclaration d'un élément mais elle utilise
l'élément
xsd:attribute au lieu de l'élément xsd:element. Les attributs name et type de xsd:attribute
spécifient respectivement le nom et le type de l'attribut. Le type d'un attribut est
nécessairement un type simple
puisque les attributs ne peuvent contenir que du texte. La déclaration d'un attribut prend la
forme suivante.
< : ="name" ="type"/>
Exemple:
< : =" " =" "/>

Contenu connexe

Tendances

18 02-2015 atelier-pratique-xml-tei-stage-d-ecdotique-2015
18 02-2015 atelier-pratique-xml-tei-stage-d-ecdotique-201518 02-2015 atelier-pratique-xml-tei-stage-d-ecdotique-2015
18 02-2015 atelier-pratique-xml-tei-stage-d-ecdotique-2015Emmanuelle Morlock
 
Intégration Web HTML 5 & CSS 3
Intégration Web HTML 5 & CSS 3Intégration Web HTML 5 & CSS 3
Intégration Web HTML 5 & CSS 3Stephane PERES
 
N. Dufournaud : XML TEI un outil méthodologique pour la recherche en SHS
N. Dufournaud : XML TEI un outil méthodologique pour la recherche en SHSN. Dufournaud : XML TEI un outil méthodologique pour la recherche en SHS
N. Dufournaud : XML TEI un outil méthodologique pour la recherche en SHSOpenEdition
 
Xml un panorama
Xml un panoramaXml un panorama
Xml un panoramallobel
 
Exploration et visualisation de fichiers XML avec BaseX
Exploration et visualisation de fichiers XML avec BaseXExploration et visualisation de fichiers XML avec BaseX
Exploration et visualisation de fichiers XML avec BaseXEmmanuelle Morlock
 
Xml Le Langage
Xml Le LangageXml Le Langage
Xml Le Langageramzino
 
HTML 5 - intro - en francais
HTML 5 - intro - en francaisHTML 5 - intro - en francais
HTML 5 - intro - en francaisVlad Posea
 
Document Object Model ( DOM)
Document Object Model ( DOM)Document Object Model ( DOM)
Document Object Model ( DOM)Abdelouahed Abdou
 
Intégration #2 : HTML 101 : Back to Basics
Intégration #2 : HTML 101 : Back to BasicsIntégration #2 : HTML 101 : Back to Basics
Intégration #2 : HTML 101 : Back to BasicsJean Michel
 
Html de base
Html de baseHtml de base
Html de basekrymo
 
Le langage HTML
Le langage HTMLLe langage HTML
Le langage HTMLBruno Delb
 

Tendances (18)

18 02-2015 atelier-pratique-xml-tei-stage-d-ecdotique-2015
18 02-2015 atelier-pratique-xml-tei-stage-d-ecdotique-201518 02-2015 atelier-pratique-xml-tei-stage-d-ecdotique-2015
18 02-2015 atelier-pratique-xml-tei-stage-d-ecdotique-2015
 
Chapitre1
Chapitre1 Chapitre1
Chapitre1
 
Intégration Web HTML 5 & CSS 3
Intégration Web HTML 5 & CSS 3Intégration Web HTML 5 & CSS 3
Intégration Web HTML 5 & CSS 3
 
Le Langage CSS
Le Langage CSSLe Langage CSS
Le Langage CSS
 
N. Dufournaud : XML TEI un outil méthodologique pour la recherche en SHS
N. Dufournaud : XML TEI un outil méthodologique pour la recherche en SHSN. Dufournaud : XML TEI un outil méthodologique pour la recherche en SHS
N. Dufournaud : XML TEI un outil méthodologique pour la recherche en SHS
 
HTML, CSS et Javascript
HTML, CSS et JavascriptHTML, CSS et Javascript
HTML, CSS et Javascript
 
Xml un panorama
Xml un panoramaXml un panorama
Xml un panorama
 
Xml un panorama
Xml un panoramaXml un panorama
Xml un panorama
 
Introduction html
Introduction htmlIntroduction html
Introduction html
 
Exploration et visualisation de fichiers XML avec BaseX
Exploration et visualisation de fichiers XML avec BaseXExploration et visualisation de fichiers XML avec BaseX
Exploration et visualisation de fichiers XML avec BaseX
 
Xml Le Langage
Xml Le LangageXml Le Langage
Xml Le Langage
 
HTML 5 - intro - en francais
HTML 5 - intro - en francaisHTML 5 - intro - en francais
HTML 5 - intro - en francais
 
Document Object Model ( DOM)
Document Object Model ( DOM)Document Object Model ( DOM)
Document Object Model ( DOM)
 
XHL8
XHL8XHL8
XHL8
 
Intégration #2 : HTML 101 : Back to Basics
Intégration #2 : HTML 101 : Back to BasicsIntégration #2 : HTML 101 : Back to Basics
Intégration #2 : HTML 101 : Back to Basics
 
MMI Web Design P2
MMI Web Design P2MMI Web Design P2
MMI Web Design P2
 
Html de base
Html de baseHtml de base
Html de base
 
Le langage HTML
Le langage HTMLLe langage HTML
Le langage HTML
 

En vedette

Campeonato de España sub16. Padron 2008
Campeonato de España sub16. Padron 2008Campeonato de España sub16. Padron 2008
Campeonato de España sub16. Padron 2008HackerAjedrez
 
Dirigentes Politicos
Dirigentes PoliticosDirigentes Politicos
Dirigentes Politicoscristina baez
 
Partie D&D Forgotten Realms (French)
Partie D&D Forgotten Realms (French)Partie D&D Forgotten Realms (French)
Partie D&D Forgotten Realms (French)Dedata
 
Programme mélod’histoires 2014 dans le val d’amour
Programme mélod’histoires 2014 dans le val d’amourProgramme mélod’histoires 2014 dans le val d’amour
Programme mélod’histoires 2014 dans le val d’amourMediavaldamour
 
Hacia una superacion de la fractura tecnico politica - Chubut
Hacia una superacion de la fractura tecnico politica - ChubutHacia una superacion de la fractura tecnico politica - Chubut
Hacia una superacion de la fractura tecnico politica - ChubutFundación CiGob
 
COLORES
COLORESCOLORES
COLORESCG20
 
Support élèves 1
Support élèves 1Support élèves 1
Support élèves 1Threadkell
 
Consumo de Bicarbonato en Atletas
Consumo de Bicarbonato en AtletasConsumo de Bicarbonato en Atletas
Consumo de Bicarbonato en AtletasWiwi R. Salas Salas
 
Las Amigas Curan
Las Amigas CuranLas Amigas Curan
Las Amigas CuranIki Esc
 
Metodo Para Realizar Una InvestigacióN
Metodo Para Realizar Una InvestigacióNMetodo Para Realizar Una InvestigacióN
Metodo Para Realizar Una InvestigacióNLaura Velazquez
 
La newsletter de mgrh 21
La newsletter de mgrh 21La newsletter de mgrh 21
La newsletter de mgrh 21CABINET MGRH
 
HastaelañO Que Viene
HastaelañO Que VieneHastaelañO Que Viene
HastaelañO Que Vieneguest9166ae
 
Actividad I Primera Clase
Actividad  I Primera ClaseActividad  I Primera Clase
Actividad I Primera Clasemedicinaforense
 
Les personnes futures comme biocitoyens
Les personnes futures comme biocitoyensLes personnes futures comme biocitoyens
Les personnes futures comme biocitoyensMelanie Swan
 

En vedette (20)

Campeonato de España sub16. Padron 2008
Campeonato de España sub16. Padron 2008Campeonato de España sub16. Padron 2008
Campeonato de España sub16. Padron 2008
 
Tarea 2
Tarea 2Tarea 2
Tarea 2
 
Dirigentes Politicos
Dirigentes PoliticosDirigentes Politicos
Dirigentes Politicos
 
Que faire en ethiopie
Que faire en ethiopieQue faire en ethiopie
Que faire en ethiopie
 
Partie D&D Forgotten Realms (French)
Partie D&D Forgotten Realms (French)Partie D&D Forgotten Realms (French)
Partie D&D Forgotten Realms (French)
 
COMO SUPERAR EL 30K
COMO SUPERAR EL 30KCOMO SUPERAR EL 30K
COMO SUPERAR EL 30K
 
Programme mélod’histoires 2014 dans le val d’amour
Programme mélod’histoires 2014 dans le val d’amourProgramme mélod’histoires 2014 dans le val d’amour
Programme mélod’histoires 2014 dans le val d’amour
 
Hacia una superacion de la fractura tecnico politica - Chubut
Hacia una superacion de la fractura tecnico politica - ChubutHacia una superacion de la fractura tecnico politica - Chubut
Hacia una superacion de la fractura tecnico politica - Chubut
 
Bu Partenaires
Bu PartenairesBu Partenaires
Bu Partenaires
 
COLORES
COLORESCOLORES
COLORES
 
Femmes
FemmesFemmes
Femmes
 
Support élèves 1
Support élèves 1Support élèves 1
Support élèves 1
 
Consumo de Bicarbonato en Atletas
Consumo de Bicarbonato en AtletasConsumo de Bicarbonato en Atletas
Consumo de Bicarbonato en Atletas
 
Las Amigas Curan
Las Amigas CuranLas Amigas Curan
Las Amigas Curan
 
Metodo Para Realizar Una InvestigacióN
Metodo Para Realizar Una InvestigacióNMetodo Para Realizar Una InvestigacióN
Metodo Para Realizar Una InvestigacióN
 
La newsletter de mgrh 21
La newsletter de mgrh 21La newsletter de mgrh 21
La newsletter de mgrh 21
 
HastaelañO Que Viene
HastaelañO Que VieneHastaelañO Que Viene
HastaelañO Que Viene
 
Actividad I Primera Clase
Actividad  I Primera ClaseActividad  I Primera Clase
Actividad I Primera Clase
 
Les personnes futures comme biocitoyens
Les personnes futures comme biocitoyensLes personnes futures comme biocitoyens
Les personnes futures comme biocitoyens
 
Ciao
CiaoCiao
Ciao
 

Similaire à xml dtd schema

Environnements & Développements
Environnements & DéveloppementsEnvironnements & Développements
Environnements & DéveloppementsPaulin CHOUDJA
 
Cyxlm formation-xml-synthese (1)
Cyxlm formation-xml-synthese (1)Cyxlm formation-xml-synthese (1)
Cyxlm formation-xml-synthese (1)CERTyou Formation
 
Cyxlm formation-xml-synthese
Cyxlm formation-xml-syntheseCyxlm formation-xml-synthese
Cyxlm formation-xml-syntheseCERTyou Formation
 
manager vs leader.pptx
manager vs leader.pptxmanager vs leader.pptx
manager vs leader.pptxnadinelaabidi
 
Cours XML_2019_final (1).ppt
Cours XML_2019_final (1).pptCours XML_2019_final (1).ppt
Cours XML_2019_final (1).pptManalAg
 
Globekid NeoDoc Presentation Bookcamp
Globekid NeoDoc Presentation BookcampGlobekid NeoDoc Presentation Bookcamp
Globekid NeoDoc Presentation Bookcampguest41b263
 
Presentation dublincore l3
Presentation dublincore l3Presentation dublincore l3
Presentation dublincore l3DublinCore2b
 
1- XML généralités technologies xml1.pdf
1- XML généralités technologies xml1.pdf1- XML généralités technologies xml1.pdf
1- XML généralités technologies xml1.pdfKokitaKaty
 
Les concepts fondamentaux de DITA
Les concepts fondamentaux de DITALes concepts fondamentaux de DITA
Les concepts fondamentaux de DITAPeccatte
 
La Solution Xml
La Solution XmlLa Solution Xml
La Solution XmlMGTissues
 
7. information modelling
7. information modelling7. information modelling
7. information modellingsugogo
 
Xml un panorama
Xml un panoramaXml un panorama
Xml un panoramacamelus
 
Xml un panorama
Xml un panoramaXml un panorama
Xml un panoramahrenel
 
Environnement et technologies web
Environnement et technologies webEnvironnement et technologies web
Environnement et technologies webIrinaTsimpilova1
 
Introduction générale à la technologie XML
Introduction générale à la technologie XMLIntroduction générale à la technologie XML
Introduction générale à la technologie XMLcoker72138
 

Similaire à xml dtd schema (20)

1 introduction
1 introduction1 introduction
1 introduction
 
Environnements & Développements
Environnements & DéveloppementsEnvironnements & Développements
Environnements & Développements
 
Chap 1 xml
Chap 1 xmlChap 1 xml
Chap 1 xml
 
XML
XMLXML
XML
 
Cyxlm formation-xml-synthese (1)
Cyxlm formation-xml-synthese (1)Cyxlm formation-xml-synthese (1)
Cyxlm formation-xml-synthese (1)
 
Cyxlm formation-xml-synthese
Cyxlm formation-xml-syntheseCyxlm formation-xml-synthese
Cyxlm formation-xml-synthese
 
manager vs leader.pptx
manager vs leader.pptxmanager vs leader.pptx
manager vs leader.pptx
 
Cours XML_2019_final (1).ppt
Cours XML_2019_final (1).pptCours XML_2019_final (1).ppt
Cours XML_2019_final (1).ppt
 
Globekid NeoDoc Presentation Bookcamp
Globekid NeoDoc Presentation BookcampGlobekid NeoDoc Presentation Bookcamp
Globekid NeoDoc Presentation Bookcamp
 
Presentation dublincore l3
Presentation dublincore l3Presentation dublincore l3
Presentation dublincore l3
 
1- XML généralités technologies xml1.pdf
1- XML généralités technologies xml1.pdf1- XML généralités technologies xml1.pdf
1- XML généralités technologies xml1.pdf
 
Les concepts fondamentaux de DITA
Les concepts fondamentaux de DITALes concepts fondamentaux de DITA
Les concepts fondamentaux de DITA
 
La Solution Xml
La Solution XmlLa Solution Xml
La Solution Xml
 
7. information modelling
7. information modelling7. information modelling
7. information modelling
 
Xml un panorama
Xml un panoramaXml un panorama
Xml un panorama
 
Xml un panorama
Xml un panoramaXml un panorama
Xml un panorama
 
REMERCIEMENT.docx
REMERCIEMENT.docxREMERCIEMENT.docx
REMERCIEMENT.docx
 
Environnement et technologies web
Environnement et technologies webEnvironnement et technologies web
Environnement et technologies web
 
Metadonnees et SID
Metadonnees et SIDMetadonnees et SID
Metadonnees et SID
 
Introduction générale à la technologie XML
Introduction générale à la technologie XMLIntroduction générale à la technologie XML
Introduction générale à la technologie XML
 

xml dtd schema

  • 1. 1 Année universitaire : 2014– 2015 REPUBLIQUE DU SENEGAL***** * * ******** UNIVERSITE CHEIKH ANTA DIOP DE DAKAR eXtensible Markup Langage(XML) Rapport de cours XML Classe : Master1 2014-2015 Rédigé par: Professeur El Hadji Dame Sy DIOP M. ADAM ABDOULAYE ECOLE SUPERIEURE POLYTECHNIQUE DEPARTEMENT GENIE INFORMATIQUE
  • 2. 2 Plan I- Présentation de XML........................................................................................................ 3 a- Historique................................................................................................................... 3 b- Intérêts........................................................................................................................ 3 c- Langages apparentés..................................................................................................... 4 d- Dialectes...................................................................................................................... 4 II- Syntaxe de XML............................................................................................................ 5 a- Premier exemple ........................................................................................................ 5 b- Syntaxe et structure................................................................................................... 5 c- Exemples minimaux ...................................................................................................... 6 III- DTD .............................................................................................................................. 11 a- Premier exemple :........................................................................................................ 11 b- Déclaration d’éléments............................................................................................ 13 c- Déclaration d’attribut................................................................................................. 13 d- Outils de validation.................................................................................................. 14 IV- Schéma XML ............................................................................................................... 14 a- Introduction ............................................................................................................. 14 b- Un premier exemple ................................................................................................ 14 c- Structure globale d’un Schéma XML........................................................................ 20 d- Déclaration d’éléments............................................................................................ 20 e- Définition de type ........................................................................................................ 22 f- Déclaration d’attributs ............................................................................................... 23 Tables des figures Figure 1: exemple simple de document xml .............................................................................. 5 Figure 2: Exercice France Italie Espagne.................................................................................. 6 Figure 3: Vue au niveau du navigateur de l'exercice France Italie Espagne.............................. 7 Figure 4: Document xml de l'exercice Amandine et sa garde robe............................................ 8 Figure 5: Document XML relatif aux maitres et leurs eleves .................................................... 9 Figure 6: Document XML de l'exercice du polyedre............................................................... 10 Figure 7: DTD de l'exercice Amandine et sa garde robe ......................................................... 12 Figure 8: DTD de l'exercice les enseignants et leurs eleves .................................................... 13 Figure 9: Schema XML du polyedre........................................................................................ 15 Figure 10: Schema XML de l'agenda....................................................................................... 17 Figure 11: Schema XML de l'exercice sur les enseignants et de leurs eleves ......................... 18 Figure 12: Hierarchie des types atomiques .............................................................................. 21 Figure 13: Hierarchie de construction de type ......................................................................... 22
  • 3. 3 I- Présentation de XML Le langage XML (eXtensible Markup Language) est un format général de documents orienté texte. Il s'est imposé comme un standard incontournable de l'informatique. Il est aussi bien utilisé pour le stockage de documents que pour la transmission de données entre applications. Sa simplicité, sa flexibilité et ses possibilités d'extension ont permis de l'adapter à de multiples domaines allant des données géographiques au dessin vectoriel en passant par les échanges commerciaux. De nombreuses technologies se sont développées autour de XML et enrichissent ainsi son environnement. Le langage XML dérive de SGML (Standard Generalized Markup Language) et de HTML (HyperText Markup Language). Comme ces derniers, il s'agit d'un langage orienté texte et formé de balises qui permettent d'organiser les données de manière structurée. a- Historique L'historique suivant retrace les grandes étapes qui ont conduit à la naissance de XML. L'ancêtre de XML est le langage SGML qui a été introduit en 1986 par C. Goldfarb. SGML a été conçu pour des documentations techniques de grande ampleur. Sa grande complexité a freiné son utilisation en dehors des projets de grande envergure. En 1991, T. Berners-Lee a défini le langage HTML pour le WEB. Ce langage est une version simplifiée à l'extrême de SGML, destinée à une utilisation très ciblée. XML est, en quelque sorte, intermédiaire entre SGML et HTML. Il évite les aspects les plus complexes de SGML tout en gardant suffisamment de souplesse pour une utilisation généraliste. La version 1.0 de XML a été publiée en 1998 par le consortium W3C (World Wide Web Consortium). Une redéfinition XHTML de HTML 4.0 à travers XML a été donnée en 1999. Une seconde version 1.1, qui est simplement une mise à jour pour les caractères spéciaux en lien avec Unicode, a, ensuite, été publiée en 2004. b- Intérêts XML est devenu omniprésent dans le monde de l'informatique. De nombreux standards sont apparus et permettent à des applications différentes de stocker mais surtout de partager des documents. L'exemple le plus emblématique et le plus connu est le format OpenDocument qui est utilisé par OpenOffice, maintenant appelé LibreOffice, mais aussi par d'autres suites bureautiques comme KOffice. Un autre exemple est le format de dessins vectoriels SVG utilisé par Inkscape. Ce succès de XML est en grande partie dû à ses qualités. Nous allons d'abord énumérer ces caractéristiques essentielles qui ont conduit à ce développement puis nous allons les détailler plus en profondeur. • Séparation stricte entre contenu et présentation • Simplicité, universalité et extensibilité • Format texte avec gestion des caractères spéciaux • Structuration forte • Modèles de documents (DTD et Schémas XML) • Format libre Une des idées directrices de XML est la séparation entre contenu et présentation. Il faut bien distinguer le contenu d'un document et la présentation qui en est donnée. Un même contenu peut être rendu de façons très différentes. Ce document peut, par exemple, se présenter comme un livre imprimé ou comme une collection de pages WEB. Le contenu est constitué, au départ, de textes et d'illustrations mais aussi de liens entre ces éléments. L'organisation du texte en chapitres, sections et sous- sections ainsi que les renvois entre chapitres font partie intégrante du contenu du document. La présentation est au contraire la façon de présenter ce contenu au lecteur. Un des premiers principes de XML est d'organiser le contenu de manière indépendante de la présentation. Ce principe de séparation est déjà présent dans HTML. Le rendu d'une page HTML est
  • 4. 4 globalement confié au navigateur. Les paragraphes des documents HTML sont, par exemple, écrits au kilomètre, sans indication de fins de lignes. Il appartient au navigateur de les découper en lignes en fonction de la taille de la page. C'est très différent d'un document PDF où le découpage en pages et en lignes est figée par le document. La séparation n'est cependant pas totale en HTML. Certaines balises comme <ul> et <li> sont destinées à la structuration du document. Pour ces deux balises, il s'agit d'écrire une énumération. La présentation de cette énumération (marges, symbole marquant chaque entrée, …) est déléguée au navigateur. D'autre balises comme <i> ou <b> donnent davantage des indications de présentation. Cette séparation entre contenu et présentation a été accrue en HTML par l'introduction de CSS. Une feuille de style CSS est chargée de donner au navigateur toutes les informations relatives à la présentation. Le document HTML peut alors se recentrer sur la structuration du contenu de façon indépendante de la présentation. Cette séparation entre contenu et présentation est difficile à obtenir. Le rédacteur d'un document a souvent une présentation en tête et il est tentant pour lui d'essayer de l'imposer. La séparation est encore plus marquée en XML car la signification des balises n'est pas figée comme en HTML. La règle est alors de choisir les balises pour organiser le document en privilégiant la structure de celui-ci par rapport à une éventuelle présentation. Un second principe de XML est une structuration forte du document. Cependant, une des caractéristiques essentielles de XML est son extensibilité et sa flexibilité. Contrairement à HTML, le vocabulaire, c'est-à-dire l'ensemble des balises autorisées, n'est pas figé. c- Langages apparentés Un des atouts indéniables de XML est le nombre de technologies et de langages qui se sont développés autour de lui. Ceux-ci enrichissent les outils pour la manipulation des documents XML. La liste ci- dessous énumère les principaux langages qui font partie de l'environnement XML : - XPath : C’est un langage d'expressions permettant de sélectionner des éléments dans un document XML. Il est la pierre angulaire du langage XSLT pour la transformation de documents - XQuery : C’est un langage permettant d'extraire des informations à partir d'un ou plusieurs documents XML et de synthétiser de nouvelles informations à partir de celles extraites. Il s'apparente à un langage d'interrogation de bases de données et joue le rôle de SQL pour les documents XML. - Schéma XML : Ils remplacent les DTD héritées de SGML pour décrire des modèles de documents. Ils sont beaucoup plus souples et beaucoup plus puissants que les DTD. Ils sont abordés en détail au IV de ce rapport XSLT : C’est un langage permettant d'exprimer facilement des transformations complexes entre documents XML. Il s'appuie sur la structuration forte des documents XML vus comme des arbres. Chaque transformation est décrite par des règles pour chacun des éléments du document. Malheureusement on ne le traitera pas dans ce rapport d- Dialectes De très nombreux dialectes ont été définis pour appliquer XML à des domaines très variés. Le grand avantage est que ces différents dialectes partagent la même syntaxe de base et que tous les outils XML peuvent être utilisés pour spécifier et manipuler ces documents. Il n'y a nul besoin de développer des outils spécifiques à ces différents dialectes. La liste ci-dessous énumère quelques-uns de ces dialectes : - RSS(Really Simple Syndication) : Permet l’abonnement à des flux de données - XUL(XML-based User interface Language) : Langage de description d'interfaces graphiques développé par le projet Mozilla.
  • 5. 5 - SVG(Scalable Vector Graphics) : Description de dessins vectoriels - MathML(Mathematical Markup Language) : Description de formules mathématiques - OpenStreetMap : Cartes libres II- Syntaxe de XML La syntaxe de XML est relativement simple. Elle est constituée de quelques règles pour l'écriture d’une entête et des balises pour structurer les données. Ces règles sont très similaires à celles du langage HTML utilisé pour les pages WEB mais elles sont, en même temps, plus générales et plus strictes. Elles sont plus générales car les noms des balises sont libres. Elles sont aussi plus strictes car elles imposent qu'à toute balise ouvrante corresponde une balise fermante. a- Premier exemple Figure 1: exemple simple de document xml Pour cet exemple on a utilisé l’encodage iso-8859-1 mais il en existe d’autres tels que utf-8, us-ascii, utf-16 etc Le standalone signifie si le document est autonome ou si un autre document lui est rattaché. Le document XML peut être divisé en deux parties à savoir : le prologue et le corps. Le corps est constitué d’un élément racine qui contient l’intégralité du document et peut contenir des sous-éléments b- Syntaxe et structure Il y a, en français, l'orthographe et la grammaire. La première est constituée de règles pour la bonne écriture des mots. La seconde régit l'agencement des mots dans une phrase. Pour qu'une phrase en français soit correcte, il faut d'abord que les mots soient bien orthographiés et, ensuite, que la phrase soit bien construite. Il y aurait encore le niveau sémantique mais nous le laisserons de côté. XML a également ces deux niveaux. Pour qu'un document XML soir correct, il doit d'abord être bien formé et, ensuite, être valide. La première contrainte est de nature syntaxique. Un document bien formé doit respecter certaines règles syntaxiques propres à XML qui sont explicitées dans ce chapitre. Il s'agit, en quelque sorte, de l'orthographe d'XML. La seconde contrainte est de nature structurelle. Un document valide doit respecter un modèle de document. Un tel modèle décrit de manière rigoureuse comment doit être organisé le document. Un modèle de documents peut être vu comme une grammaire pour des documents XML. La différence essentielle avec le français est que la grammaire d'XML n'est pas figée. Pour chaque application, il est possible de choisir la grammaire la plus
  • 6. 6 appropriée. Cette possibilité d'adapter la grammaire aux données confère une grande souplesse à XML. Il existe plusieurs langages pour écrire des modèles de document. Les DTD (Document Type Description), héritées de SGML, sont simples mais aussi assez limitées. Elles sont décrites au III. Les schémas XML sont beaucoup plus puissants. Ils sont décrits dans le IV. Un document XML est généralement contenu dans un fichier texte dont l'extension est .xml. Il peut aussi être réparti en plusieurs fichiers en utilisant les entités externes ou XInclude qui ne seront pas traités dans ce rapport. c- Exemples minimaux Quelques exemples minimalistes de documents XML sont donnés ci-dessous. Exercice1 : Ecrire le document XML La France, l’Italie, l’Espagne ont pour capitales respectives Paris, Rome et Madrid. Leurs populations respectives sont de : 64 100 000 M en 2007, 58 133509 M et 44 708 964 M en 2006 Figure 2: Exercice France Italie Espagne
  • 7. 7 Figure 3: Vue au niveau du navigateur de l'exercice France Italie Espagne Exercice 2 : Amandine possède trois (3) robes et deux (2) pantalons. La première robe est rose d’été la deuxième est verte d’été la troisième est bleu d’hiver. Le premier pantalon est blanc d’été et le second est beige d’hiver.
  • 8. 8 Figure 4: Document xml de l'exercice Amandine et sa garde robe Exercice3 : Mr Dupont et Mme Martin son enseignant de français, Mlle Durant est enseignant de Maths. - Mr Dupont a 132 élèves. - Mme Martin a 161 élèves. - Mlle Durant a 143 élèves. Donner un document XML
  • 9. 9 Figure 5: Document XML relatif aux maitres et leurs eleves . Exo4 : Polyèdre
  • 10. 10 Figure 6: Document XML de l'exercice du polyedre Le XML peut avoir (comme le Html) des attributs avec des valeurs. En XML, les valeurs des attributs doivent obligatoirement être entre des guillemets, au contraire du Html où leur absence n'a plus beaucoup d'importance. Ainsi, l'écriture suivante est incorrecte car il manque les guillemets. <date anniversaire=071185 /> La bonne écriture est : <date anniversaire="07111920" /> Le XML est un langage strict. Votre document doit impérativement respecter la syntaxe du XML. On dira alors que le document est "bien formé" [Well-formed]. Seuls les documents "bien formés" seront affichés correctement. A la moindre erreur de syntaxe, le document ne sera pas ou ne sera que partiellement affiché. Syntaxe : &nom_de_l’entité; Exemple : : donne : donne : donne
  • 11. 11 III- DTD Le DTD ou Document Type Declaration ou encore Document Type Definition est l'ensemble des règles et des propriétés que doit suivre le document XML. Ces règles définissent généralement le nom et le contenu de chaque balise et le contexte dans lequel elles doivent exister. Cette formalisation des éléments est particulièrement utile lorsqu'on utilise de façon récurrente des balises dans un document XML. L'étude détaillée des DTDs dépassent de loin le cadre de ce rapport mais un bref aperçu est cependant utile surtout pour comprendre le fonctionnement des langages dérivés du XML qui ne manquent pas d'utiliser ces fameux DTDs. En effet, par les DTDs externes, plusieurs concepteurs peuvent se mettre d'accord pour utiliser un DTD commun pour échanger leurs données. Avec le XHTML ou le WML, vous signalez dans l'en-tête du document que vous utilisez (et suivez) les normes du W3C concernant les langages précités. Les DTD ont l'avantage d'être relativement simples à utiliser mais elles sont parfois aussi un peu limitées. Les schémas XML permettent de décrire de façon plus précise encore la structure d'un document. Ils sont plus sophistiqués mais plus difficiles à mettre en oeuvre. Les DTD sont donc particulièrement adaptées pour des petits modèles de documents. En revanche, leur manque de modularité les rend plus difficiles à utiliser pour des modèles plus conséquents. On distingue deux types de DTD : Les DTD internes et les DTD externes. - DTD Interne On peut inclure son propre DTD au code source du fichier XML. On parlera alors d'un DTD interne. Le DTD interne suit la syntaxe suivante : <!DOCTYPE élément-racine [ déclaration des éléments ]> - DTD Externe Le DTD externe suivra la syntaxe suivante : <?xml version="1.0" standalone="no"?> <! élément-racine " "> a- Premier exemple :
  • 12. 12 Figure 7: DTD de l'exercice Amandine et sa garde robe <!ELEMENT vetements (vetement+)> <!ELEMENT vetement (type,numero,couleur,saison)> <!ELEMENT type (#PCDATA)> <!ELEMENT numero (#PCDATA)> <!ELEMENT couleur (#PCDATA)> <!ELEMENT saison (#PCDATA)> Déclaration de l'élément vetements devant contenir une suite non vide d'éléments vetement. Déclaration de l'élément vetement devant contenir type,numero,couleur,saison Déclaration des éléments (type, numero, couleur, saison) qui devront contenir uniquement du texte ( )
  • 13. 13 Figure 8: DTD de l'exercice les enseignants et leurs eleves b- Déclaration d’éléments Les déclarations d'éléments constituent le cœur des DTD car elles définissent la structure des documents valides. Elles spécifient quels doivent être les enfants de chaque élément et l'ordre de ces enfants. La déclaration d'un élément est nécessaire pour qu'il puisse apparaître dans un document. Cette déclaration précise le nom et le type de l'élément. Le nom de l'élément doit être un nom XML et le type détermine les contenus valides de l'élément. On distingue les contenus purs uniquement constitués d'autres éléments, les contenus textuels uniquement constitués de texte et les contenus mixtes qui mélangent éléments et texte. De manière générale, la déclaration d'un élément prend la forme suivante où et sont respectivement le nom et le type de l'élément. Le type de l'élément détermine quels sont ses contenus autorisés. <! > c- Déclaration d’attribut Pour qu'un document soit valide, tout attribut présent dans la balise ouvrante d'un élément doit être déclaré. La déclaration d'attribut prend la forme générale suivante où attribut est le nom de l'attribut et element le nom de l'élément auquel il appartient. Cette déclaration comprend également le type type et la valeur par défaut
  • 14. 14 default de l'attribut. Le nom de l'attribut doit être un nom XML. <! > RQ : Les DTD proposent un choix fini de type pour les attributs Les types les plus utilisés sont , et … d- Outils de validation Il existe plusieurs outils permettant de valider un document XML par rapport à une DTD. Il existe d'abord des sites WEB dont l'avantage est une interface conviviale. L'utilisateur peut fournir son document par un simple copier/coller ou en le téléchargeant. Comme la validation est réalisée sur une machine distante, la DTD doit être, soit accessible via une URL, soit directement incluse dans document.  Page de validation du W3C [http://validator.w3.org/]  Page de validation du Scholarly Technology Group de l'université de Brown [http://www.stg.brown.edu/service/xmlvalid/] L'inconvénient majeur de ces sites WEB est la difficulté de les intégrer à une chaîne de traitement automatique puisqu'ils requièrent l'intervention de l'utilisateur. Dans ce cas, il est préférable d'utiliser des IDE comme , , et pleins d’autres. Avec l'option valid, il réalise la validation du document passé en paramètre. IV- Schéma XML a- Introduction Les schémas XML permettent, comme les DTD, de définir des modèles de documents. Il est ensuite possible de vérifier qu'un document donné est valide pour un schéma, c'est-à-dire respecte les contraintes données par le schéma. Les schémas ont été introduits pour combler certaines lacunes des DTD. La première différence entre les schémas et les DTD est d'ordre syntaxique. La syntaxe des DTD est une syntaxe héritée de SGML qui est différente de la syntaxe XML pour le corps des documents. En revanche, la syntaxe des schémas est une syntaxe purement XML. Un schéma est, en effet, un document XML à part entière avec un élément racine et un espace de noms. Les DTD manquent cruellement de précision dans la description des contenus des éléments. Cette lacune se manifeste surtout au niveau des contenus textuels et des contenus mixtes. Il est, par exemple, impossible d'imposer des contraintes sur les contenus textuels des éléments. Le seul type possible pour les contenus textuels est #PCDATA qui autorise toutes les chaînes de caractères. Les types pour les attributs sont un peu plus nombreux mais ils restent encore très limités. À l'inverse, les schémas possèdent une multitude de types prédéfinis pour les contenus textuels. Ces types couvrent les chaînes de caractères, les nombres comme les entiers et les flottants ainsi que les heures et les dates. Ces types peuvent, en outre, être affinés par des mécanismes de et . b- Un premier exemple
  • 15. 15 Figure 9: Schema XML du polyedre Code source du schéma xml de l’exercice du polyèdre <?xml version="1.0" encoding="UTF-8"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified"> <xs:element name="listdepolyedre"> <xs:complexType> <xs:sequence> <xs:element maxOccurs="unbounded" ref="polyedre"/> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="polyedre"> <xs:complexType> <xs:sequence> <xs:element ref="Nom"/> <xs:element ref="Matricule"/> <xs:element ref="Couleur"/> <xs:element ref="NbreFace"/> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="Nom" type="xs:string"/> <xs:element name="Matricule" type="xs:string"/> <xs:element name="Couleur" type="xs:string"/> <xs:element name="NbreFace" type="xs:string"/> </xs:schema>
  • 16. 16
  • 17. 17 Figure 10: Schema XML de l'agenda CODE SOURCE EXERCICE <?xml version="1.0" encoding="UTF-8"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified"> <xs:element name="agenda" type="personnes"/> <xs:complexType name="personnes"> <xs:sequence> <xs:element ref="personnes"/> </xs:sequence> </xs:complexType> <xs:element name="personnes"> <xs:complexType> <xs:sequence> <xs:element maxOccurs="unbounded" ref="personne"/> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="personne"> <xs:complexType> <xs:sequence> <xs:element ref="nom"/> <xs:element ref="prenom"/> <xs:element ref="telephone"/> <xs:element ref="adresse"/>
  • 18. 18 </xs:sequence> </xs:complexType> </xs:element> <xs:element name="nom" type="xs:string"/> <xs:element name="prenom" type="xs:string"/> <xs:element name="telephone" type="xs:string"/> <xs:element name="adresse"> <xs:complexType> <xs:sequence> <xs:element ref="rue"/> <xs:element ref="codepostale"/> <xs:element ref="ville"/> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="rue" type="xs:string"/> <xs:element name="codepostale" type="xs:string"/> <xs:element name="ville" type="xs:string"/> </xs:schema> Figure 11: Schema XML de l'exercice sur les enseignants et de leurs eleves CODE SOURCE EXERCICE AVEC <?xml version="1.0" encoding="UTF-8"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified"> <xs:element name="enseignants"> <xs:complexType> <xs:sequence>
  • 19. 19 <xs:element maxOccurs="unbounded" ref="enseignant"/> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="enseignant"> <xs:complexType> <xs:sequence> <xs:element ref="matiere"/> <xs:element ref="nbeleve"/> <xs:element ref="identité"/> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="matiere" type="xs:string"/> <xs:element name="nbeleve" type="xs:string"/> <xs:element name="identité"> <xs:complexType> <xs:sequence> <xs:element ref="civilité"/> <xs:element ref="nom"/> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="civilité" type="xs:string"/> <xs:element name="nom" type="xs:string"/> </xs:schema> CODE SOURCE <?xml version="1.0" encoding="UTF-8"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified"> <xs:element name="vetements"> <xs:complexType> <xs:sequence> <xs:element maxOccurs="unbounded" ref="vetement"/> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="vetement"> <xs:complexType> <xs:sequence> <xs:element ref="type"/> <xs:element ref="numero"/> <xs:element ref="couleur"/> <xs:element ref="saison"/> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="type" type="xs:string"/>
  • 20. 20 <xs:element name="numero" type="xs:string"/> <xs:element name="couleur" type="xs:string"/> <xs:element name="saison" type="xs:string"/> </xs:schema> Élément racine xs:schema avec la déclaration de l'espace de noms des schémas associé au préfixe xsd. Documentation du schéma. Déclaration de l'élément sans type car il est Déclaration de l'élément contenu dans c- Structure globale d’un Schéma XML Un schéma XML se compose essentiellement de déclarations d'éléments et d'attributs et de définitions de types. Chaque élément est déclaré avec un type qui peut être, soit un des types prédéfinis, soit un nouveau type défini dans le schéma. Le type spécifie quels sont les contenus valides de l'élément ainsi que ses attributs. Un nouveau type est obtenu soit par construction, c'est-à-dire une description explicite des contenus qu'il autorise, soit par dérivation, c'est-à-dire modification d'un autre type. Un schéma peut aussi contenir des imports d'autres schémas, des définitions de groupes d'éléments et d'attributs et des contraintes de cohérences. La structure globale d'un schéma est donc la suivante. <?xml version="1.0" encoding="iso-8859-1"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> <!-- Déclarations d'éléments, d'attributs et définitions de types --> ... </xs:schema> Les sont déclarés par l'élément et les par l'élément . Les sont définis par les éléments et . RQ : on peut utiliser xsd, ou xs, ou un autre nom quelconque car ce n’est qu’un nommage d- Déclaration d’éléments Pour qu'un document soit valide pour un schéma, tout élément apparaissant dans le document doit être déclaré dans le schéma. Cette déclaration lui donne un type qui détermine, d'une part, les contenus possibles et, d'autre part, les attributs autorisés et obligatoires. Contrairement aux DTD, les attributs ne sont pas directement associés aux éléments. Ils font partie des types qui sont donnés aux éléments. La déclaration la plus simple d'un élément prend la forme suivante : < : ="element" ="type"/> Le type peut être numérique:
  • 21. 21 etc… Le type peut aussi être chaine ou nom : etc… Le type peut aussi être date : etc… Cependant, les schéma reprennent certains types des DTD à savoir : Figure 12: Hierarchie des types atomiques
  • 22. 22 e- Définition de type Parmi les types, les schémas XML distinguent les types simples introduits par le constructeur xsd:simpleType et les types complexes introduits par le constructeur xsd:complexType. Les types simples décrivent des contenus textuels, c'est-à-dire ne contenant que du texte. Ils peuvent être utilisés pour les éléments comme pour les attributs. Ils sont généralement obtenus par dérivation des types prédéfinis. Au contraire, les types complexes décrivent des contenus purs constitués uniquement d'éléments ou des contenus mixtes constitués de texte et d'éléments. Ils peuvent uniquement être utilisés pour déclarer des éléments. Seuls les types complexes peuvent définir des attributs. Figure 13: Hierarchie de construction de type Figure : Hiérarchie de construction des types Syntaxe de création de type simple par union <simpleType name=”nouveauType”> <union membertypes=”date string” /> </simpleType> <element name=”dateNaissance” type=”nouveauType” /> Syntaxe de création de type simple par list <simpleType name=”nouveauType”> <list itemType=”int” /> </simpleType> <element name=”serieNumerique” type=”nouveauType” /> <serieNumerique> 15 20 1857</ serieNumerique > < serieNumerique >55 38 77</ serieNumerique > Syntaxe de création de type simple par restriction <simpleType name=”typeFruit”> <restriction base=”string”> <enumeration value=”raisin” /> est une facette <enumeration value=”pomme” /> est une facette <enumeration value=”raison” /> est une facette </restriction> </simpleType>
  • 23. 23 <attribute name=”fruit” type=”typeFruit” /> f- Déclaration d’attributs La déclaration d'un attribut est semblable à la déclaration d'un élément mais elle utilise l'élément xsd:attribute au lieu de l'élément xsd:element. Les attributs name et type de xsd:attribute spécifient respectivement le nom et le type de l'attribut. Le type d'un attribut est nécessairement un type simple puisque les attributs ne peuvent contenir que du texte. La déclaration d'un attribut prend la forme suivante. < : ="name" ="type"/> Exemple: < : =" " =" "/>