XML スキーマの資格/ファセット
XSD 制限 / ファセット
制限は、XML 要素または属性の許容値を定義するために使用されます。 XML 要素の制限はファセットと呼ばれます。
値の修飾
次の例では、「age」という名前の要素を修飾付きで定義します。 age の値は 0 未満または 120 より大きくすることはできません:
<xs:simpleType>
<xs:restrictionbase="xs:integer">
<xs:minInclusive value="0"/>
<xs:maxInclusive value="120"/>
</xs:制限>
</xs:simpleType>
</xs:element>
値のセットへの制限
XML 要素の内容を許容可能な値のセットに制限するには、列挙制約 (列挙制約) を使用します。 )。
次の例では、修飾子を使用して「car」という名前の要素を定義します。許容される値は次のとおりです: Audi、Golf、BMW:
<xs:simpleType>
<xs:restrictionbase="xs:string">
<xs:enumeration value="アウディ"/>
<xs:enumeration value="ゴルフ"/>
<xs:enumeration value="BMW"/>
</xs:制限>
</xs:simpleType>
</xs:element>
上記の例は、次のように記述することもできます:
<xs:simpleType name="carType">
<xs:restrictionbase="xs:string">
<xs:enumeration value="アウディ"/>
<xs:enumeration value="ゴルフ"/>
<xs:enumeration value="BMW"/>
</xs:制限>
</xs:simpleType>
注: この場合、タイプ「carType」は「car」要素の一部ではないため、他の要素で使用できます。
一連の値の制限
XML 要素のコンテンツ制限を一連の使用可能な数字または文字として定義する必要がある場合は、パターン制約を使用する必要があります。
次の例では、修飾子付きの「letter」という名前の要素を定義します。許容される値は、小文字 a ~ z の 1 つだけです:
<xs:simpleType>
<xs:restrictionbase="xs:string">
<xs:pattern value="[a-z]"/>
</xs:制限>
</xs:simpleType>
</xs:element>
次の例では、修飾子付きの「initials」という名前の要素を定義します。許容される値は、A ~ Z の 3 つの大文字です:
<xs:simpleType>
<xs:restrictionbase="xs:string">
<xs:パターン値="[A-Z][A-Z][A-Z]"/>
</xs:制限>
</xs:simpleType>
</xs:element>
次の例では、修飾付きの「initials」という名前の要素も定義しています。許容される値は大文字または小文字の a ~ z で、そのうち 3 つは次のとおりです:
<xs:simpleType>
<xs:restrictionbase="xs:string">
<xs:パターン値="[a-zA-Z][a-zA-Z][a-zA-Z]"/>
</xs:制限>
</xs:simpleType>
</xs:element>
次の例では、条件付きで「choice」という名前の要素を定義します。許容される値は、文字 x、y、または z のいずれかです:
<xs:simpleType>
<xs:restrictionbase="xs:string">
<xs:pattern value="[xyz]"/>
</xs:制限>
</xs:simpleType>
</xs:element>
次の例では、修飾子付きの「prodid」という名前の要素を定義します。許容される値は、0 ~ 9 の範囲の 5 つのアラビア数字のシーケンスです:
<xs:simpleType>
<xs:restrictionbase="xs:integer">
<xs:pattern value="[0-9][0-9][0-9][0-9][0-9]"/>
</xs:制限>
</xs:simpleType>
</xs:element>
値の範囲に関するその他の修飾
次の例では、修飾を使用して「letter」という名前の要素を定義します。許容される値は、a ~ z の 0 個以上の文字です:
<xs:simpleType>
<xs:restrictionbase="xs:string">
<xs:パターン値="([a-z])*"/>
</xs:制限>
</xs:simpleType>
</xs:element>
次の例では、修飾子付きの "letter" という名前の要素を定義します。許容される値は、小文字の後に大文字が続く 1 つ以上の文字のペアです。たとえば、「sToP」はこのモードで検証に合格しますが、「Stop」、「STOP」、または「stop」は検証に合格しません:
<xs:simpleType>
<xs:restrictionbase="xs:string">
<xs:パターン値="([a-z][A-Z])+"/>
</xs:制限>
</xs:simpleType>
</xs:element>
次の例では、修飾子を使用して「gender」という名前の要素を定義します。許容される値は男性または女性です:
<xs:simpleType>
<xs:restrictionbase="xs:string">
<xs:pattern value="男性|女性"/>
</xs:制限>
</xs:simpleType>
</xs:element>
次の例では、修飾子付きの「password」という名前の要素を定義します。許容される値は 8 文字の行で、大文字または小文字の a ~ z、または数字 0 ~ 9 である必要があります:
<xs:simpleType>
<xs:restrictionbase="xs:string">
<xs:pattern value="[a-zA-Z0-9]{8}"/>
</xs:制限>
<xs:element name="address">
<xs:simpleType>
<xs:restrictionbase="xs:string"><xs:whiteSpace value="preserve"/>
</xs:制限></xs:simpleType>
</xs:element>この例では、修飾付きの「address」という名前の要素も定義しています。これは、XML プロセッサがすべての空白文字 (改行、復帰、スペース、タブ) を削除することを意味します。
<xs:element name="address"> <xs:simpleType>
<xs:restrictionbase="xs:string">
<xs:whiteSpace value="replace"/>
</xs:element>
この例では、修飾子付きの「address」という名前の要素も定義しています。これは、XML プロセッサがすべての空白文字を削除することを意味します (改行、復帰、スペース、タブはスペースに置き換えられ、先頭と末尾のスペースは削除され、複数の連続するスペースは削除されます)。単一のスペースに削減されます):
<xs:simpleType>
<xs:restrictionbase="xs:string">
<xs:whiteSpace value="collapse"/>
</xs:制限>
</xs:simpleType>
</xs:element>
長さの制限
要素内の値の長さを制限するには、長さ、maxLength、minLength の制限を使用する必要があります。
この例では、修飾子付きの「password」という名前の要素を定義します。値は正確に 8 文字である必要があります:
<xs:simpleType>
<xs:restrictionbase="xs:string">
<xs:length value="8"/>
</xs:制限>
</xs:simpleType>
</xs:element>
この例では、修飾付きの「password」という名前の要素も定義しています。最小値は 5 文字、最大値は 8 文字です:
<xs:simpleType>
<xs:restrictionbase="xs:string">
<xs:minLength value="5"/>
<xs:maxLength value="8"/>
</xs:制限>
</xs:simpleType>
</xs:element>
データ型修飾
修飾 | 説明 |
---|---|
列挙 | 許容値のリストを定義します |
fractionDigits | はデシの最大数を定義しますマルな場所は許可されます。 0 以上である必要があります。 |
length | は、許可される文字またはリスト項目の正確な数を定義します。 0 以上である必要があります。 |
maxExclusive | は、値の上限を定義します。許可される値はこの値より小さい必要があります。 |
maxInclusive | は、値の上限を定義します。許可される値はこの値以下である必要があります。 |
maxLength | 許可される文字またはリスト項目の最大数を定義します。 0 以上である必要があります。 |
minExclusive | 値の下限を定義します。許可される値はこの値より大きくなければなりません。 |
minInclusive | は値の下限を定義します。許可される値はこの値以上である必要があります。 |
minLength | 許可される文字またはリスト項目の最小数を定義します。 0 以上である必要があります。 |
pattern | は、許容される文字の正確なシーケンスを定義します。 |
totalDigits | は、アラビア数字で許可される正確な桁数を定義します。 0 より大きくなければなりません。 |
whiteSpace | ホワイトスペース文字 (ラインフィード、キャリッジリターン、スペース、タブ) の処理方法を定義します。 |