Skip to content
Novus Examples
atom2.7 KB

Feed twin - Atom 1.0

The same four articles as Atom 1.0: tag: ids identical to the RSS twin, RFC 3339 published and updated timestamps, escaped HTML content, and both alternate and self links. For diffing an RSS-to-Atom converter against a known answer.

Preview — first 50 linesatom
<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
  <title>Example Dispatch</title>
  <subtitle>A fictional publication shipped in three feed formats with identical content.</subtitle>
  <id>tag:example.com,2026:dispatch</id>
  <updated>2026-01-01T12:00:00+00:00</updated>
  <link rel="alternate" type="text/html" href="https://www.example.com/blog/"/>
  <link rel="self" type="application/atom+xml" href="https://www.example.com/feeds/dispatch.atom"/>
  <author><name>A. Sample</name></author>
  <entry>
    <title>Sitemap shards, explained</title>
    <link rel="alternate" type="text/html" href="https://www.example.com/blog/sitemap-shards-explained"/>
    <id>tag:example.com,2026:dispatch-004</id>
    <published>2026-01-01T12:00:00+00:00</published>
    <updated>2026-01-01T12:00:00+00:00</updated>
    <summary>Why a 50,000-URL ceiling exists and what a sitemap index actually buys you.</summary>
    <content type="html">&lt;p&gt;A sitemap index is a list of lists. Sample article body.&lt;/p&gt;</content>
    <author><name>A. Sample</name></author>
  </entry>
  <entry>
    <title>Crawl budget notes</title>
    <link rel="alternate" type="text/html" href="https://www.example.com/blog/crawl-budget-notes"/>
    <id>tag:example.com,2026:dispatch-003</id>
    <published>2026-01-01T09:30:00+00:00</published>
    <updated>2026-01-01T09:30:00+00:00</updated>
    <summary>Notes on crawl budget for a fictional catalogue of 500 items.</summary>
    <content type="html">&lt;p&gt;Crawl budget is a scheduling story, not a quota. Sample article body.&lt;/p&gt;</content>
    <author><name>A. Sample</name></author>
  </entry>
  <entry>
    <title>Reading robots.txt like a parser</title>
    <link rel="alternate" type="text/html" href="https://www.example.com/blog/reading-robots-txt"/>
    <id>tag:example.com,2026:dispatch-002</id>
    <published>2026-01-01T08:15:00+00:00</published>
    <updated>2026-01-01T08:15:00+00:00</updated>
    <summary>Group merging, longest-match precedence, and the fields nobody implements.</summary>
    <content type="html">&lt;p&gt;Most robots.txt bugs are precedence bugs. Sample article body.&lt;/p&gt;</content>
    <author><name>A. Sample</name></author>
  </entry>
  <entry>
    <title>Hello from the Example Dispatch</title>
    <link rel="alternate" type="text/html" href="https://www.example.com/blog/hello"/>
    <id>tag:example.com,2026:dispatch-001</id>
    <published>2026-01-01T08:00:00+00:00</published>
    <updated>2026-01-01T08:00:00+00:00</updated>
    <summary>The first entry of a fictional publication used as a feed fixture.</summary>
    <content type="html">&lt;p&gt;Nothing here is real. Sample article body.&lt;/p&gt;</content>
    <author><name>A. Sample</name></author>
  </entry>
</feed>
51 lines total — download for the full file.

Specifications

Seed
70400
Site
example.com (fictional)
Format
Atom 1.0 (RFC 4287)
Entries
4
Date Format
RFC 3339
Content Type
html
Self Link
true

Testing contract

Expected to pass
Scenario
Compare the entry set with the RSS and JSON Feed twins.
Expected result
All four ids match tag:example.com,2026:dispatch-001..004 across the three formats, the escaped content decodes to the same HTML the RSS CDATA carries, and the feed-level updated equals the newest entry's timestamp.

What is a .atom file?

Atom is an XML-based web syndication format standardized by the IETF as a more rigorous alternative to RSS. It publishes entries with structured metadata including unique IDs, updated timestamps, and typed content. It is used for blogs, news, and API feeds.

How to use this file

Use an example Atom file to test feed parsing, entry and metadata extraction, and clients that must support both Atom and RSS syndication.

How to use this file for testing

“Feed twin - Atom 1.0” is a deterministic Novus Examples fixture for Web assets, Feed parsing, Conversion testing. Favicons, web app manifests, service workers, robots and sitemap files, Open Graph images, and .well-known resources — for testing web tooling, crawlers, PWA installers, and asset pipelines.

Documented properties for this file: seed 70400 · 4 entries · Atom 1.0 (RFC 4287). Compare results against paired or grouped companions on this page when present (clean↔damaged, searchable↔scanned, or format twins) so scores stay reproducible across runs.

Download the file once, keep the path stable in CI or local scripts, and treat the spec table as the contract: dimensions, seeds, field lists, and roles are intentional. Corrupt or invalid samples are labelled as such — expect parsers to fail loudly rather than silently accept them.

Web-platform fixtures are standards-compliant samples against fictional example.com data. Test crawlers, PWA installers and manifest validators, favicon/icon pipelines, service-worker registration, or .well-known parsers against the documented structure.

Code examples

import feedparser  # pip install feedparser

feed = feedparser.parse("dispatch.atom")
print(feed.feed.get("title"))
for e in feed.entries[:5]:
    print(e.title, e.link)

Generated by generation/web_p7.py. Free for any use, no attribution required — license.