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

XSD 中用 minOccurs 和 maxOccurs 属性控制元素在 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 就无效,解析器会报错。
基本上就这些。不复杂但容易忽略默认值和作用范围。