Atom is an XML-based web content and metadata syndication format, designed to streamline the exchange of periodically updated content between publishers and aggregators. It functions as both a data format and an application-level protocol for publishing and editing web resources, leveraging HTTP and existing syndication practices like RSS while introducing stricter standards for consistency and extensibility.
Overview
Atom feeds are well-formed XML documents identified by the application/atom+xml media type. They consist of a <feed> element containing metadata and one or more <entry> elements representing individual content items (e.g., blog posts). All Atom elements reside in the http://www.w3.org/2005/Atom namespace, and timestamps must conform to RFC 3339. The format supports plain text, HTML, and XHTML content types, with optional base64 encoding for binary data.
Core Components
Feed Elements
Required:
<id>: A permanent, universally unique URI identifying the feed (e.g.,http://example.com/).<title>: Human-readable feed title (must not be blank).<updated>: Timestamp of the last significant modification.
Recommended:
<author>: Names the feed’s author(s). A feed must include at least one<author>unless all entries specify their own.<link>: Defines related web pages (e.g.,<link rel="self" href="/feed" />for the feed itself).
Optional:
<category>: Tags the feed with topical labels (e.g.,<category term="sports"/>).<icon>/<logo>: Visual identifiers (square icons or 2:1 aspect ratio logos).<rights>: Copyright or licensing information.
Entry Elements
Required:
<id>: Unique URI for the entry (e.g., a permalink).<title>: Entry title (must not be blank).<updated>: Timestamp of the last significant update.
Recommended:
<author>: Entry author(s), unless inherited from the feed.<content>: Full content or a link to it (required if no<link rel="alternate">exists).<link>: Related resources (e.g.,<link rel="alternate" href="/blog/1234"/>).<summary>: Brief excerpt (required if content is external or base64-encoded).
Optional:
<published>: Initial creation timestamp.<source>: Metadata for entries copied from other feeds.
Key Features
- Extensibility: Supports custom XML namespaces and link relationships (e.g., `rel="