Formation XML Schéma

Cours XML Schéma, tutoriel & guide de travaux pratiques en pdf.

XML Schéma Les premiers pas

 Résumé des attributs de xsd:schema
<xsd:schema
xmlns = anyURI
id= ID
attributeFormDefault = qualified | unqualified elementFormDefault = qualified | unqualified
blockDefault = (#all|list of (extension | restriction | substitution))
finalDefault = (#all | list of (extension | restriction | list | union))
targetNamespace = anyURI
version = token
any attributes
>
((include | import | redefine | annotation)*,(((simpleType | complexType | group | attributeGroup) | element | attribute | notation),annotation*)*) </xs:schema>
 Attributs de xsd:schema
 xmlns
 Une référence URI qui spécifie un ou plusieurs namespaces à utiliser dans ce schéma
 Id
 Optionnel. Signale un unique identifiant pour l’élément
targetNamespace
 Optionnel. Une URI référence du namespace de ce schéma elementFormDefault
 Optionnel. La valeur doit être « qualified » ou « unqualified ». « unqualified » indique que les éléments du namespace cible ne sont pas obligés d’être accompagnés d’un préfixe du namespace
attributeFormDefault
 Optionnel. La valeur doit être « qualified » ou « unqualified ». … blockDefault
 Optionnel. définit la valeur par défaut de l’attribut block sur l’élément et les types complexes dans le targetNamespace du schéma
 finalDefault
 Optionnel. Indique la valeur par défaut de l’attribut final des éléments, simpleType, et complexType dans le namespace cible
 Version
 Optionnel. Spécifie la version du schéma
 Déclaration d’éléments
 Un élément, dans un schéma, se déclare avec la balise <xsd:element>
 Exemple :
<?xml version= »1.0″ ?>
<xsd:schema …>
<xsd:element name= »remarque  » type= »xsd:string »/> <xsd:element name= »contacts » type= »typeContacts »/> <!– déclarations de types ici –>
</xsd:schema>
 Ce schéma déclare deux éléments :
 remarque et contacts
 A chaque élément est associé un type via l’attribut type
 remarque de type xsd:string, type simple prédéfini de XML Schema
 contacts de type typeContacts, type complexe défini par l’utilisateur
 Les types de données
 XML Schema permet donc de spécifier des types de données bien plus finement que le langage DTD
 Il distingue notamment deux types :
 types simples
 types complexes
 Types simples
 Ne peuvent comporter ni attributs, ni éléments enfants
 Il en existe de nombreux, prédéfinis, mais il est également possible d’en « dériver » de nouveaux
 Syntaxe de déclaration
<xs:element name= »xxx » type= »yyy »/>
Types simples : exemple
 Document XML <lastname>Refsnes</lastname> <age>34</age> <dateborn>1968-03-27</dateborn>
 Schéma associé
<xs:element name= »lastname » type= »xs:string »/> <xs:element name= »age » type= »xs:integer »/> <xs:element name= »dateborn » type= »xs:date »/>

Les types simples (1)

string integer
Confirm this is electric -126789, -1, 0, 1, 126789
normalizedString positiveInteger
Confirm this is electric  1, 126789
token negativeInteger
Confirm this is electric -126789, -1
byte nonNegativeInteger
-1, 126  0, 1, 126789
unsignedByte nonPositiveInteger
0, 126  -126789, -1, 0
base64Binary int
GpM7  -1, 126789675
hexBinary unsignedInt
0FB7  0, 1267896754
long boolean
 -1, 12678967543233  true, false 1, 0
unsignedLong time
 0, 12678967543233  13:20:00.000, 13:20:00.000-05:00
short dateTime
 -1, 12678 1999-05-31T13:20:00.000-05:00
unsignedShort duration
 0, 12678  P1Y2M3DT10H30M12.3S
decimal date
-1.23, 0, 123.4, 1000.00 1999-05-31
float gMonth
-INF, -1E4, -0, 0, 12.78E-2, 12,  –05–
INF, NaN gYear
 double
 1999
 -INF, -1E4, -0, 0, 12.78E-2, 12, INF, NaN
 gYearMonth
 1999-02
 gDay
 —31
 gMonthDay
 –05-31
 Name
 shipTo
 QName
 po:USAddress
 NCName
 USAddress
 anyURI
 http://www.example.com/,
 http://www.example.com/doc.html
#ID5
 language
 en-GB, en-US, fr
 ID
 « A212 »
 IDREF
 « A212 »
 IDREFS
 « A212 » « B213″
 ENTITY
 ENTITIES
 NOTATION
 NMTOKEN, NMTOKENS
 US
 Brésil Canada Mexique
 Valeur par défaut et valeur fixée
 Un élément simple peut avoir une valeur par défaut ou une valeur fixée
 Une valeur par défaut est affectée si aucune autre valeur ne l’est
<xs:element name= »color » type= »xs:string » default= »red »/>
 Une valeur fixée est aussi affectée mais peut être changée
<xs:element name= »color » type= »xs:string » fixed= »red »/>
 Déclaration d’attributs
 Les attributs sont déclarés de types simples
<xs:attribute name= »xxx » type= »yyy »/>
 Seuls les éléments complexes peuvent avoir des attributs
 Exemple d’élément XML
<lastname lang= »EN »>Smith</lastname>
 Voici la définition correspondante de type simple
<xs:attribute name= »lang » type= »xs:string »/>
 On peut également affecter une valeur par défaut <xs:attribute name= »lang » type= »xs:string » default= »EN »/>
 On peut également affecter une valeur fixe
<xs:attribute name= »lang » type= »xs:string » fixed= »EN »/>
 Déclaration d’attributs
 Tous les attributs sont optionnels par défaut, on peut cependant les expliciter :
 <xs:attribute name= »lang » type= »xs:string » use= »optional »/>
 On peut les rendre obligatoires
 <xs:attribute name= »lang » type= »xs:string » use= »required »/>
 Déclaration d’attributs : restriction
 Des restrictions sont utilisées sur les attributs pour ne tolérer que des valeurs acceptables
 Les restrictions en XML sont appelées facettes
 Restriction à des valeurs
 Cet exemple définit un élément age avec une restriction : la valeur doit être comprise ente 0 et 100
<xs:element name= »age »> <xs:simpleType>
<xs:restriction base= »xs:integer »> <xs:minInclusive value= »0″/> <xs:maxInclusive value= »100″/>
</xs:restriction>
</xs:simpleType>
</xs:element>
 Restriction à un ensemble de valeurs
 Pour limiter l’étendue d’un élément de XML à un ensemble de valeurs acceptables, on a l’habitude d’utiliser l’énumération
 Cet exemple montre l’élément « car » avec restriction à « Audi », « Golf » et « BMW »
<xs:element name= »car »> <xs:simpleType>
<xs:restriction base= »xs:string »> <xs:enumeration value= »Audi »/> <xs:enumeration value= »Golf »/> <xs:enumeration value= »BMW »/>
</xs:restriction>
</xs:simpleType>
</xs:element>
 Restriction à un ensemble de valeurs
 On peut également l’écrire comme suit :
<xs:element name= »car » type= »carType »/> <xs:simpleType name= »carType »>
<xs:restriction base= »xs:string »> <xs:enumeration value= »Audi »/> <xs:enumeration value= »Golf »/> <xs:enumeration value= »BMW »/>
</xs:restriction>
</xs:simpleType>
 Dans ce cas-ci le type « carType » peut être employé par d’autres éléments parce que ce n’est pas une partie de l’élément « voiture »
 Restriction à une série de valeurs
 Restrictrion de « letter » à des lettres minuscules :
<xs:element name= »letter »> <xs:simpleType>
<xs:restriction base= »xs:string »> <xs:pattern value= »[a-z] »/>
</xs:restriction>
</xs:simpleType>
</xs:element>
 Restriction à une série de valeurs
 Restriction de « initials » à trois lettres majuscules :
<xs:element name= »initials »> <xs:simpleType>
<xs:restriction base= »xs:string »>
<xs:pattern value= »[A-Z][A-Z][A-Z] »/> </xs:restriction>
</xs:simpleType>
</xs:element>
 Restriction à une série de valeurs
 Restriction de « choice » à l’une des trois lettres x, y ou z :
<xs:element name= »choice »> <xs:simpleType>
<xs:restriction base= »xs:string »> <xs:pattern value= »[xyz] »/>
</xs:restriction>
</xs:simpleType>
</xs:element>
 Autres exemples de restrictions
 On préserve tous les espaces dans la chaîne <xs:restriction base= »xs:string »> <xs:whiteSpace value= »preserve »/>
 On remplace toutes les zones d’espaces, de tabulations, de justifications par des espaces
<xs:restriction base= »xs:string »> <xs:whiteSpace value= »replace »/>
 On remplace toutes les zones d’espaces dans la chaîne par un espace
<xs:restriction base= »xs:string »> <xs:whiteSpace value= »collapse »/>

Cours gratuitTélécharger le cours complet

Télécharger aussi :

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *