1 Cours 5 Introduction aux schémas XML Éric Laporte Institut Gaspard-Monge Université Paris-Est Marne-la-Vallée.

Slides:



Advertisements
Présentations similaires
Mais vous comprenez qu’il s’agit d’une « tromperie ».
Advertisements

Le Nom L’adjectif Le verbe Objectif: Orthogram
ORTHOGRAM PM 3 ou 4 Ecrire: « a » ou « à » Référentiel page 6
Licence pro MPCQ : Cours
Additions soustractions
Distance inter-locuteur
1 Plus loin dans lutilisation de Windows Vista ©Yves Roger Cornil - 2 août
11 Bienvenue Entrez le nom du groupe ou projet ici mardi, 17 novembre 2009.
DTD Sylvain Salvati
Les numéros 70 –
Les numéros
Les identités remarquables
Le, la, les words Possessive Adjectives MINE!!. 2 My in french is mon, ma,mes... Le word/ begins with a vowel: Mon La word: Ma Les word: Mes.
Introduction à XSLT - cours 4
Cours MIAGE « Architectures Orientées Services » Henry Boccon-Gibod 1 Architectures Orientées Services Composants de Service Exemple pratique de développement.
Les espaces de nommage XML par Philippe Poulard 1
XML schema Objectifs Valider un doc. XML pour des contraintes syntaxiques Documenter un type de documents XML caractérisé par des contraintes Encadrer.
Le typage orienté objet pour les données XML
Sirop de Liège « industriel »
Algorithme et structure de données
LES TRIANGLES 1. Définitions 2. Constructions 3. Propriétés.
La législation formation, les aides des pouvoirs publics
1 7 Langues niveaux débutant à avancé. 2 Allemand.
COTE DIVOIRE IMAGES DES ATROCITES COMMISES PAR ALASSANE DRAMANE OUATARA, SORO GUILAUMES ET LEURS HOMMES 1.
ORTH 1 CE2 Je sais écrire sans erreur les pluriels des noms se terminant par s, x, z.
SERABEC Simulation sauvetage aérien avec un Hercule C130. Départ de St-Honoré le 4 octobre Durée de vol 3 heures. Premier vol en Hercule pour les.
La méthodologie………………………………………………………….. p3 Les résultats
Jack Jedwab Association détudes canadiennes Le 27 septembre 2008 Sondage post-Olympique.
Le soccer & les turbans Sondage mené par lAssociation détudes canadiennes 14 juin 2013.
Présentation générale
1 Guide de lenseignant-concepteur Vincent Riff 27 mai 2003.
GRAM 1 CE2 Je sais transformer une phrase affirmative en phrase négative.
Le drapeau canadien comme symbole de fierté nationale : une question de valeurs partagées Jack Jedwab Association détudes canadiennes 28 novembre 2012.
Le Concours de Conaissance Francais I novembre 2012.
Si le Diaporama ne s'ouvre pas en plein écran Faites F5 sur votre clavier.
Titre : Implémentation des éléments finis sous Matlab
Projet poker 1/56. Introduction Présentation de léquipe Cadre du projet Enjeux Choix du sujet 2.
LES NOMBRES PREMIERS ET COMPOSÉS
Logiciel gratuit à télécharger à cette adresse :
Les chiffres & les nombres
RACINES CARREES Définition Développer avec la distributivité Produit 1
Représentation des systèmes dynamiques dans l’espace d’état
DUMP GAUCHE INTERFERENCES AVEC BOITIERS IFS D.G. – Le – 1/56.
Schémas XML - cours 2 Éric Laporte Institut Gaspard-Monge
Tournoi de Flyball Bouin-Plumoison 2008 Tournoi de Flyball
Année universitaire Réalisé par: Dr. Aymen Ayari Cours Réseaux étendus LATRI 3 1.
MAGIE Réalisé par Mons. RITTER J-P Le 24 octobre 2004.
1 INETOP
Aire d’une figure par encadrement
Comment rendre une femme heureuse…
P.A. MARQUES S.A.S Z.I. de la Moussière F DROUE Tél.: + 33 (0) Fax + 33 (0)
Les fondements constitutionnels
MAGIE Réalisé par Mons. RITTER J-P Le 24 octobre 2004.
Initiation à XML Sebti Foufou.
8 - XML Cours XML.
Traitement de différentes préoccupations Le 28 octobre et 4 novembre 2010.
1/65 微距摄影 美丽的微距摄影 Encore une belle leçon de Macrophotographies venant du Soleil Levant Louis.
Nom:____________ Prénom: ___________
LES COURSES SUR PISTE.
Annexe Résultats provinciaux comparés à la moyenne canadienne
XML-schema. Pourquoi XML-schema Les DTD : Pas de typage, peu de contraintes sur les contenus nombre d'apparitions d'un élément à choisir entre 0 et 1.
La formation des maîtres et la manifestation de la compétence professionnelle à intégrer les technologies de l'information et des communications (TIC)
Les Schémas XML Le standard W3C.
Programmation Web : Introduction à XML
Programmation Web : Schémas XSD Jérôme CUTRONA 19:27:07 Programmation Web
1 Schémas XML - cours 1 Éric Laporte Institut Gaspard-Monge Université Paris-Est Marne-la-Vallée.
Modélisation des documents: DTD et Schéma
XSD XML Schema Definition Année universitaire UP web.
ACCARY-BARBIER / CNAM - Cycle C ère partie : Technologies XML  CHAPITRE 1 : XML et DTD  CHAPITRE 2 : Schémas XML  CHAPITRE 3 : XPath.
Transcription de la présentation:

