XML / XPath / XSD

XSD 校验核对约束,也查清依赖

点击验证或按 Ctrl/Cmd+Enter。示例包含主模式和独立的类型定义文件。

XSD 校验

XML 输入

当前 XSD

XML 与模式内容在当前浏览器内处理,不会上传文档进行验证。

使用 ASCII 相对路径,例如 types/common.xsd。引用相对于所在模式解析,不能使用网址或越出虚拟根目录。

手动执行,含引擎加载最多 10 秒。XML 与单个模式各最多 1,000,000 个字符;模式总计 2,000,000 个字符、20 个文件,深度最多 100。

结果已过期,重新验证后才能导出。

XSD 校验适合处理“文件能打开,接口却不接受”的情况。XML 语法正确,只说明标签与嵌套可以解析;数量填成文字、缺少必填节点或顺序不对,仍可能违反双方约定的模式。

这个 XML 校验器要求同时提供文档与主模式。XML 模式验证使用你选定的入口文件,并读取明确提供的本地依赖;XML 结构验证不会根据文档里的网址猜测另一套规则。

为什么使用 XSD 校验?

保留模式之间的引用

XSD 校验会按本地文件名解析 xs:include 和 xs:import。主模式中的数量字段可以使用 types.xsd 定义的范围;漏掉依赖会明确失败,而不是跳过那条约束。

主模式与两个本地依赖共同参与一份 XML 文档的验证。

分清文档错误与模式错误

数量不符合整数类型时,应回到 XML 修改数据;类型本身没有定义时,问题可能在 XSD。诊断保留所属文件与引擎原文,避免把两种修复方向混为一谈。

XML 中的异常值连接到对应源代码行和错误报告。

运行之前,先确认三个细节

01

选对主模式

默认路径是 main.xsd。文档中的 xsi:schemaLocation 只是提示,本工具不会据此切换模式或下载文件。应选择定义文档根元素的入口 XSD。

02

补齐路径关系

orders/main.xsd 可以引用虚拟根目录内的 ../types.xsd。读取本地 UTF-8 依赖后,可修改文件路径以还原目录关系;规范化后重名会报错。

03

最后一次修改后再验证

修改文本或路径会取消当前任务并使旧报告过期。按 Ctrl/Cmd+Enter 重跑;只切换正在查看的模式文件,不改变待验证内容。

从模式编译到约束诊断

先编译,再检查数据

libxml2 WASM 引擎先编译 XSD 1.0,再验证实例文档。未定义类型、模式结构错误与 XML 不符合约束分别标明阶段,便于先修规则还是先修数据。

验证真实的类型和顺序

示例要求 quantity 为 1 至 100 的整数。必填元素、出现次数、sequence 顺序和命名空间由引擎判断,并非只核对标签名称是否存在。

保留可复查的结果

完成的有效或无效校验都可复制或下载 JSON 报告。报告包含阶段、引擎和诊断;未知列号不会被伪装成第 1 列,有位置的诊断可跳转到对应输入。

版本、引用与资源范围

支持 XML 1.0 与 XSD 1.0
XML 声明须为 1.0;如声明编码,必须为 UTF-8。拒绝断言、替代类型和覆盖等 XSD 1.1 特性。普通 schema version 属性属于应用版本信息,不会切换验证引擎。
只解析提供的本地文件
include、import 和 redefine 都要提供 schemaLocation。路径只接受 ASCII 字母、数字、点、下划线、连字符与斜线;不接受网址、百分号转义、绝对路径或越出根目录。拒绝 xml:base 与 DOCTYPE。
字符数和运行时间有限
XML 与每个 XSD 最多 1,000,000 个 JavaScript 字符,所有模式总计 2,000,000 个字符、20 个文件,均包含主模式。深度最多 100,Worker 在含初始化的 10 秒后终止;字符数不等于文件字节数。
诊断报告可能截断
最多保留 200 条诊断,每次显示 50 条;超出会标记截断,每条引擎消息最多保留 4,000 个字符。运行时故障和过期结果不能导出,也不保证一次找到全部问题。
不修复数据或代替业务验收
不自动改写 XML、生成模式、执行 Schematron 或核验数字签名。通过结构约束不代表银行、税务平台或接收接口一定接受,仍需核对业务规则和目标版本。
替换可预览并撤销一次
载入示例、清空、读取依赖与移除模式先显示替换内容,再由你应用。撤销一次可同时恢复输入及旧报告;直接编辑文本无需预览,刷新页面不会保留工作区。

XSD 校验常见问题

语法正确的 XML 为什么还会验证失败?

良构性只检查标签、属性与嵌套能否解析。符合模式还要求元素、顺序、类型和限制正确。例如 quantity 写成 zero 是合法 XML 文本,却不是整数,因此会在模式验证阶段失败。

能否用自己的 XSD 验证 XML?

可以。把入口模式放入主 XSD 编辑器,再添加它引用的本地文件。必须同时输入待验 XML;仅有 XSD 时不会单独运行模式检查。

XML 验证错误应该怎样排查?

先看错误阶段与文件名。模式编译失败应检查规则及依赖;实例验证失败则查看数据和约束。点击已知行号定位;引擎没有提供列号时显示未知,请结合原始说明排查。

XSD 和 DTD 的验证能力有什么区别?

XSD 可表达整数、日期、枚举、范围和命名空间等约束,通常比 DTD 的类型描述更细。本页运行 XSD 1.0,并拒绝 DOCTYPE;已有 DTD 的文件需要在其他支持该流程的工具中处理。

XML 校验能否自动执行?

本页采用手动验证,不提供保存后自动执行、命令行接口或批量任务。需要持续集成时可在自己的环境使用支持同版本模式的验证器,并保留相同的依赖路径。

遇到难以理解的诊断?

用完整样本复现问题

用 XSD 校验保存一份可复查的结果时,请同时保留原 XML、主模式和依赖路径。报告说明的是这一组输入,而不是后续修改后的文件。