XML スキーマが要素や属性(およびテンプレート内の対応するフィールド)で許可される値についての情報を含んでいる場合、生成されるフィールドには、値がスキーマ宣言により許可される値かどうかを検証する JavaScript 検証スクリプトが含まれます。このような情報は、要素または属性のデータ型、基本型に適用される制約ファセットによって提供されます。次の例について考えてください。
<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>
マッピングの結果、値が 4 ~ 9 の整数かどうかを検証する検証スクリプトを持つ、「Number」という名前の数値フィールドが生成されます。
XML スキーマが提供する制約ファセットには、多くの場合、検証スクリプトの生成に使用される情報が含まれています。文字列型の maxLength ファセットの <text maxChars=""> に対するマッピングのように、情報をプロパティに直接マップできない場合、この情報は検証スクリプトの生成にのみ使用されます。
数値型のスクリプト
XML スキーマ内のすべての数値型は単一の数値フィールドへマップされます。ただし、XML スキーマの数値型によって課せられる追加の制限は、数値が XML スキーマの元の型で許可された範囲であることを確認する検証スクリプトを生成することで保持されます。XML スキーマ内の「unsigned byte」型は、値が符号なしバイトの値かどうかを検証するスクリプトを含む数値フィールドを生成します。つまり、次のスクリプトが生成されます。
this.rawValue >= 0 && this.rawValue <= 255;
以下の値に対する適正範囲のテストスクリプトが生成されます。
-
integer
-
positive integer
-
negative integer
-
non-positive integer
-
non-negative integer
-
long、int
-
short
-
byte
-
unsigned long
-
unsigned int
-
unsigned short
-
unsigned byte
Inclusion / exclusion スクリプト
数値型で最小または最大の包含値あるいは排他値(またはその両方)を指定すると、入力された値が制約ファセットで定義された範囲内にあるかどうかをテストするスクリプトが生成されます。フィールドに
検証
で定義された数値型のスクリプトが既にある場合、スクリプトは、データ型範囲または包含 / 排他範囲の最も限定的な範囲に従ってテストを実行します。
length、minLength および maxLength スクリプト
XML スキーマの文字列型では、length 制約ファセットや、minLength または maxLength 制約ファセット(またはその両方)を指定できます。スキーマノードがテキストフィールドにマップされている場合、length 制約ファセットや minLength 制約ファセットで指定された値は、テキストフィールド長が length で指定された値か、少なくとも minLength で指定された値かどうかをテストする検証スクリプトの生成に使用されます。
すべての maxLength ファセット値はテキストフィールドに maxChars としてマップされることに注意してください。
文字列データ型がポップアップリスト(列挙値であるため)および length または minLength / maxLength にマップされると、リストで選択された値が length、minLength および maxLength ファセットに応じた有効な長さかどうかをチェックする検証スクリプトが生成されます。
totalDigits / fractionDigits スクリプト
totalDigits ファセットは小数値やすべての整数値型(すなわち decimal、integer、positive integer、negative integer、non-positive integer、non-negative integer、long、int、short、byte、unsigned long、unsigned int、unsigned short および unsigned byte データ型)で使用される数字の最大桁数を指定します。fractionDigits ファセットは小数値データ型のみに適用され、使用される小数部分の最大桁数を指定します。
totalDigits または fractionDigits が、数値フィールドにマップされる要素または属性に対して指定された場合、総桁数または小数部の桁数(またはその両方)の合計が制約ファセットで許可されるかどうかをテストする検証スクリプトが生成されます。