Echange et publication de données

Documents pareils
Chapitre 10 Arithmétique réelle

Approche Contract First

XML par la pratique Bases indispensables, concepts et cas pratiques (3ième édition)

Paris Airports - Web API Airports Path finding

Débuter avec EXPRESS. Alain Plantec. 1 Schema 2

Langage et Concepts de ProgrammationOrientée-Objet 1 / 40

Expression des contraintes. OCL : Object C o n t r a i n t L a n g u a g e

LES TYPES DE DONNÉES DU LANGAGE PASCAL

Thierry BOULANGER. par la pratique. Bases indispensables Concepts et cas pratiques XML. 3 ième édition. Nouvelle édition

UE Programmation Impérative Licence 2ème Année

TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile

Génie Logiciel avec Ada. 4 février 2013

OCL - Object Constraint Language

Java Licence Professionnelle CISII,

Compléments de documentation Scilab : affichage de texte et formatage de nombres

UEO11 COURS/TD 1. nombres entiers et réels codés en mémoire centrale. Caractères alphabétiques et caractères spéciaux.

I. Programmation I. 1 Ecrire un programme en Scilab traduisant l organigramme montré ci-après (on pourra utiliser les annexes):

Exercices sur SQL server 2000

Plateforme PAYZEN. Définition de Web-services

1. Qu'est-ce que SQL? La maintenance des bases de données Les manipulations des bases de données... 5

Recherche dans un tableau

Le langage SQL pour Oracle - partie 1 : SQL comme LDD

UML. Diagrammes de classes (suite) Delphine Longuet.

Définition 0,752 = 0,7 + 0,05 + 0,002 SYSTÈMES DE NUMÉRATION POSITIONNELS =

La persistance des données dans les applications : DAO, JPA, Hibernate... COMPIL 2010 francois.jannin@inp-toulouse.fr 1

Utilitaires méconnus de StrataFrame

Cours d introduction à l informatique. Partie 2 : Comment écrire un algorithme? Qu est-ce qu une variable? Expressions et instructions

Responsable du cours : Héla Hachicha. Année Universitaire :

Outils logiciels pour l'ingénierie documentaire

Présentation du langage et premières fonctions

Bases de programmation. Cours 5. Structurer les données

DSL. Domain Specific Language. À l'aide des technologies Eclipse Modeling. Goulwen Le Fur Le 23 novembre 2012

Programming Server-Side Web Applications with Object-Oriented PHP NC Group Syllabus. Duration: 75 hours 1-2-2

Olivier Mondet

Utilisation d objets : String et ArrayList

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

Introduction à MATLAB R

Programmer en JAVA. par Tama

I4 : Bases de Données

PHP 5. La base de données MySql. A. Belaïd 1

A. Architecture du serveur Tomcat 6

Sécurité des applications web. Daniel Boteanu

Initiation à html et à la création d'un site web

Programmation Orientée Objet Java

TD sur JMS ) Qu est-ce qu un middleware orienté message (MOM)? Quelles différences faites-vous entre un MOM et JMS?

Cloner nativement Windows 8.x (mode EFI)

1. Installation d'un serveur d'application JBoss:

XML : documents et outils

1. Structure d un programme C. 2. Commentaire: /*..texte */ On utilise aussi le commentaire du C++ qui est valable pour C: 3.

Cours 1 : Introduction. Langages objets. but du module. contrôle des connaissances. Pourquoi Java? présentation du module. Présentation de Java

Cours Informatique Master STEP

Informatique Générale

as Architecture des Systèmes d Information

Auto-évaluation Programmation en Java

Faculté de Génie Chaire industrielle en infrastructures de communication. La technologie XML. Wajdi Elleuch

Cours: Administration d'une Base de Données

Langage SQL : créer et interroger une base

Langage HTML (2 partie) <HyperText Markup Language> <tv>lt La Salle Avignon BTS IRIS</tv>

Création et Gestion des tables

OpenPaaS Le réseau social d'entreprise

P r ob lé m a t iq u e d e la g é n é r icit é. Pr in cip e d e la g é n é r icit é e n Ja v a ( 1 /3 )