1 Cours 5 Introduction aux schémas XML Éric Laporte Institut Gaspard-Monge Université Paris-Est Marne-la-Vallée

2 Sommaire Grammaires pour les documents XML4 Schéma pour une collection d'entrées8 Validateurs17 Attributs18 Types simples25 Référence à un schéma41 Inclure des éléments spécifiés dans d'autres schémas45 Schémas pour documents sans espaces de noms56 Documents à structure complexe61

3 Des grammaires en XML Une DTD Un schéma XML DTD ou schéma XML ? Un premier schéma (1/4) Un premier schéma (2/4) Un premier schéma (3/4) Un premier schéma (4/4) Espaces de noms (1/2) Espaces de noms (2/2) Déclaration et référence Types (1/2) Types (2/2) Validateurs Déclarer un attribut (1/3) Déclarer un attribut (2/3) Déclarer un attribut (3/3) Attribut sur un type simple (1/4) Attribut sur un type simple (2/4) Attribut sur un type simple (3/4) Attribut sur un type simple (4/4) Types simples Types simples prédéfinis (1/5) Types simples prédéfinis (2/5) Types simples prédéfinis (3/5) Types simples prédéfinis (4/5) Types simples prédéfinis (5/5) Liste balisée Types simples dérivés : restriction Restriction par Restriction par énumération Restriction par Autres restrictions de types simples 37.Types simples dérivés : liste 38.Types simples dérivés : union (1/) 39.Types simples dérivés : union (2/) 40.Dérivations de types 41.Référence à un schéma XML (1/2) 42.Référence à un schéma XML (2/2) 43.Référence à plusieurs schémas XML 44.Annoter un schéma 45.Inclure des éléments spécifiés dans d'autres schémas 46.Solution avec s:import (1/2) 47.Solution avec s:import (2/2) 48.Solution avec s:any (1/2) 49.Solution avec s:any (2/2) 50.Variantes Schémas partiels (1/2) 53.Schémas partiels (2/2) 54.Inclure des noeuds texte (1/2) 55.Inclure des noeuds texte (2/2) 56.Schéma d'un document cible sans espace de noms (1/2) 57.Schéma d'un document cible sans espace de noms (2/2) 58.Document cible partiel (1/2) 59.Document cible partiel (2/2) 60.Schéma pour plusieurs types de documents 61.Types complexes (1/3) 62.Types complexes (2/3) 63.Types complexes (3/3) (1/6) 66. (2/6) 67. (3/6) 68. (4/6) 69. (5/6) 70. (6/6)

4 Des grammaires en XML Chaque type de document XML a sa syntaxe XHTML, XSLFO, XSLT, CML... et on peut en définir de nouveaux Grammaire Définit la syntaxe d'un type de document Exemple : DTD Grammaire en XML : schéma XML Un document est valide par rapport à une grammaire s'il respecte les contraintes en plus d'être bien formé

5 Une DTD <!ATTLIST resume filmref ID #REQUIRED realisateur CDATA #REQUIRED img CDATA #IMPLIED pdf CDATA #IMPLIED> (...)

6 Un schéma XML (...)

7 DTD ou schéma XML ? DTD Format très utilisé Relativement lisible Grammaire en SGML (ancien concurrent de XML) Compatible avec XML Schéma XML Grammaire en XML Permet d'engendrer du code Java Version simplifiée : Relax NG Possibilités de contrôle strict (ex. : entier entre 1 et 10)

