# XML 验证器

在发布 feed、站点地图、SVG 或配置文件之前，检查 XML 文档是否格式良好。验证器会扫描标签、属性、嵌套结构和字符，并报告第一个问题及其行号、列号和解析器说明，例如不匹配的结束标签。格式良好的文档会显示根元素、元素和属性的数量以及嵌套深度。它检查的是格式是否良好，不检查 DTD 或 XSD 规则。

## 常见问题

### 格式良好的 XML 与有效的 XML 有什么区别？

格式良好的 XML 遵循基本语法规则：只有一个根元素，标签正确嵌套并闭合，属性使用正确的引号。有效的 XML 还必须符合定义允许使用哪些元素的 DTD 或 XML Schema。此工具检查格式是否良好；所有 XML 解析器在进行其他处理之前都要求满足这一点。

### 具体会检查哪些内容？

验证器会检查是否恰好有一个根元素、每个标签是否按正确顺序闭合、标签名和属性名是否有效、属性值是否加引号且没有重复，以及元素外是否出现多余字符。XML 声明、注释、CDATA 节和处理指令均可接受。

### 错误类型分别是什么意思？

错误分为四类：文档结构、标签、属性和字符。错误行会用通俗语言指出所属类别，详细信息行则提供解析器的准确说明，例如指出预期的标签。两者都会附上问题所在的行号和列号。

### 为什么不带值的属性会被拒绝？

HTML 允许使用 <input disabled> 等布尔属性，但 XML 要求每个属性都有加引号的值。请写成 disabled="disabled"，或移除该属性。同一规则也适用于 SVG 和 XHTML 文件。

### 可以用它验证 HTML 吗？

只能验证 XHTML，也就是用 XML 编写的 HTML。普通 HTML 允许 <br> 或 <img> 等元素不闭合，也允许属性不加引号，而 XML 不允许这些情况，因此通常会被报告为格式不良。

### 支持 DOCTYPE 声明和实体吗？

带有实体声明的 DOCTYPE 会作为语法检查的一部分被接受，但实体不会展开，也不会获取任何外部文件。这样可以加快检查速度，并防止实体扩展攻击。& 和 < 等预定义实体始终可用。

### 支持命名空间吗？

svg:rect 或 xsi:schemaLocation 等带前缀的名称可用作元素名和属性名。验证器不会解析命名空间 URI，也不会检查每个前缀是否已声明。

### 有效文档的统计信息显示什么？

根元素是最外层的标签；Elements 统计包括根元素在内的所有元素；Attributes 统计文档中的所有属性。Maximum depth 是最深的嵌套层级，根元素为第 1 层。这些数字有助于确认 feed 或导出内容是否符合预期。

### 行号和列号如何计算？

两者都从输入开头开始计数，起始值为 1。该位置指向解析器发现问题的地方；对于未闭合的标签，位置可能在其开始标签本身。只会报告第一个错误。

### XML 最大能有多大？可以转换吗？

输入最多可达 5 MiB。要将格式良好的文档转换为 JSON、YAML、CSV 或其他格式，请使用数据格式转换器，或使用 XML 到 JSON 工具。

在这里投放广告？

[给我们发邮件](mailto:hi@dennn.is?subject=%E5%9C%A8%20OneClick%20Pro%20%E4%B8%8A%E6%8A%95%E6%94%BE%E5%B9%BF%E5%91%8A)

[广告 适用于 WordPress 的智能体就绪型插件套件。](https://sleekwp.com/?ref=oneclickpro)
