XML-schemat tillhandahåller information om tillåtna värden för ett element eller attribut (och därmed även motsvarande fält i mallen), men det fält som genereras innehåller ett valideringsskript skrivet i JavaScript som verifierar att värdet är giltigt enligt schemadeklarationen. Sådan information kan tillhandahållas av elementets eller attributets datatyp, eller av begränsningsmetoderna som tillämpas på bastypen. Se exemplet nedan:
<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>
Mappningen resulterar i ett numeriskt fält med namnet ”Nummer”, som innehåller ett valideringsskript som bekräftar att värdet är ett heltal mellan 4 och 9.
Många av begränsningsmetoderna i XML-schemat tillhandahåller information som kan användas till att generera ett valideringsskript. Sådan information används endast till att generera valideringsskript där informationen inte kan mappas direkt till en egenskap, t ex när du mappar maxLength-metoden för en strängtyp till <text maxChars=””>.
Numeriska skript
Alla numeriska typer i XML-schemat mappas till ett enda numeriskt fält. De extra begränsningar som läggs på numeriska typer i XML-scheman upprätthålls genom att valideringsskript genereras. På så sätt kontrolleras att numeriska värden ligger inom det tillåtna intervallet för den ursprungliga XML-schematypen. Typen ”unsigned byte” i XML-schemat genererar ett numeriskt fält med ett skript, som kontrollerar att värdet är av typen unsigned byte. Det är alltså följande genererade skript:
this.rawValue >= 0 && this.rawValue <= 255;
För följande värden genereras passande skript för intervallkontroll:
integer
positivt heltal
negativt heltal
icke-positivt heltal
icke-negativt heltal
long, int
short
byte
unsigned long
unsigned int
unsigned short
unsigned byte-datatyper
Inkluderande/exkluderande skript
När en numerisk typ anger minimala eller maximala inkluderings- eller exkluderingsvärden genereras ett skript, som kontrollerar att det angivna värdet ligger innanför området som begränsas av villkoren. Om fältet redan innehåller ett skript för numeriska intervall enligt definitionerna i Numeriska skript, testas intervallet enligt det av datatypsintervallet eller inkluderings/exkluderingsintervallet som är mest begränsande.
length, minLength och maxLength, skript
I XML-scheman av typen string kan det finnas antingen en length-begränsning eller också en minLength- och/eller en maxLength-begränsning. Om schemanoden mappas till ett textfält, används specificerade värden för begränsningarna length och minLength för att skapa skript som kontrollerar att textfältets längd är det värde som anges av length eller åtminstone det värde som specificeras av minLength.
Observera att eventuella maxLength-metodvärden mappas som maxChars för textfältet.
Om en string-datatyp mappas till en listruta (på grund av uppräknade värden), length eller minLength/maxLength, kommer värdena leda till att valideringsskriptet kontrollerar att längden på det markerade värdet i listan är giltigt enligt metoderna length, minLength och maxLength.
totalDigits/fractionDigits-skript
Metoden totalDigits anger det maximala antalet siffror som kan användas i decimala typer eller heltalstyper (det vill säga typer som är decimala, heltal, positiva heltal, negativa heltal, icke-positiva heltal, icke-negativa heltal, long, int, short, byte, unsigned long, unsigned int, unsigned short och unsigned byte). Metoden fractionDigits kan endast användas med den decimala datatypen och anger högsta tillåtna antal decimaler.
Om totalDigits eller fractionDigits används med ett element eller ett attribut som mappas till ett numeriskt fält, genereras ett valideringsskript som testar att det totala antalet siffror och/eller decimaler uppfyller de krav som ställs av begränsningsmetoderna.