Menu Close

2.5.5. 列挙型の定義

概要

XML スキーマの列挙型は、制限による定義の特殊なケースです。これらは、すべての XML スキーマのプリミティブ型でサポートされる enumeration ファセットを使用して記述されます。最新のプログラミング言語の列挙型と同様に、この型の変数は、指定された値の 1 つだけを持つことができます。

XML スキーマでの列挙の定義

列挙を定義する構文は 例2.16「列挙の構文」 にあります。

例2.16 列挙の構文

<simpleType name="EnumName">
  <restriction base="EnumType">
    <enumeration value="Case1Value"/>
    <enumeration value="Case2Value"/>
    ...
    <enumeration value="CaseNValue"/>
  </restriction>
</simpleType>

EnumName は、列挙型の名前を指定します。EnumType は、ケース値の型を指定します。CaseNValue ( N は 1 以上の任意の数字) で、列挙の各特定ケースの値を指定します。列挙型には、任意の数のケース値を指定できますが、単純な型から派生しているため、一度に 1 つのケース値のみが有効になります。

たとえば、列挙 widgetSize で定義した XML ドキュメントは、例2.17「widgetSize 列挙」 のように、<widgetSize>big</widgetSize> が含まれている場合に有効ですが、<widgetSize>big,mungo</widgetSize> が含まれている場合は有効になりません。

例2.17 widgetSize 列挙

<simpleType name="widgetSize">
  <restriction base="xsd:string">
    <enumeration value="big"/>
    <enumeration value="large"/>
    <enumeration value="mungo"/>
  </restriction>
</simpleType>