加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

xml – 了解xsd:choice和minOccurs

发布时间:2020-12-16 01:51:28 所属栏目:百科 来源:网络整理
导读:我无法理解以下XML模式的行为: xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xsd:element name="rootnode" xsd:complexType xsd:sequence xsd:choice minOccurs="1" maxOccurs="2" xsd:element name="e1" minOccurs="1" maxOccurs="2"/ xsd:el
我无法理解以下XML模式的行为:
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <xsd:element name="rootnode">
    <xsd:complexType>
      <xsd:sequence>
        <xsd:choice minOccurs="1" maxOccurs="2">
          <xsd:element name="e1" minOccurs="1" maxOccurs="2"/>
          <xsd:element name="e2" minOccurs="0" maxOccurs="1"/>
        </xsd:choice>
      </xsd:sequence>
    </xsd:complexType>
  </xsd:element>
</xsd:schema>

我预计至少有一个元素< e1>或< e2>必须作为< rootnode>的子节点。尽管我的期望,一个空的< rootnode>将验证此模式:

> xmllint --schema test.xsd empty.xml
 <?xml version="1.0" encoding="UTF-8"?>
 <rootnode>
 </rootnode>
 empty.xml validates

如果我将元素e2的minOccurs属性更改为“0”以外的其他属性,我得到了我原本期望的行为。

>看起来好像没有元素< e2>在我的示例中计为xsd:选项的出现。
>如果是这种情况,那么这个无限数量的事件怎么会违反我的xsd:choice中的maxOccurs限制?

我告诉你,你至少可以去商店一次,最多两次,每次你可以选择购买什么:你可以买苹果(一个苹果或两个苹果),或者你可以买桔子橙子或橙子)。

完全有可能选择去商店两次,每次都不买橘子。所以你没有回来。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读