XSD的xs:redefine怎么修改已有的schema定义

admin 百科 8
xs:redefine是XSD 1.0中用于同命名空间下重定义simpleType、complexType、group和attributeGroup的机制,仅支持restriction/extension,不可改element/attribute;XSD 1.1已弃用,推荐xs:override。

XSD的xs:redefine怎么修改已有的schema定义-第1张图片-佛山资讯网

xs:redefine 是 XSD 1.0 中用于在保持命名空间不变的前提下,重新定义(覆盖或扩展)已有 schema 中的某些组件的机制。但它有严格限制,不能随意修改任意定义,更不是“覆盖重写”的通用工具。

下面直接说清楚它能做什么、怎么用、有哪些坑:

xs:redefine 能改什么?

只能重新定义以下几种可被 redefine 的组件:

  • 简单类型(xs:simpleType):可基于原类型派生新类型(如 restriction 或 extension)
  • 复杂类型(xs:complexType):同上,支持 restriction / extension
  • 组(xs:group):可替换或扩展现有 model group
  • 属性组(xs:attributeGroup):可替换或扩展现有 attribute group

⚠️ 注意:不能 redefine 元素(xs:element)、属性(xs:attribute)、schema 文档本身结构,也不能改变目标命名空间。它要求被 redefine 的原始 schema 必须是同一个命名空间、且通过 xs:import 或直接引用方式可访问。

基本用法:两步走

1. 原 schema(比如 base.xsd)需声明为可被 redefine —— 实际上只要它没用 final="#all" 或对具体类型设 final="restriction extension" 即可。

标签: 工具 ai 常见问题 red

发布评论 0条评论)

还木有评论哦,快来抢沙发吧~