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> |