XML Schema仕様がこれらのケースをどのように処理するのか疑問に思います。
<xsd:element minOccurs="1" name="asdf"/>
いいえmaxOccursは与えられていない - >これは濃度[1..1]か?
<xsd:element minOccurs="5" maxOccurs="2" name="asdf"/>
これは単に無効だと思いますか?
<xsd:element maxOccurs="2" name="asdf"/>
これは基数[0..2]または[1..2]のどちらですか。
XML Schema仕様がこれらのケースをどのように処理するかについての「公式な」定義はありますか?
minOccurs
およびmaxOccurs
のデフォルト値は1です。
<xsd:element minOccurs="1" name="asdf"/>
基数は[1-1]です。注:onlyminOccurs属性を指定した場合、maxOccursのデフォルト値は1であるため、1より大きくすることはできません。
<xsd:element minOccurs="5" maxOccurs="2" name="asdf"/>
無効
<xsd:element maxOccurs="2" name="asdf"/>
基数は[1-2]です。注:onlymaxOccurs属性を指定した場合、minOccursのデフォルト値は1であるため、1より小さくすることはできません。
<xsd:element minOccurs="0" maxOccurs="0"/>
要素を禁止する有効な組み合わせです。
詳細については http://www.w3.org/TR/xmlschema-0/#OccurrenceConstraints を参照してください。
古くてよくある質問への新しい拡張された答え...
minOccurs
およびmaxOccurs
のデフォルトは1
です。<xsd:element name="A"/>
A
は必須であり、出現する必要があることを意味しますちょうど1回。
<xsd:element name="A" minOccurs="0"/>
A
はオプションであり、出現する可能性があることを意味しますせいぜい1回。
<xsd:element name="A" maxOccurs="unbounded"/>
A
は必須であり、を繰り返すことができることを意味します無制限の回数。
<xsd:element name="A" minOccurs="0" maxOccurs="unbounded"/>
A
はオプションであり、を繰り返すことができることを意味します無制限の回数。
一般に、要素はminOccursの値が1以上のときに出現する必要があります。要素が出現する最大回数は、その宣言内のmaxOccurs属性の値によって決まります。この値は、41などの正の整数、または最大出現回数がないことを示すための無制限という用語です。 minOccurs属性とmaxOccurs属性の両方のデフォルト値は1です。したがって、commentなどの要素がmaxOccurs属性なしで宣言されると、その要素は複数回出現することはありません。 minOccurs属性のみに値を指定した場合、その値はデフォルトのmaxOccurs以下、つまり0または1になるようにしてください。同様に、maxOccurs属性のみに値を指定した場合は、 minOccursのデフォルト値以上、つまり1以上。両方の属性を省略した場合、要素は一度だけ出現しなければなりません。
<element
maxOccurs = (nonNegativeInteger | unbounded) : 1
minOccurs = nonNegativeInteger : 1
>
</element>
短い答え:
Xsdで書かれているように:
<xs:attribute name="minOccurs" type="xs:nonNegativeInteger" use="optional" default="1"/>
<xs:attribute name="maxOccurs" type="xs:allNNI" use="optional" default="1"/>
属性にnumberを指定した場合、その数は境界です。 それ以外の場合、属性は1回だけ出現します。