XMLチュートリアル

XMLホーム XMLの紹介 XML使用方法 XMLツリー XML構文 XML要素 XML属性 XML名前空間 XML表示 XML HttpRequest XMLパーサー XML DOM XML XPath XML XSLT XML XQuery XML XLink XMLバリデーター XML DTD XMLスキーマ XMLサーバー XMLの例 XMLクイズ XML証明書

XML AJAX

AJAXの紹介 AJAX XMLHttp AJAXリクエスト AJAX応答 AJAXXMLファイル AJAX PHP AJAX ASP AJAXデータベース AJAXアプリケーション AJAXの例

XML DOM

DOMの紹介 DOMノード DOMアクセス DOMノード情報 DOMノードリスト DOMトラバース DOMナビゲーション DOMは値を取得します DOM変更ノード DOM削除ノード DOM置換ノード DOM作成ノード DOM追加ノード DOMクローンノード DOMの例

XPathチュートリアル

XPathの概要 XPathノード XPath構文 XPath軸 XPath演算子 XPathの例

XSLTチュートリアル

XSLTの紹介 XSL言語 XSLT変換 XSLT <テンプレート> XSLT <値> XSLT <for-each> XSLT <ソート> XSLT <if> XSLT <選択> XSLT適用 クライアント上のXSLT サーバー上のXSLT XSLT Edit XML XSLTの例

XQueryチュートリアル

XQueryの紹介 XQueryの例 XQuery FLWOR XQuery HTML XQueryの用語 XQuery構文 XQuery追加 XQuery Select XQuery関数

XML DTD

DTDの紹介 DTDビルディングブロック DTD要素 DTD属性 DTD要素と属性 DTDエンティティ DTDの例

XSDスキーマ

XSDの概要 XSDハウツー XSD <スキーマ> XSD要素 XSD属性 XSDの制限

XSDコンプレックス

XSD要素 XSDが空です XSD要素のみ XSDテキストのみ XSD混合 XSDインジケーター XSD <任意> XSD <anyAttribute> XSD置換 XSDの例

XSDデータ

XSD文字列 XSD日付 XSD数値 XSDその他 XSDリファレンス

Webサービス

XMLサービス XML WSDL XML SOAP XML RDF XML RSS

参考文献

DOMノードタイプ DOMノード DOM NodeList DOM NamedNodeMap DOMドキュメント DOM要素 DOM属性 DOMテキスト DOM CDATA DOMコメント DOM XMLHttpRequest DOMパーサー XSLT要素 XSLT / XPath関数

XSDの制限/ファセット


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


値の制限

次の例では、制限付きの「age」という要素を定義しています。年齢の値は、0より小さくすることも120より大きくすることもできません。

<xs:element name="age">
  <xs:simpleType>
    <xs:restriction base="xs:integer">
      <xs:minInclusive value="0"/>
      <xs:maxInclusive value="120"/>
    </xs:restriction>
  </xs:simpleType>
</xs:element>

値のセットに対する制限

XML要素のコンテンツを許容可能な値のセットに制限するには、列挙型制約を使用します。

以下の例では、制限付きの「car」という要素を定義しています。唯一の許容値は次のとおりです。アウディ、ゴルフ、BMW:

<xs:element name="car">
  <xs:simpleType>
    <xs:restriction base="xs:string">
      <xs:enumeration value="Audi"/>
      <xs:enumeration value="Golf"/>
      <xs:enumeration value="BMW"/>
    </xs:restriction>
  </xs:simpleType>
</xs:element>

上記の例は、次のように書くこともできます。

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

<xs:simpleType name="carType">
  <xs:restriction base="xs:string">
    <xs:enumeration value="Audi"/>
    <xs:enumeration value="Golf"/>
    <xs:enumeration value="BMW"/>
  </xs:restriction>
</xs:simpleType>

注:この場合、タイプ「carType」は「car」要素の一部ではないため、他の要素で使用できます。



一連の値の制限

XML要素の内容を制限して、使用できる一連の数字または文字を定義するには、パターン制約を使用します。

以下の例では、制限付きの「letter」という要素を定義しています。唯一の許容値は、aからzまでの小文字の1つです。

<xs:element name="letter">
  <xs:simpleType>
    <xs:restriction base="xs:string">
      <xs:pattern value="[a-z]"/>
    </xs:restriction>
  </xs:simpleType>
</xs:element>

次の例では、制限付きの「イニシャル」と呼ばれる要素を定義します。唯一の許容値は、aからzまでの大文字の3文字です。

<xs:element name="initials">
  <xs:simpleType>
    <xs:restriction base="xs:string">
      <xs:pattern value="[A-Z][A-Z][A-Z]"/>
    </xs:restriction>
  </xs:simpleType>
</xs:element>

次の例では、制限付きの「イニシャル」と呼ばれる要素も定義しています。唯一の許容値は、aからzまでの小文字または大文字の3文字です。

<xs:element name="initials">
  <xs:simpleType>
    <xs:restriction base="xs:string">
      <xs:pattern value="[a-zA-Z][a-zA-Z][a-zA-Z]"/>
    </xs:restriction>
  </xs:simpleType>
</xs:element>

次の例では、制限付きの「choice」という要素を定義しています。唯一の許容値は、次の文字のいずれかです:x、y、またはz:

<xs:element name="choice">
  <xs:simpleType>
    <xs:restriction base="xs:string">
      <xs:pattern value="[xyz]"/>
    </xs:restriction>
  </xs:simpleType>
</xs:element>

次の例では、制限付きの「prodid」という要素を定義しています。唯一の許容値は、シーケンス内の5桁であり、各桁は0から9の範囲でなければなりません。

<xs:element name="prodid">
  <xs:simpleType>
    <xs:restriction base="xs:integer">
      <xs:pattern value="[0-9][0-9][0-9][0-9][0-9]"/>
    </xs:restriction>
  </xs:simpleType>
</xs:element>

一連の値に関するその他の制限

以下の例では、制限付きの「letter」という要素を定義しています。許容値は、aからzまでの小文字が0回以上出現することです。

<xs:element name="letter">
  <xs:simpleType>
    <xs:restriction base="xs:string">
      <xs:pattern value="([a-z])*"/>
    </xs:restriction>
  </xs:simpleType>
</xs:element>

次の例では、制限付きの「letter」という要素も定義しています。許容値は、1つ以上の文字のペアであり、各ペアは小文字とそれに続く大文字で構成されます。たとえば、「sToP」はこのパターンで検証されますが、「Stop」、「STOP」、「stop」では検証されません。

<xs:element name="letter">
  <xs:simpleType>
    <xs:restriction base="xs:string">
      <xs:pattern value="([a-z][A-Z])+"/>
    </xs:restriction>
  </xs:simpleType>
</xs:element>

次の例では、制限付きの「gender」という要素を定義しています。唯一の許容値は男性または女性です:

<xs:element name="gender">
  <xs:simpleType>
    <xs:restriction base="xs:string">
      <xs:pattern value="male|female"/>
    </xs:restriction>
  </xs:simpleType>
</xs:element>

次の例では、制限付きの「password」という要素を定義しています。行には正確に8文字が必要であり、それらの文字はaからzまでの小文字または大文字、または0から9までの数字でなければなりません。

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

空白文字の制限

空白文字の処理方法を指定するには、whiteSpace制約を使用します。

この例では、「address」という要素を制限付きで定義しています。whiteSpace制約は「preserve」に設定されています。これは、XMLプロセッサが空白文字を削除しないことを意味します。

<xs:element name="address">
  <xs:simpleType>
    <xs:restriction base="xs:string">
      <xs:whiteSpace value="preserve"/>
    </xs:restriction>
  </xs:simpleType>
</xs:element>

この例では、制限付きの「address」という要素も定義しています。whiteSpace制約は「置換」に設定されます。これは、XMLプロセッサがすべての空白文字(改行、タブ、スペース、および改行)をスペースに置き換えることを意味します。

<xs:element name="address">
  <xs:simpleType>
    <xs:restriction base="xs:string">
      <xs:whiteSpace value="replace"/>
    </xs:restriction>
  </xs:simpleType>
</xs:element>

この例では、制限付きの「address」という要素も定義しています。whiteSpace制約は「折りたたみ」に設定されます。これは、XMLプロセッサがすべての空白文字を削除することを意味します(改行、タブ、スペース、キャリッジリターンはスペースに置き換えられ、先頭と末尾のスペースは削除され、複数のスペースは次のように削減されます)単一のスペース):

<xs:element name="address">
  <xs:simpleType>
    <xs:restriction base="xs:string">
      <xs:whiteSpace value="collapse"/>
    </xs:restriction>
  </xs:simpleType>
</xs:element>

長さの制限

要素内の値の長さを制限するには、length、maxLength、およびminLength制約を使用します。

この例では、「password」という要素を制限付きで定義しています。値は正確に8文字である必要があります。

<xs:element name="password">
  <xs:simpleType>
    <xs:restriction base="xs:string">
      <xs:length value="8"/>
    </xs:restriction>
  </xs:simpleType>
</xs:element>

この例では、「パスワード」と呼ばれる別の要素を制限付きで定義しています。値は、最小5文字および最大8文字である必要があります。

<xs:element name="password">
  <xs:simpleType>
    <xs:restriction base="xs:string">
      <xs:minLength value="5"/>
      <xs:maxLength value="8"/>
    </xs:restriction>
  </xs:simpleType>
</xs:element>

データ型の制限

Constraint Description
enumeration Defines a list of acceptable values
fractionDigits Specifies the maximum number of decimal places allowed. Must be equal to or greater than zero
length Specifies the exact number of characters or list items allowed. Must be equal to or greater than zero
maxExclusive Specifies the upper bounds for numeric values (the value must be less than this value)
maxInclusive Specifies the upper bounds for numeric values (the value must be less than or equal to this value)
maxLength Specifies the maximum number of characters or list items allowed. Must be equal to or greater than zero
minExclusive Specifies the lower bounds for numeric values (the value must be greater than this value)
minInclusive Specifies the lower bounds for numeric values (the value must be greater than or equal to this value)
minLength Specifies the minimum number of characters or list items allowed. Must be equal to or greater than zero
pattern Defines the exact sequence of characters that are acceptable
totalDigits Specifies the exact number of digits allowed. Must be greater than zero
whiteSpace Specifies how white space (line feeds, tabs, spaces, and carriage returns) is handled