Jens Meiert

RSS 2.0 und Atom 1.0 im Vergleich (Sam Ruby et al.)

Jens O. Meiert, 2. November 2006.

Übersetzung (anderes Urheberrecht) des englischen Artikels von Sam Ruby et al.

Bei der Generierung von Feeds besteht eine Auswahl von Feed-Formaten. Zumindest seit Mitte 2005 sind RSS 2.0 und Atom 1.0 dafür die naheliegendsten Kandidaten. Der Zweck dieses Dokuments ist, so klar und einfach wie möglich die Unterschiede zwischen den »Syndizierungssprachen« RSS 2.0 und Atom 1.0 zusammenzufassen.

Die Übersetzung basiert auf dem Stand des Originaldokuments vom 29. September 2006 und wird bei signifikanten Änderungen aktualisiert. Es ist festzuhalten, dass die Aussagen dieser Seite aus dem Umfeld der Atom-Arbeitsgruppe stammen und deshalb »natürlich voreingenommen« sind; faktisch ist Atom RSS jedoch in vielen Aspekten voraus.

Inhalt

  1. Größere und qualitative Unterschiede
    1. Deployment
    2. Spezifikationen
    3. Veröffentlichungsprotokolle
    4. Erforderlicher Inhalt
    5. Nutzlast
    6. Voller oder partieller Inhalt
    7. Automatisches Erkennen
    8. Extraktion und Aggregation
  2. Kleinere Unterschiede
    1. Erweiterbarkeit
    2. URIs
    3. Software-Verfügbarkeit
    4. Sprachkennzeichnung
    5. Digitale Signaturen und Verschlüsselung
    6. Autoren
    7. Kategorien
    8. Schema
  3. RSS- und Atom-Feed-Beispiele
  4. Elementvergleich
  5. Mehr zum Thema

Größere und qualitative Unterschiede

Deployment

Spezifikationen

Die RSS-2.0-Spezifikation wurde von der Harvard-Universität urheberrechtlich geschützt und »eingefroren«. Es können keine signifikanten Änderungen mehr vorgenommen werden (obwohl die Spezifikation einer »Creative Commons«-Lizenz unterliegt), und es ist beabsichtigt, dass zukünftige Arbeit unter einem anderen Namen vorgenommen wird; Atom ist dafür ein Beispiel.

Atom 1.0 wird in RFC 4287 (HTML-Version) spezifiziert; es entspricht der allgemeinen Meinung der Atompub-Arbeitsgruppe der IETF, wie von der IETF-Gemeinschaft und der »Internet Engineering Steering Group« überprüft und genehmigt. Die Spezifikation ist derart strukturiert, dass die IETF weitere Versionen oder Revisionen dieser Spezifikation herausgeben könnte, ohne bestehende Deployments zu stören, obwohl es aktuell weder Zusagen noch irgendwie geäußertes Interesse gibt, dies zu tun.

Beachten Sie den untenstehenden Abschnitt über Erweiterbarkeit, um zu erfahren, wie beide Formate erweitert werden können, ohne die zugrundeliegenden Spezifikationen zu ändern.

Veröffentlichungsprotokolle

Mit RSS gibt es zwei weitverbreitete, populäre Protokolle, MetaWeblog und Blogger. Häufig gibt es zudem Problemberichte bezüglich Interoperabilität und Funktionsmängeln.

Die Atompub-Arbeitsgruppe hat unterdessen die Entwicklung des Atom-Veröffentlichungsprotokolls, das eng mit dem Atom-Feed-Format verbunden ist und auf Erfahrungen mit den existierenden Protokollen basiert, fast abgeschlossen.

Erforderlicher Inhalt

RSS 2.0 erfordert auf Feed-Ebene Titel, Link und Beschreibung. Es verlangt jedoch nicht, dass in einem Eintrag irgendein Element vorhanden sein muss.

Atom 1.0 erfordert, dass sowohl Feeds als auch Einträge einen Titel (der leer sein darf), einen eindeutigen Bezeichner und einen Zeitstempel der letzten Aktualisierung beinhalten.

Nutzlast

RSS 2.0 darf entweder reinen Text oder »escaped« HTML beinhalten, wobei kein Weg existiert, anzuzeigen, welches von beidem angeboten wird. Escaped HTML ist häßlich (die Zeichenkette »AT&T« würde zum Beispiel als »AT&T« ausgedrückt werden) und stellte eine Hürde für Implementierer dar. Das Inhaltsmodell für Titel ist unterspezifiziert; Titel, die spitze Klammern oder kaufmännische Und beinhalten, werden von einem erheblichen Teil von Readern ohne Rücksicht auf ihre Schreibweise fehlinterpretiert. Das RSS-2.0-Inhaltsmodell lässt kein tatsächlich wohlgeformtes XML-Markup zu, was die Wiederverwendbarkeit des Inhalts reduziert.

Atom verfügt über einen sorgfältig konzipierten »Nutzlast«-Container. Inhalte müssen explizit als eines der folgenden Formate gekennzeichnet werden:

Es gibt keine Garantie dafür, dass Empfänger in der Lage sind, irgend etwas Sinnvolles mit willkürlichem XML oder Binärinhalten zu machen. Es wird jedoch garantiert, dass Empfänger nicht unpassenderweise versuchen, Inhalte zu verarbeiten, die sie nicht verarbeiten können.

Voller oder partieller Inhalt

RSS 2.0 verfügt über ein description-Element, das üblicherweise dazu verwendet wird, entweder den vollen Text oder einfach eine Zusammenfassung eines Eintrags einzubinden (manchmal innerhalb desselben Feeds), aber das manchmal fehlt. Es gibt keinen integrierten Weg, zu signalisieren, ob Inhalte vollständig sind.

Atom besitzt getrennte summary- und content-Elemente. Die Zusammenfassung wird aus Barrierefreiheitsgründen empfohlen, sollte der Inhalt nicht textlich (beispielsweise bei Audio) oder nicht lokal sein (da beispielsweise durch einen Zeiger identifiziert).

Automatisches Erkennen

»Autodiscovery« für RSS wurde mehrmals unterschiedlich implementiert, setzt oftmals auf dem unregistrierten (und damit invaliden) MIME-Typ application/rss+xml auf und wurde nie standardisiert. Dies stellt eine verbreitete Problemquelle für technisch weniger versierte Benutzer dar.

Atom standardisiert automatisches Erkennen. Der MIME-Typ application/atom+xml ist bei der IANA angemeldet. Zudem beinhalten Atom-Feeds einen self-Zeiger, so dass sich ein Newsreader angesichts der Inhalte des Feeds automatisch anmelden kann, was wiederum auf standardisierter Versandtechnik basiert.

Extraktion und Aggregation

Die einzig anerkannte Form von RSS 2.0 besteht in einem rss-Dokument.

Atom 1.0 ermöglicht alleinstehende Atom-Dokumente; diese können über ein beliebiges Netzwerkprotokoll wie XMPP übertragen werden. Atom verfügt auch über Unterstützung für aggregierte Feeds, in denen Einträgen gestattet wird, auf den Feed, aus dem sie kamen, zurückzuverweisen, wenn sie in anderen Feeds inkludiert werden.

Kleinere Unterschiede

Erweiterbarkeit

RSS 2.0 befindet sich in keinem XML-Namensraum, darf aber Elemente aus anderen XML-Namensräumen beinhalten. Es gibt keinen zentralen Ort, wo man populäre Erweiterungen ausfindig machen kann, wie etwa dc:creator und content:encoded.

Atom 1.0 befindet sich in einem XML-Namensraum und darf Elemente oder Attribute aus anderen XML-Namensräumen beinhalten. Es gibt spezifische Richtlinien dazu, wie Erweiterungselemente zu interpretieren sind. Zudem wird es ein von der IANA verwaltetes Verzeichnis von link rel=""-Werten geben. Letztendlich bietet Atom 1.0 empfohlene Anlaufpunkte für Erweiterungen sowie Anleitungen, wie einfache Erweiterungen zu interpretieren sind.

URIs

RSS 2.0 spezifiziert nicht, wie mit relativen URI-Verweisen umzugehen ist. Verschiedene Feedreader wenden zu ihrer Interpretation voneinander abweichende Heuristiken an. Es gibt keine Interoperabilität. Relative URI-Referenzen können in der Praxis nicht verwendet werden.

Atom 1.0 spezifiziert den Gebrauch von XMLs integriertem xml:base-Attribut, um den Einsatz von relativen Verweisen zu ermöglichen.

Software-Verfügbarkeit

Auf sowohl RSS-2.0- als auch Atom-1.0-Feeds kann über Standard-HTTP-Client-Bibliotheken zugegriffen werden. Standard-Caching-Techniken funktionieren gut und werden gefördert. Die vorlagengetriebene Erstellung beider Formate ist praktikabel.

Bibliotheken zur Verarbeitung von RSS 2.0:

Bibliotheken zur Verarbeitung von Atom 1.0:

Sprachkennzeichnung

RSS 2.0 besitzt zur Identifikation der in einem Feed verwendeten Sprache ein eigenes language-Element, während Atom das in XML integrierte xml:lang-Attribut gebraucht.

Digitale Signaturen und Verschlüsselung

RSS 2.0 kann wie jeder andere Webinhalt signiert oder verschlüsselt werden, wenn es als »Sack voll von Bits« behandelt wird.

