XSD的xs:override怎么覆盖引入的schema定义


xs:override 是 XML Schema 1.1 引入的安全重定义机制,用于在不修改原始 schema 文件的前提下,精确覆盖或增强已引入的类型、元素等定义,需严格匹配名称与类别,且仅支持 XSD 1.1 处理器。

xsd的xs:override怎么覆盖引入的schema定义

xs:override 是 XML Schema 1.1 中引入的机制,用于安全地替换或增强已有的 schema 定义(比如来自 xs:includexs:import 的类型、元素、属性等),而无需修改原始 schema 文件。它不是“覆盖”语义上的简单覆盖,而是有约束的、显式的重定义,必须严格遵循规则。

下面直接说明怎么用 xs:override 正确覆盖引入的 schema 定义:

前提:只能用于 XML Schema 1.1

确保你的处理器支持 XSD 1.1(如 Xerces-J 2.12+、Saxon EE、libxml2 2.9.12+)。XSD 1.0 不支持 `xs:override`,用了会报错。

语法结构:用 xs:override 包裹被覆盖的目标定义

你不能在任意位置写 `xs:override`。它必须是 schema 文档的**顶层元素之一**(和 `xs:include`、`xs:import` 同级),且其内容必须只包含对原 schema 中已存在组件的重定义 —— 且名称、种类(element/type/attribute 等)必须完全匹配。

例如,要覆盖 `common.xsd` 中定义的 `xs:complexType name="Person"`:

代码小浣熊 代码小浣熊

代码小浣熊是基于商汤大语言模型的软件智能研发助手,覆盖软件需求分析、架构设计、代码编写、软件测试等环节

代码小浣熊 429 查看详情 代码小浣熊
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" 
           xmlns="http://example.com" 
           targetNamespace="http://example.com"
           version="1.1">
<p><!-- 引入原始 schema -->
<xs:include schemaLocation="common.xsd"/></p><p><!-- 覆盖其中的 Person 类型 -->
<xs:override schemaLocation="common.xsd">
<xs:complexType name="Person">
<xs:sequence>
<xs:element name="name" type="xs:string"/>
<xs:element name="age" type="xs:positiveInteger"/>
<xs:element name="email" type="xs:string" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
</xs:override></p><p></xs:schema>

关键限制:什么能覆盖,什么不能

  • 必须精确匹配名称和类别:`name="Person"` + `xs:complexType` 必须和 `common.xsd` 中声明的一模一样(包括是否带 `targetNamespace`)
  • 不能新增组件:`xs:override` 内部只能出现已在被覆盖 schema 中存在的声明;多一个 `` 就算非法
  • 不能改变顶层结构语义:比如把 `xs:simpleType` 改成 `xs:complexType`,或把全局元素改成局部元素 —— 这些不被允许
  • 可以扩展/收紧约束:比如在原 `Person` 中增加可选字段、改 `minOccurs`、加 `xs:assert`、细化 `xs:restriction` —— 这些是典型合法用法

覆盖 import 的 schema 要注意命名空间

如果 `common.xsd` 是通过 `xs:import`(而非 `xs:include`)引入的,它必然有 `namespace`。此时 `xs:override` 的 `schemaLocation` 指向它,但内部重定义必须带上正确的 `targetNamespace`(或用 `xmlns:tns="..."` + `tns:Person`)。

例如 `common.xsd` 声明了 `targetNamespace="http://common.example"`,那么 override 片段应为:

<xs:override schemaLocation="common.xsd">
  <xs:complexType name="Person" 
                  xmlns:cm="http://common.example" 
                  targetNamespace="http://common.example">
    <!-- ... -->
  </xs:complexType>
</xs:override>

基本上就这些。xs:override 不复杂但容易忽略版本和匹配精度,用对了就能解耦维护、实现渐进式 schema 升级。

以上就是XSD的xs:override怎么覆盖引入的schema定义的详细内容,更多请关注其它相关文章!


# 要注意  # 榴莲营销推广方案设计  # 南阳网站推广比较专业  # 上虞商城网站建设选哪家  # 阿里短视频营销推广价格  # 抖音图文推广营销  # 海口网站建设前景分析图  # 开封推荐网站推广  # seo怎么诊断  # 马鞍山外贸网站推广  # 企业如何做QQ推广营销  # 处理器  # 用了  # 相关文章  # 你不  # 就能  # 流式  # 怎么处理  # 如何用  # 文档  # 小浣熊  # ai 


