1
Année universitaire : 2014– 2015
REPUBLIQUE DU SENEGAL***** * * ********
UNIVERSITE CHEIKH ANTA DIOP DE DAKAR
eXtensible...
2
Plan
I- Présentation de XML................................................................................................
3
I- Présentation de XML
Le langage XML (eXtensible Markup Language) est un format général de documents orienté
texte. Il ...
4
globalement confié au navigateur. Les paragraphes des documents HTML sont, par exemple,
écrits au kilomètre, sans indica...
5
- SVG(Scalable Vector Graphics) : Description de dessins vectoriels
- MathML(Mathematical Markup Language) : Description...
6
appropriée. Cette possibilité d'adapter la grammaire aux données confère une grande
souplesse à XML. Il existe plusieurs...
7
Figure 3: Vue au niveau du navigateur de l'exercice France Italie Espagne
Exercice 2 :
Amandine possède trois (3) robes ...
8
Figure 4: Document xml de l'exercice Amandine et sa garde robe
Exercice3 :
Mr Dupont et Mme Martin son enseignant de fra...
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 X...
11
III- DTD
Le DTD ou Document Type Declaration ou encore Document Type Definition est l'ensemble
des règles et des propri...
12
Figure 7: DTD de l'exercice Amandine et sa garde robe
<!ELEMENT vetements (vetement+)>
<!ELEMENT vetement (type,numero,...
13
Figure 8: DTD de l'exercice les enseignants et leurs eleves
b- Déclaration d’éléments
Les déclarations d'éléments const...
14
default de l'attribut. Le nom de l'attribut doit être un nom XML.
<! >
RQ : Les DTD proposent un choix fini de type pou...
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-...
16
17
Figure 10: Schema XML de l'agenda
CODE SOURCE EXERCICE
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http...
18
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="nom" type="xs:string"/>
<xs:element name="prenom" type...
19
<xs:element maxOccurs="unbounded" ref="enseignant"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="e...
20
<xs:element name="numero" type="xs:string"/>
<xs:element name="couleur" type="xs:string"/>
<xs:element name="saison" ty...
21
etc…
Le type peut aussi être chaine ou nom :
etc…
Le type peut aussi être date :
etc…
Cependant, les schéma reprennent ...
22
e- Définition de type
Parmi les types, les schémas XML distinguent les types simples introduits par le constructeur
xsd...
23
<attribute name=”fruit” type=”typeFruit” />
f- Déclaration d’attributs
La déclaration d'un attribut est semblable à la ...
Prochain SlideShare
Chargement dans…5
×

xml dtd schema

447 vues

Publié le

Ceci est un rapport complet exercice à l'appui sur la le document XML, la DTD et les Shéma XML

Publié dans : Technologie
0 commentaire
0 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

  • Soyez le premier à aimer ceci

Aucun téléchargement
Vues
Nombre de vues
447
Sur SlideShare
0
Issues des intégrations
0
Intégrations
2
Actions
Partages
0
Téléchargements
10
Commentaires
0
J’aime
0
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive

xml dtd schema

  1. 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. 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. 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. 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. 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. 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. 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. 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. 9 Figure 5: Document XML relatif aux maitres et leurs eleves . Exo4 : Polyèdre
  10. 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. 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. 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. 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. 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. 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. 16
  17. 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. 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. 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. 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. 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. 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. 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: < : =" " =" "/>

×