Значения по умолчанию minOccurs / maxOccurs схемы XML

мне интересно, как спецификация схемы XML обрабатывает эти случаи:

<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 обрабатывает эти случаи?

2 ответов


значения по умолчанию для minOccurs и maxOccurs в 1. Таким образом:

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

мощность [1-1] Примечание: Если вы укажете только атрибут minOccurs, он не может быть больше 1, потому что значение по умолчанию для maxOccurs равно 1.

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

недействительным

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

мощность [1-2] Примечание: Если вы укажете только атрибут maxOccurs, он не может быть меньше 1, потому что значение по умолчанию для minOccurs 1.

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

является допустимой комбинацией, которая делает элемент запрещенным.

подробнее:http://www.w3.org/TR/xmlschema-0/#OccurrenceConstraints


новый, расширенный ответ на старый, часто задаваемый вопрос...

Значения По Умолчанию

  • ограничения на возникновение minOccurs и maxOccurs по умолчанию 1.

Общие Дела Пояснил,

<xsd:element name="A"/>

означает A и требуются и должен появиться ровно после.


<xsd:element name="A" minOccurs="0"/>

означает A и дополнительно и в самый раз.


 <xsd:element name="A" maxOccurs="unbounded"/>

означает A и требуются и может повторить неограниченное количество раз.


 <xsd:element name="A" minOccurs="0" maxOccurs="unbounded"/>

означает A и дополнительно и может повторить неограниченное количество раз.


См. Также

  • W3C XML Schema Часть 0: праймер

    В общем случае элемент должен появиться, когда значение minOccurs 1 или больше. Максимальное число раз, когда элемент может appear определяется значением атрибута maxOccurs в его декларация. Это значение может быть положительным целым числом, например 41 или срок неограниченность указать максимальное количество повторений. Значение по умолчанию для атрибутов minOccurs и maxOccurs это 1. Таким образом, когда такой элемент, как comment, объявляется без атрибут maxOccurs, элемент может возникать не более одного раза. Быть уверенным если указать значение только для атрибута minOccurs, то это меньше или равно значению maxOccurs по умолчанию, т. е. 0 или 1. Аналогично, если указать значение только для атрибута maxOccurs, это должно быть больше или равно значению по умолчанию равен значению, т. е. 1 или более. Если оба атрибута опущены, элемент должен появляются ровно один раз.

  • W3C XML Schema Часть 1: структуры второе издание

    <element
      maxOccurs = (nonNegativeInteger | unbounded)  : 1
      minOccurs = nonNegativeInteger : 1
      >
    
    </element>