xsd
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> |
Dérivation de type 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> |