ChatGPT解决这个技术问题 Extra ChatGPT

XML Schema minOccurs / maxOccurs 默认值

我想知道 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 规范如何处理这些情况的“官方”定义?


j
jasso

minOccursmaxOccurs 的默认值为 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


在我的情况下不起作用。
在这种情况下,不要在 xsd 中定义该元素
k
kjhughes

对一个老的、常见的问题的新的、扩展的答案......

默认值

出现约束 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 或更大时,元素需要出现。元素可能出现的最大次数由其声明中的 maxOccurs 属性的值决定。该值可以是一个正整数,例如 41,或者是无界的术语,表示没有最大出现次数。 minOccurs 和 maxOccurs 属性的默认值都是 1。因此,如果在没有 maxOccurs 属性的情况下声明了诸如注释之类的元素,则该元素可能不会出现多次。确保如果只为 minOccurs 属性指定值,则它小于或等于 maxOccurs 的默认值,即 0 或 1。同样,如果只为 maxOccurs 属性指定值,则必须为大于或等于 minOccurs 的默认值,即 1 或更大。如果两个属性都被省略,则元素必须只出现一次。

W3C XML Schema 第 1 部分:结构第二版


D
Daniel Perník

简短的回答:

如xsd中所写:

<xs:attribute name="minOccurs" type="xs:nonNegativeInteger" use="optional" default="1"/>
<xs:attribute name="maxOccurs" type="xs:allNNI" use="optional" default="1"/>

如果您提供带有数字的属性,则数字是边界。否则属性应该只出现一次。


关注公众号,不定期副业成功案例分享
关注公众号

不定期副业成功案例分享

领先一步获取最新的外包任务吗?

立即订阅