Validation

Lorsque le schéma XML fournit des renseignements à propos des valeurs permises d’un élément ou d’un attribut (et, en conséquence, de la zone correspondante dans le modèle), la zone générée inclut un script de validation JavaScript qui vérifie que la valeur fait partie des valeurs permises par la déclaration de schéma. De telles données peuvent être fournies par le type de données d’un élément ou d’un attribut de même que par les facettes de restriction appliquées au type de base. Observez l’exemple suivant :

<xsd:element name="Number"> 
    <xsd:simpleType> 
        <xsd:restriction base="xsd:integer"> 
            <xsd:minInclusive value="4"/> 
            <xsd:maxInclusive value="9"/> 
        </xsd:restriction> 
    </xsd:simpleType> 
</xsd:element>

La mise en correspondance génère un champ numérique nommé « Number », lequel comporte un script de validation qui s’assure que la valeur est un nombre entier compris entre 4 et 9.

De nombreuses facettes de restriction fournies par le schéma XML fournissent des renseignements qui peuvent servir à générer un script de validation. Ces renseignements ne peuvent être utilisés que pour générer des scripts de validation dans les cas où les informations ne peuvent pas être associées directement à une propriété ; l’association de la facette maxLength de type chaîne à <text maxChars=””> en est un exemple.

Scripts de type numérique

Tous les types numériques d’un schéma XML sont associés à une seule zone numérique. Cependant, les autres restrictions imposées par le type numérique d’un schéma XML sont conservées en générant des scripts de validation. Ces scripts vérifient que la valeur numérique définit la limite permise pour le type de schéma XML original. Un type « unsigned byte » (octet non signé) dans un schéma XML génère un champ numérique assorti d’un script qui vérifie que la valeur est bel et bien une valeur d’octet non signé ; voici le script généré :

this.rawValue >= 0 && this.rawValue <= 255;

Des scripts de vérification du respect de la plage sont générés pour les valeurs suivantes :

  • integer

  • positive integer

  • negative integer

  • non-positive integer

  • non-negative integer

  • long, int

  • short

  • byte

  • unsigned long

  • unsigned int

  • unsigned short

  • unsigned byte datatypes

Scripts d’inclusion et d’exclusion

Lorsqu’un type numérique indique des valeurs d’inclusion ou d’exclusion min ou max, un script est généré pour vérifier que la valeur entrée se trouve dans la plage définie par ces facettes de restriction. Dans le cas d’un champ déjà assorti d’un script de plage numérique, comme expliqué à la rubrique Scripts de type numérique, le script vérifie la plage en fonction des paramètres les plus stricts : la plage datatype ou la plage inclusion/exclusion.

Scripts length, minLength et maxLength

Un type de chaîne schéma XML peut indiquer une facette de restriction de longueur ou une facette de longueur minimale (minLength) et/ou de longueur maximale (maxLength). Lorsque le noeud de schéma est associé à un champ de texte, les valeurs indiquées pour les facettes de restriction de longueur et de longueur minimale servent à générer un script de validation pour vérifier si la longueur du champ de texte a une valeur qui respecte la longueur ou la longueur minimale indiquée.

Remarquez que toute valeur de la facette maxLength est associée à la facette maxChars pour le champ de texte.

Lorsqu’un type chaîne est associé à une liste déroulante (à cause des valeurs énumérées) et aux facettes length ou min/maxLength, les valeurs déclencheront un script de validation qui vérifiera si la longueur de la valeur sélectionnée dans la liste est correcte, selon les facettes de longueur (length, minLength et maxLength).

Scripts totalDigits/fractionDigits

La facette totalDigits définit le nombre maximal de chiffres pouvant être utilisés pour tout nombre décimal ou entier (c’est-à-dire les types de données suivants : decimal, integer, positive integer, negative integer, non-positive integer, non-negative integer, long, int, short, byte, unsigned long, unsigned int, unsigned short et unsigned byte). La facette fractionDigits, qui ne s’applique qu’aux données décimales, définit le nombre maximal de décimales pouvant être utilisées.

Lorsque vous utilisez les facettes totalDigits ou fractionDigits pour un élément ou un attribut qui est associé à un champ numérique, un script de validation est généré pour vérifier si le nombre total de chiffres ou de décimales est permis par les facettes de restriction.