XML Schema
XML Schema
Extension | .xsd |
---|---|
Type MIME | application/xml ,text/xml |
PUID | |
Signature | 3C (hexa) |
Développé par | |
Version initiale | |
Basé sur | |
Sites web |
XML Schema,publié comme recommandation par leW3Cenmai 2001,est unlangage de description de format de documentXMLpermettant de définir la structure et le type de contenu d'un document XML. Cette définition permet notamment de vérifier la validité de ce document.
Il est possible de décrire une organisation de vocabulaires d'origines différentes, par l'usage desespaces de noms.Il est possible de combiner les schémas eux-mêmes, et d'exprimer une combinaison pour le document contenu, comme quelqu'un qui parlerait de géographie et de sociologie dans un même texte.
Il est également possible, après une validation, de savoir avec quelle règle une information particulière a été testée: il s'agit du jeu de validation post-schema,ou PSVI (post-schema-validation infoset).
Une définition se compose d'un ou plusieurs documents XML, usuellement nommée (XML Schema Definitionenanglais,ou fichierXSD).
Une instance d'unXML Schemaest un peu l'équivalent d'unedéfinition de type de document(DTD).XML Schemaamène cependant plusieurs différences avec les DTD: il permet par exemple de définir des domaines de validité pour la valeur d'un champ, alors que cela n'est pas possible dans une DTD; en revanche, il ne permet pas de définir desentités;XML Schemaest lui-même un document XML, alors que les DTD sont des documentsSGML.
Ce langage de description de contenu de documents XML est lui-même défini par un schéma, dont lesbalisesde définition s'auto-définissent (c'est un exemple dedéfinition récursive)[1].
La recommandation du W3C 1.0 se compose d'un document de présentation (non normatif), d'un document précisant comment définir la structure, et d'un document précisant comment définir les données. La dernière édition, de version 1.1, de cette recommandation, a été publiée en.
Modèle deXML Schema
[modifier|modifier le code]La recommandation spécifie la validation des documents XML à partir d'un modèle abstrait; elle en fournit le format XML.
Pour ce modèle abstrait, un schéma est un ensemble de composants, tels que:
- la déclaration d'éléments (la notion d'éléments vient de la recommandation XML),
- la déclaration d'attributs (qui vient aussi de la recommandation XML),
- la définition de types simples (valeurs constituées uniquement à partir d'unechaîne de caractères),
- la définition de types complexes (valeurs constituées d'attributs et d'autres valeurs).
Elle introduit également le typeanyType(n'importe quel type), base de tous les types utilisés.
Chaque composant est encadré par une unité d'information, au sens de la recommandationXML Information Set(diteInfoset) du W3C.
Pour ce qui est de l'usage,XML Schemapermet de définir éléments et types de valeur soit nommément, soit localement à un contexte nommé. La combinaison de ces deux modes permet de définir quatre techniques: celle dite despoupées russes(on décrit les éléments en les emboîtant les uns dans les autres), celle destranches de salamis(définitions globales des éléments, mais locale des types), desstores vénitiens(définition locales des éléments, mais globales des types), et dujardin d'Eden(définition globale des éléments et des types)[2].
XML Schemadétermine l'unicité comme une combinaison de nœuds, relativement à un contexte, par rapport à leurs composants. Ainsi, on peut par exemple affirmer et vérifier qu'une personne est unique, dans le contexte d'un annuaire, par rapport à son nom et son prénom[3].
Types de données
[modifier|modifier le code]Lestypes de donnéesintégrés sont[4]:
- string
- normalizedString, basé sur string
- token, basé sur normalizedString
- language,basé sur token
- NMTOKEN, basé sur token, et duquel dérive NMTOKENS
- Name, basé sur token
- NCName, basé sur Name
- ID, basé sur NCName
- IDREF, basé sur NCName, et duquel dérive IDREFS
- ENTITY, basé sur NCName, et duquel dérive ENTITIES
- NCName, basé sur Name
- token, basé sur normalizedString
- normalizedString, basé sur string
- duration
- dateTime
- date
- time
- gYear
- gYearMonth
- gMonth
- gMonthDay
- gDay
- boolean
- NOTATION
- Qname (Nom Qualifié[5])
- anyURI
- base64Binary
- hexBinary
- float
- double
- decimal
- integer, basé sur decimal
- long, basé sur integer
- nonNegativeInteger, basé sur long
- positiveInteger, basé sur nonNegativeInteger
- unsignedLong, basé sur nonNegativeInteger
- unsignedInt, basé sur unsignedLong
- unsignedShort, basé sur unsignedInt, et duquel dérive unsignedByte
- unsignedInt, basé sur unsignedLong
- int, basé sur long
- short, basé sur int, et duquel dérive byte
- nonNegativeInteger, basé sur long
- nonPositiveInteger, basé sur integer, et duquel dérive negativeInteger
- long, basé sur integer
- integer, basé sur decimal
Exemple
[modifier|modifier le code]Un exemple de fichier XSD (personne.xsd):
<?xml version= "1.0" encoding= "UTF-8"?>
<xs:schemaxmlns:xs="http:// w3.org/2001/XMLSchema">
<xs:elementname="personne">
<xs:complexType>
<xs:sequence>
<xs:elementname="nom"type="xs:string"/>
<xs:elementname="prenom"type="xs:string"/>
<xs:elementname="date_naissance"type="xs:date"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
Suivi d'un fichierXMLvalide:
<?xml version= "1.0" encoding= "UTF-8"?>
<personnexmlns:xsi="http:// w3.org/2001/XMLSchema-instance"xsi:noNamespaceSchemaLocation="personne.xsd">
<nom>DeLatour</nom>
<prenom>Jean</prenom>
<date_naissance>1967-08-13</date_naissance>
</personne>
Mise en œuvre du Dublin Core
[modifier|modifier le code]XML Schemacorrespond à un haut niveau de formalisation dans lesschémas de classification. XML Schemapermet d'implémenter le standardDublin Coredemétadonnées.
Voir:"XML Schemasto support the Guidelines for implementingDublin CoreinXMLrecommendation"
Lesnoms d'élémentssont indiqués de la façon suivante:
- <xs:element name= "title"type= "elementType" />
- <xs:element name= "creator"type= "elementType" />
- <xs:element name= "subject"type= "elementType" />
- <xs:element name= "description"type= "elementType" />
- <xs:element name= "publisher"type= "elementType" />
- <xs:element name= "contributor"type= "elementType" />
- <xs:element name= "date"type= "elementType" />
- <xs:element name= "type"type= "elementType" />
- <xs:element name= "format"type= "elementType" />
- <xs:element name= "identifier"type= "elementType" />
- <xs:element name= "source"type= "elementType" />
- <xs:element name= "language"type= "elementType" />
- <xs:element name= "relation"type= "elementType" />
- <xs:element name= "coverage"type= "elementType" />
- <xs:element name= "rights"type= "elementType" />
Exemple d'utilisation
[modifier|modifier le code]XML Schemaest utilisé conjointement avec les formulairesXFormspour valider les données dès la saisie.
Historique
[modifier|modifier le code]XML Schemaest l'aboutissement de diverses propositions venant essentiellement de Microsoft en coopération avec l'université d'Édimbourg en 1998. Il trouve son origine dans le langage de description SGML. Les DTD ayant trouvé leurs limites, Microsoft proposa d'utiliser XML pour décrire des documents XML avec des formats commeXML-DataouDocument Content Description[6]et reçut l'appui de l'université de Darmstadt (Allemagne) en 1999. L'ensemble des propositions convergèrent vers une première spécification deXML Schemadébut[7].
Notes et références
[modifier|modifier le code]- A Schema for Schemas (normative)
- (en)Introducing Design Patterns in XML Schemaset(en)Schema Design PatternsRussian Doll,(en)Salami Slice,(en)Venetian Blindet(en)Garden of Eden
- Jean-JacquesThomasson,Schéma XML,Paris,Eyrolles,,466p.(ISBN2-212-11195-9),p.160-165
- Built-in datatypes,XML Schemarecommendation, W3C
- QName
- (en)Cover Pages: XML Schema
- Le W3C recommandeXML Schema,Communiqué de presse du W3C, 2 mai 2001
Bibliographie
[modifier|modifier le code]- Les web services.Techniques, démarches et outils XML, WSDL, SOAP, UDDI, RosettaNet, UML. Hubert Kadima, Valérie Monfort,Dunod,2003.
Voir aussi
[modifier|modifier le code]Articles connexes
[modifier|modifier le code]Liens externes
[modifier|modifier le code]- (en)A Short History ofXML SchemaLanguages
- (en)La page surXML Schemadu W3C
- (fr)Traduction française de la recommandation du W3C sur les schémas XML duTome 0etTome 1;le tome 2 de la recommandation n'est pas traduit.