3.2 出現回数の設定
XML Schemaでは、minOccurs、maxOccurs属性を使用して要素の出現回数を指定することができます。属性の出現回数は、use属性により指定します。
<attribute name="属性の名前" type="属性の型" use="出現回数に対する規定"/> <attribute ref="属性の名前" use="出現回数に対する規定"/>
use属性は、required、optional、prohibitedのいずれかの値をとります。それぞれの意味は以下の通りです。
| required | 必ず、1回出現する |
|---|---|
| optional | 出現してもしなくてもよい。0回か1回。 |
| prohibited | 1回も出現しない。 |
use属性が存在しない場合、optionalが設定されています。以下に例を示します。
<xsd:complexType name="Items">
<xsd:sequence>
<xsd:element name="item" minOccurs="0" maxOccurs="unbounded">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="productName"type="xsd:string"/>
<xsd:element name="quantity">
<xsd:simpleType>
<xsd:restriction base="xsd:positiveInteger">
<xsd:maxExclusive value="100"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element name="USPrice" type="xsd:decimal"/>
<xsd:element ref="po:comment" minOccurs="0"/>
<xsd:element name="shipDate" type="xsd:date" minOccurs="0"/>
</xsd:sequence>
<xsd:attribute name="partNum" type="po:SKU" use="required"/>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
以上の例では、下から5行目でpartNum属性を宣言しています。use属性はrequiredです。これにより、partNum属性は省略できません。
prohibited属性は、既存のComplex Typeの拡張や制限を行うときに便利な属性になります。XML Schemaでは、既存のComplex Typeに、独自の要素を付け足したり、制限を加えることにより、新たなComplex Typeを作成する仕組みを用意しています。prohibited属性が存在することにより、既存のComplex Typeの不要な属性を使用できないようにすることが可能です。

