restriction用于在XML Schema中对simpleType施加取值或格式限制,需嵌套于xs:simpleType内,通过base指定基础类型,并用minLength、pattern、minInclusive等子元素定义约束规则。

XML Schema 中的 restriction 用于对简单类型(simpleType)进行取值范围或格式限制,是定义数据合法性的核心手段。它不改变类型本质,而是在已有类型基础上“收紧”规则。
restriction 必须配合 simpleType 使用
不能直接写在元素上,必须先定义一个带 restriction 的自定义 simpleType,再让元素引用它。常见结构如下:
- 用
包裹 -
base属性指定基础类型,如xs:string、xs:integer、xs:date - 内部嵌入具体约束子元素,如
、、等
常用 restriction 约束子元素及写法
针对不同基础类型,可组合使用以下约束:
-
字符串限制:用
、、(正则匹配首字母大写单词) -
数值限制:用
、、 -
枚举限制:用
多次声明允许值,相当于白名单 -
小数精度:对
xs:decimal可加限定两位小数
在 XML 实例中如何生效
定义好 restricted type 后,需在元素声明中通过 type 属性引用它。例如:
Schema 片段:
对应合法 XML 值:;非法值如 19.999 或 -5.0 将被校验拒绝。
注意命名空间和 xsi:schemaLocation 的配套使用
如果 schema 定义了 targetNamespace,XML 实例中必须:
- 声明该命名空间前缀(如
xmlns:tns="http://example.org") - 通过
xsi:schemaLocation关联命名空间 URI 与 .xsd 文件路径 - 确保元素使用正确前缀(如
),否则 restriction 不会被识别










