Schéma XML.
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.
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é 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 était une fois... </description><br>
</temoignage> |
1 et 1 seul obligatoire | ||
Entités | Prédéfinies | < | < |
<expression><br> 1 <strong><</strong> 2<br>
</expression> |
Lower Than : inférieur à. | |
> | > |
|
<expression><br> 2 <strong>></strong> 1<br>
</expression> |
Greather Than : supérieur à. | ||
& | & |
|
|
Ampersand : perluète | ||
" | " |
|
|
Quote : guillemet | ||
' | ' |
|
|
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"> |
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>