<

webmaster

le XML

XML SCHEMA
  • introduction aux schémas xml (xml schema)

XML fût pressenti dès son arrivée comme une technologie qui allait révolutionner l'échange de données. Cependant, les DTD, comme langage de schéma utilisé pour spécifier le contenu et la structure de documents XML, souffrent de quelques déficiences :

  • Les DTD ne sont pas écrites en XML, ce qui signifie que les technologies existantes pour manipuler des documents XML telles que DOM ou SAX ne peuvent être utilisées pour « passer » des schémas de documents.
  • Les DTD ne supportent pas les espaces de nom ce qui rend impossible l’import de schémas externes afin de réutiliser du code existant.
  • Les DTD n'offrent qu'un typage très limité des données.

Conscient de ces grandes limitations, le W3C a proposé un nouveau langage de définition de schéma de documents qu’est XML Schema.
Conçu pour pallier aux déficiences précitées des DTD, XML Schema propose, en plus des fonctionnalités fournies par les DTD, plusieurs nouveautés à savoir :

  • Un grand nombre de types de données intégrées comme les booléens, les entiers, les intervalles de temps, etc. De plus, il est possible de créer de nouveaux types par ajout de contraintes sur un type existant.
  • Des types de données utilisateurs qui nous permettent de créer notre propre type de données nommé.
  • La notion d'héritage : Les éléments peuvent hériter du contenu et des attributs d'un autre élément. C'est sans aucun doute l'innovation la plus intéressante de XMLSchema.
  • Le support des espaces de nom.
  • Les indicateurs d'occurrences des éléments peuvent être tout nombre non négatif.
  • Une grande facilité de conception modulaire de schémas.

XML Schema a un statut de recommandation du 2 Mai 2001, dont les spécifications sont disponibles à :
http://www.w3.org/TR/2001/REC-xmlschema-0-20010502/http://www.w3.org/TR/2001/REC-xmlschema-1-20010502/http://www.w3.org/TR/2001/REC-xmlschema-2-20010502/

  • la déclaration d'un schema

Comme tout document XML, un schéma XML débute par un prologue et est suivi par le corps document.
Les déclarations d'éléments et d'attributs se font à l'intérieur de la balise <xsd:schema>, quiest la racine du document et contient des informations relatives à l'espace de nom du schemade XML Schema, pour validation du document XML.
syntaxe déclaration d'un schema
img1

Tout élément appartenant aux langage XML Schéma doit être préfixé par "xsd:", l'espace de nom réservé par le W3C.
Comme nous l'avons vu dans la partie consacrée aux DTD, un document XML est composé principalement d'éléments (les balises du document) qui peuvent comporter des attributs.
XML Schema va permettre de déclarer ces éléments et ces attributs.
La déclaration d'éléments ou attributs va pouvoir se faire de différentes manières en fonction de la nature de l'élément et/ou de l'attribut :

  • Element ou attribut de type simple prédéfinis par le W3C
  • Element ou attribut de type simple prédéfini par l'utilisateur
  • Element ou attribut de type complexe

Exemple de déclarations simples
img2

2.1. les éléments
Un élément, au sens d'XML, est en fait une balise. Un élément est déclaré de la façon suivante dans un schéma : 
Déclaration d’éléments
img3

Chaque élément déclaré est associé à un type de données via l'attribut type. L'élément nom est de type typeNom, qui est un type complexe défini par l'utilisateur. L'élément remarque est du type xsd:string qui est un type simple prédéfini de XML Schema.
Les éléments pouvant contenir des sous-éléments ou porter des attributs sont dits de types complexes, tandis que les éléments ne contenant pas de sous-éléments sont dits de types simples.
2.2 les attributs
Un attribut est un qualificatif qui s'applique à un élément. À la différence des éléments qui peuvent être de type complexe ou simple, les attributs peuvent être uniquement de typesimple. En conséquence, les attributs ne peuvent pas contenir d'autres éléments ou attributs. Les déclarations d'attributs et références à un groupe d'attributs doivent apparaître à la fin des définitions de types complexes.

Déclaration d'attributs

img4

par David Matjaba