8 Un premier schéma (1/4) Une collection d'entrées avec des champs simples 37 American Beauty - Theme Air american beauty soundtrack MPEG audio file T15:24:23Z T14:09:55Z

9 Un premier schéma (2/4) Schéma correspondant <s:schema xmlns:s=" targetNamespace=" xmlns:aud="

10 Un premier schéma (3/4) (...)

11 Un premier schéma (4/4) (...) (...)

12 Espaces de noms (1/2) - du schéma XML déclaré ici avec le préfixe s - du document XML cible : c'est l'espace de noms des éléments du document cible décrits par le schéma On l'appelle l'espace de noms cible du schéma XML On le déclarer dans le schéma XML deux fois : avec targetNameSpace et avec xmlns et un préfixe <s:schema xmlns:s=" targetNamespace=" xmlns:aud="

13 Espaces de noms (2/2) Les éléments déclarés par fils de appartiennent automatiquement à l'espace de noms cible : pas de préfixe dans la déclaration En cas de référence à une déclaration, utiliser le préfixe Il faut donc déclarer l'espace de noms cible avec un préfixe <s:schema xmlns:s=" targetNamespace=" xmlns:aud="

14 Déclaration et référence On peut faire référence à un nom d'élément avant de le déclarer

15 Types (1/2) Décrivent les contenus possibles d'un élément ou d'un attribut séquence d'éléments dans un ordre fixe Par défaut, minOccurs et maxOccurs valent 1 <s:element minOccurs="0" maxOccurs="unbounded" ref="aud:Track"/>

16 Types (2/2) type="s:integer" un noeud texte contenant un entier type="s:string" un noeud texte quelconque type="s:dateTime" date et heure au format ISO (...) 37 American Beauty - Theme (...) T15:24:23Z

17 Validateurs Validateur du W3C Si l'élément racine du document cible ne correspond à aucune déclaration globale (fille de s:schema), le validateur ne vérifie pas la syntaxe et produit le message : No declaration for document root found, validation was lax Exemple : le nom de l'élément racine correspond, mais pas l'espace de noms Autres validateurs Pas toujours aussi fiables que celui du W3C Altova : message moins trompeur The element declaration was not found for root element

18 Déclarer un attribut (1/3) On veut que l'élément Track puisse avoir un attribut (sans espace de noms) 37 American Beauty - Theme Air american beauty soundtrack MPEG audio file

19 Déclarer un attribut (2/3) Le nom est déclaré sans préfixe Déclaration locale Les attributs doivent être déclarés après le contenu (...)

20 Déclarer un attribut (3/3) type="s:boolean"true, false, 1, 0 Pour que l'attribut soit obligatoire Par défaut, use="optional" Pour imposer une valeur Si l'attribut est présent, sa valeur doit être "euro" Même possibilité pour les éléments :

21 Attribut sur un type simple (1/4) Bloodroot Sanguinaria canadensis 4 Mostly Shady Columbine

22 Attribut sur un type simple (2/4)

23 Attribut sur un type simple (3/4)

24 Attribut sur un type simple (4/4) type="s:decimal" un noeud texte contenant un nombre en notation décimale (avec point : 2.44) : décrit les valeurs du noeud texte sous l'élément PRICE

25 Types simples Pour les noeuds qui contiennent du texte sans balises - un noeud de type texte - une valeur d'attribut type="s:string" un noeud texte quelconque American Beauty - Theme

26 Types simples prédéfinis (1/5) type="s:boolean" true, false, 1, 0 type="s:integer" 0, 15, -4, +15 type="s:decimal" 2.44, 15, -2.4, type="s:float" E23 Autres types numériques : double, long, short, int, byte... type="s:dateTime" T11:34:46Z type="s:date" type="s:time" 11:34:46Z type="s:gYear" 2008(dans le calendrier grégorien) type="s:gMonthDay" (tous les 26 septembre)

27 Types simples prédéfinis (2/5) Normalisation Les validateurs comparent la valeur trouvée dans le document avec la valeur imposée par le schéma Les validateurs normalisent certains types avant comparaison Exemple : s:token <s:attribute name="Kind" type="s:token" fixed="MPEG audio file"/> Le document est valide

28 Types simples prédéfinis (3/5) Normalisation type="s:string" pas de normalisation type="s:token" normalisation : remplacer toute suite de caractères blancs par 1 espace, et supprimer les espaces au début et à la fin type="s:boolean" true = 1, false = 0 type="s:integer" 15 = +15 type="s:decimal" 2.44 =

