XSD 1.1 是对 XSD 1.0 的实质性升级,增强内容模型控制、引入 XPath 支持的共现约束、新增内置数据类型、强化模式演进与向后兼容能力。

XSD 1.1 是对 XSD 1.0 的实质性升级,主要解决其在表达能力、约束灵活性和模式演化方面的不足。它不是简单修补,而是引入了多项关键机制,让 Schema 能更精确、更动态地描述真实业务数据规则。
更强的内容模型控制
XSD 1.0 对元素顺序、可选性、重复性的限制比较僵硬,尤其在处理混合内容或复杂组合时容易受限。XSD 1.1 允许:
- 使用
中的元素设置minOccurs="0"和maxOccurs="1",同时保持顺序无关性(1.0 中不支持maxOccurs > 1) - 在
和内部嵌套minOccurs/maxOccurs更自由,支持非 0/1 的整数值(如minOccurs="2") - 引入“宽松的通配符”(
和的processContents="lax"或"skip"行为更可控)
支持共现约束(Co-occurrence Constraints)
这是 XSD 1.1 最核心的新能力——允许基于 XPath 2.0 表达式定义字段之间的逻辑依赖关系。例如:
- “当
status="paid"时,paymentDate必须存在且不为空” - “
discountRate只能在type="premium"时允许出现”
这类规则无法用 1.0 的类型、出现次数或简单类型限制实现,必须靠或(在复杂类型内)来声明。
新增内置数据类型与扩展机制
XSD 1.1 增加了多个实用原子类型:
感谢广大歌迷长期以来对网站的支持和帮助,很多朋友曾经问我要过这个商城程序,当时由于工作比较忙,一直没空整理,现在好啦,已全部整理好了,在这里提供给有需要的朋友,没有任何功能限制,完全可以使用的,只是有些商品的广告需自己修改一下,后台没有办法修改,需要有HTML基础才可以修改,另外,哪位朋友在使用的时候,发现了BUG请与我们联系,大家共同改进,谢谢!后台管理地址:http://你的域名/admin/
-
xs:yearMonthDuration和xs:dayTimeDuration,用于精确表示时间跨度 -
xs:precisionDecimal,支持指定精度和标度的小数(比xs:decimal更细粒度) -
xs:anyAtomicType,作为所有原子类型的基类型,便于泛型建模
还支持“实现定义的简单类型”,即允许处理器扩展自定义类型(需明确标注final="#all"等兼容性标记)。
模式演进与向后兼容支持
XSD 1.1 明确引入了“模式演化”概念,使版本升级更安全:
- 允许在不破坏旧验证的前提下,向元素添加可选子元素或属性
- 通过
block和final属性更精细地控制派生行为(如禁止某类型被extension,但允许restriction) - 支持
机制,可在导入模式时局部替换已有定义,避免全量重写
这些改进让 XSD 1.1 成为真正可用于现代集成场景(如 API 数据契约、BIM 交换、金融报文)的成熟校验语言,而不仅是静态结构描述工具。






