新闻中心
XSD的xs:redefine怎么修改已有的schema定义
xs:redefine是XSD 1.0中用于同命名空间下重定义simpleType、complexType、group和attributeGroup的机制,仅支持restriction/extension,不可改element/attribute;XSD 1.1已弃用,推荐xs:override。

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资讯阅读神器
晓象-AI时代的资讯阅读神器
72
查看详情
2. 新 schema 中用 xs:redefine 引入并修改:
xmlns="http://example.com/ns">
关键点:
- schemaLocation 指向原始 schema 文件
- 重新定义的类型 必须与原类型同名,且 base 引用要写对(如 base:myString,前提是 base 命名空间已声明前缀)
- 只能做 restriction 或 extension,不能完全换掉结构
常见问题和替代方案
如果你发现 xs:redefine 不起作用,大概率是以下原因:
- 原始类型被标记为
final="restriction",此时无法 restriction - 命名空间前缀没正确定义或引用错误
- 想改的是
xs:element—— 这不支持 redefine,只能在新 schema 中用xs:import+ 新元素声明,再用substitutionGroup或 xsi:type 替换 - XSD 1.1 已弃用
xs:redefine,推荐用xs:override(功能更强,支持改 element/attribute,也支持 identity constraint 等)
建议:优先考虑 xs:override(XSD 1.1)或设计解耦
如果可控环境支持 XSD 1.1,直接用 xs:override 更灵活:
如果必须用 XSD 1.0,更健壮的做法是:
- 把可变部分抽成 type 或 group,留出扩展点
- 用 xs:extension + xs:any 或抽象类型 + substitutionGroup 实现运行时替换
- 避免依赖 redefine 做业务逻辑变更
基本上就这些。xs:redefine 是个窄口子工具,用对场景才有效,多数时候它提醒你:schema 设计可能需要更松耦合。
以上就是XSD的xs:redefine怎么修改已有的schema定义的详细内容,更多请关注其它相关文章!
# ai
# 常见问题
# 工具
# 斗门区网站建设
# 烟台优秀seo费用
# 合肥网络推广营销哪家好
# 灌南网站建设价格实惠
# 江苏推广营销策划案例
# 天猫超市营销推广计划ppt
# 定西网站推广营销怎么做
# 高原seo优化厂家
# 保定网站建设渠道
# 网站系统的建设与管理
# 在这里
# 如果你
# 是个
# 新特性
# 的是
# 什么用
# 有什么区别
# 转换成
# 两种
# 有什么
# red
相关栏目:
【
科技资讯46185 】
【
网络学院92790 】
相关推荐:
React列表渲染与独立状态管理:避免全局状态影响局部更新
实现分段式页面滚动导航:CSS与J*aScript教程
Lar*el递归关系中排除子孙节点的策略
漫蛙manwa2最新登录网址_漫蛙manwa2手机网页版入口
Excel函数批量查找替换超快方法_Excel用REPLACE和FIND函数秒级替换
如何使用Go和Martini动态服务解码后的图片
美团外卖商家服务中心入口 美团商家版官网入口
Android Studio计算器C键功能异常排查与修复教程
Win10如何开启蓝牙功能_Windows10找不到蓝牙开关解决方法
J*aScript中高效清空DOM列表元素:解决for循环中断与任务管理问题
淘宝网网页版登录入口 淘宝官方网页版快捷登录
J*a里如何实现订单支付与库存同步功能_支付库存同步项目开发方法说明
拷贝漫画电脑版官网入口 拷贝漫画(PC版)在线直达
Windows10怎么开启存储感知 Windows10系统设置自动清理临时文件释放C盘空间【教程】
顺丰快件物流信息 官方网站查询入口
c++如何使用TBB库进行任务并行_c++ Intel线程构建模块
Python中高效且防溢出的双曲正弦计算:基于对数空间的优化策略
必由学官网快捷入口 必由学网页版在线学习平台
PyTorch模型训练准确率不提升:诊断与修复常见指标计算错误
PySpark中从现有列右侧提取可变长度字符创建新列的教程
Gmail邮箱申请注册直达_Gmail邮箱免费注册PC版官网入口2025
怎么在浏览器上运行HTML文件_浏览器运行HTML文件技巧【技巧】
ArchiveofOurOwn小说阅读-ArchiveofOurOwn同人作品访问链接
小米汽车11月交付量突破40000台!雷军:将继续努力
GemBox Document HTML转PDF垂直文本渲染问题及解决方案
邮政快递包裹最新位置 邮政快递实时追踪入口
一加手机电池耗电快怎么办_一加手机电池耗电快的解决方法
《铁拳8》黑皮辣妹新实机:元气满满的18岁少女!
汽车之家官方网站官网入口_汽车之家网页版直接进入
Win11怎么开启高性能模式_Windows 11电源计划优化设置
在Go Martini框架中高效服务动态生成图像的实践指南
汽水音乐车机版8.9下载 汽水音乐车机版8.9版本安装入口
谷歌邮箱注册显示错误Gmail服务器异常与延迟处理
在J*aScript中复现SciPy的B样条拟合与求值:关键考量
汽水音乐在线版入口_汽水音乐网页播放手册
内存疯狂猛猛涨价:主板销量直接腰斩!
J*aScript异步迭代器_j*ascript异步遍历
c++中的std::basic_string的SSO优化_c++短字符串优化深度解析
抖音网页版快捷访问 抖音网页版网页版入口操作教程
Win10怎么设置静态IP地址 Win10手动配置IP地址步骤【指南】
微信语音通话掉线如何解决 微信语音通话稳定优化方法
AO3同人作品网入口 AO3搜索引擎官网永久地址
163邮箱官方主页登录 直达网易邮箱登录核心页面
黑猫投诉统一入口官网 消费者权益保护投诉平台
2306选座时如何选靠窗位置_12306选座靠窗座位查看方法解析
PHP中获取MongoDB服务器运行时间(Uptime)的专业指南
Win11怎么安装Linux子系统 Win11 WSL2安装Ubuntu及环境配置指南
Pandas DataFrame 多条件优先级排序与排名
高德地图怎么看全景照片_高德地图全景照片浏览教程
J*aScript:在map操作中高效处理空数组


2025-12-16
浏览次数:次
返回列表