29 Types simples prédéfinis (4/5) Autres types texte normalisés type="s:NMTOKEN"Lettres, chiffres, [-_.:], mais pas d'espaces blancs type="s:Name"Même chose mais commence par une lettre ou [_:] type="s:QName"Comme Name avec au plus un [:] type="s:NCName"Comme Name mais sans [:] type="s:ID"Comme NCName mais unique dans le document Le validateur supprime les espaces au début et à la fin avant de comparer

30 Types simples prédéfinis (5/5) Types listes prédéfinis : NMTOKENS... Les chaînes de caractères sont séparées par des espaces Eschscholzia Papaver Sanguinaria Les types listes prédéfinis font concurrence à des listes balisées

31 Liste balisée Eschscholzia Papaver Sanguinaria

32 Types simples dérivés : restriction Restriction : le type dérivé est inclus dans le type de base

33 Restriction par Caractères spéciaux \ |. - ^ ? * + { } ( ) [ ] Classes de caractères Unicode \p{L} lettres\P{L} tout sauf les lettres \p{Lu} lettres majuscules\P{Lu} \p{IsBasicLatin} alphabet latin de base Ces codes sont utilisables à l'intérieur des [ ] Classes de caractères Perl \s espace, tabulation, fin de ligne\S autres car. \d chiffres de tous les alphabets\D autres car.

34 Restriction par énumération 38 All I Need Air Moon Safari Pop (...)

35 Restriction par Spécifie le traitement des caractères blancs à effectuer pour normaliser avant comparaison chaque caractère blanc est remplacé par un espace pas de traitement avant validation comme la normalisation en XSLT

36 Autres restrictions de types simples minExclusive maxExclusive length maxLength minLength totalDigits (évalué sur la valeur logique)...

37 Types simples dérivés : liste Eschscholzia Papaver Sanguinaria Les chaînes de caractères sont séparées par des espaces

38 Types simples dérivés : union (1/) Les éléments ZONE dans le catalogue de plantes contiennent des chaînes de types divers Annual (...) 4 (...) 3 - 5

39 Types simples dérivés : union (2/) La seule façon d'inclure un type simple prédéfini dans une union est d'utiliser et

40 Dérivations de types extension (attributs) restriction, liste, union s:simpleType s:complexType s:simpleContent

41 Référence à un schéma XML (1/2) Les applications qui traitent le document cible doivent pouvoir le valider par rapport à un schéma Exemple : le validateur du W3C <Tracks xmlns:xsi=" xsi:schemaLocation=" xmlns=" 37 American Beauty - Theme Air american beauty soundtrack MPEG audio file

42 Référence à un schéma XML (2/2) L'espace de noms xsi spécifie des attributs utilisables dans les documents cibles La référence au schéma se fait par une valeur d'attribut qui contient d'abord l'espace de noms cible, puis l'URL du schéma séparée par un espace <Tracks xmlns:xsi=" xsi:schemaLocation=" xmlns="

43 Référence à plusieurs schémas XML On peut faire référence à n schémas indépendants La valeur d'attribut contient 2n chaînes séparées par des espaces Le document cible doit être valide par rapport à chaque schéma indépendamment xsi:schemaLocation="espace-de-noms-1 URL-1.xsd espace-de-noms-2 URL-2.xsd" xmlns="espace-de-noms-1" xmlns:en2="espace-de-noms-2">

44 Annoter un schéma Inclure un commentaire structuré <s:schema xmlns:s=" targetNamespace=" xmlns:aud=" pistes.xsd Schema XML pour liste de pistes audio

45 Inclure des éléments spécifiés dans d'autres schémas Insérer des parties en XHTML dans le catalogue de plantes Anemone <xh:img src=" alt="Anemone blanda"/> Bulbe rustique de la famille des renonculacées FEUILLAGE : Feuilles très lobées vert foncé semi érigées Le document a deux espaces de noms et deux schémas

46 Solution avec s:import (1/2) L'espace de noms principal du document est celui de l'élément racine Le schéma principal est le schéma correspondant Il importe les autres schémas <s:schema xmlns:s=" targetNamespace=" xmlns:jr=" xmlns:xh=" <s:import namespace=" schemaLocation="

47 Solution avec s:import (2/2) (...) Déclarer des préfixes pour les espaces de noms Exception : l'espace de noms xml, inutile de le déclarer

