Insofern das XML-Schema Informationen über die zulässigen Werte eines Elements oder Attributs (und daher des entsprechenden Feldes in der Vorlage) liefert, umfasst das generierte Feld ein JavaScript-Überprüfungsskript, das überprüft, ob es sich bei dem Wert um einen durch die Schemadeklaration zugelassenen Wert handelt. Solche Informationen können durch den Datentyp des Elements oder Attributs sowie durch die auf den Basistyp angewendeten Beschränkungsfacetten bereitgestellt werden. Betrachten Sie folgendes Beispiel:
<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>
Die Zuordnung resultiert in einem numerischen Feld mit dem Namen „Number“ (Zahl), das ein Überprüfungsskript enthält, welches überprüft, ob ein Wert eine Ganzzahl zwischen 4 und 9 ist.
Viele der durch das XML-Schema gelieferten Beschränkungsfacetten liefern Informationen, die zum Generieren eines Überprüfungsskripts verwendet werden können. Diese Informationen werden zum Generieren von Überprüfungsskripten verwendet, wenn die Informationen nicht direkt einer Eigenschaft zugeordnet werden können; zum Beispiel die Zuordnung der Facette „maxLength“ eines Zeichenfolgetyps zu <text maxChars=””>.
Numerische Typenskripten
Alle numerischen Typen im XML-Schema werden einem einzigen numerischen Feld zugeordnet. Jedoch werden die durch einen numerischen Typ des XML-Schemas zusätzlich auferlegten Beschränkungen durch das Generieren von Überprüfungsskripten beibehalten, um sicherzustellen, dass sich ein Zahlenwert im zulässigen Bereich für den ursprünglichen XML-Schematyp befindet. Ein „unsigned byte“-Typ im XML-Schema generiert ein numerisches Feld mit einem Skript, um zu überprüfen, ob der Wert ein Byte-Wert ohne Vorzeichen ist; das generierte Skript wird also wie folgt lauten:
this.rawValue >= 0 && this.rawValue <= 255;
Skripten zum Überprüfen des angemessenen Bereichs werden für folgende Werte generiert:
-
integer
-
positive integer
-
negative integer
-
non-positive integer
-
non-negative integer
-
long, int
-
short
-
byte
-
unsigned long
-
unsigned int
-
unsigned short
-
unsigned byte-Datentypen
Einschluss-/Ausschluss-Skripten
Wenn ein numerischer Typ Min- oder Max-Einschluss- und/oder Ausschlusswerte festlegt, wird ein Skript generiert, das überprüft, ob der eingegebene Wert innerhalb des durch diese Beschränkungsfacetten definierten Bereichs liegt. Für ein Feld, das bereits über ein Skript zur Überprüfung des numerischen Bereichs verfügt, wie in „Numerische Typenskripten“ in
Gültigkeitsprüfung
definiert, überprüft das Skript den Bereich gemäß dem am meisten beschränkenden Datentypbereich oder gemäß dem Einschluss-/Ausschlussbereich.
length-, minLength- und maxLength-Skripten
Ein String-Typ des XML-Schemas kann eine length-Beschränkungsfacette oder eine minLength- und/oder eine maxLength-Beschränkungsfacette festlegen. Wenn die Schema-Node einem Textfeld zugeordnet wird, werden die für length- und minLength-Beschränkungsfacetten festgelegten Werte zum Generieren eines Überprüfungsskripts verwendet, das überprüft, ob die Textfeldlänge der durch length oder zumindest durch minLength festgelegte Wert ist.
Beachten Sie, dass jeder maxLength-Facettenwert für das Textfeld als maxChars zugeordnet wird.
Wenn ein String-Datentyp einer Popup-Liste zugeordnet wird (wegen der aufgezählten Werte) und length- oder min/maxLength-Werte im Überprüfungsskript dazu führen, dass der in der Liste ausgewählte Wert eine Länge besitzt, die gemäß den Facetten length, minLength und maxLength gültig ist.
totalDigits/fractionDigits-Skripten
Die Facette totalDigits legt die maximale Anzahl von Ziffern fest, die für einen Dezimal- oder jeden Ganzzahltyp verwendet werden kann (das heißt für die Datentypen „decimal“, „integer“, „positive integer“, „negative integer“, „non-positive integer“, „non-negative integer“, „long, int“, „short“, „byte“, „unsigned long“, „unsigned int“, „unsigned short“ und „unsigned byte“). Die fractionDigits-Facette ist nur für den Datentyp „decimal“ anwendbar und legt die maximal verwendbare Anzahl von Bruchziffern fest.
Wenn totalDigits oder fractionDigits für ein Element oder Attribut festgelegt werden, das einem numerischen Feld zugeordnet wird, wird ein Überprüfungsskript generiert, um zu überprüfen, ob die Gesamtanzahl der Ziffern und/oder die Gesamtanzahl der Bruchziffern gemäß den Beschränkungsfacetten zulässig ist.