xml
en-tête |
||||
---|---|---|---|---|
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" > |
déclarer un élément |
||||
---|---|---|---|---|
<xsd:element name="element" type="type"/> |
||||
name="" | le nom de l'élément dans le bloc xml | |||
type="" | le type de l'élément | prédéfini: type="xsd:string" défini: type="mon-type" |
les types |
||||
---|---|---|---|---|
simples | <xsd:simpleType>...</xsd:simpleType> | |||
complexes | <xsd:complexType>...</xsd:complexType> |
les types |
||||
---|---|---|---|---|
Nombres et booléens | ||||
xsd:boolean | true ou false (resp. 1 ou 0) | |||
xsd:byte | entier signé sur 8 bits | |||
xsd:unsignedByte | entier non signé sur 8 bits | |||
xsd:short | entier signé sur 16 bits | |||
xsd:unsignedShort | entier non signé sur 16 bits | |||
xsd:int | entier signé sur 32 bits | |||
xsd:unsignedInt | entier non signé sur 32 bits | |||
xsd:long | entier signé sur 64 bits. | |||
xsd:unsignedLong | entier non signé sur 64 bits | |||
xsd:integer | entier de longueur arbitraire. | |||
xsd:positiveInteger | entier strictement positif de longueur arbitraire | |||
xsd:negativeInteger | entier strictement négatif de longueur arbitraire | |||
xsd:nonPositiveInteger | entier négatif ou nul de longueur arbitraire | |||
xsd:nonNegativeInteger | entier positif ou nul de longueur arbitraire | |||
xsd:float | nombre flottant sur 32 bits | |||
xsd:double | nombre flottant sur 64 bits | |||
xsd:decimal | nombre décimal de longueur arbitraire | |||
Les chaînes de caractères | ||||
xsd:string | chaîne de caractères. | |||
xsd:normalizedString | chaîne de caractères ne contenant pas de tabulation, de saut de ligne, ou de retour chariot. | |||
xsd:token | comme xsd:normalizedString avec la condition supplémentaire de pas avoir d'espace en début ou en fin de chaîne ou plusieurs espaces consécutifs. | |||
xsd:Name | nom XML | |||
Les chaînes de caractères | ||||
pour attribut uniquement | ||||
xsd:ID | nom xml utilisé pour un attribut servant à identifier un élément dans un document XML (contrainte d'unicité) | |||
xsd:IDREF | nom XML qui fait référence à une valeur de type xsd:ID existant dans le document | |||
xsd:IDREFS | liste de noms XML (références à des identifiants) séparés par des espaces | |||
xsd:NMTOKEN | jeton | |||
xsd:NMTOKENS | liste de jetons séparés par des espaces | |||
Les dates et heures | ||||
xsd:time | heure au format hh:mm:ss. | |||
xsd:date | date au format YYYY-MM-DD. | |||
xsd:dateTime | date et heure au format YYYY-MM-DDThh:mm:ss. | |||
xsd:duration | durée spécifiée selon le format PnYnMnDTnHnMnS | – Commence toujours par Pc – nY, nM, nD spécifient le nombre d'année, mois et jours – La lettre T est obligatoire si on veut décrire des heures, minutes ou secondes – nhnMnS spécifient le nombre d'heures, minutes et secondes. – exemple P8Y4M5D, P7M9DT10H5S et PT3H10S. |
||
xsd:dayTimeDuration | durée spécifiée selon le format PnDTnHnMnS. | |||
xsd:yearMonthDuration | durée spécifiée selon le format PnYnM comme P1Y6M. | |||
xsd:gYear | année au format YYYY. | |||
xsd:gYearMonth | année et mois au format YYYY-MM. | |||
xsd:gMonth | mois au format MM (de 01 à 12). | |||
xsd:gMonthDay | jour et mois au |
les types |
||||
---|---|---|---|---|
Les types simples non-prédéfinis (permettent uniquement de décrire des contenus ''texte''.) | ||||
restriction | <xsd:restriction base="xsd:unsignedByte"> <xsd:minInclusive value="18"/> </xsd:restriction> |
sur une base d'entier non signé on oblige à avoir une valeur minimum de 18 | ||
union | <xsd:union memberTypes="xsd:integer Infini"/> | une union entre des entier et un type infini (le type infini est une restriction de string avec soit +infini ou -infini) | ||
list | ||||
Les types complexes | ||||
sequence | définie une séquence d'éléments qui devras respecter un ordre. | |||
choice | <xsd:element ref="rouge"/> <xsd:element ref="bleu"/> <xsd:element ref="jaune"/> |
précise que parmis les éléments enfants un seul éléments peut apparaitre (attnetion ici ref appel à un élément complexe enfant de la racine) | ||
all | n'importe quel ordre et que chaque élément enfant peut apparaître zéro ou une fois | |||
Les contenues mixtes | ||||
mixed="true" | <livre> titre : <titre> The shortest book ever</titre>, Auteur : <auteur>Duschmol</auteur>. Contenu : <contenu> :-) </contenu> </livre> |
chaque éléments fils d'un élément valide pour X peut être entouré de texte autre que des caractères d'espacement. | ||
vide | <xsd:element name="vide" type="Vide"/> <xsd:complexType name="Vide> </xsd:complexType> |
une valise de type < vide/> est considéré comme un contenue complexe |
les attributs |
||||
---|---|---|---|---|
description interne | <xsd:attribute name="entier" type="xsd:integer"/> | |||
description externe | <xsd:attribute name="listeEntiers"> <xsd:simpleType> <xsd:list itemType="xsd:integer"/> </xsd:simpleType> </xsd:attribute> |
|||
use="" | use=required: obligatoire use=optional : optionelle use=prohibited : interdit |
|||
default='' | permet de donner une valeur par défault |
Dérivation de type |
||||
---|---|---|---|---|
extension | <!-- Type complexe dérivé à contenu simple --> <xsd:complexType ...> <xsd:simpleContent> <!-- Extension --> ... </xsd:simpleContent> </xsd:complexType> |
<!-- Type complexe dérivé à contenu complexe--><xsd:complexType ...> <xsd:complexContent> <!-- Extension --> ... </xsd:complexContent> </xsd:complexType> |
nb: L'extension d'un type simple est le seul cas parmi les dérivations, que sont la restriction et l'extension, où le type résultat peut changer | |
restriction | <xsd:simpleType ...> <!-- restriction --> ... </xsd:complexType> |
<xsd:complexType ...> <xsd:simpleContent> <!-- restriction --> ... </xsd:simpleContent> </xsd:complexType> |
<xsd:complexType ...> <xsd:complexContent> <!-- restriction --> ... </xsd:complexContent> </xsd:complexType> |
|
restriction par borne | <xs:restriction base="xsd:date"> <xs:minExclusive value="2019-12-01"/> </xs:restriction> |
uniquement aux types numériques et types dates via les éléments minInclusive, maxInclusive, minExclusive et maxExclusive | ||
restriction par énumération | <xsd:simpleType> <xsd:restriction base="xsd:string"> <xsd:enumeration value="Audi"/> <xsd:enumeration value="Golf"/> <xsd:enumeration value="BMW"/> </xsd:restriction> </xsd:simpleType> |
à tous les types simples | ||
restriction par motif | <xsd:element name="password"> <xsd:simpleType> <xsd:restriction base="xs:string"> <xsd:pattern value="[a-zA-Z0-9]{8}"/> </xsd:restriction> </xsd:simpleType> </xsd:element> |
à tous les types simples | ||
restriction par longueur (xsd:length, xsd:minLength ou xsd:maxLength) | <xsd:element name="password"> <xsd:simpleType> <xsd:restriction base="xs:string"> <xsd:minLength value="6"/> <xsd:maxLength value="12"/> </xsd:restriction> </xsd:simpleType> </xsd:element> |
uniquement aux types chaîne et au type contruit via l'opérateur xsd:list | ||
contraintes d'unicité | xsd:key | xsd :selector : pour indiquer sur quels éléments porte la contrainte xsd :field pour indiquer ce qui doit être unique |
<xsd:element name="bibliothèque" type="Bibliothèque"> <xsd:key name="unicité"> <xsd:selector xpath="livre"/> <xsd:field xpath="@titre"/> </xsd:key> </xsd:element> |
|
contraintes d'existance | xsd:keyref | xsd :name le nom de la contrainte xsd:ref le nom de l'element xsd:key auquel il fait reférence |
(refére ce à l'exeple du sessus)<xsd:keyref name="existence" refer="unicité"> <xsd:selector xpath=".//ref_livre"/> <xsd:field xpath="@ref"/> </xsd:keyref> |