Upload
misssara88
View
243
Download
0
Embed Size (px)
Citation preview
8/14/2019 Schmas XML
1/24
Schmas XML
M.Youssfi
8/14/2019 Schmas XML
2/24
Apports des schmas
Conu pour pallier aux dficiences pr cites des DTD,XML Schema propose, en plus des fonctionnalits fourniespar les DTD, des nouveauts : Le typage des donnes est introduit, ce qui permet la gestion de
boolens, d'entiers, d'intervalles de temps... Il est mme possiblede crer de nouveaux types partir de types existants.
La notion d'hritage. Les lments peuvent hriter du contenu etdes attributs d'un autre lment.
Le support des espaces de nom. Les indicateurs d'occurrences des lments peuvent tre tout
nombre non ngatif. Les schmas sont trs facilement concevables par modules. Les Schmas XML sont des documents XML ce qui signifie dun
parseur XML permet de les manipuler facilement.
8/14/2019 Schmas XML
3/24
Structure de base dun schma xml Comme tout document XML, un Schema XML commence par
un prologue, et a un lment racine.
L'lment racine est l'lment xsd:schema. Les lments du XML schma sont dfinis dans lespace nom
http://www.w3.org/2000/10/XMLSchema qui est prfix par xsd. Cela signifie que tous le lments de XML schma
commencent par xsd ()
8/14/2019 Schmas XML
4/24
Dclarations d'lments
Un lment, dans un schma, se dclare avec la balise.
Par exemple,
remarque est un lment de type simple contacts est un lment de type complexe
8/14/2019 Schmas XML
5/24
Dclarations d'attributs Un attribut, dans un schma, se dclare avec la balise
. Un attribut ne peut tre que de type simple Exemple:
Ici on dclare que contacts est un lment de type complexeet quil possde un attribut maj de type date
8/14/2019 Schmas XML
6/24
Contraintes doccurrences pour les attribus
L'lment attribute d'un Schema XML peut avoir troisattributs optionnels : use : indique le prsence , il peut prendre pour valeur
required(obligatoire), optional(facultatif) ou prohibited (ne doitpas apparaitre)
default : pour indiquer la valeur par dfaut fixed :indique l'attribut est renseign, la seule valeur que peut
prendre l'attribut dclar est celle de l'attribut fixed. Cet attributpermet de "rserver" des noms d'attributs pour une utilisationfuture, dans le cadre d'une mise jour du schma.
Exemple :
8/14/2019 Schmas XML
7/24
Dclaration d'lment ne contenant que du
texte avec un (ou plusieurs) attribut(s)
Un tel lment est de type complexe, car il contientau moins un attribut.
Afin de spcifier qu'il peut contenir galement dutexte, on utilise l'attribut mixed de l'lment.
Par dfaut, mixed="false"; il faut dans ce cas forcermixed="true".
Par exemple:
8/14/2019 Schmas XML
8/24
Dclaration et rfrencement
Il est beaucoup plus avantageux, pour des raisonsde clart, d'ordonner ces dclarations, ainsi qu'onpeut le voir sur cet exemple:
8/14/2019 Schmas XML
9/24
Types de donnes : Types simples
Types simples : types atomiques, listes et unions Types atomique:
8/14/2019 Schmas XML
10/24
Types simples : Listes Les types listes sont des suites de types simples (ou atomiques).
Il est possible de crer une liste personnalise, par "drivation" de typesexistants. Par exemple,
Un lment conforme cette dclaration serait
01 44 27 60 11. Il est galement possible d'indiquer des contraintes plus fortes sur les
types simples ; ces contraintes s'appellent des "facettes". Elles permettent par exemple de limiter la longueur de notre numro de
tlphone 10 nombres. Nous y reviendrons.
8/14/2019 Schmas XML
11/24
Types simples: Unions Les listes et les types simples intgrs ne permettent pas de choisir le type de
contenu d'un lment. On peut dsirer, par exemple, qu'un type autorise soit un nombre, soit une
chane de caractres particuliers. Il est possible de le faire l'aide d'une dclaration d'union. Par exemple, sous rserve que le type simple numroDeTlphone ait t
pralablement dfini (voir prcdemment), on peut dclarer...
Les lments suivants sont alors des "instances" valides de cette dclaration :
18
Pompiers
8/14/2019 Schmas XML
12/24
Types complexes
Un lment de type simple ne peutcontenir de sous-lment.
Il est ncessaire pour cela de le dclarerde type "complexe".
On peut alors dclarer,
des squences d'lments,des types de choix ou des contraintes
d'occurrences
8/14/2019 Schmas XML
13/24
Types complexes: squences dlments:
Nous savons dj comment, dans une DTD, nous pouvonsdclarer un lment comme pouvant contenir une suite desous-lments, dans un ordre dtermin.
Il est bien sr possible de faire de mme avec un schma. On utilise pour ce faire l'lment xsd:sequence, qui
reproduit loprateur, du langage DTD. Exemple:
8/14/2019 Schmas XML
14/24
Types Complexes : Choix dlment On peut vouloir modifier la dclaration de type
prcdente en stipulant qu'on doive indiquer soitl'adresse d'une personne, soit son adresse lectronique.Pour cela, il suffit d'utiliser un lment xsd:choice :
8/14/2019 Schmas XML
15/24
Types Complexe : Elment All
Llment All indique que les lments enfants doivent apparatre une fois(ou pas du tout), et dans n'importe quel ordre.
Cet lment xsd:all doit tre un enfant direct de l'lmentxsd:complexType.
Par exemple...
8/14/2019 Schmas XML
16/24
Indicateur doccurences
Pendant la dclaration dun lment, on peutindiquer le nombre minimum et le nombremaximum de fois quil doit apparatre
On utilise pour cela les attributs minOccurs etmaxOccurs:
minOccurs prend par dfaut la valeur 1 et peutprendre les autres valeurs positives
maxOccurs prend par dfaut la valeur 1 et peutprendre les autres valeurs positive ouunbounded (infini).
8/14/2019 Schmas XML
17/24
Drivation
Les types simples et complexes permettent djde faire plus de choses que les dclarationsdans le langage DTD.
Il est possible de raffiner leur dclaration de tellemanire qu'ils soient une "restriction" ou une extension d'un type dj existant, en vue de
prciser un peu plus leur forme. Nous allons nous limiter dans ce coursd'initiation la restriction des types simples.
8/14/2019 Schmas XML
18/24
8/14/2019 Schmas XML
19/24
Drivation : Restriction de types
Une "facette" permet de placer une contrainte sur l'ensemble desvaleurs que peut prendre un type de base.
Par exemple, on peut souhaiter crer un type simple, appelMonEntier, limit aux valeurs comprises entre 0 et 99 inclus.
On drive ce type partir du type simple prdfininonNegativeInteger, en utilisant la facette maxExclusive.
8/14/2019 Schmas XML
20/24
Drivation : Restriction de types
Il existe un nombre important de facettes quipermettent de : fixer, restreindre ou augmenter la longueur minimale
ou maximale d'un type simple numrer toutes les valeurs possibles d'un type prendre en compte des expressions rgulires fixer la valeur minimale ou maximale d'un type (voir
l'exemple ci-dessus) fixer la prcision du type...
8/14/2019 Schmas XML
21/24
Drivation : Exemples de facettes
Limiter les diffrentes valeurs possible dun type:
8/14/2019 Schmas XML
22/24
Drivation : Exemples de facettes
Limiter la longueur dune chane de caractres:
8/14/2019 Schmas XML
23/24
Drivation : Exemples de facettes
Expressions rgulires pour une adresse email:
8/14/2019 Schmas XML
24/24
Exemple dapplication
Un annuaire se compose de plusieurs personnes. Chaque personne est qualifi par un code et dfini par :
Un nom qui est dcompos en nom de famille et prnom Une date de naissance
De 1 3 adresses email qui doivent respecter la forme dune adresseemail.
plusieurs numros de tlphone qui peuvent tre soit une lise denombres de type byte, soit une chane de caractres.
On dfinit galement lattribut code comme cl dune personne. Ecrire le schma XML
Ecrire un document XML correspondant. Ecrire une feuille de style xsl qui permet dafficher lannuaire en
format HTML