相关栏目: 【 Google疑问12 】 【 Facebook疑问10 】 【 优化推广96088 】 【 技术知识133117 】 【 IDC资讯59369 】 【 网络运营7196 】 【 IT资讯61894


相关推荐: 《图怪兽》退出登录方法  yandex网页版直接登录 yandex官方入口平台访问方法  漫蛙漫画官方版直通入口 2025漫蛙漫画免注册访问说明  byrutor直接访问入口 byrutor官方游戏库  电脑没有声音了怎么办 电脑声音问题的全面排查与修复指南【详解】  Chart.js 教程:自定义插件实现图表与图例间距调整  三星M34录音变声问题_Samsung M34麦克风调整  抖音号升级企业号怎么改名字?升级企业号有哪些好处?  《下一站江湖2》风神腿获取攻略  word表格如何按某一列内容进行排序_Word表格按列排序方法  win11资源管理器标签页怎么用 Win11文件管理器多标签高效操作【新功能】  yy漫画官方网站登录入口_yy漫画在线阅读页面地址  解决CSS background 属性中 cover 关键字的常见误用  C++怎么实现一个红黑树_C++高级数据结构与平衡二叉搜索树  J*a中导出MySQL表为SQL脚本的两种方法  德邦快递收费标准详解  告别繁琐SEO!如何使用SyliusSitemap插件自动化生成网站地图,提升搜索引擎排名  PHP 4 函数中引用参数的默认值限制与解决方案  Python csv 模块处理非字符串数据:列表写入 CSV 文件的机制解析  发布小红书怎么屏蔽粉丝?屏蔽粉丝能看到吗?  J*a中逻辑运算符如何使用_逻辑与或非的基础用法讲解  Golang如何操作指针参数_Go pointer参数传递规则  QQ邮箱PC端登录页面_QQ邮箱网页版登录界面  追剧达人如何发弹幕  《暗黑破坏神4》国服回归送狂欢礼包 价值6916元  win11怎么设置默认终端为Windows Terminal Win11替代CMD和PowerShell【技巧】  微星主板BIOS怎么调整内存时序_内存参数手动优化BIOS设置教程  J*aScript实现网页表单实时输入字段比较与验证教程  《土豆雅思》修改密码方法  《洛克王国:世界》国家队搭配攻略  易车网官网直达入口 易车网在线登录入口  响应式设计中动态背景颜色条的实现指南  键盘保修需要什么_键盘售后维修流程  解决Go encoding/json 将JSON大数字解析为浮点数的问题  qq邮箱怎么注册_QQ邮箱注册步骤与注意事项  搜狗浏览器如何查找页面中的文字 搜狗浏览器Ctrl+F页面搜索功能  安居客移动经纪人怎么设置自动回复?-安居客移动经纪人设置自动回复的方法  在Spring Boot Thymeleaf中利用布尔属性实现容器的条件显示  嘴唇干裂起皮怎么办 唇部护理与预防干裂的方法【详解】  C++ static关键字作用_C++静态成员变量与静态函数  《大周列国志》皇帝律令功能介绍  mysql如何回滚事务_mysql ROLLBACK事务回滚方法  《优志愿》修改手机号方法  《合金装备4》有望推出重制版!制作人发话了  《杖剑传说》食谱大全  除了Copilot,还有哪些值得一试的VS Code AI插件?  餐馆菜篮选购指南  斯宾塞称XGP云游戏“蒸蒸日上”:正在构建一个游戏从未如此唾手可得的未来  抖音手机分身两个账号怎么切换?分身两个系统是一样的吗?  MongoDB聚合管道:高效统计列表中各项的文档数量 

 2025-12-18

了解您产品搜索量及市场趋势,制定营销计划

同行竞争及网站分析保障您的广告效果

点击免费数据支持

提交您的需求,1小时内享受我们的专业解答。

运城市盐湖区信雨科技有限公司


运城市盐湖区信雨科技有限公司

运城市盐湖区信雨科技有限公司是一家深耕海外推广领域十年的专业服务商,作为谷歌推广与Facebook广告全球合作伙伴,聚焦外贸企业出海痛点,以数字化营销为核心,提供一站式海外营销解决方案。公司凭借十年行业沉淀与平台官方资源加持,打破传统外贸获客壁垒,助力企业高效开拓全球市场,成为中小企业出海的可靠合作伙伴。

 8156699

 13765294890

 8156699@qq.com

Notice

We and selected third parties use cookies or similar technologies for technical purposes and, with your consent, for other purposes as specified in the cookie policy.
You can consent to the use of such technologies by closing this notice, by interacting with any link or button outside of this notice or by continuing to browse otherwise.