DataToolsLab
XML Tools

RSS & Atom Feed Validator

Check an RSS 2.0, RSS 1.0 or Atom feed for the required elements, item structure and identifier uniqueness.

Loading tool…

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.

  1. 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.
  2. 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.
  3. 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.

Online