RSS & Atom Feed Validator
Check an RSS 2.0, RSS 1.0 or Atom feed for the required elements, item structure and identifier uniqueness.
What is Feed Validator?
A feed checker for RSS and Atom. Feed problems are usually quiet — a reader shows nothing, or shows it undated, or a subscriber never sees an update — and most of those causes are structural rules a validator can check in a second.
How it works
The root element decides the dialect, then the required channel or feed elements are checked: title, link and description for RSS 2.0; id, title, updated and an author for Atom; the channel's title, link and description plus rdf:about identity for RSS 1.0. Each item or entry is checked for its required parts, link and guid, id or rdf:about uniqueness across the feed, and dates are validated against the dialect's format — RFC 822 for RSS, RFC 3339 for Atom. RSS 1.0 items are counted where they actually live, beside the channel inside <rdf:RDF>, which is the detail that makes a valid RDF feed look empty to a checker that expects RSS 2.0's nesting. Findings carry a severity so a stylistic note is not confused with a feed readers will reject.
- Paste the document. Drop in XML, a schema, a feed or an XPath expression. Everything is parsed in the page: no upload, no server round trip, and the tools keep working with the network switched off.
- Set the options that match your document. Indent unit, whether to keep comments, which dialect, which output method. The defaults are the safe ones — nothing that changes meaning is enabled for you.
- Read the result, then copy or download it. Results appear as you type, copy straight to the clipboard, and download with a sensible filename (.xml, .xsd, .csv). Reset returns every field to its default.
Examples
A minified document from an API response
Paste one line of XML and the Formatter indents it, wraps long start tags one attribute per line and normalises empty elements — without touching text inside mixed content.
An XPath that works in Chrome and not in your servlet
The XPath Tester evaluates against a real tree and reports the axis or function it cannot support, instead of returning zero nodes and letting you guess why.
A document that will not parse
The Validator gives line and column for every mismatched tag, stray ampersand and duplicate attribute, with the reason in words: which open element was expected, which was found.
A schema that only half matches your data
The XSD Validator marks each violation with the path of the offending node, and the Schema Generator goes the other way — inferring a starting-point XSD from real documents.
Common mistakes
Assuming a pretty-printer cannot change meaning
Whitespace between elements is often insignificant, but inside mixed content it is not: `<p>Hello <b>world</b></p>` must stay on one line. Formatting here re-indents element-only content and leaves mixed content alone.
Treating a validation pass as proof of interoperability
The DTD and XSD validators implement honest subsets. A document reported valid here can still be rejected by a full validator that understands identity constraints, substitution groups or XSD 1.1 assertions — each page lists what it does not cover.
Reading the whole document because the parser did
A DOCTYPE is not inert. If your parser resolves external entities, pasting an untrusted document is enough to read a file or call an internal URL. The XXE Risk Checker shows what a document asks for; the fix is in the parser configuration.
Forgetting that attributes and elements are not interchangeable
`<id>1</id>` and `id="1"` mean different things to every schema and every XPath. When converting to CSV or YAML the distinction is preserved (`@id`), because flattening it away is the change that costs an afternoon later.
Frequently asked questions
Why is my RSS feed flagged for an Atom-style date?
Because RSS 2.0's pubDate is RFC 822 — `Tue, 10 Jun 2003 04:00:00 GMT` — and an ISO 8601 timestamp like `2026-01-31T08:00:00Z` is not. Most readers are forgiving, some are not, and the ones that are not show the item as undated.
Are duplicate GUIDs actually a problem?
Yes, and it is the most damaging mistake in this list. A guid is the item's permanent identity: two items sharing one means readers show one and skip the other, and subscribers see no update at all. It is reported as an error rather than a warning.
Does it check whether my URLs work?
No, and it never will: this tool makes no network requests, so a link that 404s cannot be detected here. It checks that the element is present, non-empty and in the right place — structural problems, which are the ones that break readers.