xs:list 是 XSD 中通过简单类型派生得到的空格分隔值列表机制,需用 包裹 定义,支持内置或自定义原子类型作为 itemType,不支持复杂类型;其值为单文本节点,适用于轻量配置场景。

xs:list 是 XSD 中用于定义“由空格分隔的简单类型值列表”的内置机制,它本身不是一种独立的数据类型,而是一种**简单类型派生方式**——通过在已有简单类型(如 xs:Integer、xs:String)基础上应用 list 衍生规则得到。
核心要点:xs:list 不是直接声明的类型,而是通过 + <list></list>
你不能写 type="xs:list",必须用 <simpletype></simpletype> 包裹 <list></list>,并指定其 itemType(即列表中每个元素的类型)。
基本语法结构
以下定义了一个由空格分隔的整数列表类型:
BIZOSS-B2C是脱胎于贞龙B2B大型平台的网上商城系统、网上商店系统、网上购物系统的企业级B2C电子商务解决方案。系统设置:这里包含了网店的常用功能和全局配置的开关。包括 商店设置 、支付方式和配送方式 、邮件服务器设置、地区列表、友情链接、自定义导航栏、站点地图。商品管理:网店展示商品的核心。其中包括了 商品分类、商品类型、商品品牌、商品回收站、商品上下架等一些设置。促销管理:这个是我们网
0
<xs:simpleType name="integerList"> <xs:list itemType="xs:integer"/> </xs:simpleType>
然后可在元素中使用:
<xs:element name="numbers" type="integerList"/>
✅ 合法值示例:1 2 3、42 -7 0 100 ❌ 非法值示例:1,2,3(逗号分隔)、1 2.5(含非整数)、1 2(多个空格允许,但首尾空格会被自动截断)
支持 itemType 的常见类型
- 内置原子类型:xs:string、xs:integer、xs:decimal、xs:Boolean、xs:date 等
- 自定义简单类型(需先定义):比如一个限制了长度的字符串类型,再作为 itemType 构成 list
- 不支持:复杂类型、带属性的类型、xs:anyType
实用技巧与注意事项
- 值之间用任意空白字符分隔(空格、制表符、换行),xml 解析器会自动归一化为单个空格
- 列表长度无默认限制,如需约束数量,需配合
/ (注意:这两个 facet 作用于整个字符串值,不是元素个数!)→ 更可靠的方式是用 或在业务层校验 - 若要限制“元素个数”,推荐改用
+ + ,这是语义更清晰的重复元素方式 - xs:list 生成的实例 XML 是单个文本节点,例如:
<numbers>1 2 3</numbers>;而重复元素方式是多个子节点:<numbers><item>1</item><item>2</item></numbers>
基本上就这些。xs:list 本质是轻量级的空格分隔文本解析,适合配置类、ID 列表等简单场景,别把它当数组用——需要结构化、可扩展或带元数据的列表,优先选重复元素(maxOccurs)。