Tutoriel XML

ACCUEIL XML Introduction XML XML Comment utiliser Arbre XML Syntaxe XML Éléments XML Attributs XML Espaces de noms XML Affichage XML Requête HTTP XML Analyseur XML DOM XML XPath XML XML XSLT XQuery XML XMLXLink Validateur XML DTD XML Schéma XML Serveur XML Exemples XML XML Quiz Certificat XML

XMLAJAX

Présentation d'AJAX AJAX XMLHttp Requête AJAX Réponse AJAX Fichier XML AJAX PHP AJAX ASP AJAX Base de données AJAX Applications AJAX Exemples AJAX

DOM XML

Présentation du DOM Nœuds DOM Accès au DOM Informations sur le nœud DOM Liste des nœuds DOM Traversée du DOM Navigation DOM DOM Obtenir des valeurs Nœuds de changement DOM DOM Supprimer les nœuds DOM Remplacer les nœuds DOM Créer des nœuds DOM Ajouter des nœuds Nœuds de clonage DOM Exemples DOM

Tutoriel XPath

Présentation de XPath Nœuds XPath Syntaxe XPath Axes XPath Opérateurs XPath Exemples XPath

Tutoriel XSLT

Présentation de XSLT Langages XSL Transformation XSLT XSLT <modèle> XSLT <valeur-de> XSLT <pour-chaque> XSLT <sort> XSLT <si> XSLT <choisir> Appliquer XSLT XSLT sur le client XSLT sur le serveur XSLT Éditer XML Exemples XSLT

Tutoriel XQuery

Présentation de XQuery Exemple XQuery XQuery FLWOR XQuery HTML Termes XQuery Syntaxe XQuery Ajouter XQuery Sélection XQuery Fonctions XQuery

DTD XML

Présentation de la DTD Blocs de construction DTD Éléments DTD Attributs DTD Éléments DTD vs Attr Entités DTD Exemples de DTD

Schéma XSD

Présentation XSD Comment XSD XSD <schéma> Éléments XSD Attributs XSD Restrictions XSD

Complexe XSD

Éléments XSD XSD vide Éléments XSD uniquement Texte XSD uniquement XSD Mixte Indicateurs XSD XSD <tout> XSD <anyAttribute> Remplacement XSD Exemple XSD

Données XSD

Chaîne XSD Date XSD Numérique XSD Divers XSD Référence XSD

Services Web

Services XML XMLWSDL SAVON XML XML RDF XML RSS

Les références

Types de nœuds DOM Nœud DOM Liste de nœuds DOM DOM NamedNodeMap Documents DOM Élément DOM Attribut DOM Texte DOM DOM CDATA DOM Comment DOM XMLHttpRequest Analyseur DOM Éléments XSLT Fonctions XSLT/XPath

Restrictions/facettes XSD


Les restrictions sont utilisées pour définir des valeurs acceptables pour les éléments ou attributs XML. Les restrictions sur les éléments XML sont appelées facettes.


Restrictions sur les valeurs

L'exemple suivant définit un élément appelé "age" avec une restriction. La valeur de l'âge ne peut pas être inférieure à 0 ou supérieure à 120 :

<xs:element name="age">
  <xs:simpleType>
    <xs:restriction base="xs:integer">
      <xs:minInclusive value="0"/>
      <xs:maxInclusive value="120"/>
    </xs:restriction>
  </xs:simpleType>
</xs:element>

Restrictions sur un ensemble de valeurs

Pour limiter le contenu d'un élément XML à un ensemble de valeurs acceptables, nous utiliserions la contrainte d'énumération.

L'exemple ci-dessous définit un élément appelé "voiture" avec une restriction. Les seules valeurs acceptables sont : Audi, Golf, 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>

L'exemple ci-dessus aurait également pu être écrit comme ceci :

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

Remarque : Dans ce cas, le type "carType" peut être utilisé par d'autres éléments car il ne fait pas partie de l'élément "car".



Restrictions sur une série de valeurs

Pour limiter le contenu d'un élément XML afin de définir une série de chiffres ou de lettres pouvant être utilisés, nous utiliserions la contrainte de modèle.

L'exemple ci-dessous définit un élément appelé "lettre" avec une restriction. La seule valeur acceptable est UNE des lettres MINUSCULES de a à z :

<xs:element name="letter">
  <xs:simpleType>
    <xs:restriction base="xs:string">
      <xs:pattern value="[a-z]"/>
    </xs:restriction>
  </xs:simpleType>
</xs:element>

L'exemple suivant définit un élément appelé "initials" avec une restriction. La seule valeur acceptable est TROIS des lettres MAJUSCULES de a à z :

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

L'exemple suivant définit également un élément appelé "initials" avec une restriction. La seule valeur acceptable est TROIS des lettres MINUSCULES OU MAJUSCULES de a à z :

<xs:element name="initials">
  <xs:simpleType>
    <xs:restriction base="xs:string">
      <xs:pattern value="[a-zA-Z][a-zA-Z][a-zA-Z]"/>
    </xs:restriction>
  </xs:simpleType>
</xs:element>

L'exemple suivant définit un élément appelé "choix" avec une restriction. La seule valeur acceptable est UNE des lettres suivantes : 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>

L'exemple suivant définit un élément appelé "prodid" avec une restriction. La seule valeur acceptable est CINQ chiffres dans une séquence, et chaque chiffre doit être compris entre 0 et 9 :

<xs:element name="prodid">
  <xs:simpleType>
    <xs:restriction base="xs:integer">
      <xs:pattern value="[0-9][0-9][0-9][0-9][0-9]"/>
    </xs:restriction>
  </xs:simpleType>
</xs:element>

Autres restrictions sur une série de valeurs

L'exemple ci-dessous définit un élément appelé "lettre" avec une restriction. La valeur acceptable est zéro ou plusieurs occurrences de lettres minuscules de a à z :

<xs:element name="letter">
  <xs:simpleType>
    <xs:restriction base="xs:string">
      <xs:pattern value="([a-z])*"/>
    </xs:restriction>
  </xs:simpleType>
</xs:element>

L'exemple suivant définit également un élément appelé "lettre" avec une restriction. La valeur acceptable est une ou plusieurs paires de lettres, chaque paire étant constituée d'une lettre minuscule suivie d'une lettre majuscule. Par exemple, "sToP" sera validé par ce pattern, mais pas "Stop" ou "STOP" ou "stop" :

<xs:element name="letter">
  <xs:simpleType>
    <xs:restriction base="xs:string">
      <xs:pattern value="([a-z][A-Z])+"/>
    </xs:restriction>
  </xs:simpleType>
</xs:element>

L'exemple suivant définit un élément appelé "gender" avec une restriction. La seule valeur acceptable est masculin OU féminin :

<xs:element name="gender">
  <xs:simpleType>
    <xs:restriction base="xs:string">
      <xs:pattern value="male|female"/>
    </xs:restriction>
  </xs:simpleType>
</xs:element>

L'exemple suivant définit un élément appelé "password" avec une restriction. Il doit y avoir exactement huit caractères dans une ligne et ces caractères doivent être des lettres minuscules ou majuscules de a à z, ou un nombre de 0 à 9 :

<xs:element name="password">
  <xs:simpleType>
    <xs:restriction base="xs:string">
      <xs:pattern value="[a-zA-Z0-9]{8}"/>
    </xs:restriction>
  </xs:simpleType>
</xs:element>

Restrictions sur les caractères d'espacement

Pour spécifier comment les caractères d'espacement doivent être gérés, nous utiliserons la contrainte whiteSpace.

Cet exemple définit un élément appelé "adresse" avec une restriction. La contrainte whiteSpace est définie sur "preserve", ce qui signifie que le processeur XML NE SUPPRIMERA AUCUN espace blanc :

<xs:element name="address">
  <xs:simpleType>
    <xs:restriction base="xs:string">
      <xs:whiteSpace value="preserve"/>
    </xs:restriction>
  </xs:simpleType>
</xs:element>

Cet exemple définit également un élément appelé "adresse" avec une restriction. La contrainte whiteSpace est définie sur "replace", ce qui signifie que le processeur XML REMPLACERA tous les caractères d'espace blanc (sauts de ligne, tabulations, espaces et retours chariot) par des espaces :

<xs:element name="address">
  <xs:simpleType>
    <xs:restriction base="xs:string">
      <xs:whiteSpace value="replace"/>
    </xs:restriction>
  </xs:simpleType>
</xs:element>

Cet exemple définit également un élément appelé "adresse" avec une restriction. La contrainte whiteSpace est définie sur "collapse", ce qui signifie que le processeur XML SUPPRIMERA tous les espaces blancs (les sauts de ligne, les tabulations, les espaces, les retours chariot sont remplacés par des espaces, les espaces de début et de fin sont supprimés et plusieurs espaces sont réduits à un seul espace):

<xs:element name="address">
  <xs:simpleType>
    <xs:restriction base="xs:string">
      <xs:whiteSpace value="collapse"/>
    </xs:restriction>
  </xs:simpleType>
</xs:element>

Restrictions de longueur

Pour limiter la longueur d'une valeur dans un élément, nous utiliserions les contraintes length, maxLength et minLength.

Cet exemple définit un élément appelé "password" avec une restriction. La valeur doit comporter exactement huit caractères :

<xs:element name="password">
  <xs:simpleType>
    <xs:restriction base="xs:string">
      <xs:length value="8"/>
    </xs:restriction>
  </xs:simpleType>
</xs:element>

Cet exemple définit un autre élément appelé "password" avec une restriction. La valeur doit comporter au moins cinq caractères et au maximum huit caractères :

<xs:element name="password">
  <xs:simpleType>
    <xs:restriction base="xs:string">
      <xs:minLength value="5"/>
      <xs:maxLength value="8"/>
    </xs:restriction>
  </xs:simpleType>
</xs:element>

Restrictions pour les types de données

Constraint Description
enumeration Defines a list of acceptable values
fractionDigits Specifies the maximum number of decimal places allowed. Must be equal to or greater than zero
length Specifies the exact number of characters or list items allowed. Must be equal to or greater than zero
maxExclusive Specifies the upper bounds for numeric values (the value must be less than this value)
maxInclusive Specifies the upper bounds for numeric values (the value must be less than or equal to this value)
maxLength Specifies the maximum number of characters or list items allowed. Must be equal to or greater than zero
minExclusive Specifies the lower bounds for numeric values (the value must be greater than this value)
minInclusive Specifies the lower bounds for numeric values (the value must be greater than or equal to this value)
minLength Specifies the minimum number of characters or list items allowed. Must be equal to or greater than zero
pattern Defines the exact sequence of characters that are acceptable
totalDigits Specifies the exact number of digits allowed. Must be greater than zero
whiteSpace Specifies how white space (line feeds, tabs, spaces, and carriage returns) is handled