RSS 2.0 与 Atom 1.0 的结构要求
在发布或迁移聚合源时,确保 XML 结构符合规范是保障订阅用户正常接收更新的基础。RSS 2.0 与 Atom 1.0 作为主流的两种 Feed 格式,各自有着严格的根元素与层级定义。
对于 RSS 2.0 规范,文档必须包含一个直属的 <channel> 元素。如果验证器检测到不符合此规则的情况,会触发“RSS 必须仅包含一个直属 <channel>;当前找到 ‹count› 个。”的错误。在 RSS 的 <item> 条目中,必须满足“标题或描述”规则,即 title 或 description 至少存在其一,同时系统会读取 GUID、link 以及发布日期。
对于 Atom 1.0 规范,其结构要求更为严密。每个 Atom 条目(<entry>)必须包含唯一的 ID、title 和 updated 时间。此外,Atom 规范对作者信息有严格的继承规则:如果 Feed 级别没有定义作者,则每个条目中必须直接包含作者信息,否则会触发“请在此条目、其 <source> 或 Feed 中添加 <author>。”或“请在 Feed 中添加 <author>,或在每个条目中直接添加 <author>。”的错误提示。
链接、ID 与 xml:base 解析机制
Feed 中的链接和标识符必须具备极高的精确度,以防阅读器在解析时出现定向错误。
- 绝对地址与相对地址:Atom 规范允许在特定情况下使用相对路径,但这必须依赖
xml:base属性来完成解析。如果缺乏可用的xml:base,任何相对地址都会导致“请为‹field›使用绝对地址;只有具备可用 xml:base 的 Atom 引用才能使用相对地址。”的错误。 - 唯一标识符(ID):Atom 的 ID 必须是绝对 IRI,相对标识符在规范中是不合法的,会触发“请为
‹field›使用绝对 IRI;相对标识符不是有效的 Atom ID。”的警告。同时,Feed 内的所有 ID 必须唯一,若出现重复,验证器会指出“此 ID 与第‹first›行首次出现的值重复。”。 - 链接有效性:所有被识别为链接的字段都会进行格式解析。如果无法解析为标准的 URL 或 URI 引用,系统将报告“请修正
‹field›;此链接无法解析为 URL 或 URI 引用。”。
常见 XML 格式错误与限制
在编辑或自动生成 Feed XML 时,一些常见的标记语言错误会导致解析器直接中断工作。
首先,XML 文档中不能包含 DOCTYPE 声明,否则验证器会提示“请先移除 DOCTYPE 声明,再检查此 Feed。”。其次,任何不闭合的标签、错误的嵌套或非法字符都会导致 XML 畸变,必须在“修正格式错误的 XML,然后重新验证。”后才能进行深层规则检查。
本验证器对输入的文本长度设有上限,每次最多可检查 500,000 个字符。如果超出此限制,系统会提示“每次最多可检查 ‹max› 个字符。”。若 Feed 结构过于庞大复杂导致计算超时,则会显示“验证耗时过长,请尝试较小的 Feed。”。
结构验证与内容验证的区别
使用本工具时,需要明确结构合规性与内容真实性之间的界限。
本验证器仅对 XML 的语法结构、必填字段完整性以及链接的格式规范进行静态分析。在检查过程中,验证器绝不会实际请求或打开 XML 中包含的任何 URL。这意味着,链接指向的服务器是否可用、是否存在域名解析错误、SSL 证书是否过期、是否存在网页重定向,以及目标页面的具体内容,均不在检测范围内。
因此,“此报告只检查结构和常见格式规则,不能证明内容准确、安全、可被所有阅读器接受或已适合发布。”。
本地处理与隐私保护
本工具在处理数据时严格保护用户的信息隐私。当您粘贴 RSS 或 Atom XML 数据并点击验证后,所有的解析、提取、规则比对和报告生成工作完全在您的浏览器本地运行。
BroBroGo 不会上传、传输或在服务器端保存您的任何 Feed 内容或解析结果。
常见问题
此验证器支持哪些 Feed 格式?
它支持当前的 RSS 2.0 和 Atom 1.0 文档。旧版 RSS、RDF/RSS 1.0 和 Atom 0.3 会被识别出来,但不会套用不适合的规则进行验证。
它会打开或测试 Feed 中的链接吗?
它会解析包含链接的字段,并通过 xml:base 解析 Atom 相对引用,但不会打开 URL,因此不会测试可用性、重定向、证书或目标内容。
会检查哪些条目字段?
RSS 条目会检查标题或描述,并读取 GUID、链接和发布日期;Atom 条目会检查 ID、标题、更新时间、作者继承、备用链接,以及内容与摘要规则。
为什么提示需要移除 DOCTYPE 声明?
在验证前必须将 XML 内容中的 DOCTYPE 声明移除。