XML Schema 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 Schema规范如何处理这些情况的“官方”定义?
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或更大时,需要显示一个元素。 元素出现的最大次数由其声明中的maxOccurs属性的值决定。 这个值可能是一个正整数,例如41,或者这个术语是无界的,表示没有最大的出现次数。 minOccurs和maxOccurs属性的默认值是1.因此,当一个元素(如comment)被声明为没有maxOccurs属性时,该元素可能不会出现一次以上。 确保只为minOccurs属性指定一个值,它小于或等于maxOccurs的默认值,即它是0或1.同样,如果只为maxOccurs属性指定值,则它必须是大于或等于minOccurs的默认值,即1或更多。 如果两个属性均被省略,则该元素必须只出现一次。
-
W3C XML Schema第1部分:结构第二版
<element maxOccurs = (nonNegativeInteger | unbounded) : 1 minOccurs = nonNegativeInteger : 1 > </element>