SHERLOCK 7. Version du 01/09/09 JAVASCRIPT 1.5

STAGE IREM 0- Premiers pas en Python

NOTATIONS PRÉLIMINAIRES

Programmation en Java IUT GEII (MC-II1) 1

Introduction à JDBC. Accès aux bases de données en Java

IMPORTATION ARTICLES DANS LA BASE DE DONNEES

Master d Informatique Corrigé du partiel novembre 2010

PHP et mysql. Code: php_mysql. Olivier Clavel - Daniel K. Schneider - Patrick Jermann - Vivian Synteta Version: 0.9 (modifié le 13/3/01 par VS)

TP 1. Prise en main du langage Python

Initiation à la programmation OEF pour Wims (exercices).

Exceptions. 1 Entrées/sorties. Objectif. Manipuler les exceptions ;

1. Base de données SQLite

Développement Web - Object Relational Mapping and Hibernate

1. Structure d'un programme FORTRAN 95

INF2015 Développement de logiciels dans un environnement Agile. Examen intra 20 février :30 à 20:30

Lire ; Compter ; Tester... avec R

Entity API. Alexandre Todorov, Felip Manyer i Ballester. Montpellier, le 17 septembre 2014

INF 321 : mémento de la syntaxe de Java

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

Programme Compte bancaire (code)

Carl-Louis-Ferdinand von Lindemann ( )

Insérer des images dans Base

Historisation des données

ésylog, direction technique Esylog_PeerBackup outil de sauvegarde individuelle mails & fichiers personnels documentation technique

Le Langage De Description De Données(LDD)

Algorithmique et programmation : les bases (VBA) Corrigé

Projet de Conception N 1 Automatisation d'un processus de paiement. Livrable: Spécification du système de compensation

CREATION WEB DYNAMIQUE

3 Octobre Les Communautés MS

Les chaînes de caractères

Éléments d informatique Cours 3 La programmation structurée en langage C L instruction de contrôle if

Application web de gestion de comptes en banques

Généralités. javadoc. Format des commentaires. Format des commentaires. Caractères spéciaux. Insérer du code

ACTIVITÉ DE PROGRAMMATION

OPTENET DCAgent Manuel d'utilisateur

Cours 14 Les fichiers

Java Licence Professionnelle CISII, Cours 2 : Classes et Objets

<?xml version="1.0" encoding="iso " standalone="yes"?>

Quelques patterns pour la persistance des objets avec DAO DAO. Principe de base. Utilité des DTOs. Le modèle de conception DTO (Data Transfer Object)

Transcription:

Echange et publication de données 1 C H A P I T R E " V A L I D A T I O N D ' U N D O C U M E N T X M L ( S E C O N D E P A R T I E ) : X M L S C H E M A " VIRGINIE G O A S D O U É - T H I O N, U N I V. P A R I S D A U P H I N E DTD!! Sous forme d'une grammaire simple rapide à écrire p.e. CDATA : String? Integer? Date? peu expressive <!ELEMENT NEWSPAPER (ARTICLE+)> <!ELEMENT ARTICLE (AUTHOR+,HEADLINE, BYLINE, LEAD, BODY, NOTES*)> <!ELEMENT HEADLINE (#PCDATA)> <!ELEMENT AUTHOR(#PCDATA)> <!ELEMENT BYLINE (#PCDATA)> <!ELEMENT LEAD (#PCDATA)> <!ELEMENT BODY (#PCDATA)> <!ELEMENT NOTES (#PCDATA)> 2 <!ATTLIST ARTICLE EDITOR CDATA #IMPLIED> <!ATTLIST ARTICLE DATE CDATA #IMPLIED> <!ATTLIST ARTICLE EDITION CDATA #IMPLIED> exemple inspiré de w3schools XML Schema 3 XML Schema 4!! Formalisme d'expression de schéma plus évolué que les DTD.! moins simple et moins rapide à écrire qu'une DTD.!! Utilise la syntaxe XML!! Recommandé par le W3C DTD!"#$#%#&'()*+,(-+*.(/0*1.(2,345)6.(7*489:(!"#$#%#&'(+*(-;<=>?'?9:(!"#$#%#&'(/0*1(-;<=>?'?9:(!"#$#%#&'(2,345)6(-;<=>?'?9:(!"#$#%#&'(7*48(-;<=>?'?9:( XML Schema!@ABAC2,13(@1D)AB@AEF2++GBHHIIIJIKJ*06HLMMNH O%$PC2,13F:(!@AB,D,1,)+()31,EF)*+,F:Q(( QQQ(!@ABA,RS,)C,:( QQQQQ(!@AB,D,1,)+()31,EF+*F(+8G,EF@ABA+05)6FH:( QQQQQ(!@AB,D,1,)+()31,EF/0*1F(+8G,EF@ABA+05)6FH:( QQQQQ(!@AB,D,1,)+()31,EF2,345)6F(+8G,EF@ABA+05)6FH:( QQQQQ(!@AB,D,1,)+()31,EF7*48F(+8G,EF@ABA+05)6FH:( QQQ(!H@ABA,RS,)C,:( Q(!H@ABC*1GD,@'8G,:(!H@ABAC2,13:(

XML Schema!@ABAC2,13(@1D)AB@AEF2++GBHHIIIJIKJ*06HLMMNHO%$PC2,13F:(!@AB,D,1,)+()31,EF)*+,F:Q(( QQQ(!@ABA,RS,)C,:( QQQQQ(!@AB,D,1,)+()31,EF+*F(+8G,EF@ABA+05)6FH:( QQQQQ(!@AB,D,1,)+()31,EF/0*1F(+8G,EF@ABA+05)6FH:( QQQQQ(!@AB,D,1,)+()31,EF2,345)6F(+8G,EF@ABA+05)6FH:( QQQQQ(!@AB,D,1,)+()31,EF7*48F(+8G,EF@ABA+05)6FH:( QQQ(!H@ABA,RS,)C,:( Q(!H@ABC*1GD,@'8G,:(!H@ABAC2,13:( 5 Les élements : types!@ab,d,1,)+()31,ef/50a+)31,f(+8g,ef@aba+05)6fh:(!/50a+)31,:( (?D3)(!H/50A+)31,:( Peut être plus précis en rajoutant des options 6 Type peut être "null" "Compte " Recomm. W3C >,S@(A+8D,A(4,(+8G,A(B( Les élements : types!! '8G,A(A51GD,A(B(A5(*)(T,S+(RS,(DUVDV1,)+(TV05/53)+(D,(+8G,(),(C*)+5,)),( RSUS),(T3D,S0(,+(G3A(4U3++057S+(!5)+,0)3+5*)3D<05C,(:KWX.YZ!5)+,0)3+5*)3D<05C,(:(!! '8G,A(C*1GD,@,A(B(A5(*)(T,S+(RS,(DUVDV1,)+(TV05/53)+(D,(+8G,(A*5+(C*1G*AV( 4,(A*SA[VDV1,)+-A9(*S\(C*)+5,)),(4,A(3++057S+A( "!!5)+,0)3+5*)3D<05C,(CS00,)C8EF4*D30AF:KWX.YZ!H5)+,0)3+5*)3D<05C,:( "!!5)+,0)3+5*)3D<05C,(CS00,)C8EF#]^F(T3DS,EFKWX.YZFH:( "!!5)+,0)3+5*)3D<05C,:( ( ((((!CS00,)C8:#]^!CS00,)C8:( ( ((((!T3DS,:KWX.YZ!T3DS,:( ( ((!H_)+,0)3+5*)3D<05C,:( "!!5)+,0)3+5*)3D<05C,(43+,EFLMM`[MX[NLF:( ( ((((!CS00,)C8:#]^!CS00,)C8:( ( ((((!T3DS,:KWX.YZ!T3DS,:( ( ((!H_)+,0)3+5*)3D<05C,:( \(45Aa*)C+5*)()*)(,@CDSA5T, 7 Types simples!@ab,d,1,)+()31,ef/50a+)31,f(+8g,ef@aba+05)6fh:( Quelques types possibles : Type Description Commentaire string chaîne de caractères chaîne de caractères boolean booléen 'true' 'false' '1' '0' decimal décimal (\+ -)?([0-9]+(\.[0-9]*)? \.[0-9]+) integer (dérivé de decimal) entier 8 types dérivés tels que long, non PositiveInterger, nonnegativeinteger float flottant (\+ -)?([0-9]+(\.[0-9]*)? \.[0-9]+)([Ee](\ + -)?[0-9]+)? (\+ -)?INF NaN time Exemple : 2000-12-12+13:00 Et bien d'autres

Les types pré-définis types pré-définis Types simples : dérivation 10 types primitifs On peut aller plus loin qu'un simple type! définition de types dérivés à partir de types pré-définis. types dérivés pré-définis Dérivation. Restriction Liste Union Issu de la doc W3C A partir de constraining facets posant des conditions sur les valeurs. 11 A partir de constraining facets posant des conditions sur les valeurs.. 12 Dérivation par restriction :!@ABA51GD,'8G,()31,EU*),[2S)40,4[*0[D,AAU:( ((!@AB0,A+05C+5*)(73A,EU@AB5)+,6,0U:( ((((!@AB13@_)CDSA5T,(T3DS,EUNMMUH:( constraining facet. Autres possibles pour le type integer : totaldigits fractiondigits pattern whitespace enumeration maxexclusive mininclusive minexclusive Dérivation par restriction :!@ABA51GD,'8G,()31,EU=*4,b300,U:( ((((!@AB0,A+05C+5*)(73A,EU@ABA+05)6U:( ((((((!@ABG3++,0)(T3DS,EUc4dKe[f?[ghdLeUH:( (( constraining facet.

Constraining ou Non-fundamental : contraint l'espace des valeurs du type!! length!! minlength!! maxlength!! pattern!! enumeration!! whitespace!! maxinclusive!! maxexclusive!! minexclusive!! mininclusive!! totaldigits 13!! Constraining facet lenght!@aba51gd,'8g,()31,eug0*4sc+=*4,u:( (((!@AB0,A+05C+5*)(73A,EU@ABA+05)6U:( (((((!@ABD,)6+2(T3DS,EUiU(H:( ( 14!! Constraining facet minlenght et maxlenght 15!! Constraining facet pattern 16!@ABA51GD,'8G,()31,EU)*)[,1G+8[A+05)6U:( ((!@AB0,A+05C+5*)(73A,EU@ABA+05)6U:( ((((!@AB15)$,)6+2(T3DS,EUNUH:(!@ABA51GD,'8G,()31,EU/*01[5)GS+U:( ((!@AB0,A+05C+5*)(73A,EU@ABA+05)6U:( ((((!@AB13@$,)6+2(T3DS,EUXMUH:( ((!@ABH0,A+05C+5*):(!@ABA51GD,'8G,()31,EU7,++,0[SA[j5GC*4,U:( ((!@AB0,A+05C+5*)(73A,EU@ABA+05)6U:( ((((!@ABG3++,0)(T3DS,EUfM[`hdXe-[fM[`hdWe9kUH:(

!! Constraining facet enumeration 17!! Constraining facet whitespace 18!@ABA51GD,'8G,()31,EU2*D5438AU:( (!@AB0,A+05C+5*)(73A,EU@AB6%*)+2>38U:( ((((((((!@AB,)S1,03+5*)(T3DS,EU[[MN[MNU:(!H@AB,)S1,03+5*):( ((((((((!@AB,)S1,03+5*)(T3DS,EU[[MZ[MWU:(!H@AB,)S1,03+5*):( ((((((((!@AB,)S1,03+5*)(T3DS,EU[[NL[LXU:(!H@AB,)S1,03+5*):( (!H@AB0,A+05C+5*):(!@ABA51GD,'8G,()31,EU+*l,)U:( ((((!@AB0,A+05C+5*)(73A,EU@AB)*013D5j,4P+05)6U:( ((((((!@ABI25+,PG3C,(T3DS,EU@ABC*DD3GA,UH:( (( Indication pour le processeur qui traitera les éléments! pas vraiment du "schéma"!! Constraining facet maxeclusive 19!! Constraining facet mininclusive 20!@ABA51GD,'8G,()31,EUD,AA[+23)[*),[2S)40,4[3)4[*),U:( ((!@AB0,A+05C+5*)(73A,EU@AB5)+,6,0U:( ((((!@AB13@#@CDSA5T,(T3DS,EUNMNUH:( "la valeur max est 101 exclus"!@aba51gd,'8g,()31,eu*),[2s)40,4[*0[1*0,u:( ((!@AB0,A+05C+5*)(73A,EU@AB5)+,6,0U:( ((((!@AB15)_)CDSA5T,(T3DS,EUNMMUH:( "la valeur min est 100 inclus"

!! Constraining facet totaldigit!@aba51gd,'8g,()31,euc,da5sab*48',1gu:( ((!@AB0,A+05C+5*)(73A,EU@AB4,C513DU:( ((((!@AB+*+3D>565+A(T3DS,EUWUH:( ((((!@AB/03C+5*)>565+A(T3DS,EUNUH:( ((((!@AB15)_)CDSA5T,(T3DS,EUKYJWUH:( ((((!@AB13@_)CDSA5T,(T3DS,EUWMJXUH:( 21 Types simples : dérivation par liste!@aba51gd,'8g,()31,eud5a+m/nd*3+u:( ((!@ABD5A+(5+,1'8G,EU@AB/D*3+UH:( Exemples de Constraining facets applicables :!! length!! maxlength!! minlength 22 Types simples : dérivation par union <xsd:attribute name="size"> <xsd:simpletype> <xsd:union> <xsd:simpletype> <xsd:restriction base="xsd:positiveinteger"> <xsd:mininclusive value="8"/> <xsd:maxinclusive value="72"/> </xsd:restriction> </xsd:simpletype> <xsd:simpletype> <xsd:restriction base="xsd:nmtoken"> <xsd:enumeration value="small"/> <xsd:enumeration value="medium"/> <xsd:enumeration value="large"/> </xsd:restriction> </xsd:simpletype> </xsd:union> </xsd:simpletype> </xsd:attribute> 23 taille de fonte exprimée en entiers en small/medium/large <p> <font size='large'>a header</font> </p> <p> <font size='12'>this is a test</font> </p> Types complexes : quand? 24 Quand passer en type complexe? Quand pas un type simpe c.-à-d. quand on veut qu'un élément vérifiant le type : "! contienne au moins un attribut ou (non exclusif) "! soit composé de sous-éléments Exemples (non exhaustif) :!5)+,0)3+5*)3D<05C,(CS00,)C8EF4*D30AF:KWX.YZ!H5)+,0)3+5*)3D<05C,: (!5)+,0)3+5*)3D<05C,:( ( (!CS00,)C8:#]^!CS00,)C8:( ( (!T3DS,:KWX.YZ!T3DS,:( (!H_)+,0)3+5*)3D<05C,:(

Types complexes : 2 notations équivalentes Types complexes : plusieurs cas!@ab,d,1,)+()31,ef_)+,0)3+5*)3d<05c,f:( ( (!@ABC*1GD,@'8G,:( ( (o( ( (!H@ABC*1GD,@'8G,:( 25!@AB,D,1,)+()31,EF_)+,0)3+5*)3D<05C,F( +8G,Epq5G05C,'8G,qq(H:(!@ABC*1GD,@'8G,()31,Epq5G05C,'8G,qq:( (o(!h@abc*1gd,@'8g,:( 2 principaux cas de figure!! simple content : le contenu de l'élément vérifiant le type est une valeur (pas de sous éléments) + au moins un attribut.!5)+,0)3+5*)3d<05c,(cs00,)c8ef4*d30af:kwx.yz!h5)+,0)3+5*)3d<05c,:!! complex content : l'élément vérifiant le type est vide ou contient un ou plusieurs sous-élément(s) + éventuellement des attributs (!5)+,0)3+5*)3D<05C,:( ( (!CS00,)C8:#]^!CS00,)C8:( ( (!T3DS,:KWX.YZ!T3DS,:( (!H_)+,0)3+5*)3D<05C,:( 26 Plus "intuitif" Plus clair (plus propre) si schéma compliqué p.e. type utilisé à plusieurs endroits dans le schéma Types complexes : simple content 27 Simple content : l'élément vérifiant le type contient une valeur + au moins un attribut!5)+,0)3+5*)3d<05c,(cs00,)c8ef4*d30af:kwx.yz!h5)+,0)3+5*)3d<05c,:(!@ab,d,1,)+()31,ef5)+,0)3+5*)3d<05c,f:( ((((!@ABA51GD,=*)+,)+:( ((((((!@AB,@+,)A5*)(73A,EF@AB4,C513DF:( ((((((((!@AB3++057S+,()31,EFCS00,)C8F(+8G,EF@ABA+05)6FH:( ((((((!H@AB,@+,)A5*):( ((((!H@ABA51GD,=*)+,)+:( ((!H@ABC*1GD,@'8G,:( Complexe content : l'élément vérifiant le type est vide ou contient un ou plusieurs sous-élément(s) + éventuellement des attributs Exemples :!5)+,0)3+5*)3D<05C,(43+,EFLMM`[MX[NLF(T3DS,EFKWX.YZFH:(!5)+,0)3+5*)3D<05C,(43+,EFLMM`[MX[NLF:( ( (!CS00,)C8:#]^!CS00,)C8:( Que des attributs ( (!T3DS,:KWX.YZ!T3DS,:(!H_)+,0)3+5*)3D<05C,:( sous-éléments et attributs 28 Exemple W3C

29 Complexe content : : l'élément vérifiant le type est vide ou contient un ou plusieurs sous-élément(s) + éventuellement des attributs Que des attributs :!@AB,D,1,)+()31,EF5)+,0)3+5*)3D<05C,F:( ((((!@ABC*1GD,@=*)+,)+:( ((((((!@AB0,A+05C+5*)(73A,EF@AB3)8'8G,F:( ((((((((!@AB3++057S+,()31,EFCS00,)C8F(+8G,EF@ABA+05)6FH:( ((((((((!@AB3++057S+,()31,EFT3DS,F(+8G,EF@AB4,C513DFH:( (((( ((((!H@ABC*1GD,@=*)+,)+:( ((!H@ABC*1GD,@'8G,:( Heureusement! Raccourcis d'écriture Que des attributs :!@AB,D,1,)+()31,EF5)+,0)3+5*)3D<05C,F:( ((((!@ABC*1GD,@=*)+,)+:( ((((((!@AB0,A+05C+5*)(73A,EF@AB3)8'8G,F:( ((((((((!@AB3++057S+,()31,EFCS00,)C8F(+8G,EF@ABA+05)6FH:( ((((((((!@AB3++057S+,()31,EFT3DS,F(+8G,EF@AB4,C513DFH:( (((( ((((!H@ABC*1GD,@=*)+,)+:( ((!H@ABC*1GD,@'8G,:( 30 youpi! Heureusement! Raccourcis d'écriture Que des attributs :!@AB,D,1,)+()31,EF5)+,0)3+5*)3D<05C,F:( ((((!@AB3++057S+,()31,EFCS00,)C8F(+8G,EF@ABA+05)6FH:( ((((!@AB3++057S+,()31,EFT3DS,F(+8G,EF@AB4,C513DFH:( ((!H@ABC*1GD,@'8G,:( 31 youpi! 32 Complexe content : : l'élément vérifiant le type est vide ou contient un ou plusieurs sous-élément(s) + éventuellement des attributs Exemples :!5)+,0)3+5*)3D<05C,(CS00,)C8EF#]^F(T3DS,EFKWX.YZFH:( Que des attributs!5)+,0)3+5*)3d<05c,(43+,eflmm`[mx[nlf:( ( (!CS00,)C8:#]^!CS00,)C8:( ( (!T3DS,:KWX.YZ!T3DS,:(!H_)+,0)3+5*)3D<05C,:( Sous-éléments et attributs

Sous-éléments et attributs ("directement" en raccourcis d'écriture) :!@ABC*1GD,@'8G,()31,EF_)+,0)3+5*)3D<05C,F:( ((!@ABA,RS,)C,:( (((!@AB,D,1,)+()31,EFCS00,)C8F(+8G,EF@ABA+05)6FH:( (((!@AB,D,1,)+()31,EFT3DS,F(+8G,EF@AB4,C513DFH:( ((!H@ABA,RS,)C,:( ((!@AB3++057S+,()31,EF43+,F(+8G,EF@AB43+,FH:( (!H@ABC*1GD,@'8G,:( 33 type simples ici mais aurait pu être des appels à des types complexes définis précédemment 34 Et maintenant, une grammaire plus complète des complex content ("directement" en raccourcis d'écriture) :!! Complex content "! Sans sous élément, un complex content définit des attributs "! <xs:attribute name= n" type="xs:t" use= u" /> #! n est le nom de l attribut #! t est le type XML schema de l attribut! ENTITY, ID, IDREF(S), string, restriction de string #! u définit la nécessité de l attribut! u!{optional,required} et u=optional par défaut Cours F. Goasdoué!! Complex content "! Avec sous-éléments et éventuellement des attributs "! On peut avoir #! Une séquence (sequence) de sous-éléments dans l'ordre de la définition #! Exactement un choix (choice) de sous-éléments #! Un ensemble (all) de souséléments dans n'importe quel ordre #! Suivi d attributs 35!@AB3DD:( (!@AB,D,1,)+(0,/EFC3+AFH:( (!@AB,D,1,)+(0,/EF4*6AFH:(!H@AB3DD:(!@ABA,RS,)C,:( (!@ABC2*5C,:( ((!@AB,D,1,)+()31,EFD,/+F(+8G,EFG*A'8G,FH:( ((!@AB,D,1,)+()31,EF0562+F(+8G,EFG*A'8G,FH:( (!H@ABC2*5C,:( (!@AB,D,1,)+()31,EF*05,)+3+5*)F(( ((((((((((((((((((((((+8G,EF@ABA+05)6FH:(!H@ABA,RS,)C,:(!@AB3++057S+,()31,EF43+,F(+8G,EF@AB43+,FH:(!@AB3++057S+,()31,EF50,/F(+8G,EF50,/'8G,FH:(!@AB,D,1,)+()31,EFD570308F(+8G,EFD57+8G,F(H:(!@ABC*1GD,@'8G,()31,EFD57+8G,F:( (!@ABC2*5C,(15)mCCS0AEFMF(13@mCCS0AEFS)7*S)4,4F:( ( (!@AB,D,1,)+()31,EF4*CS1,)+F(+8G,EF4*C+8G,F(H:( ( (!@AB,D,1,)+()31,EFGS7D5A2,0F(+8G,EFGS7+8G,F(H:( (!H@ABC2*5C,:(!H@ABC*1GD,@'8G,:( 36!@ABC*1GD,@'8G,()31,EF4*C+8G,F:( (!@ABA,RS,)C,:( ( (!@AB,D,1,)+()31,EF_Pb&F(((+8G,EF@ABA+05)6F(15)mCCS0AEFMF(13@mCCS0AEFNFH:( ( (!@AB,D,1,)+()31,EF3S+2*0F(+8G,EF@ABA+05)6F(15)mCCS0AEFNF(13@mCCS0AEFS)7*S)4,4FH:( ( (!@AB,D,1,)+()31,EF+5+D,F((((((+8G,EF@ABA+05)6F(15)mCCS0AEFNF(13@mCCS0AEFNFH:( ( (!@AB,D,1,)+()31,EF43+,F(((((+8G,EF@AB43+,F(((15)mCCS0AEFMF(13@mCCS0AEFNFH: ( (( (!H@ABA,RS,)C,:( (!@AB3++057S+,()31,EFC3DD)S17,0F(+8G,EF@AB_>F(SA,EF0,RS50,4F(H:( (!@AB3++057S+,()31,EFD3)6S36,F(+8G,EF@ABA+05)6F(SA,EF*G+5*)3DF(H:( (!@AB3++057S+,()31,EFA+3+SAF(+8G,EFA+3+8G,F(4,/3SD+EF3T,036,F(H:( (!@AB3++057S+,()31,EFGS7D5A2,478F(+8G,EF@AB_>^#nF(SA,EF*G+5*)3DF(H:( (!@AB3++057S+,()31,EF0,D3+,4F(+8G,EF@AB_>^#nPF(SA,EF*G+5*)3DF(H:(!H@ABC*1GD,@'8G,:( Cours F. Goasdoué Cours F. Goasdoué

Conclusion 37 ID, IDREF 38 Quel type contenu de type complexe? Contenu de l'élément Texte Vide ou souséléments Attribut Type Contenu Sans Simple pas un type complexe Avec Complexe simple content Sans Avec Complexe complex content!! Complex content "! Sans sous élément, un complex content définit des attributs "! <xs:attribute name= n" type="xs:t" use= u" /> #! n est le nom de l attribut #! t est le type XML schema de l attribut! ENTITY, ID, IDREF(S), string, restriction de string #! u définit la nécessité de l attribut! u!{optional,required} et u=optional par défaut Cours F. Goasdoué!@AB,D,1,)+()31,EFD570308F(+8G,EFD57+8G,F(H:(!@ABC*1GD,@'8G,()31,EFD57+8G,F:( (!@ABC2*5C,(15)mCCS0AEFMF(13@mCCS0AEFS)7*S)4,4F:( ( (!@AB,D,1,)+()31,EF4*CS1,)+F(+8G,EF4*C+8G,F(H:( ( (!@AB,D,1,)+()31,EFGS7D5A2,0F(+8G,EFGS7+8G,F(H:( (!H@ABC2*5C,:(!H@ABC*1GD,@'8G,:( 39!@ABC*1GD,@'8G,()31,EF4*C+8G,F:( (!@ABA,RS,)C,:( ( (!@AB,D,1,)+()31,EF_Pb&F(((+8G,EF@ABA+05)6F(15)mCCS0AEFMF(13@mCCS0AEFNFH:( ( (!@AB,D,1,)+()31,EF3S+2*0F(+8G,EF@ABA+05)6F(15)mCCS0AEFNF(13@mCCS0AEFS)7*S)4,4FH:( ( (!@AB,D,1,)+()31,EF+5+D,F((((((+8G,EF@ABA+05)6F(15)mCCS0AEFNF(13@mCCS0AEFNFH:( ( (!@AB,D,1,)+()31,EF43+,F(((((+8G,EF@AB43+,F(((15)mCCS0AEFMF(13@mCCS0AEFNFH: ( (( (!H@ABA,RS,)C,:( (!@AB3++057S+,()31,EFC3DD)S17,0F(+8G,EF@AB_>F(SA,EF0,RS50,4F(H:( (!@AB3++057S+,()31,EFD3)6S36,F(+8G,EF@ABA+05)6F(SA,EF*G+5*)3DF(H:( (!@AB3++057S+,()31,EFA+3+SAF(+8G,EFA+3+8G,F(4,/3SD+EF3T,036,F(H:( (!@AB3++057S+,()31,EFGS7D5A2,478F(+8G,EF@AB_>^#nF(SA,EF*G+5*)3DF(H:( (!@AB3++057S+,()31,EF0,D3+,4F(+8G,EF@AB_>^#nPF(SA,EF*G+5*)3DF(H:(!H@ABC*1GD,@'8G,:( TD 40 XML Schema Cours F. Goasdoué

41 Bibliographie!! E.Rusty Harold, W Scott Means : XML in a nutshell, third edition. O'Reilly, 2001.!! Recommandation WML Schema W3C : http:// www.w3.org/standards/techs/xmlschema#w3c_all