xml schema 中的枚举通过 xs:enumeration 限定简单类型只能取预定义固定值,须嵌套于 xs:restriction 内,且所有值类型必须与 base 类型兼容、区分大小写、不可内联或动态加载。

XML Schema 中的枚举(enumeration)用于限定某个简单类型只能取一组预定义的固定值,常用于限制字符串、整数、布尔等基础类型的合法取值范围。
用 xs:enumeration 定义枚举值
枚举必须嵌套在 xs:restriction 内,而该 restriction 又必须基于一个已有简单类型(如 xs:string、xs:integer 等)。每个允许的值用一个 xs:enumeration 元素声明,其 value 属性指定具体取值。
- 所有枚举值必须类型一致,且与 base 类型兼容(例如 base 是
xs:integer,value 就不能写 "abc") - 多个枚举值之间是“或”关系,XML 实例中只能选其一
- 不支持通配、正则或范围混用;若需组合约束(如“语文|数学|英语”且长度≤10),应优先用
xs:pattern
字符串枚举示例:课程名称
以下 Schema 要求 <course></course> 元素值只能是“语文”“数学”或“英语”:
<xs:simpleType name="courseType">
<xs:restriction base="xs:string">
<xs:enumeration value="语文"/>
<xs:enumeration value="数学"/>
<xs:enumeration value="英语"/>
</xs:restriction>
</xs:simpleType>
<xs:element name="course" type="courseType"/>
整数枚举示例:状态码
若只允许状态值为 5、7、9,可这样定义:
<xs:simpleType name="statusCode">
<xs:restriction base="xs:integer">
<xs:enumeration value="5"/>
<xs:enumeration value="7"/>
<xs:enumeration value="9"/>
</xs:restriction>
</xs:simpleType>
对应 XML 实例中,<hello>7</hello> 合法,<hello>6</hello> 或 <hello>seven</hello> 均校验失败。










