Quando lo schema XML fornisce informazioni sui valori ammessi di un elemento o un attributo (quindi del relativo campo nel modulo), il campo generato includerà uno script di validazione JavaScript che verifica la validità del valore in base alla dichiarazione dello schema. Tali informazioni possono essere fornite mediante il tipo di dati dell'elemento o dell'attributo, nonché dei facet restrittivi applicati al tipo base. Esaminare il seguente esempio:
<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 mappatura crea un campo numerico denominato Number, con uno script di convalida per verificare che tutti i valori inseriti siano numeri interi compresi tra 4 e 9.
Molti dei facet restrittivi forniti dallo schema XML offrono informazioni che possono essere utilizzate per creare uno script di convalida. Queste informazioni saranno utilizzate solo per generare script di convalida nei casi in cui le informazioni non possono essere mappate direttamente su una proprietà; ad esempio, mappando il facet maxLength per un tipo di stringa su <text maxChars=””>.
Script di tipo numerico
Tutti i tipi numerici in uno schema XML sono mappati su un singolo campo numerico. Tuttavia, le restrizioni addizionali imposte dal tipo numerico di uno schema XML vengono conservate generando script di convalida per verificare che un valore numerico sia compreso nel campo consentito per il tipo di schema XML originale. Un tipo di "unsigned byte" nello schema XML genera un campo numerico con uno script per convalidare che il valore sia un valore byte unsigned; di seguito lo script generato:
this.rawValue >= 0 && this.rawValue <= 255;
Saranno generati script di verifica appropriati per i seguenti valori:
integer
numero intero positivo
numero intero negativo
numero intero non positivo
numero intero non negativo
numero intero lungo
short
byte
numero intero lungo senza segno
numero intero senza segno
numero intero corto senza segno
tipi di dati byte senza segno
Script di inclusione/esclusione
Quando un tipo numerico specifica valori di inclusione e/o esclusione minimi o massimi, viene generato uno script per verificare che i valori immessi siano compresi nel campo definito da tali facet di restrizione. Per un campo che presenta già uno script di intervallo numerico come definito in Script di tipo numerico, lo script verifica l'intervallo in base all'intervallo di tipo dati o di inclusione/esclusione più restrittivo.
Script di lunghezza, lunghezza minima e lunghezza massima
Una stringa schema XML può specificare un facet di restrizione della lunghezza, della lunghezza minima o della lunghezza massima (length, minLength, maxLength). Se il nodo dello schema è mappato a un campo di testo, i valori specificati per i facet di restrizione length e minLength saranno utilizzati per generare uno script di convalida che verificherà che la lunghezza del campo di testo corrisponda al valore specificato dal parametro length oppure sia almeno uguale al valore specificato dal parametro minLength.
Eventuali facet maxLength saranno mappati come maxChars per il campo di testo.
Quando il tipo di dati di una stringa viene mappato a un elenco popup (a causa dei valori enumerati) e i valori di lunghezza minima o massima saranno utilizzati nella generazione di uno script di convalida per verificare che la lunghezza del valore selezionato in elenco sia valida rispetto ai facet di length, minLength e maxLength.
script totalDigits/fractionDigits
Il facet totalDigit specifica il numero massimo di cifre che possono essere utilizzate per un tipo decimale o per qualsiasi tipo di numero intero (cioè i tipi di dati decimal, integer, positive integer, negative integer, non-positive integer, non-negative integer, long, int, short, byte, unsigned long, unsigned int, unsigned short e unsigned byte). È possibile assegnare il facet fractionDigits solo al tipo di dati decimal; specifica il numero massimo di cifre frazionarie utilizzabili.
Se, per un elemento o un attributo mappato a un campo numerico, sono specificate cifre totali o frazionali (totalDigits o fractionDigits) sarà generato uno script di convalida per verificare che il numero totale di cifre e/o di numeri della cifra frazionale sia consentito dai facet di restrizione.