XSD怎么定义元素的出现次数(minOccurs, maxOccurs)

7次阅读

XSD中minOccurs和maxOccurs属性控制元素或模型组在xml中出现的最少和最多次数,必须写在或等粒子上,取值为非负整数或unbounded,默认值分别为1和1。

XSD怎么定义元素的出现次数(minOccurs, maxOccurs)

XSD 中用 minOccursmaxOccurs 属性控制元素在 XML 实例中允许出现的最少和最多次数,它们必须写在 等粒子(particle)上。

基本语法和默认值

这两个属性只能是非负整数,或 unbounded(表示无上限):

  • minOccurs="0":可选,不出现也合法
  • minOccurs="1":默认值,必须出现至少一次
  • maxOccurs="1":默认值,最多出现一次
  • maxOccurs="unbounded":可重复任意多次

直接作用于单个元素

最常见的是在 上设置,适用于全局或局部声明的元素:

表示 最少出现 0 次、最多 3 次。XML 中可以有零个、一个、两个或三个 元素(顺序按 schema 中定义)。

作用于模型组(sequence/choice/all)

当多个元素需统一控制出现次数时,可以把它们包进 等,并在该组上设 minOccurs/maxOccurs

       

这表示“item + qty”这个组合至少出现两次,可重复无限次。每次出现都必须同时包含 ,且顺序固定。

注意点和常见误区

这些属性不能用于类型定义(),只对“出现位置”有效;也不能出现在 上(属性不支持重复,用 use="optional"use="required" 控制)。

如果 minOccurs > maxOccurs(比如 minOccurs="2" maxOccurs="1"),XSD 就无效,解析器会报错。

基本上就这些。不复杂但容易忽略默认值和作用范围。

text=ZqhQzanResources