Atom (Format)
Atom wird in der Computertechnik als Oberbegriff für zwei Standards genutzt: Das Atom Syndication Format (ASF), ein XML-Format, ermöglicht den plattformunabhängigen Austausch von Informationen z. B. für Web-Feeds. Das Atom Publishing Protocol (APP, wobei sich AtomPub eingebürgert hat) wurde geschaffen, um das Erstellen und Bearbeiten von Webressourcen auf der Basis von einfachem HTML und XML zu ermöglichen. Die beiden Atom-Standards bieten somit die Möglichkeit, Webinhalte zu bearbeiten und zu verbreiten.
Atom Syndication Format
Das Syndikationsformat (ASF) ist die am häufigsten anzutreffende Umsetzung der Atom-Standards. ASF wird entwickelt, um die Nachfolge von RSS anzutreten. Es ist die moderne Form eines Newsletters.
Atom entstand aus dem Bedürfnis heraus, die Vorteile der unterschiedlichen RSS-Formate in einem neuen Format zusammenzufassen und um neue Elemente zu ergänzen. Dabei haben die Entwickler – in überwiegender Mehrzahl Blogger – ASF auch so gestaltet, um den speziellen Bedürfnissen von Blogs und Nachrichtenseiten gerecht zu werden. Die maßgeblichen Unterstützer von Atom sind in der Industrievereinigung AtomEnabled Alliance organisiert.
Die aktuelle Version des Atom Syndication Formats ist der IETF-Entwurf vom 11. August 2005, welcher von der IESG im August 2005 als Proposed Standard verabschiedet und im Dezember 2005 als RFC 4287 veröffentlicht wurde. Die meisten größeren Feed-Anbieter arbeiten bereits daran, das Format zu unterstützen. Der MIME-Typ von Atom ist application/atom+xml
.
Das Aufbereiten von Informationen in ein standardisiertes Austauschformat nennt man auch Aggregation.
Minimales Beispiel
<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
<author>
<name>Autor des Weblogs</name>
</author>
<title>Titel des Weblogs</title>
<id>urn:uuid:60a76c80-d399-11d9-b93C-0003939e0af6</id>
<updated>2003-12-14T10:20:09Z</updated>
<entry>
<title>Titel des Weblog-Eintrags</title>
<link href="http://example.org/2003/12/13/atom-beispiel"/>
<id>urn:uuid:1225c695-cfb8-4ebb-aaaa-80da344efa6a</id>
<updated>2003-12-13T18:30:02Z</updated>
<summary>Zusammenfassung des Weblog-Eintrags</summary>
<content>Volltext des Weblog-Eintrags</content>
</entry>
</feed>
Unterschiedliche Inhaltstypen
Die hauptsächliche Besonderheit von Atom gegenüber RSS ist die Möglichkeit, dass bei inhaltstragenden Elementen ausdrücklich angegeben werden kann, in welchem Format die Inhalte kodiert sind. In RSS 2.0 beispielsweise kann im description
-Element reiner Text oder maskiertes HTML stehen, ohne dass ein verarbeitendes Programm weiß, worum es sich gerade handelt. Atom fordert eine Eindeutigkeit, indem inhaltstragende Elemente ein type
-Attribut bekommen. Neben reinem Text und maskiertem HTML ist es zudem möglich, direkt XHTML-Markup mit Namensraum-Angabe einzubetten. Sinnvoll ist XHTML aber vor allem im content
-Element.
Beispiel für reinen Text im title
-Element:
<title type="text">Beispieleintrag</title>
Das type
-Attribut kann in diesem Fall auch weggelassen werden, da text
der Standardwert des Attributs ist.
Beispiel für HTML im summary
-Element:
<summary type="html">Beispielzusammenfassung mit <strong>wichtigem Text</strong></summary>
Die HTML-eigenen Zeichen <
, >
und &
werden mit den Entity-Referenzen <
, >
und &
umschrieben. Alternativ kann der Inhalt in einem CDATA-Abschnitt untergebracht werden:
<summary type="html"><![CDATA[ Beispielzusammenfassung mit
<strong>wichtigem Text</strong> ]]></summary>
Beispiel für XHTML im content
-Element:
<content type="xhtml" xml:base="http://example.org/">
<div xmlns="http://www.w3.org/1999/xhtml">
<p>Beispielabsatz mit <strong>wichtigem Text</strong> und einem
<a href="beispiel">relativen Hyperlink</a>.</p>
</div>
</content>
Das content
-Element bekommt ein div
-Element aus dem XHTML-Namensraum als Kind. Darin können weitere XHTML-Elemente direkt notiert werden.
Atom-Programmierschnittstelle (AtomPub)
Die Atom-Programmierschnittstelle kann beispielsweise genutzt werden, um mit einer Client-Applikation auf die in einer Weblog-Software hinterlegten Inhalte Einfluss zu nehmen.
Funktionsweise
Die Kommunikation mit dem System funktioniert nach dem REST-Prinzip:
- GET
- um Informationen über bereits vorhandene Elemente einzuholen und andere Nur-Lese-Zugriffe auszuführen.
- PUT
- um ein bekanntes Element zu bearbeiten.
- POST
- kreiert ein neues, dynamisch benanntes Element.
- DELETE
- führt zur Löschung eines Elementes.
Diese Aktionen werden in Verbindung mit den drei hauptsächlichen URIs verwendet, wobei das Datenaustauschformat ein so genannter „Atom Entry“ ist, ein Fragment/Eintrag eines vollen Atom-Feeds.
- PostURI
- erwartet POST. Wird verwendet um neue Elemente anzulegen. Schickt man einen Atom Entry an diese URI, so wird ein neues Element erzeugt.
- EditURI
- erwartet PUT, GET oder DELETE. Wird zum Bearbeiten von Elementen benötigt. Auch hier erfolgt der Datenaustausch über den Atom Entry.
- FeedURI
- erwartet GET. Repräsentiert ein komplettes Atom-Feed.
Die Atom-Programmierschnittstelle und das Atom Syndication Format ergänzen sich somit.