48 Solution avec s:any (1/2) Le document cible fait référence aux deux schémas Celui qui correspond à l'élément racine et à son espace de noms s'applique en premier <CATALOG xmlns:xsi=" xsi:schemaLocation=" xmlns=" xmlns:xh="

49 Solution avec s:any (2/2) Le schéma qui s'applique en premier appelle l'autre par s:any s:any ne spécifie pas quel élément peut apparaître (...) <s:any namespace=" minOccurs="0"/>

50 Variantes Le validateur accepte tout espace de noms autre que l'espace de noms cible, et valide par rapport au schéma correspondant ou Le validateur accepte n'importe quel espace de noms (défaut) <s:any namespace=" process-contents="lax"/> Le validateur valide seulement si le schéma correspondant à l'espace de noms est disponible Le validateur saute cette partie

51 Permettre n'importe quels attributs (...)

52 Schémas partiels (1/2) Laisser des parties non spécifiées Anemone <xh:img src=" alt="Anemone blanda"/> Bulbe rustique de la famille des renonculacées FEUILLAGE : Feuilles très lobées vert foncé semi érigées

53 Schémas partiels (2/2) Déclarer un élément sans type Le validateur saute le contenu de cet élément (...) (...)

54 Inclure des noeuds texte (1/2) Les plantes contiennent du texte de présentation non structuré Anemone Anemone blanda 6 Mostly Shady Bulbe rustique de la famille des renonculacées. FEUILLAGE : Feuilles très lobées vert foncé semi érigées HAUTEUR : 10 cm FLORAISON : Solitaire, dressée, en coupe aplatie au printemps SOL : Ordinaire bien drainé

55 Inclure des noeuds texte (2/2) Les plantes contiennent du texte de présentation non structuré (...) Inconvénients : ces noeuds texte peuvent apparaître n'importe où et on ne peut pas contrôler le contenu par des types simples

56 Schéma d'un document cible sans espace de noms (1/2) L'élément racine du document cible n'a pas d'espace de noms Le schéma ne peut valider que des documents sans espace de noms ("schéma caméléon") Ce n'est pas une bonne pratique

57 Schéma d'un document cible sans espace de noms (2/2) Le document cible peut faire référence au schéma <Tracks xmlns:xsi=" xsi:noNamespaceSchemaLocation= "

58 Document cible partiel (1/2) On peut valider un document contenant seulement un sous-arbre des documents cibles habituels Il suffit que l'élément racine ait été déclaré en global <Track xmlns:xsi=" xsi:schemaLocation=" xmlns=" 37 American Beauty - Theme Air american beauty soundtrack

59 Document cible partiel (2/2) L'élément Track a été déclaré en global <s:schema xmlns:s=" targetNamespace=" xmlns:aud=" (...)

60 Schéma pour plusieurs types de documents Un schéma unique pour plusieurs types de documents (...)

61 Types complexes (1/3) s:complexType et s:sequence permettent de spécifier des documents plus complexes que des collections d'entrées <iTunes xmlns:xsi=" xsi:schemaLocation=" xmlns=" file://localhost/C:/My%20Music/ B2BF2C09D305D49C 37 American Beauty - Theme

62 Types complexes (2/3) s:complexType et s:sequence peuvent être utilisés récursivement (...) (...)

63 Types complexes (3/3) s:sequence représente la concaténation dans un ordre fixe s:attribute ajoute un attribut Autres constructeurs de types complexes s:choiceun seul élément pris parmi plusieurs s:allchaque élément une seule fois, dans n'importe quel ordre

64

65 (1/6)

66 (2/6) Restrictions syntaxiques pas de récursivité possible ne peut contenir que des ne peut pas apparaître dans un,, Exemple : on veut que les champs ZONE et LIGHT puissent apparaître dans n'importe quel ordre

67 (3/6)

68 (4/6)

69 (5/6) Si on veut que ZONE, LIGHT et PRICE apparaissent dans n'importe quel ordre, ne marche pas - Choix entre 6 séquences de 3 éléments Illisible ! - Trop difficile pour le validateur Message d'erreur du validateur : non-deterministic content model Contrainte sur l'écriture des schémas XML : lors de l'analyse syntaxique d'un document cible, la correspondance avec le schéma doit pouvoir se faire de façon déterministe sans connaître les éléments qui suivent celui en train d'être analysé

70 (6/6) Solution : modifier la conception des documents cibles Exemple : insérer un élément conteneur Bloodroot Sanguinaria canadensis 4 Mostly Shady