XML 的“正确”不止一层
XML 格式化与校验在线工具 — XSD 验证、树形查看与 XPath 测试
缩进清楚只是第一步。可靠的 XML 检查还要区分语法错误、XSD 规则、命名空间上下文和 XPath 查询结果。
从 XML 源码一路定位到匹配节点
- 1
XML 源码
包含编码、标签和声明的原始文本
- 2
格式良好的 XML
标签成对、属性带引号且只有一个根元素
- 3
识别命名空间的树
展开名称、属性与文本节点
- 4
通过 XSD 验证
数据类型、元素顺序、出现次数与约束均符合 Schema
- 5
XPath 结果
在明确的上下文中选中目标节点
格式良好不等于通过 XSD 验证
01 / PARSER
Well-formed XML
解析器可以把源码构建成结构唯一、没有语法歧义的 XML 文档。
02 / SCHEMA
Schema-valid XML
文档还要满足 XSD 定义的元素结构、数据类型和业务约束。
<invoice total="ten"/> 可以是格式良好的 XML,却不符合 XSD 定义的 decimal 类型。NAMESPACE CONTEXT
前缀只是别名,命名空间 URI 才是身份
同一个 XML 命名空间可以使用不同前缀。即使源码采用默认命名空间,XPath 查询通常也要显式配置“前缀 → URI”映射,并在表达式中使用该前缀。
Prefix map
inv → urn:example:invoicexsi → http://www.w3.org/2001/XMLSchema-instance//inv:item[@status="open"]外部实体解析是一条安全边界
DevSexy 解析 XML 时不会请求外部 DTD、Schema 或实体 URL,避免让格式化工具变成 XXE 攻击入口或内网资源探测器。
● 外部实体解析:已禁用
● 输入内容处理:仅在浏览器本地进行
根据检查目标提供对应输入
| Task | Required input | Operation |
|---|---|---|
| 整理成易读格式 | 仅 XML | 格式化 |
| 检查 XML 语法 | 仅 XML | 格式良好性检查 |
| 检查业务结构 | XML + XSD | Schema 验证 |
| 查询目标节点 | XML + 命名空间映射 | XPath |
XML 格式化与校验常见问题
- 01格式化 XML 是否等于完成校验?
- 不等于。格式化要求输入能够被解析,但不能证明文档符合 XSD 或具体业务系统定义的结构和类型。
- 02为什么 XPath 查询不到任何节点?
- 常见原因是 XML 使用了默认命名空间。请为它的 URI 配置查询前缀,并在 XPath 表达式中使用这个前缀。
- 03工具会从 URL 加载外部 XSD 吗?
- 不会。外部资源解析已禁用;需要进行 XSD 验证时,请直接提供 Schema 内容。