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 <strong><!ELEMENT</strong> description <strong>(#PCDATA)></strong> <description><br> Ce cas est arriv&eacute; le <date year="2003"/>.<br> </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 <strong><!ELEMENT</strong> identifiant <strong>(#CDATA)></strong> <identifiant><br> AB52<br> </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) <!<strong>ELEMENT</strong> voiture (marque,modele)> <voiture><br> <marque><br> Peugeot<br> </marque><br> <modele><br> 307<br> </modele><br> </voiture> L'ordre est imposé.
Liste (element1+) <!<strong>ELEMENT</strong> liste (objet+)> <liste><br> <objet><br> Objet 1<br> </objet><br> <objet><br> Objet 2<br> </objet><br> </liste> Au moins 1 élément
Optionnel Unique (element1?) <!<strong>ELEMENT</strong> prenoms (prenom,prenom?)> <prenoms><br> <prenom><br> Jerome </prenom><br> <prenom><br> Pierre<br> </prenom> <br> </temoignage> 0 ou 1 élément
Multiple (element1*) <!<strong>ELEMENT</strong> enfants (enfant*)> <enfants><br> <enfant><br> Jerome </enfant><br> <enfant><br> Jean-Pierre<br> </enfant> <br> </enfants> 0 ou n éléments
Unique (element1) <!<strong>ELEMENT</strong> temoignage (description)> <temoignage><br> <description><br> Il &eacute;tait une fois... </description><br> </temoignage> 1 et 1 seul obligatoire
Entités Prédéfinies < &lt; <expression><br> 1 <strong>&lt;</strong> 2<br> </expression> Lower Than : inférieur à.
> &gt; <expression><br> 2 <strong>&gt;</strong> 1<br> </expression> Greather Than : supérieur à.
& &amp; Ampersand : perluète
" &quot; Quote : guillemet
' &apos; Apostroph : apostrophe.
Attribut Type Texte <strong>CDATA</strong> <!<strong>ATTLIST</strong> event startDate <strong>CDATA</strong> "inconnue"> <event startDate="12/08/1972"/> Character DATA
Enuméré <em>el1</em><strong>|</strong><em>el2</em><strong>|</strong><em>el3</em>
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 <strong>"inconnue"</strong>> <event startDate="12/08/1972">
Obligatoire #REQUIRED <!<strong>ATTLIST</strong> event author <strong>CDATA #REQUIRED</strong>>
Déductible #IMPLIED <!<strong>ATTLIST</strong> event parent <strong>CDATA #IMPLIED</strong>>
Constante #FIXED <em>valeur</em> <!<strong>ATTLIST</strong> event version <strong>CDATA #FIXED </strong>"1.0">

Exemples

Un exemple de schéma XML est :

<xsd:<strong>schema xmlns</strong>:xsd<strong>="https://www.w3.org/2001/XMLSchema"></strong><br> <br> <xsd:<strong>annotation</strong>><br> <xsd:<strong>documentation</strong> xml:lang="fr"><br> Schema XML pour une librairie.<br> </xsd:<strong>documentation</strong>><br> </xsd:<strong>annotation</strong>><br> <br> <xsd:<strong>element</strong> <strong>name</strong>="librairie" <strong>type</strong>="typeLibrairie"/><br> <br> <xsd:<strong>complexType name</strong>="typeLibrairie"><br> <xsd:<strong>sequence</strong>><br> <xsd:<strong>element name</strong>="nom" <strong>type</strong>="xsd:<strong>string</strong>"/><br> <xsd:<strong>element name</strong>="sujet" <strong>type</strong>="typeSujet" <strong>minOccurs</strong>="1"/><br> </xsd:<strong>sequence</strong>><br> </xsd:<strong>complexType</strong>> <br> <br> <xsd:<strong>complexType name</strong>="typeSujet"><br> <xsd:<strong>sequence</strong>><br> <xsd:<strong>element name="</strong>nom" <strong>type="</strong>xsd:<strong>string</strong>"/><br> <xsd:<strong>element name</strong>="book" <strong>type="</strong>typeLivre" <strong>minOccurs="</strong>0"/><br> </xsd:<strong>sequence</strong>><br> </xsd:<strong>complexType</strong>> <br> <br> <xsd<strong>:complexType name="</strong>typeLivre"><br> <xsd:<strong>sequence</strong>><br> <xsd:<strong>element name</strong>="titre<strong>" type="</strong>xsd:<strong>string"/><br> <</strong>xsd<strong>:element name="</strong>auteur" <strong>type="</strong>xsd<strong>:string"/><br> </strong> </xsd:<strong>sequence</strong>><br> <strong> <</strong>xsd<strong>:attribute name="</strong>isbn<strong>" type="</strong>typeISBN"<strong>/><br> </</strong>xsd<strong>:complexType><br> <br> <</strong>xsd<strong>:simpleType name="</strong>typeISBN<strong>"><br> <</strong>xsd<strong>:restriction base="</strong>xsd<strong>:string"><br> <</strong>xsd<strong>:pattern value="</strong>\[0-9]{3}[-][0-9]{3}[-][0-9]{3}<strong>"/><br> </</strong>xsd<strong>:restriction><br> </</strong>xsd<strong>:simpleType><br> </strong><strong><br> </</strong>xsd<strong>:schema></strong>

Notes

Limitations