XML スキーマのチュートリア...login
XML スキーマのチュートリアル
著者:php.cn  更新時間:2022-04-20 14:13:02

XML スキーマの資格/ファセット


XSD 制限 / ファセット


制限は、XML 要素または属性の許容値を定義するために使用されます。 XML 要素の制限はファセットと呼ばれます。


値の修飾

次の例では、「age」という名前の要素を修飾付きで定義します。 age の値は 0 未満または 120 より大きくすることはできません:

<xs:element name="age">
<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:element name="car">
<xs:simpleType>
​​ <xs:restrictionbase="xs:string">
                      <xs:enumeration value="アウディ"/>
                      <xs:enumeration value="ゴルフ"/>
                      <xs:enumeration value="BMW"/>
​​ </xs:制限>
</xs:simpleType>
</xs:element>

上記の例は、次のように記述することもできます:

<xs:element name="car" type="carType"/>

<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:要素名="letter">
<xs:simpleType>
​​ <xs:restrictionbase="xs:string">
​​​​ <xs:pattern value="[a-z]"/>
​​ </xs:制限>
</xs:simpleType>
</xs:element>

次の例では、修飾子付きの「initials」という名前の要素を定義します。許容される値は、A ~ Z の 3 つの大文字です:

<xs:element name="initials">
<xs:simpleType>
​​ <xs:restrictionbase="xs:string">
                      <xs:パターン値="[A-Z][A-Z][A-Z]"/>
​​ </xs:制限>
</xs:simpleType>
</xs:element>

次の例では、修飾付きの「initials」という名前の要素も定義しています。許容される値は大文字または小文字の a ~ z で、そのうち 3 つは次のとおりです:

<xs:element name="initials">
<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:要素名="選択">
<xs:simpleType>
​​ <xs:restrictionbase="xs:string">
                      <xs:pattern value="[xyz]"/>
​​ </xs:制限>
</xs:simpleType>
</xs:element>

次の例では、修飾子付きの「prodid」という名前の要素を定義します。許容される値は、0 ~ 9 の範囲の 5 つのアラビア数字のシーケンスです:

<xs:element name="prodid">
<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:element name="letter">
<xs:simpleType>
​​ <xs:restrictionbase="xs:string">
                      <xs:パターン値="([a-z])*"/>
​​ </xs:制限>
</xs:simpleType>
</xs:element>

次の例では、修飾子付きの "letter" という名前の要素を定義します。許容される値は、小文字の後に大文字が続く 1 つ以上の文字のペアです。たとえば、「sToP」はこのモードで検証に合格しますが、「Stop」、「STOP」、または「stop」は検証に合格しません:

<xs:element name="letter">
<xs:simpleType>
​​ <xs:restrictionbase="xs:string">
                      <xs:パターン値="([a-z][A-Z])+"/>
​​ </xs:制限>
</xs:simpleType>
</xs:element>

次の例では、修飾子を使用して「gender」という名前の要素を定義します。許容される値は男性または女性です:

<xs:element name="gender">
<xs:simpleType>
​​ <xs:restrictionbase="xs:string">
                      <xs:pattern value="男性|女性"/>
​​ </xs:制限>
</xs:simpleType>
</xs:element>

次の例では、修飾子付きの「password」という名前の要素を定義します。許容される値は 8 文字の行で、大文字または小文字の a ~ z、または数字 0 ~ 9 である必要があります:

<xs:element name="password">
<xs:simpleType>
​​ <xs:restrictionbase="xs:string">
                      <xs:pattern value="[a-zA-Z0-9]{8}"/>
​​ </xs:制限>

次の例では、修飾子付きの「address」という名前の要素を定義します。 WhiteSpace 修飾は「保持」に設定されています。これは、XML プロセッサが空白文字を削除しないことを意味します:


<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:制限>
</xs:simpleType>

</xs:element>

この例では、修飾子付きの「address」という名前の要素も定義しています。これは、XML プロセッサがすべての空白文字を削除することを意味します (改行、復帰、ス​​ペース、タブはスペースに置き換えられ、先頭と末尾のスペースは削除され、複数の連続するスペースは削除されます)。単一のスペースに削減されます):

<xs:要素名="アドレス">
<xs:simpleType>
​​ <xs:restrictionbase="xs:string">
                      <xs:whiteSpace value="collapse"/>
​​ </xs:制限>
</xs:simpleType>
</xs:element>


長さの制限

要素内の値の長さを制限するには、長さ、maxLength、minLength の制限を使用する必要があります。

この例では、修飾子付きの「password」という名前の要素を定義します。値は正確に 8 文字である必要があります:

<xs:要素名="パスワード">
<xs:simpleType>
​​ <xs:restrictionbase="xs:string">
                      <xs:length value="8"/>
​​ </xs:制限>
</xs:simpleType>
</xs:element>

この例では、修飾付きの「password」という名前の要素も定義しています。最小値は 5 文字、最大値は 8 文字です:

<xs:要素名="パスワード">
<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 ホワイトスペース文字 (ラインフィード、キャリッジリターン、スペース、タブ) の処理方法を定義します。