1. ホーム
  2. xml

[解決済み】XML Schema minOccurs / maxOccurs デフォルト値

2022-04-05 19:55:23

質問

このような場合、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仕様がこれらのケースをどのように扱うかについて、quot;official" 定義がありますか?

どのように解決するのですか?

のデフォルト値は minOccursmaxOccurs は1である。よって

<xsd:element minOccurs="1" name="asdf"/>

cardinality は [1-1] です。 のみ maxOccursのデフォルト値は1であるため、minOccurs属性は1より大きくできません。

<xsd:element minOccurs="5" maxOccurs="2" name="asdf"/>

無効

<xsd:element maxOccurs="2" name="asdf"/>

カーディナリティは [1-2] です。 のみ maxOccurs属性は、minOccursのデフォルト値が1であるため、1より小さい値にすることはできません。

<xsd:element minOccurs="0" maxOccurs="0"/>

は有効な組み合わせで、その要素は禁止されます。

詳しくは http://www.w3.org/TR/xmlschema-0/#OccurrenceConstraints