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


мне интересно, как спецификация схемы 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 184

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 Part 0: Primer

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

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

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