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の不要な属性を使用できないようにすることが可能です。