XML Schema

XML Schema

XML Schema publié comme recommandation par le W3C en mai 2001 est un langage de description de format de document XML permettant 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 des espaces 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 Definition en anglais, ou fichier XSD).

Une instance d'un XML Schema est un peu l'équivalent d'une définition de type de document (DTD). XML Schema amè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 des entités ; XML Schema est lui même un document XML, alors que les DTD sont des documents SGML.

Ce langage de description de contenu de documents XML est lui-même défini par un schéma, dont les balises de définition s'auto-définissent (c'est un exemple de dé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.0, de cette recommandation, date de 2004. Le W3C travaille actuellement sur la version 1.1 dont l'objectif[2] est de définir les notions de version de schéma, ainsi que des contraintes selon la présence de telle ou telle valeur.

Sommaire

Modèle de XML Schema

Pour ce qui est de la description de XML Schema, la recommandation spécifie la validation des structures des documents XML à partir d'un modèle abstrait ; elle en fournit le format d'échange en XML.

Pour ce modèle abstrait, un schéma est un ensemble de composants de schéma. Les principaux sont les suivants :

  • 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'une chaîne de caractères),
  • la définition de types complexes (valeurs constituées d'attributs et d'autres valeurs).

Elle introduit également le type anyType (n'importe quel type), base de tous les types utilisés.

Chaque composant est encadré par une unité d'information, au sens de la recommandation XML Information Set (dite Infoset) du W3C.

Pour ce qui est de l'usage, XML Schema permet de définir éléments et types de valeur soit globalement, soit localement à un contexte. La combinaison de ces deux modes permet de définir quatre techniques : celle dite des poupées russes (on décrit les éléments en les emboîtant les uns dans les autres), celle des tranches de salamis (définitions globales des éléments, mais locale des types), des stores vénitiens (définition locales des éléments, mais globales des types), et du jardin d'eden (définition globale des éléments et des types) [3].

Types de données

Arborescence des types de données

Les types de données inté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
  • 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
        • int, basé sur long
          • short, basé sur int, et duquel dérive byte
      • nonPositiveInteger, basé sur integer, et duquel dérive negativeInteger

Exemple

Un exemple de fichier XSD:

  <?xml version="1.0" encoding="UTF-8"?>
  <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
    <xs:element name="personne">
      <xs:complexType>
        <xs:sequence>
          <xs:element name="nom" type="xs:string" />
          <xs:element name="prenom" type="xs:string" />
          <xs:element name="date_naissance" type="xs:date" />
          <xs:element name="etablissement" type="xs:string" />
          <xs:element name="num_tel" type="xs:string" />
        </xs:sequence>
      </xs:complexType>
    </xs:element>
  </xs:schema>

Suivi d'un fichier XML valide:

  <?xml version="1.0" encoding="UTF-8"?>
  <personne xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="personne.xsd">
    <nom>MBODJ</nom>
    <prenom>Babacar</prenom>
    <date_naissance>1996-10-06</date_naissance>
    <etablissement>NIIT</etablissement>
    <num_tel>764704140</num_tel>
  </personne>

Mise en œuvre du Dublin Core

XML Schema correspond à un haut niveau de formalisation dans les schémas de classification. XML Schema permet d'implémenter le standard Dublin Core de métadonnées.

Voir : " XML Schemas to support the Guidelines for implementing Dublin Core in XML recommendation"

Les noms d'éléments sont 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

XML Schema conjointement avec les formulaires XForms pour valider les données dès la saisie.

Notes et références

Bibliographie

  • Les web services. Techniques, démarches et outils XML, WSDL, SOAP, UDDI, RosettaNet, UML. Hubert Kadima, Valérie Monfort, Dunod, 2003.

Voir aussi

Sur les autres projets Wikimedia :

Articles connexes

Liens externes


Wikimedia Foundation. 2010.

Contenu soumis à la licence CC-BY-SA. Source : Article XML Schema de Wikipédia en français (auteurs)

Игры ⚽ Нужно сделать НИР?

Regardez d'autres dictionnaires:

  • XML-Schema — ist eine Empfehlung des W3C zum Definieren von Strukturen für XML Dokumente. Anders als bei den klassischen XML DTDs wird die Struktur in Form eines XML Dokuments beschrieben. Darüber hinaus wird eine große Anzahl von Datentypen unterstützt.… …   Deutsch Wikipedia

  • XML Schema — XML Schema, abgekürzt XSD, ist eine Empfehlung des W3C zum Definieren von Strukturen für XML Dokumente. Anders als bei den klassischen XML DTDs wird die Struktur in Form eines XML Dokuments beschrieben. Darüber hinaus wird eine große Anzahl von… …   Deutsch Wikipedia

  • XML Schema — es un lenguaje de esquema utilizado para describir la estructura y las restricciones de los contenidos de los documentos XML de una forma muy precisa, más allá de las normas sintácticas impuestas por el propio lenguaje XML. Se consigue así una… …   Wikipedia Español

  • XML Schéma — XML Schema XML Schema publié comme recommandation par le W3C en mai 2001 est un langage de description de format de document XML permettant de définir la structure d un document XML. La connaissance de la structure d un document XML permet… …   Wikipédia en Français

  • XML Schema — XML Schema  язык описания структуры XML документа. Спецификация XML Schema является рекомендацией W3C. Как большинство языков описания XML, XML Schema была задумана для определения правил, которым должен подчиняться документ. Но, в отличие… …   Википедия

  • XML schema — An XML schema is a description of a type of XML document, typically expressed in terms of constraints on the structure and content of documents of that type, above and beyond the basic syntactical constraints imposed by XML itself. An XML schema… …   Wikipedia

  • XML Schema Definition — XML Schema ist eine Empfehlung des W3C zum Definieren von Strukturen für XML Dokumente. Anders als bei den klassischen XML DTDs wird die Struktur in Form eines XML Dokuments beschrieben. Darüber hinaus wird eine große Anzahl von Datentypen… …   Deutsch Wikipedia

  • XML Schema (W3C) — XML Schema один из языков описания структуры XML Schema получила статус рекомендации Консорциума W3C 2 мая 2001 года, став первым стандартом описания XML, получившим статус рекомендации. Как большинство языков описания XML, XML Schema была… …   Википедия

  • XML Schema (W3C) — dablink|This article is about the W3C s XML Schema language. For information about XML schema languages in general, see XML schemainfobox file format name = XML Schema (W3C) extension = .xsd mime = application/xml, text/xml owner = [http://www.w3 …   Wikipedia

  • XML Schema Language Comparison — An XML schema is a description of a type of XML document, typically expressed in terms of constraints on the structure and content of documents of that type, above and beyond the basic syntax constraints imposed by XML itself. There are several… …   Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”