1. minOccurs
minOccursは、XML Schema(XSD)で使用される属性で、要素の最小出現頻度について指定します。
1-1 minOccurs=“0”
minOccurs="0"と指定すると、その要素が存在しなくても構いません。つまり、その要素はオプションであり、XMLドキュメントに含まれていない場合も有効です。
例:
<xs:element name="exampleElement" type="xs:string" minOccurs="0"/>
この場合、exampleElementは0回以上出現する可能性があり、出現しないことも許容されます。
1-2 minOccurs宣言しない
minOccursが指定されていない場合、デフォルトで1回出現する。
つまり、その要素は必ず1回出現しなければなりません。
2. maxOccurs
minOccursは、XML Schema(XSD)で使用される属性で、要素の最大出現頻度について指定します。
minOccursは明示的に宣言されていない場合、そのデフォルト値は1です。つまり、その要素は最大1回しか出現できないことになります。
2-1 宣言しない
次のような要素定義があるとします:
<xs:element name="exampleElement" type="xs:string" minOccurs="0"/>
この場合、maxOccursが宣言されていないため、暗黙のうちにmaxOccurs="1"と同じ意味になります。したがって、exampleElementは以下の2つの状態を取ることができます:
・要素が存在しない(minOccurs="0"のため)
・要素が存在し、1回だけ出現する(maxOccursが指定されていないためデフォルトで1)
2-2 明示的な宣言
もし、maxOccursを2回以上に設定したい場合は、明示的に宣言する必要があります。
<xs:element name="exampleElement" type="xs:string" minOccurs="0" maxOccurs="3"/>
この場合、exampleElementは0回から3回まで出現することができます。
2-3 無制限の指定
無制限の回数で要素が出現することを許可したい場合は、maxOccursを"unbounded"に設定します:
<xs:element name="exampleElement" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
この場合、exampleElementは0回以上、無制限に出現することができます。
2-4 まとめ
・maxOccursが指定されていない場合、デフォルトで1回出現する。
・maxOccursを明示的に指定することで、要素の最大出現回数を設定できる。
・maxOccurs="unbounded"を使用すると、無制限の出現回数を許可できる。
3. nillable=“true”
nillable="true"は、値の許容について指定します。
nillable=“true”
nillable属性は、要素の値としてnil(NULL)を許容するかどうかを指定します。nillable="true"と指定すると、その要素は空の要素としてxsi:nil="true"属性を持つことができます。これは、データベースなどでNULL値を表現するために使用されます。
例:
<xs:element name="exampleElement" type="xs:string" nillable="true"/>
この場合、exampleElementは次のようにnilとして示すことができます:
<exampleElement xsi:nil="true"/>
4. minOccurs="0"とnillable="true"組み合わせの例
両方の属性を組み合わせることもできます。例えば:
<xs:element name="exampleElement" type="xs:string" minOccurs="0" nillable="true"/>
この場合、exampleElementは以下の3通りの状態を取ることができます:
・要素が存在しない
・要素が存在し、値が設定されている(例えば
・要素が存在し、値がNULLである(例えば
これにより、柔軟なXMLドキュメントの記述が可能となり、データの存在有無やNULL値の表現が容易になります。
コメント欄