Télécharger la présentation
La présentation est en train de télécharger. S'il vous plaît, attendez
Publié parLucie Papineau Modifié depuis plus de 9 années
1
ACCARY-BARBIER / CNAM - Cycle C - 2005-2006 1 1ère partie : Technologies XML CHAPITRE 1 : XML et DTD CHAPITRE 2 : Schémas XML CHAPITRE 3 : XPath et XSLT CHAPITRE 4 : Applications XML
2
ACCARY-BARBIER / CNAM - Cycle C - 2005-20062 Chapitre 2 : Schémas XML 1. Introduction 1.1. Pourquoi XML-Schéma 1.2. Syntaxe des Schémas 2. Typage des éléments et attributs 2.1. Types simples 2.2. Types complexes 2.3. Dérivation de types 3. Validation par schémas En savoir plus…
3
ACCARY-BARBIER / CNAM - Cycle C - 2005-20063 Limitations des DTD Les DTDs ont des limitations : Syntaxe particulière Pas la même que celle du balisage des instances Type de données limités : PCDATA Comment imposer qu'un élément soit un entier entre 0 et 100 Pas de définition précise du nombre d'occurrence Constructeurs (, et | ) et indicateurs ( *, + et ? ) ne suffisent pas Possibilités de réutilisations très limitées (uniquement grâce aux ENTITIES) Pas d’héritage
4
ACCARY-BARBIER / CNAM - Cycle C - 2005-20064 Objectif de XML-Schémas Développer un mécanisme de schéma (au sens BD) pour exprimer des contraintes sur un type de document Contraintes structurales Ordre, occurrence des éléments, attributs (comme les DTD) En + : intégration des espaces de noms, contraintes incomplètes, héritage Typage des données : chaînes de caractères, entiers, dates, données binaires, uri, etc. Mode d’expression des schémas : structure d’éléments et attributs, syntaxe XML Validation des instances par rapport aux schémas
5
ACCARY-BARBIER / CNAM - Cycle C - 2005-20065 Avantages de Schémas sur les DTDs Typage des données Plusieurs types de données Possibilité de créer des types Même syntaxe que les documents On peut parser les schémas avec les parseurs XML On peut transformer les schémas avec XSLT Schémas orientés objet On peut étendre ou restreindre un type Schémas extensibles comme les documents XML On peut réutiliser un schémas dans d'autres schémas On peut créer son propre type de données sur la base d'un type standard On peut référencer plusieurs schémas dans le même document
6
ACCARY-BARBIER / CNAM - Cycle C - 2005-20066 Histoire Les schémas XML ont été créés au W3C dans l’activité XML octobre 1998 : création du XML Schema WG février 1999 : publication de la note "XML Schema Requirements" mars 1999 : publication des premiers drafts mai 2001 : recommandation XML Schema 1.0 en 3 documents Primer Structures Datatypes juillet 2002 : nouveau charter (maintenance)
7
ACCARY-BARBIER / CNAM - Cycle C - 2005-20067 Chapitre 2 : Schémas XML 1. Introduction 1.1. Pourquoi XML-Schéma 1.2. Syntaxe des Schémas 2. Typage des éléments et attributs 2.1. Types simples 2.2. Types complexes 2.3. Dérivation de types 3. Validation par schémas En savoir plus…
8
ACCARY-BARBIER / CNAM - Cycle C - 2005-20068 Structure d’un schéma XML Un schéma XML est un document XML Elément racine Ses éléments de haut niveau servent essentiellement à déclarer Les éléments du type de document défini Les types Les notations Les éléments subordonnés servent essentiellement à déclarer Les modèles de contenus Les attributs applicables aux éléments
9
ACCARY-BARBIER / CNAM - Cycle C - 2005-20069 Exemple de schéma XML DTD Schéma XML <attribute name="timestamp" type="date" minOccurs="1"/> D’après H. Thomson
10
ACCARY-BARBIER / CNAM - Cycle C - 2005-200610 Caractéristiques des schémas Distinction entre définition de types et définition des éléments qui peuvent apparaître dans les instances Les éléments ont un nom et un type Types simples et complexes Mécanismes de construction de types Classes d’équivalence Construction modulaire Mécanismes d’extension Facilités de documentation des schémas (via oXygen)
11
ACCARY-BARBIER / CNAM - Cycle C - 2005-200611 Déclaration d'élément nom : permet de nommer l'élément type : donne le type de l'élément Simple, Complexe
12
ACCARY-BARBIER / CNAM - Cycle C - 2005-200612 Déclaration d’attributs : principe nom : permet de nommer l'attribut type : donne le type de l'attribut Simple uniquement Déclaration après les déclarations de type complexe
13
ACCARY-BARBIER / CNAM - Cycle C - 2005-200613 Attributs : indicateurs d'occurrences Déclarations d’attributs use : contrôle l’occurrence required, optional, prohibited Default : donne la valeur par défaut Doit être du type déclaré type_attr Fixed (facultatif) : fixe la valeur de l'attribut Les concepts de valeur fixe et de valeur par défaut sont exclusifs
14
ACCARY-BARBIER / CNAM - Cycle C - 2005-200614 Groupe d'attributs
15
ACCARY-BARBIER / CNAM - Cycle C - 2005-200615 Chapitre 2 : Schémas XML 1. Introduction 1.1. Pourquoi XML-Schéma 1.2. Syntaxe des Schémas 2. Typage des éléments et attributs 2.1. Types simples 2.2. Types complexes 2.3. Dérivation de types 3. Validation par schémas En savoir plus…
16
ACCARY-BARBIER / CNAM - Cycle C - 2005-200616 Types Ensemble de contraintes sur les contenus d’élément et les valeurs d’attribut Types simples : contraintes sur les valeurs des chaînes de caractères Pour les éléments qui ne contiennent que du contenu de base (texte, nombres, dates, etc.) Types complexes : contraintes sur les éléments qui contiennent d’autres éléments et/ou ont des attributs Les attributs sont toujours de type simple.
17
ACCARY-BARBIER / CNAM - Cycle C - 2005-200617 Types simples Types des éléments qui ne contiennent pas d’autres éléments ou types des attributs Les types simples sont prédéfinis ou dérivés des types prédéfinis Un certain nombre de types simples sont prédéfinis : Chaîne de caractères, nombre décimal, date, entier positif, etc. string, normalizedString, token, byte, unsignedByte, base64Binary, hexBinary, integer, positiveInteger, negativeInteger, nonNegativeInteger, nonPositiveInteger, int, unsignedInt, long, unsignedLong, short, unsignedShort, decimal, float, double, boolean, time, dateTime, duration, date, gMonth, gYear, gYearMonth, gDay, gMonthDay, Name, QName, NCName, anyURI, language, ID, IDREF, IDREFS, ENTITY, ENTITIES, NOTATION, NMTOKEN, NMTOKENS
18
ACCARY-BARBIER / CNAM - Cycle C - 2005-200618 Hiérarchie des types simples prédéfinis
19
ACCARY-BARBIER / CNAM - Cycle C - 2005-200619 Chapitre 2 : Schémas XML 1. Introduction 1.1. Pourquoi XML-Schéma 1.2. Syntaxe des Schémas 2. Typage des éléments et attributs 2.1. Types simples 2.2. Types complexes 2.3. Dérivation de types 3. Validation par schémas En savoir plus…
20
ACCARY-BARBIER / CNAM - Cycle C - 2005-200620 Types complexes Types des éléments qui contiennent d’autres éléments et/ou ont des attributs Les types complexes sont déclarés par l’élément complexType qui contient Des déclarations d’éléments contenus Déclarations directes Déclarations par référence à un autre élément Des déclarations d’attributs Les éléments sont déclarés par l’élément element Les attributs sont déclarés par l’élément attribute
21
ACCARY-BARBIER / CNAM - Cycle C - 2005-200621 Séquences, ensembles et choix Trois éléments pour exprimer les modèles de contenu : Séquence ( sequence ) : les éléments déclarés par les fils doivent apparaître dans l’instance dans le même ordre que dans le schéma Ensemble sans ordre ( all ) : les éléments déclarés par les fils peuvent apparaître au plus une fois dans l’instance, dans un ordre quelconque. all doit être le seul fils d’un modèle de contenu Choix ( choice ) : un seul élément déclaré par un des fils peut apparaître dans l’instance Un élément offre une facilité d’écriture : Groupe ( group ) : équivalent des entités paramètres de XML (interdit dans all ) Les attributs minOccurs et maxOccurs s’appliquent aux éléments sequence, all et choice
22
ACCARY-BARBIER / CNAM - Cycle C - 2005-200622 Séquence d'éléments, groupe et choix
23
ACCARY-BARBIER / CNAM - Cycle C - 2005-200623 Elément All
24
ACCARY-BARBIER / CNAM - Cycle C - 2005-200624 Contraintes d'occurrences et de valeurs Le nombre d’occurrences est contrôlé par les attributs minOccurs et maxOccurs Valeurs possibles : minOccurs : entier positif ou nul maxOccurs : entier positif ou nul, unbounded Valeurs par défaut des deux attributs : 1 (une occurrence obligatoire si les deux attributs sont omis) Les valeurs par défaut et valeur fixe sont définies par les attributs default et fixed default spécifie la valeur à considérer si l’élément est vide dans l’instance Aucune action si l’élément est absent dans l’instance
25
ACCARY-BARBIER / CNAM - Cycle C - 2005-200625 Contenu mixte Elément à contenu mixte : Elément qui contient au même niveau : Eléments et texte Attributs et texte attribut mixed de l'élément Par défaut, mixed ="false"
26
ACCARY-BARBIER / CNAM - Cycle C - 2005-200626 Contenu non contraint et contenu nul Elément qui n’a aucune contrainte sur son contenu Type de base d’où sont dérivés tous les types simples et complexes : anyType anyType est le type par défaut Elément à contenu nul : Elément qui peut être ne pas avoir de contenu Permet la distinction entre élément absent et élément présent sans contenu Attribut nillable de l'élément Ou
27
ACCARY-BARBIER / CNAM - Cycle C - 2005-200627 Chapitre 2 : Schémas XML 1. Introduction 1.1. Pourquoi XML-Schéma 1.2. Syntaxe des Schémas 2. Typage des éléments et attributs 2.1. Types simples 2.2. Types complexes 2.3. Dérivation de types 3. Validation par schémas En savoir plus…
28
ACCARY-BARBIER / CNAM - Cycle C - 2005-200628 Types simples dérivés On peut créer de nouveaux types simples en dérivant des types simples existants (prédéfinis ou dérivés) Un nouveau type simple peut être défini par Restriction : sous-ensemble des valeurs d’un type existant liste : liste de valeurs d’un type existant union : choix de valeurs parmi un ensemble de types existant extension Un nouveau type simple est déclaré par un élément simpleType qui contient un élément restriction, list ou union
29
ACCARY-BARBIER / CNAM - Cycle C - 2005-200629 Restriction de type simple La restriction d’un type simple se fait par facettes : Pour les nombres, dates, durées : Valeur minimum, valeur maximum, nombre de chiffres, patterns, énumération pour les chaînes, noms, ID : Patterns (expressions régulières), longueur, longueur minimum, longueur maximum Exemple : Le type integer a 8 facettes optionnelles : totalDigits pattern whitespace enumeration maxInclusive maxExclusive minInclusive minExclusive
30
ACCARY-BARBIER / CNAM - Cycle C - 2005-200630 Exemples de restriction de type simple
31
ACCARY-BARBIER / CNAM - Cycle C - 2005-200631 Listes Suites de type simples (atomiques) 3 types prédéfinis par XML Schémas NMTOKENS ENTITIES IDREF On peut créer d'autres listes par dérivation Possibilité de contraindre encore plus les types en utilisant des facettes Ex : préciser qu'un phonenumber est limité à 10 nombres
32
ACCARY-BARBIER / CNAM - Cycle C - 2005-200632 Unions Pour autoriser plusieurs types simples, déclaration d'union de types simples Ex suivant, le type technicalmemo peut contenir des types phonenumber (précédemment décrit) et/ou des chaînes de caractères
33
ACCARY-BARBIER / CNAM - Cycle C - 2005-200633 Extension de types simples Élément avec un contenu simple et attributs indique que l'élément ne contient pas de sous-élément. Dérivation d'un type complexe à partir d'un type simple EX : Besoin de définir un élément contenant une valeur simple, et possédant un attribut, comme 67.
34
ACCARY-BARBIER / CNAM - Cycle C - 2005-200634 Restriction de types complexes Construction d’un nouveau type complexe en supprimant des composants à un type complexe existant Comparable à la restriction de types simples : les valeurs du nouveau type constituent un sous-ensemble des valeurs du type de base Ajout d’une valeur par défaut Ajout d’une valeur fixe Spécification du type quand aucun type n’était spécifié Réduction du nombre d’occurences (attributs minOccurs et maxOccurs ) La restriction doit répéter explicitement tous les composants du type de base qui sont conservés
35
ACCARY-BARBIER / CNAM - Cycle C - 2005-200635 Exemple de restriction
36
ACCARY-BARBIER / CNAM - Cycle C - 2005-200636 Extension de types complexes Ajouter des éléments ou attributs à un type complexe Title Author Date Publisher ISBN BookPublication Publication
37
ACCARY-BARBIER / CNAM - Cycle C - 2005-200637 Contrôle de la création de types dérivés (1/2) On peut interdire l’extension et/ou la restriction d’un type complexe lors de sa définition Attribut final (valeurs : extension, restriction, #all ) Ex : interdire toute restriction du type Address (mais pas l’extension)
38
ACCARY-BARBIER / CNAM - Cycle C - 2005-200638 Contrôle de la création de types dérivés (2/2) On peut interdire la dérivation d’un type simple facette par facette, lors de sa définition Attribut fixed dans la définition de la facette concernée Ex : interdire toute modification de la longueur du type Postcode (mais pas des autres facettes)
39
ACCARY-BARBIER / CNAM - Cycle C - 2005-200639 Chapitre 2 : Schémas XML 1. Introduction 1.1. Pourquoi XML-Schéma 1.2. Syntaxe des Schémas 2. Typage des éléments et attributs 2.1. Types simples 2.2. Types complexes 2.3. Dérivation de types 3. Validation par schémas En savoir plus…
40
ACCARY-BARBIER / CNAM - Cycle C - 2005-200640 Schémas modulaires Un schéma XML peut être éclaté en plusieurs fichiers (maintenabilité, lisibilité, réutilisation, contrôle d’accès, etc.) Un fichier est inclus dans un autre par l’élément include Un fichier peut inclure plusieurs autres fichiers Possibilité d'inclusion en cascade L’ensemble des fichiers inclus et incluant doivent concerner le même espace de nom cible Ex : Inclusion avec redéfinition L’élément include permet d’utiliser des définitions et déclarations externes telles quelles. L’élément redefine permet d’utiliser des définitions et déclarations externes en les modifiants.
41
ACCARY-BARBIER / CNAM - Cycle C - 2005-200641 Exemple d'inclusion avec redéfinition
42
ACCARY-BARBIER / CNAM - Cycle C - 2005-200642 Annotations L’élément annotation permet d’annoter les schémas XML pour le lecteur humain et les applications L’élément annotation a deux sous-éléments : documentation : destiné au lecteur humain appInfo : fournit de l’information aux applications et feuilles de style L’élément annotation peut apparaître au début de la plupart des constructions
43
ACCARY-BARBIER / CNAM - Cycle C - 2005-200643 Schémas et instances Une instance ne référence pas forcément un schéma Une instance peut référencer son schéma par l’attribut xsi:schemaLocation Un validateur est libre d’utiliser cette information on non Ex : http://www.example.com/Reporthttp://www.w3.org/2001/XMLSchema-instance http://www.example.com/Report.xsd
44
ACCARY-BARBIER / CNAM - Cycle C - 2005-200644 Schémas et Infoset La validité par rapport à une DTD et sont caractère bien- formé sont définies pour des séquences de caractères La validité par rapport à un schéma XML est définie pour un Infoset Modèle de données abstrait pour les documents XML Définit un petit nombre de composants : élément, attribut, etc. Chaque composant a des propriétés : nom, enfants, etc. La validation des instances n’est pas obligatoire Deux fonctions d’un validateur : 1.Vérification de la conformité par rapport aux contraintes exprimées dans le schéma 2.Ajout d’informations à l’ infoset : types, valeurs par défaut, etc.
45
ACCARY-BARBIER / CNAM - Cycle C - 2005-200645 Autres mécanismes Espaces de noms Contrôle d’unicité : éléments unique, key, keyref Importations avec dérivations possibles de définitions globales venant de schémas d’espaces de noms différents
46
ACCARY-BARBIER / CNAM - Cycle C - 2005-200646 Conclusion Avantages des schémas XML sur les DTD Grand nombre de types offerts, possibilité d’ajouter des contraintes sur les types fournis Possibilité de créer de nouveaux types Héritage de types Support des espaces de noms Indicateurs d’occurrences plus riche Meilleur contrôle des contenus mixtes Modularité Documentation
47
ACCARY-BARBIER / CNAM - Cycle C - 2005-200647 Chapitre 2 : Schémas XML 1. Introduction 1.1. Pourquoi XML-Schéma 1.2. Syntaxe des Schémas 2. Typage des éléments et attributs 2.1. Types simples 2.2. Types complexes 2.3. Dérivation de types 3. Validation par schémas En savoir plus…
48
ACCARY-BARBIER / CNAM - Cycle C - 2005-200648 En savoir plus… http://www.w3.org/ http://xmlfr.org/ http://xmlfr.org/ Cours et tutoriels en ligne …. Jean-Jacques Thomasson, 2002, Schémas XML, Eyrolles
Présentations similaires
© 2024 SlidePlayer.fr Inc.
All rights reserved.