xml-schema.pdf
DESCRIPTION
xml shemaTRANSCRIPT
-
XML Schema xml-schemaXML Schema Code: xml-schema
Originauxurl: http://tecfa.unige.ch/guides/tie/html/xml-schema/xml-schema.html url: http://tecfa.unige.ch/guides/tie/pdf/files/xml-schema.pdf
Auteurs et version Daniel K. Schneider Version: 0.5 (modifi le 29/10/09)
PrrequisModule technique prcdent: xml-tech
Abstract Petite introduction XML Schema
Objectifs Edition de fichiers XML avec un schma XSD Traduction de DTDs vers XSD avec un outilXML Daniel. K. Schneider, Webster University Geneva - TECFA, University of Geneva 29/10/09
http://tecfa.unige.ch/guides/tie/html/xml-schema/xml-schema.htmlhttp://tecfa.unige.ch/guides/tie/pdf/files/xml-schema.pdfhttp://tecfa.unige.ch/tecfa-people/schneider.html../../html/xml-tech/xml-tech.html
-
XML Schema - . xml-schema-1-2 Modification de types de donnes dans un XSD Cration de grammaires XSD simples (!)
Ressources The W3C XML Schema primer: http://www.w3.org/TR/xmlschema-0/ Roger Costellos extensive XML Schema tutorial: http://www.xfront.com/
Exemples Vous retrouverez les fichiers exemple de ce texte ici: http://tecfa.unige.ch/guides/xml/examples/xsd-examples/ XML Daniel. K. Schneider, Webster University Geneva - TECFA, University of Geneva 29/10/09
http://www.w3.org/TR/xmlschema-0/http://www.xfront.com/http://tecfa.unige.ch/guides/xml/examples/xsd-examples/
-
XML Schema - 1. Table des matires dtaille xml-schema-1-31. Table des matires dtaille1. Table des matires dtaille 32. Introduction 5
2.1 Types de grammaires XML (Schema languages) 52.2 Comparaison de schmas bass sur une grammaire 62.3 Ressources 7
3. XSD - structure du fichier et espaces de nom 83.1 Structure et espace de nom dun fichier XSD 8
A.Solution 1: Donner un namespace au code XSD 9Example 3-1:XSD dfinition pour une simple recette de cuisine 9B.Solution 2: Donner un namespace au code du schma 10Example 3-2:XSD dfinition pour une simple recette 10
3.2 Validation 11A.Association dun XSD avec un fichier XML, Solution 1 11B.Association dun XSD avec XML, Solution 2 12Example 3-3:XML pour une recette avec une XSD associe (file recipe.xml) 12Example 3-4:IMS Content Packaging 1.1.4 et IMS/LOM Metadata 14
3.3 Dfinition dlments 164. Types de donnes 18
4.1 Types simples 184.2 Types simples dfinis par lutilisateur 20
Example 4-1:Exemple "list": 20Example 4-2:"restriction" sur un mot choisir 20Example 4-3:Restriction sur un nombre 21
5. Organisation dlments 225.1 Rfrences vs. insertion directe 225.2 Squences 23
Example 5-1:Une liste denfants ordonnes 23Example 5-2:Une liste avec un ou plusieurs lments 23Example 5-3:Une liste avec un lment email option et rptable 24
5.3 Choix 25
XML Daniel. K. Schneider, Webster University Geneva - TECFA, University of Geneva 29/10/09
-
XML Schema - 1. Table des matires dtaille xml-schema-1-4Example 5-4:Choix dlments option et rptable 25Example 5-5:Choix obligatoire entre lments 25
5.4 Mixed contents 265.5 Empty elements (lments vides) 26
6. Attributs 27Example 6-1:Groupes dattributs (file family.xsd) 28
6.1 Contraintes sur les valeurs 30Example 6-2:Contraintes sur lage 30
7. Traduire des DTDs vers XSD 317.1 Dfinition dlments 317.2 Dfinition dattributs 337.3 Exemples 34XML Daniel. K. Schneider, Webster University Geneva - TECFA, University of Geneva 29/10/09
-
XML Schema - 2. Introduction xml-schema-1-52. Introduction
2.1 Types de grammaires XML (Schema languages)
Bas sur un grammaire: Elments autoriss dans un document XML, leur ordre, occurrences, etc... Contenu et type de donnes pour chaque lment et attribut.
Bas sur des assertions: Assertions sur la nature des relations entre lments and attributs dans un document XML.
Schema Languages(dfinir des types de contenus)
bas sur une grammaire bas sur des assertions
DTD
XML Schema (XSD)
Relax NGSchematron(ISO standard 2006)
(part of W3C XMLstandard)
(W3C standard
(ISO standard 2003)
2001/2004)XML Daniel. K. Schneider, Webster University Geneva - TECFA, University of Geneva 29/10/09
-
XML Schema - 2. Introduction xml-schema-1-62.2 Comparaison de schmas bass sur une grammaire
Caractristiques DTD XML Schema (XSD) Relax NG
Adoption large Applications data-centric R&D, mais aussi qq. standardsComplexit structurale moyenne
puissant (e.g. sets, element occurrence constraints) puissant
Types de donnes peu (10, surtout des valeurs dattributs)puissant (44 + plus types drivables) puissant
Complexit globale basse leve moyenne
Formalisme en XML non oui oui(notation courte aussi)Association avec un document XML DOCTYPE declaration Namespace declaration
Pas de solution standard
Support navigateur IE (Firefox non) non nonFile suffix *.dtd *.xsd *.rng / *.rncEntits oui non ( xinclude) nonXML Daniel. K. Schneider, Webster University Geneva - TECFA, University of Geneva 29/10/09
-
XML Schema - 2. Introduction xml-schema-1-72.3 Ressources XML Schema (aussi appel XSD pour "XML Schema Definition") est difficile Une bonne faon dapprendre XSD est de traduire une DTD avec un outil Voir 7. Traduire des DTDs vers XSD [31]
W3C websites:url: http://www.w3.org/XML/Schema (W3C Overview Page)url: http://www.w3.org/TR/xmlschema-0/ The W3C XML Schema primer
Specifications:url: http://www.w3.org/TR/xmlschema-1/ XML Schema Part 1: Structures Second Edition 2004url: http://www.w3.org/TR/xmlschema-2/ XML Schema Part 2: Datatypes Second Edition 2004
Outils: Exchanger XML Editor gre XML Schema
Support pour ldition XML Validation dune fichier XSD Validation dun XML avec des XSD Traduction DTD/XSD/Relax NGXML Daniel. K. Schneider, Webster University Geneva - TECFA, University of Geneva 29/10/09
http://www.w3.org/XML/Schemahttp://www.w3.org/TR/xmlschema-0/http://www.w3.org/TR/xmlschema-1/
-
XML Schema - 3. XSD - structure du fichier et espaces de nom xml-schema-1-83. XSD - structure du fichier et espaces de nom
3.1 Structure et espace de nom dun fichier XSD Comme tout fichier XML, XSD doit commencer par une dclaration XML Racine dun XSD : ... Llment schema possde des attributs (voir plus loin) XSD utilise des espaces de noms pour distinguer lments appartenant XSD (le langage)
et les lments et attributs dfinis par un schma donn (mme principe que XSLT).
-
XML Schema - 3. XSD - structure du fichier et espaces de nom xml-schema-1-9Espaces de noms (namespaces) et prfixes On peut soit dfinir un prfixe pour les lments XSD soit pour vos lments
Voir solution 1 et 2 ci-dessous Vous pouvez aussi choisir si vos lments XML auront un namespace
A. Solution 1: Donner un namespace au code XSD Souvent on utilise le prfixe xs: pour le code XSD
Parfois xsd: cela na pas dimportance elementFormDefault="qualified" veut dire que vos balises nauront pas de namespace
Example 3-1: XSD dfinition pour une simple recette de cuisine
Cette solution est prfrable en rgle gnrale (mais voir plus loin comment associer une XSD un fichier XML: il faut encore ajouter des attributs)XML Daniel. K. Schneider, Webster University Geneva - TECFA, University of Geneva 29/10/09
-
XML Schema - 3. XSD - structure du fichier et espaces de nom xml-schema-1-10B. Solution 2: Donner un namespace au code du schma Les lments dfinis pour votre schma ont un prfixe dans la dfinition.
vous devez donc dfinir votre namespace (substituer "yourdomain.org/namespace") On dclare que XML Schema a le namespace par dfaut, c.a.d. les lments XSD ne seront
pas prfixs.
Example 3-2: XSD dfinition pour une simple recette
XML Daniel. K. Schneider, Webster University Geneva - TECFA, University of Geneva 29/10/09
-
XML Schema - 3. XSD - structure du fichier et espaces de nom xml-schema-1-113.2 Validation Un document XML dcrit par un XSD est appel instance document. Dans XML Exchanger, clic sur licone validation, ensuite slectionner le fichier XSD
A. Association dun XSD avec un fichier XML, Solution 1 Il faut dclarer le namespace xsi: (XMLSchema-instance) Lattribut xsi:noNamespaceSchemaLocation dfinit lURL de votre XSD Attention: il faut utiliser cela tel quel !!! Je dconseille cette solution (voir la solution 2)
XML file (http://tecfa.unige.ch/guides/xml/examples/xsd-examples/recipe-no-ns.xml )
....
XSD file (http://tecfa.unige.ch/guides/xml/examples/xsd-examples/recipe-no-ns.xsd)
XML Daniel. K. Schneider, Webster University Geneva - TECFA, University of Geneva 29/10/09
http://tecfa.unige.ch/guides/xml/examples/xsd-examples/recipe-no-ns.xmlhttp://tecfa.unige.ch/guides/xml/examples/xsd-examples/recipe-no-ns.xsd
-
XML Schema - 3. XSD - structure du fichier et espaces de nom xml-schema-1-12B. Association dun XSD avec XML, Solution 2Solution retenir: Lide est que chaque fragment XML fait tjrs partie dun namespace:
1. Les fichiers XML et XSD doivent inclure une namespace declaration pour un domaineLe fichier XML doit inclure en plus:
2. une dclaration pour le XMLSchema-instance namespace3. un attribut xsi:schemaLocation qui dit ou trouver XSD
Cet attribut peut contenir plusieurs pairs "namespace-URL"
Example 3-3: XML pour une recette avec une XSD associe (file recipe.xml)
XML file (http://tecfa.unige.ch/guides/xml/examples/xsd-examples/recipe.xml)
..... ......
En gros: Il faut substituer qc. pour le rose et le rouge ci-dessus. Faites attention la syntaxe de lattribut schemaLocation: "Namespace_url XSD_URL NameSpace_URL XSD_URL ..."XML Daniel. K. Schneider, Webster University Geneva - TECFA, University of Geneva 29/10/09
http://tecfa.unige.ch/guides/xml/examples/xsd-examples/recipe.xml
-
XML Schema - 3. XSD - structure du fichier et espaces de nom xml-schema-1-13XSD file (http://tecfa.unige.ch/guides/xml/examples/xsd-examples/recipe.xsd)
....
La XSD dfinit un namespace pour vos balises. Il faut substituer http://myrecipes.org/" par un URL de votre choix, mais de prfrence un URL
sur lequel vous avez le contrle (par exemple votre home page).XML Daniel. K. Schneider, Webster University Geneva - TECFA, University of Geneva 29/10/09
http://tecfa.unige.ch/guides/xml/examples/xsd-examples/recipe.xsd
-
XML Schema - 3. XSD - structure du fichier et espaces de nom xml-schema-1-14Example 3-4: IMS Content Packaging 1.1.4 et IMS/LOM Metadataurl: C.f. http://tecfa.unige.ch/guides/tie/html/pedago-normes/pedago-normes.html
Le fichier XML utilisera deux espaces de nommage
...... .....
Cet exemple montre comment utiliser deux espaces de nom pour deux XSD imscp_v1p1 est le namespace par dfaut (sans prfixe) imsmd_v1p1 est le namespace pour les mtadonnes.XML Daniel. K. Schneider, Webster University Geneva - TECFA, University of Geneva 29/10/09
http://tecfa.unige.ch/guides/tie/html/pedago-normes/pedago-normes.html
-
XML Schema - 3. XSD - structure du fichier et espaces de nom xml-schema-1-15Extrait du fichier ims_cp_rootv1p1.xsd
XML Daniel. K. Schneider, Webster University Geneva - TECFA, University of Geneva 29/10/09
-
XML Schema - 3. XSD - structure du fichier et espaces de nom xml-schema-1-163.3 Dfinition dlments Une structure XML est hirarchique ...
Dfinit un lment
Exemple dun simple lment sans enfant et sans attributs:
Dfinition dlments enfants On peut les dfinir de deux faons:
soit avec un lment enfant complexType soit avec un attribut "type" qui se rfre une dfinition complexType
(1) enfant de xs:element
XML Daniel. K. Schneider, Webster University Geneva - TECFA, University of Geneva 29/10/09
-
XML Schema - 3. XSD - structure du fichier et espaces de nom xml-schema-1-17 (2) Alternativement, on dclare un complex type seul et ensuite on lutilise dans des dclarations
dlments.url: http://tecfa.unige.ch/guides/xml/examples/xsd-examples/recipe2.xsd
Rfrence un type CSD
XML Daniel. K. Schneider, Webster University Geneva - TECFA, University of Geneva 29/10/09
http://tecfa.unige.ch/guides/xml/examples/xsd-examples/recipe2.xsd
-
XML Schema - 4. Types de donnes xml-schema-1-184. Types de donnesDfinir ce que lments ou attributs peuvent contenir. Ces types sont dans le mme namespace que les balises XSD.
4.1 Types simplesExemples:
Simple Type Exemples (spars par des virgules) Explication
string Confirm this is electric A text stringbase64Binary GpM7 Base86 encoded binary datahexBinary 0FB7 HEX encoded binary datainteger ...-1, 0, 1, ...positiveInteger 1, 2, ...negativeInteger ... -2, -1nonNegativeInteger 0, 1, 2, ...
long-9223372036854775808, ... -1, 0, 1, ... 9223372036854775807
decimal -1.23, 0, 123.4, 1000.00
float -INF, -1E4, -0, 0, 12.78E-2, 12, INF, NaNXML Daniel. K. Schneider, Webster University Geneva - TECFA, University of Geneva 29/10/09
-
XML Schema - 4. Types de donnes xml-schema-1-19Exemple dun lment:
Exemple dun attribut (voir plus loin):
boolean true, false, 1, 0
duration P1Y2M3DT10H30M12.3S 1 year, 2 months, 3 days, 10 hours, 30 minutes, and 12.3 seconds
dataTime 1999-05-31T13:20:00.000-05:00 May 31st 1999 at 1.20pm Eastern Standard Time
date 1999-05-31
time 13:20:00.000, 13:20:00.000-05:00gYear 1999Name shipTo XML 1.0 Name typeQName po:USAddress XML Namespace QNameanyURI http://www.example.com/language en-GB, en-US, fr valid values for xml:lang as defined in XML 1.0
Simple Type Exemples (spars par des virgules) ExplicationXML Daniel. K. Schneider, Webster University Geneva - TECFA, University of Geneva 29/10/09
-
XML Schema - 4. Types de donnes xml-schema-1-204.2 Types simples dfinis par lutilisateurExample 4-1: Exemple "list":
XSD:
XML:20003 15037 95977 95945
Example 4-2: "restriction" sur un mot choisirXSD:
XML:constructivismeXML Daniel. K. Schneider, Webster University Geneva - TECFA, University of Geneva 29/10/09
-
XML Schema - 4. Types de donnes xml-schema-1-21Example 4-3: Restriction sur un nombre Le type est dfini comme enfant ici.
XSD:
XML:100XML Daniel. K. Schneider, Webster University Geneva - TECFA, University of Geneva 29/10/09
-
XML Schema - 5. Organisation dlments xml-schema-1-225. Organisation dlments Ici on montre qqs. design patterns pour dfinir des contraintes structurelles...
5.1 Rfrences vs. insertion directe On conseille de dfinir tous les lments plat et ensuite y rfrer
Elments dans lments (dconseill)
Dfinition dlments avec une rfrence (mieux) Voir Example 5-1: Une liste denfants ordonnes [23]
.....
XML Daniel. K. Schneider, Webster University Geneva - TECFA, University of Geneva 29/10/09
-
XML Schema - 5. Organisation dlments xml-schema-1-235.2 Squences Les attributs minOccurs and maxOccurs dfinissent le nombre min/max. dun enfant.
Example 5-1: Une liste denfants ordonnes
Example 5-2: Une liste avec un ou plusieurs lments XML Daniel. K. Schneider, Webster University Geneva - TECFA, University of Geneva 29/10/09
-
XML Schema - 5. Organisation dlments xml-schema-1-24Example 5-3: Une liste avec un lment email option et rptable XML Daniel. K. Schneider, Webster University Geneva - TECFA, University of Geneva 29/10/09
-
XML Schema - 5. Organisation dlments xml-schema-1-255.3 ChoixExample 5-4: Choix dlments option et rptable
Example 5-5: Choix obligatoire entre lments XML Daniel. K. Schneider, Webster University Geneva - TECFA, University of Geneva 29/10/09
-
XML Schema - 5. Organisation dlments xml-schema-1-265.4 Mixed contents
5.5 Empty elements (lments vides) Dfinir un lment "vide" consiste dfinir un lment sans enfants
Cela sapplique aussi aux "complex elements": Voir Example 6-1: Groupes dattributs (file family.xsd) [28]XML Daniel. K. Schneider, Webster University Geneva - TECFA, University of Geneva 29/10/09
-
XML Schema - 6. Attributs xml-schema-1-276. Attributs Les dclarations dattributs sont compliques en XSD, c.a.d. on dfinit un complexType. Le paramtre use: optional, prohibited or required
dfaut est optional
Voici quelques examples
Mme chose, mais en plus long:
-
XML Schema - 6. Attributs xml-schema-1-28Groupes dattributs Utilis pour dclarer des attributs plus complexes Les groupes sont rutilisables, c.a.d cest lquivalent entits paramtriques pour les DTD.
Example 6-1: Groupes dattributs (file family.xsd)url: http://tecfa.unige.ch/guides/xml/examples/xsd-examples/family.xsd
La dfinition ci-dessus se rfre au groupe dattributs dfini ci-dessous:
XML Daniel. K. Schneider, Webster University Geneva - TECFA, University of Geneva 29/10/09
http://tecfa.unige.ch/guides/xml/examples/xsd-examples/family.xsd
-
XML Schema - 6. Attributs xml-schema-1-29
Voici un fragment xml valide:url: http://tecfa.unige.ch/guides/xml/examples/xsd-examples/family.xml
XML Daniel. K. Schneider, Webster University Geneva - TECFA, University of Geneva 29/10/09
http://tecfa.unige.ch/guides/xml/examples/xsd-examples/family.xm
-
XML Schema - 6. Attributs xml-schema-1-306.1 Contraintes sur les valeurs Voici un exemple
Example 6-2: Contraintes sur lage
XML Daniel. K. Schneider, Webster University Geneva - TECFA, University of Geneva 29/10/09
-
XML Schema - 7. Traduire des DTDs vers XSD xml-schema-1-317. Traduire des DTDs vers XSD Ci-dessous qqs. chablons de traduction La plupart des diteurs ont un traducteur
le rsultat nest pas forcment trs beau ... dans Exchanger XML Editor: Menu Schema -> Convert Schema
7.1 Dfinition dlmentsExemples de http://www.w3.org/2000/04/schema_hack/
DTD XML Schema
XML Daniel. K. Schneider, Webster University Geneva - TECFA, University of Geneva 29/10/09
http://www.w3.org/2000/04/schema_hack/
-
XML Schema - 7. Traduire des DTDs vers XSD xml-schema-1-32
DTD XML SchemaXML Daniel. K. Schneider, Webster University Geneva - TECFA, University of Geneva 29/10/09
-
XML Schema - 7. Traduire des DTDs vers XSD xml-schema-1-337.2 Dfinition dattributsDTD XML Schema
XML Daniel. K. Schneider, Webster University Geneva - TECFA, University of Geneva 29/10/09
-
XML Schema - 7. Traduire des DTDs vers XSD xml-schema-1-347.3 ExemplesVoir: http://tecfa.unige.ch/guides/xml/examples/xsd-examples/
DTD XML SchemaXML Daniel. K. Schneider, Webster University Geneva - TECFA, University of Geneva 29/10/09
http://tecfa.unige.ch/guides/xml/examples/xsd-examples/
XML Schema1. Table des matires dtaille2. Introduction2.1 Types de grammaires XML (Schema languages)2.2 Comparaison de schmas bass sur une grammaire2.3 Ressources
3. XSD - structure du fichier et espaces de nom3.1 Structure et espace de nom dun fichier XSD3.2 Validation3.3 Dfinition dlments
4. Types de donnes4.1 Types simples4.2 Types simples dfinis par lutilisateur
5. Organisation dlments5.1 Rfrences vs. insertion directe5.2 Squences5.3 Choix5.4 Mixed contents5.5 Empty elements (lments vides)
6. Attributs6.1 Contraintes sur les valeurs
7. Traduire des DTDs vers XSD7.1 Dfinition dlments7.2 Dfinition dattributs7.3 Exemples