Atom 1.0 umfasst Regeln zum Einsatz standardisierter XML-Verschlüsselung sowie digitaler XML-Signaturen für Einträge. Feeds können alternativ und wie bei RSS 2.0 auch als »Bit-Säcke« signiert oder verschlüsselt werden.

Autoren

RSS 2.0 bietet die Möglichkeit, E-Mail-Adressen für managingEditor, webMaster und author eines Feeds zu spezifizieren. Manche Herausgeber von Feeds bevorzugen, keine E-Mail-Adressen freizugeben, und verwenden statt dessen dc:creator aus der Dublin-Core-Erweiterung.

Atom 1.0 offeriert author- und contributor-Elemente auf sowohl Feed- als auch Eintragsebene. Diese Elemente müssen einen Namen beinhalten und verfügen über optionale E-Mail- und URI-Unterelemente.

Kategorien

RSS-2.0-Kategorien bestehen aus zwei Teilen: Beschriftung und Domäne.

Atom 1.0 bestehen aus drei, nämlich den beiden genannten sowie einem optionalen, für Menschen lesbaren Titel.

Schema

Die RSS-2.0-Spezifikation umfasst kein Schema.

Atom 1.0 beinhaltet ein einem ISO-Standard entstammendes (non-normatives) RELAX NG-Schema, um diejenigen zu unterstützen, die die Validität von Daten, die als Atom 1.0 beworben werden, prüfen wollen. Andere Schemaformate können über das RELAX NG-Schema generiert werden.

RSS- und Atom-Feed-Beispiele

RSS 2.0

<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0">
  <channel>
    <title>Example Feed</title>
    <description>Insert witty or insightful remark here</description>
    <link>http://example.org/</link>
    <lastBuildDate>Sat, 13 Dec 2003 18:30:02 GMT</lastBuildDate>
    <managingEditor>johndoe@example.com (John Doe)</managingEditor>
    <item>
      <title>Atom-Powered Robots Run Amok</title>
      <link>http://example.org/2003/12/13/atom03</link>
      <guid isPermaLink="false">urn:uuid:1225c695-cfb8-4ebb-aaaa-80da344efa6a</guid>
      <pubDate>Sat, 13 Dec 2003 18:30:02 GMT</pubDate>
      <description>Some text.</description>
    </item>
  </channel>
</rss>

Atom 1.0

<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <title>Example Feed</title>
  <subtitle>Insert witty or insightful remark here</subtitle>
  <link href="http://example.org/" />
  <updated>2003-12-13T18:30:02Z</updated>
  <author>
    <name>John Doe</name>
    <email>johndoe@example.com</email>
  </author>
  <id>urn:uuid:60a76c80-d399-11d9-b93C-0003939e0af6</id>
  <entry>
    <title>Atom-Powered Robots Run Amok</title>
    <link href="http://example.org/2003/12/13/atom03" />
    <id>urn:uuid:1225c695-cfb8-4ebb-aaaa-80da344efa6a</id>
    <updated>2003-12-13T18:30:02Z</updated>
    <summary>Some text.</summary>
  </entry>
</feed>

Elementvergleich

Atom 1.0 definiert 21 Elemente; RSS 2.0 30. Die meisten in Atom 1.0 fehlenden RSS-2.0-Elemente wurden entweder in der Praxis nicht weitgehend implementiert oder ihre Funktionen werden auf andere Weise angeboten.

RSS 2.0 Atom 1.0 Kommentare
rss In RSS »verkümmert«.
channel feed
title title
link link Atom definiert eine erweiterbare Familie von rel-Werten.
description subtitle
language Atom verwendet das standardisierte xml:lang-Attribut.
copyright rights
webMaster
managingEditor author oder contributor
pubDate published (in einem Eintrag) Atom besitzt kein Äquivalent auf Feed-Ebene.
lastBuildDate (in einem Kanal) updated RSS besitzt kein Äquivalent auf Element-Ebene.
category category
generator generator
docs
cloud
ttl ttl ist problematisch, ziehen Sie HTTP-1.1-Cache-Kontrolle vor.
image logo Atom empfiehlt ein Seitenverhältnis von 2:1.
icon Wie favicon.ico.
rating
textInput
skipHours
skipDays
item entry
author author
contributor
description summary oder content Abhängig davon, ob der komplette Inhalt angeboten wird.
comments
enclosure Atom: rel="enclosure" auf link-Element.
guid id
source Atom: rel="via" auf link-Element.
source Container für Metadaten auf Feed-Ebene, um Aggregation zu fördern.

Siehe auch:

Ähnliche Themen

Das könnte Sie ebenfalls interessieren:

Schwerpunkt:

Fehler entdeckt? Belohnung! E-Mail an jens@meiert.com.

Sie sind hier: meiert.comPublikationen → RSS 2.0 und Atom 1.0 im Vergleich (Sam Ruby et al.)

Stand: 2. November 2006.