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

Übersetzung eines Artikels von Sam Ruby et al. vom 2. November 2006. Schwerpunkt: (RSS-Feed für alle Themen).

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.

Diese Ăś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 eventuell voreingenommen sind; faktisch scheint 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. SoftwareverfĂĽ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 ein 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 von Inhalten 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, irgendetwas 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.

SoftwareverfĂĽ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 voller 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.

Die in 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: