Limites des DTD Espaces de noms XML : Une introduction (2

Transcription

Limites des DTD Espaces de noms XML : Une introduction (2
Limites des DTD
Syntaxe spécifique
Analyseurs XML non appropriés
XML : Une introduction (2)
Typage
Pas de possibilité de typer les contenus
Typage faible des valeurs d’attributs (orienté document plutôt
que XML-Data)
Description de documents XML
http://kiwi.emse.fr/3A/dn.html
Pas de modélisation partielle d'un document
J.J. Girardot
J.J. GIRARDOT - EMSE 11/2004
la modélisation doit être complète dans le DTD
on peut inclure des fichiers externes
on peut définir des parties conditionnelles
1
Exemple
J.J. GIRARDOT - EMSE 11/2004
2
Espaces de noms
Qu'est-ce qu'un « title » ?
<section><title>Book-Signing Event</title>
<signing>
<author title="Mr" name="Vikram Seth" />
<book title="A Suitable Boy"
price="$22.95" />
</signing>
<signing>
<author title="Dr" name="Oliver Sacks" />
<book title="The Island of the Color-Blind"
price="$12.95" />
</signing>
</section>
J.J. GIRARDOT - EMSE 11/2004
3
On désire manipuler en XML des documents de structures différentes
Les DTD fournissent une solution
Chaque DTD définit une structure spécifique de document
On veut utiliser au sein d'un même document des éléments et attributs issus
de types de documents différents
Exemple : écrire un article, utilisant des formules mathématiques et des
dessins ; DTD impliqués :
DocBook
MathML (Mathematical Mark-Up Language)
SVC (Scalable Vector Graphics)
Problèmes
On ne peut simplement « mélanger » les DTD (conflits de noms)
On ne peut plus « copier » des fragments de documents si l'on
change les noms
J.J. GIRARDOT - EMSE 11/2004
4
Solution
Les URI
Associer des « vocabulaires » (DTD ou Schémas) à des
URI.
Uniform Ressource Identifier
Normalisation IAB & W3C
Contrainte : permettre de retrouver automatiquement une
définition associée à une URI
Classification
URL : Uniform Ressource Locator
URN : Uniform Ressource Name
c.f. description des URI
Référencer ces vocabulaires par des alias, utilisés comme
préfixes dans les balises.
Syntaxe choisie
<préfixe>:<identificateur>
Référencer une ressource par son nom ou son adresse.
URI : RFC 2396, URL : RFC 2717, URN : RFC 2276.
Pratique actuelle : URI devient le terme générique pour
l'ensemble des types de références.
Le préfixe est un identificateur
Il a été associé à une URI, qui désigne une DTD
L'identificateur est défini dans la DTD
J.J. GIRARDOT - EMSE 11/2004
Historique
les concepts d'URL et d'URN s'estompent, certains URI ne sont
pas des URL ou URN manifestes, etc...
5
J.J. GIRARDOT - EMSE 11/2004
6
Attribution des URI
Les URN
Organisme : IANA
Correspondent à des « NameSpace », définis par des NID
http://www.iana.org/assignments/uri-schemes
Catégorie 1 : de la forme urn-<num>
Définis : urn-1, urn-2, urn-3
Environ 30 schémas enregistrés, attribués par l'IANA :
Catégorie 2 : identificateurs spécifiques :
http:, ftp:, etc.
'ietf' [RFC 2648], URN Namespace for IETF Documents
'pin'[RFC 3043], The Network Solutions Personal Internet Name (PIN):
A URN Namespace for People and Organizations
'issn' [RFC 3043], Using The ISSN as URN within an ISSN-URN
Namespace
'oid' [RFC 3061], A URN Namespace of Object Identifiers
'newsml' [RFC 3085], URN Namespace for NewsML Resources
'oasis' [RFC 3121], A URN Namespace for OASIS
'xmlorg' [RFC 3120], A URN Namespace for XML.org
'publicid' [RFC 3151], A URN Namespace for Public Identifiers
Schéma non enregistrés
Schémas publics
liste maintenue (officieusement) par le W3C
http://www.w3.org/Addressing/schemes
Schémas privés
Utilisés par des entreprises comme Microsoft, WebTV, etc
Des centaines sont utilisés et/ou créés chaque année
J.J. GIRARDOT - EMSE 11/2004
7
J.J. GIRARDOT - EMSE 11/2004
8
Notes
Qu'est-ce qu'un espace de Noms ?
Description de base : RFC 2717
Règles de création : RFC 2718
Syntaxe des URN : RFC 2141
Un ensemble d'identificateurs, appartenant à l'un des trois
groupes (sans conflit de nom) :
types de données
attributs globaux
éléments
urn: <nid> : <namespace specific string>
Syntaxe des URI : RFC 2396
attributs propres à un élément
<scheme>://<authority><path>?<query>
quelques schémas :
Les types de données permettent de spécifier des types
spécifiques à une application déterminée
Dans un document :
http, ftp, gopher, news, telnet, mailto, etc.
URL & formes abrégées
Syntaxe : http://www.ibiblio.org/xml/signature.xml
URL abrégé : /xml/signature.xml
URL abrégé relatif : signature.xml
J.J. GIRARDOT - EMSE 11/2004
un attribut qualifié est cherché dans les attributs globaux
un attribut non qualifié est cherché dans les attributs de l'élément
courant
9
J.J. GIRARDOT - EMSE 11/2004
10
Utilisation des NameSpaces
Terminologie
Un NameSpace est référencé par un attribut spécial
Préfixe : l'identificateur qui précède « : » dans un nom de
balise ou d'attribut
Syntaxes de l'attribut :
xmlns = "valeur"
xmlns:<prefixe>="valeur"
Le préfixe est un identificateur choisi par l'utilisateur
La valeur est une URI désignant l'espace de nom
le préfixe est défini par l'utilisation d'un attribut xmlns :
xmlns:<prefixe>='<espace de noms>'
Exemples :
xmlns:edi='http://ecom.example.org/schema'
xmlns='http://www.w3.org/1999/xhtml'
J.J. GIRARDOT - EMSE 11/2004
11
Espace de noms : un URI
Nom local : l'identificateur qui suit « : » dans un nom de
balise ou d'attribut
Nom qualifié : la combinaison d'un préfixe et d'un nom
local séparés par le caractère « : », ou un identificateur
sans préfixe
Nom étendu : l'identification conceptuellement constituée
d'un espace de noms et d'un nom local
J.J. GIRARDOT - EMSE 11/2004
12
Sémantique
Exemple 1
L'utilisation d'un attribut xmlns définit une référence à un
espace de noms
Éléments provenant de deux NameSpaces
xmlns : espace de noms par défaut
xmlns:préfixe : alias d'un espace de nom
L'espace de noms ainsi référencé est « actif » pour la
balise où apparaît l'attribut, et pour toute balise contenue
dans celle-ci
Un espace de noms ainsi référencé peut être masqué par
une nouvelle déclaration, effectué au sein d'une balise
contenu dans la balise courante
Plusieurs espaces de noms peuvent être référencés au sein
d'une même balise
J.J. GIRARDOT - EMSE 11/2004
<?xml version="1.1"?>
<!-- unprefixed element types are from
"books" -->
<book xmlns='urn:loc.gov:books'
xmlns:isbn='urn:ISBN:0-395-36341-6'>
<title>Cheaper by the Dozen</title>
<isbn:number>1568491379</isbn:number>
</book>
13
Exemple 2
J.J. GIRARDOT - EMSE 11/2004
14
Exemple 3
<?xml version='1.1'?>
<Beers>
<!-- the default namespace inside tables is that of HTML -->
<table xmlns='http://www.w3.org/1999/xhtml'>
<th><td>Name</td><td>Origin</td><td>Description</td></th>
<tr>
<!-- no default namespace inside table cells -->
<td><brandName xmlns="">Huntsman</brandName></td>
<td><origin xmlns="">Bath, UK</origin></td>
<td>
<details xmlns=""><class>Bitter</class><hop>Fuggles</hop>
<pro>Wonderful hop, light alcohol, good summer beer</pro>
<con>Fragile; excessive variance pub to pub</con>
</details>
</td>
</tr>
</table>
</Beers>
<?xml version="1.1"?>
<!-- initially, the default namespace is "books" -->
<book xmlns='urn:loc.gov:books'
xmlns:isbn='urn:ISBN:0-395-36341-6'>
<title>Cheaper by the Dozen</title>
<isbn:number>1568491379</isbn:number>
<notes>
<!-- make HTML the default namespace
for some commentary -->
<p xmlns='http://www.w3.org/1999/xhtml'>
This is a <i>funny</i> book!
</p>
</notes>
</book>
J.J. GIRARDOT - EMSE 11/2004
15
J.J. GIRARDOT - EMSE 11/2004
16
Exemple 4
Exemple 5
Utilisation incorrecte
Utilisation correcte
les noms étendus des attributs d'un même élément doivent être
différents
<!-- http://www.w3.org is bound
to n1 and n2 -->
<x xmlns:n1="http://www.w3.org"
xmlns:n2="http://www.w3.org" >
<bad a="1"
a="2" />
<bad n1:a="1" n2:a="2" />
</x>
J.J. GIRARDOT - EMSE 11/2004
Note :
dans le second exemple, a="1" est l'attribut local de l'élément
good du NS "http://www.w3.org", alors que
n1:a="2" est l'attribut global de ce même NS.
17
Quelques NameSpaces et leurs URI
J.J. GIRARDOT - EMSE 11/2004
18
XML Schemas
XML Schemas : http://www.w3.org/2001/XMLSchema
SMIL 2.0 : http://www.w3.org/2001/SMIL20/PR/
XHTML : http://www.w3.org/1999/xhtml
Voice XML : http://www.w3.org/2001/vxml
RDF : http://www.w3.org/1999/02/22-rdf-syntax-ns#
SVG : http://www.w3.org/2000/svg
Xlink : http://www.w3.org/1999/xlink
XSLT : http://www.w3.org/1999/XSL/Transform
XSI : http://www.w3.org/2001/XMLSchema-instance
EV : http://www.w3.org/2001/xml-events
...
J.J. GIRARDOT - EMSE 11/2004
<!-- http://www.w3.org is bound to
n1 and is the default -->
<x xmlns:n1="http://www.w3.org"
xmlns="http://www.w3.org" >
<good a="1"
b="2" />
<good a="1"
n1:a="2" />
</x>
Syntaxe XML (il existe un Schéma for Schemas)
Utilisation et support des Namespaces
Déclarations « orientées objet » (héritage, types abstraits…)
Définition de types global (top-level) et local (inlined)
Modularité (inclusion de schema et redéfinitions)
Structure auto-documentée
Expression de la cardinalité des sous-éléments
Valeurs nulles (absence de contenus)
Attributs et éléments par défaut
Any-element, any-attribute
Unicité des contraintes et ID/IDREF attribute scope
Expressions régulières pour specifier des chardata et des attributs valides
Nombreux types de données prédéfinis pour les contenus et les attributs
19
J.J. GIRARDOT - EMSE 11/2004
20
Exemple : BookStore.dtd
<!ELEMENT BookStore (Book+)>
<!ELEMENT Book (Title, Author, Date, ISBN, Publisher)>
<!ELEMENT Title (#PCDATA)>
<!ELEMENT Author (#PCDATA)>
<!ELEMENT Date (#PCDATA)>
<!ELEMENT ISBN (#PCDATA)>
<!ELEMENT Publisher (#PCDATA)>
BookStore.xsd
xsd = Xml-Schema Definition
Une dtd simple
21
J.J. GIRARDOT - EMSE 11/2004
J.J. GIRARDOT - EMSE 11/2004
22
Liaison schéma - document
Utilisation du schéma
<?xml version="1.0"?>
<BookStore xmlns ="http://www.books.org"
1
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.books.org BookStore.xsd">
<Book>
<Title>My Life and Times</Title>
<Author>Paul McCartney</Author>
<Date>July, 1998</Date>
<ISBN>94303-12021-43892</ISBN>
<Publisher>McMillin Publishing</Publisher>
</Book>
...
</BookStore>
<?xml version="1.0"?>
1
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
2
targetNamespace="http://www.books.org"
xmlns="http://www.books.org"
3
elementFormDefault="qualified">
4
5 <xsd:element name="BookStore">
6 <xsd:complexType>
<xsd:sequence>
<xsd:element ref="Book" minOccurs="1" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="Book">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref="Title" minOccurs="1" maxOccurs="1"/>
<xsd:element ref="Author" minOccurs="1" maxOccurs="1"/>
<xsd:element ref="Date" minOccurs="1" maxOccurs="1"/>
<xsd:element ref="ISBN" minOccurs="1" maxOccurs="1"/>
<xsd:element ref="Publisher" minOccurs="1" maxOccurs="1"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="Title" type="xsd:string"/>
<xsd:element name="Author" type="xsd:string"/>
<xsd:element name="Date" type="xsd:string"/>
<xsd:element name="ISBN" type="xsd:string"/>
<xsd:element name="Publisher" type="xsd:string"/>
</xsd:schema>
2
3
schemaLocation="http://www.books.org
BookStore.xsd"
1. Cette déclaration d'un espace de noms par défaut indique que tous les noms non qualifiés sont définis
dans l'espace de noms dont l'URI est http://www.books.org.
targetNamespace="http://www.books.org"
BookStore.xsd
BookStore.xml
- fait référence aux éléments de l'espace
de noms http://www.books.org
- définit les éléments de l'espace
de noms http://www.books.org
2. Nous allons faire référence à un attribut "schemaLocation" dont les caractéristiques sont définies dans
la norme 1 des schémas, à l'URI http://www.w3.org/2001/XMLSchema-instance.
3. L'attribut "schemaLocation" indique au valideur de schémas que l'espace de noms
http://www.books.org est défini par "BookStore.xsd" (schemaLocation se compose de deux valeurs).
J.J. GIRARDOT - EMSE 11/2004
23
J.J. GIRARDOT - EMSE 11/2004
24
Faire coexister deux espaces de noms
Solution 2
Éléments de l’espace de noms des Schémas
Éléments de l’espace de noms en cours de définition
Solution 1 :les noms des Schémas sont qualifiés ; la cible est prise comme espace
de noms par défaut.
Choisir XMLSchema comme espace de noms par défaut
http://www.w3.org/2001/XMLSchema
http://www.w3.org/2001/XMLSchema
http://www.books.org (targetNamespace)
http://www.books.org (targetNamespace)
complexType
complexType
BookStore
element
sequence
Title
string
Publisher
boolean
Book
schema
Book
Title
string
Author
sequence
Author
schema
BookStore
element
boolean
ISBN
Publisher
ISBN
Date
integer
Date
integer
J.J. GIRARDOT - EMSE 11/2004
<?xml version="1.0"?>
<schema xmlns="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://www.books.org"
xmlns:bk="http://www.books.org"
elementFormDefault="qualified">
<element name="BookStore">
<complexType>
<sequence>
<element ref="bk:Book" maxOccurs="unbounded"/>
</sequence>
</complexType>
</element>
<element name="Book">
<complexType>
<sequence>
<element ref="bk:Title"/>
<element ref="bk:Author"/>
<element ref="bk:Date"/>
<element ref="bk:ISBN"/>
<element ref="bk:Publisher"/>
</sequence>
</complexType>
</element>
<element name="Title" type="string"/>
<element name="Author" type="string"/>
<element name="Date" type="string"/>
<element name="ISBN" type="string"/>
<element name="Publisher" type="string"/>
</schema>
J.J. GIRARDOT - EMSE 11/2004
25
L’espace de noms par
défaut est celui des Schémas.
Il n’est pas nécessaire de
qualifier :
- schéma
- élément
- complexType
- séquence
- string
Le préfixe bk sert à
référencer l’espace cible.
Les noms des éléments
sont des identificateurs.
Il n’y a pas d’ambiguïté
dans leur utilisation.
J.J. GIRARDOT - EMSE 11/2004
<?xml version="1.0"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://www.books.org"
xmlns="http://www.books.org"
elementFormDefault="qualified">
<xsd:element name="BookStore">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="Book" maxOccurs="unbounded">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="Title" type="xsd:string"/>
<xsd:element name="Author" type="xsd:string"/>
<xsd:element name="Date" type="xsd:string"/>
<xsd:element name="ISBN" type="xsd:string"/>
<xsd:element name="Publisher" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:schema>
26
La définition des éléments
est interne (locale)
Autre écriture
27
J.J. GIRARDOT - EMSE 11/2004
28
Définition des types d’éléments
Quels types sont-ils disponibles ?
Deux écritures:
Un exemple : date
Sous forme d’attribut
<xsd:element name="name" type="type" minOccurs="int" maxOccurs="int"/>
Sous forme de contenu
<xsd:element name="name" minOccurs="int" maxOccurs="int">
<xsd:complexType>
…
</xsd:complexType>
</xsd:element>
J.J. GIRARDOT - EMSE 11/2004
string
boolean
decimal
float
double
duration
dateTime
time
date
gYearMonth
gYear
gMonthDay
gDay
gMonth
hexBinary
base64Binary
anyURI
Qname
NOTATION
Exemple
4 mars 2004 est noté 2004-03-04
Contraintes
CC et YY compris entre 00 et 00
MM compris entre 01 et 12
DD compris entre 01 et 28, 29, 30 ou 31 selon le mois et l’an
29
Note: 'T' séparateur date/time
INF = infinity
NAN = not-a-number
Types primitifs
"Hello World"
{true, false, 1, 0}
7.08
12.56E3, 12, 12560, 0, -0, INF, -INF, NAN
12.56E3, 12, 12560, 0, -0, INF, -INF, NAN
P1Y2M3DT10H30M12.3S
format: CCYY-MM-DDThh:mm:ss
format: hh:mm:ss.sss
format: CCYY-MM-DD
format: CCYY-MM
format: CCYY
format: --MM-DD
format: ---DD
format: --MM—
chaîne hexadécimale
chaîne base 64
URI/URN/URL…
Nom qualifié
Notation
J.J. GIRARDOT - EMSE 11/2004
Type primitif
Représentation d’une date : an, mois et jour
Syntaxe : CCYY-MM-DD
31
J.J. GIRARDOT - EMSE 11/2004
30
Types dérivés
Types dérivés prédéfinis
Restriction sur des types primitifs
Ex : Entier positif : positiveInteger
Types construits (user defined)
Types simples
Restrictions de types prédéfinis par spécifications de facettes
length, minLenght, maxLength, pattern, enumeration, whitespace
Types complexes
Composition
J.J. GIRARDOT - EMSE 11/2004
32
normalizedString
token
language
IDREFS
ENTITIES
NMTOKEN
NMTOKENS
Name
NCName
ID
IDREF
ENTITY
integer
nonPositiveInteger
negativeInteger
long
int
short
byte
nonNegativeInteger
unsignedLong
unsignedInt
unsignedShort
unsignedByte
positiveInteger
<?xml version="1.0"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://www.books.org"
xmlns="http://www.books.org"
elementFormDefault="qualified">
<xsd:simpleType name="ISBNType">
<xsd:restriction base="xsd:string">
<xsd:pattern value="\d{1}-\d{5}-\d{3}-\d{1}"/>
<xsd:pattern value="\d{1}-\d{3}-\d{5}-\d{1}"/>
<xsd:pattern value="\d{1}-\d{2}-\d{6}-\d{1}"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:element name="BookStore">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="Book" maxOccurs="unbounded">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="Title" type="xsd:string"/>
<xsd:element name="Author" type="xsd:string"/>
<xsd:element name="Date" type="xsd:gYear"/>
<xsd:element name="ISBN" type="ISBNType"/>
<xsd:element name="Publisher" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:schema>
Une chaîne sans TAB, CR ou LF
Une chaîne normalisée
any valid xml:lang value, e.g., EN, FR, ...
Utilisable seulement avec les attributs
Utilisable seulement avec les attributs
Utilisable seulement avec les attributs
Utilisable seulement avec les attributs
Un identificateur
Un identificateur non qualifié
Utilisable seulement avec les attributs
Utilisable seulement avec les attributs
Utilisable seulement avec les attributs
456
-infini à 0
-infini à -1
-9223372036854775808 à 9223372036854775807
-2147483648 à 2147483647
-32768 à 32767
-127 à 128
0 à infini
0 à 18446744073709551615
0 à 4294967295
0 à 65535
0 à 255
1 à infini
J.J. GIRARDOT - EMSE 11/2004
33
Type énumération de schémas
Date est de type gYear,
ISBN de type ISBNType
J.J. GIRARDOT - EMSE 11/2004
34
Exemple : type énumérés
<xsd:simpleType name="ISBNType">
<xsd:restriction base="xsd:string">
<xsd:pattern value="\d{1}-\d{5}-\d{3}-\d{1}"/>
<xsd:pattern value="\d{1}-\d{3}-\d{5}-\d{1}"/>
<xsd:pattern value="\d{1}-\d{2}-\d{6}-\d{1}"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="shape">
<xsd:restriction base="xsd:string">
<xsd:enumeration value="circle"/>
<xsd:enumeration value="triangle"/>
<xsd:enumeration value="square"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="ISBNType">
<xsd:restriction base="xsd:string">
<xsd:pattern value="\d{1}-\d{5}-\d{3}-\d{1}|\d{1}-\d{3}-\d{5}-\d{1}|\d{1}-\d{2}-\d{6}-\d{1}"/>
</xsd:restriction>
</xsd:simpleType>
Nouveau type : shape.
Un élément de ce type doit avoir l’une des valeurs
circle, triangle, ou square.
La barre verticale signifie "ou"
J.J. GIRARDOT - EMSE 11/2004
Nous définissons ici le
Type ISBNType.
35
J.J. GIRARDOT - EMSE 11/2004
36
Facettes des “integer”
Type contraint
Les entiers ont 8 facettes:
totalDigits
pattern
whitespace
enumeration
maxInclusive
maxExclusive
minInclusive
minExclusive
<xsd:simpleType name= "EarthSurfaceElevation">
<xsd:restriction base="xsd:integer">
<xsd:minInclusive value="-1290"/>
<xsd:maxInclusive value="29035"/>
</xsd:restriction>
</xsd:simpleType>
Nouveau type 'EarthSurfaceElevation'.
Les éléments de ce type sont des entiers compris entre -1290 et 29035.
J.J. GIRARDOT - EMSE 11/2004
37
J.J. GIRARDOT - EMSE 11/2004
38
Agencement des contraintes
Héritage des contraintes
Syntaxe :
<xsd:simpleType name= "EarthSurfaceElevation">
<xsd:restriction base="xsd:integer">
<xsd:minInclusive value="-1290"/>
<xsd:maxInclusive value="29035"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="nom">
<xsd:restriction base="xsd:base">
<xsd:facette value="valeur"/>
...
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name= "BostonAreaSurfaceElevation">
<xsd:restriction base="EarthSurfaceElevation">
<xsd:minInclusive value="0"/>
<xsd:maxInclusive value="120"/>
</xsd:restriction>
</xsd:simpleType>
Par "ou logique"
pattern et enumeration
Par "et logique"
autres contraintes
J.J. GIRARDOT - EMSE 11/2004
39
J.J. GIRARDOT - EMSE 11/2004
40
Déclaration des types simples
Types complexes
Par restriction sur les facettes de types primitifs ou de
types simples définis
Par union de types simples
Syntaxe :
<xsd:union memberTypes="type1 type2 type3">
Par liste de types simples
<xsd:list itemTypes="xsd:positiveInteger">
Une liste a une facette length sur laquelle il est possible de
placer des restrictions
J.J. GIRARDOT - EMSE 11/2004
41
Autres aspects
Balise any pour autoriser n'importe quel élément
Balise anyAttribute pour les attributs
Noms globaux et noms internes
Expressions régulières pour les chaînes
Types et éléments abstraits
Espaces de noms distincts pour :
éléments
attributs
types
attributs globaux
J.J. GIRARDOT - EMSE 11/2004
43
<xsd:complexType name="nom">
<xsd:constructeur>
<xsd:element name="nom"/>
<xsd:attribute name="nom"/>
...
</xsd:constructeur>
</xsd:complexType>
Les constructeurs
sequence, choice et all
Les contenus
element ou attribute, attribut mixed
J.J. GIRARDOT - EMSE 11/2004
42

Documents pareils

XML Schema XML Schéma Types Simples Restrictions de Types

XML Schema XML Schéma Types Simples Restrictions de Types Valeur C UV 19786 - Bases de données avancées - 2003/04 - B. Amann Valeur C UV 19786 - Bases de données avancées - 2003/04 - B. Amann

Plus en détail

XML Schema - Université de Cergy

XML Schema - Université de Cergy