XML Schema

Schéma XML.

Besoin

Analyse

Un schéma XML permet de définir une grammaire XML selon une approche OO. Il permet de définir ses propres types et de les réutiliser, les spécialiser.

Conception

Schema XML Version Exemple schema XML Exemple XML Commentaire
Release
Technologie Technologie FixPack
Elément Vide EMPTY <!ELEMENT br EMPTY> <br/> Sans contenu.
Texte A interpréter #PCDATA <!ELEMENT description (#PCDATA)> <description>
Ce cas est arriv&eacute; le <date year="2003"/>.
</description>
Parseable Character DATA. Les balises dans le texte seront traitées et les entités seront développées
A ne pas interpréter #CDATA <!ELEMENT identifiant (#CDATA)> <identifiant>
AB52
</identifiant>
Character DATA. Les balises dans le texte ne seront pas traitées et les entités ne seront pas développées
Séquence (element1, element2, element3) <!ELEMENT voiture (marque,modele)> <voiture>
<marque>
Peugeot
</marque>
<modele>
307
</modele>
</voiture>
L'ordre est imposé.
Liste (element1+) <!ELEMENT liste (objet+)> <liste>
<objet>
Objet 1
</objet>
<objet>
Objet 2
</objet>
</liste>
Au moins 1 élément
Optionnel Unique (element1?) <!ELEMENT prenoms (prenom,prenom?)> <prenoms>
<prenom>
Jerome </prenom>
<prenom>
Pierre
</prenom>
</temoignage>
0 ou 1 élément
Multiple (element1*) <!ELEMENT enfants (enfant*)> <enfants>
<enfant>
Jerome </enfant>
<enfant>
Jean-Pierre
</enfant>
</enfants>
0 ou n éléments
Unique (element1) <!ELEMENT temoignage (description)> <temoignage>
<description>
Il &eacute;tait une fois... </description>
</temoignage>
1 et 1 seul obligatoire
Entités Prédéfinies < &lt; <expression>
1 &lt; 2
</expression>
Lower Than : inférieur à.
> &gt; <expression>
2 &gt; 1
</expression>
Greather Than : supérieur à.
& &amp; Ampersand : perluète
" &quot; Quote : guillemet
' &apos; Apostroph : apostrophe.
Attribut Type Texte CDATA <!ATTLIST event startDate CDATA "inconnue"> <event startDate="12/08/1972"/> Character DATA
Enuméré el1|el2|el3
Identifiant ID
Référence à un autreidentifiant IDREF
Références à d'autres identifiants IDREFS
Nom XML NMTOKEN NaMe TOKEN
Noms XML NMTOKENS NaME TOKENS
Entité ENTITY
Entités ENTITIES
Notation NOTATION
Valeur XML prédéfinie xml:
Valeur Par défaut <!ATTLIST event startDate CDATA "inconnue"> <event startDate="12/08/1972">
Obligatoire #REQUIRED <!ATTLIST event author CDATA #REQUIRED>
Déductible #IMPLIED <!ATTLIST event parent CDATA #IMPLIED>
Constante #FIXED valeur <!ATTLIST event version CDATA #FIXED "1.0">

Exemples

Un exemple de schéma XML est :

<xsd:schema xmlns:xsd="https://www.w3.org/2001/XMLSchema">

<xsd:annotation>
<xsd:documentation xml:lang="fr">
Schema XML pour une librairie.
</xsd:documentation>
</xsd:annotation>

<xsd:element name="librairie" type="typeLibrairie"/>

<xsd:complexType name="typeLibrairie">
<xsd:sequence>
<xsd:element name="nom" type="xsd:string"/>
<xsd:element name="sujet" type="typeSujet" minOccurs="1"/>
</xsd:sequence>
</xsd:complexType>

<xsd:complexType name="typeSujet">
<xsd:sequence>
<xsd:element name="nom" type="xsd:string"/>
<xsd:element name="book" type="typeLivre" minOccurs="0"/>
</xsd:sequence>
</xsd:complexType>

<xsd:complexType name="typeLivre">
<xsd:sequence>
<xsd:element name="titre" type="xsd:string"/>
<
xsd:element name="auteur" type="xsd:string"/>
</xsd:sequence>
<xsd:attribute name="isbn" type="typeISBN"/>
</
xsd:complexType>

<
xsd:simpleType name="typeISBN">
<
xsd:restriction base="xsd:string">
<
xsd:pattern value="\[0-9]{3}[-][0-9]{3}[-][0-9]{3}"/>
</
xsd:restriction>
</
xsd:simpleType>

</
xsd:schema>

Notes

Limitations