Links bei Atom

(Auszug aus "Newsfeeds mit RSS und Atom" von Heinz Wittenbrink, erschienen bei Galileo Press, 2005)

In den Beispielen, die Sie bisher gesehen haben, kamen Links nur als Nachkommen von feed vor. Die Spezifikation verlangt, dass wenigstens auf der Ebene des ganzen Newsfeeds ein Link auf eine alternative Darstellung im Web verweist. (Allerdings ist es möglich, dass diese Regelung durch eine Soll-Vorschrift ersetzt wird. Es gibt viele Fälle, in denen Atom-Feeds Inhalte transportieren und nicht über Inhalte informieren, die auch unter anderen URIs bezogen werden können.)

Auch wenn es Atom-Feeds gibt, in denen keine oder fast keine Links vorkommen, spielen Links im Atom-Vokabular eine wichtige Rolle. Sie können mehr Funktionen haben als in den anderen XML-Anwendungen für Newsfeeds; und diesen Funktionen entsprechen spezifische sprachliche Mittel, meist unterschiedliche Werte der Attribute des Elements link. In einem Atom-Link wird immer explizit angegeben, von welcher Art die Beziehung zu der Ressource ist, auf die verwiesen wird.

In den neueren Versionen der Atom-Spezifikationen werden Links durch das Element link definiert, nicht mehr wie in den ersten Versionen als ein eigenes Konstrukt.

Auch bei den Links haben die Autoren der Atom-Spezifikation versucht, an die Stelle der Doppeldeutigkeiten und Unklarheiten der RSS-Spezifikationen eindeutige Beschreibungen der Semantik der Elemente zu setzen. In RSS-Dokumenten kann das Element link sowohl verwendet werden, um auf verwandte Informationen zu verweisen, wie auch dazu, dem URI des jeweiligen item selbst (bzw. seiner HTML-Version) anzugeben. Heute nehmen sie oft die sogennnten Permalinks auf (für die dann allerdings auch das Element guid eingeführt wurde). Bei Atom geben Attribute an, worauf sich ein Link bezieht, sie wurden von HTML übernommen, sodass das Element link auch bei Atom die Attribute href, rel, type und title haben kann.

Struktur eines Atom-Links

Links beschreiben eine Beziehung, die zwischen dem Atom-Element und einer Ressource im Web besteht. Der URI der Ressource, zu der eine Verknüpfung hergestellt wird, ist bei Atom immer der Wert des Attributs href eines Links. Er bildet nicht, wie bei RSS, den Inhalt des Elements link.

Wie das HTML-Element link hat auch bei Atom link ein Attribut rel, dessen Wert benennt, von welcher Art die Beziehung ist. Dabei ist ein wichtiger zusätzlicher Aspekt, dass die Bedeutung dieses Attributs erweiterbar ist. Die Atom-Spezifikation legt nur ein Minimum fest. Die Werte, die rel haben kann, sollen in Zukunft bei der IANA (Internet Assigned Numbers Authority) registriert werden. Wenn ein Name als Wert von rel angegeben ist, muss er als einer der Namen des (noch einzurichtenden) IANA Registry of Link Relations interpretiert werden können. Er kann dann in einen URI verwandelt werden, indem man ihn an den String "http://www.iana.org/assignments/relation/" anhängt.

Einige Werte sind aber von Anfang an möglich und werden in der Atom-Spezifikation definiert. Sie beziehen sich auf den URI, der als Wert von href angegeben ist, und beschreiben das Verhältnis der Ressource, die er identifiziert, zu dem Feed oder Eintrag, zu dem das link selbst gehört, wie folgt:

  • alternate: Der URI identifiziert eine alternative Repräsentation der Ressource.
  • related: Der URI identifiziert eine Ressource, die in einer Beziehung zu der Ressource steht, zu der das betreffende link gehört.
  • self: Der URI identifiziert die Ressource, zu der das link gehört.
  • enclosure: Der URI identifiziert eine Ressource, die in einer Beziehung zu der Ressource steht, zu der das betreffende link gehört, und die möglicherweise umfangreich ist und besondere Anforderungen an die verarbeitende Software stellt.
  • via: Der URI identifiziert eine Quelle für die Informationen in dem Feed oder Eintrag, zu dem das link gehört.

Das Attribut rel kann fehlen. In diesem Fall muss das Element link so verarbeitet werden, als sei alternate der Wert von rel.

Das Atom Publishing Protocol definiert einige weitere Werte von rel, die voraussichtlich bald bei der IANA registriert werden. Diese Werte beschreiben die Beziehungen zu URIs, die – dem REST-Konzept für Webservices entsprechend – für das Posten und Editieren von Ressourcen benutzt werden. Ein URI, der verwendet werden kann, um mit einem POST-Request eine neue Ressource anzulegen, wird in einem link angegeben, dessen Attribut rel den Wert resource.post hat. Ein weiterer URI, der "EditURI", wird verwendet, um eine Ressource mit der HTTP-Methode PUT zu editieren bzw. mit der HTTP-Methode DELETE zu löschen. Wert von rel ist in diesem Fall service.edit.

Außerdem können Links mit den optionalen Attributen hreflang, title, type und length ausgezeichnet sein.

Der Wert des optionalen Attributs hreflang ist die Sprache der Ressource, auf die verwiesen wird. Dabei kennzeichnet man die Sprache entsprechend RFC 3066. Ist alternate als Wert von rel angegeben, wird die Ressource als Übersetzung des Eintrags, vom dem aus verwiesen wird, interpretiert. Von HTML her ist auch das optionale Attribut title des Elements link bekannt.

Den Wert des Attributs href bildet ein URI-Verweis (URI reference) im Sinne der neuesten Spezifikation von URIs (RFC 2396). Es kann sich dabei um ein URI-Fragment handeln, das durch die Angabe eines Werts in xml:base aufgelöst wird. Wenn der Typ eines Links als alternate definiert ist, findet sich unter dem angegebenen URI eine alternative Repräsentation der Ressource, die in dem Eltern-Element von link beschrieben wird, also z. B. ein HTML-Dokument. Der Wert related gibt an, dass eine Beziehung zu der Ressource besteht, auf die der angegebene URI verweist. Einträge oder Feeds, die sich auf Google beziehen, können z. B. das Element <link rel="related" href="http://www.google.com"> enthalten.

Das Attribut type des Elements link nimmt den Medientyp oder Datentyp der Repräsentation des Dokuments auf, die vom Server zu erwarten ist, wenn link aktualisiert wird; dabei muss es sich um einen registrierten MIME-Medientyp handeln. So kann z. B. innerhalb eines Links bereits angegeben werden, dass ein Link zu einem PDF-Dokument führt.

Als Wert des Attributs title wird ein für Menschen lesbarer Titel des Links verwendet. Als Wert von length lässt sich außerdem – als Anzahl von Bytes – angeben, wie groß die Ressource ist, auf die verwiesen wird. Dabei können die Werte von length und type nicht sicherstellen, dass ein Dokument, das über diesen Link erreicht wird, tatsächlich die angegebene Länge und den angegebenen Medientyp besitzt.

atom:link als Nachkomme von atom:feed

In jedem Fall muss ein feed-Element genau ein Element des Typs title und ein Element des Typs link mit dem Attributwert rel="alternate" enthalten. (Es ist möglich, dass diese Regelung bis zur Publikation der Version 1.0 des Atom Syndication Formats revidiert wird.) Wenn dieses Link-Element auf ein HTML-Element verweist, wenn also html der Wert des Attributs type des Elements link ist, sollte umkehrt auch das entsprechende HTML-Element ein Link zu dem Feed erhalten. Es soll – mit dem zu den Atom-Spezifikationen gehörenden Autodiscovery-Mechanismus – die Entdeckung des Atom-Feeds erlauben. Weitere link-Elemente sind möglich, sie müssen aber auf Dateien anderer Typen verweisen.

Expliziter als die Dokumente in den übrigen Feed-Formaten wird ein Atom-Dokument damit als Alternative zu einem anderen Dokument definiert.

Feed Autodiscovery bei Atom

Die Atom-Spezifikation fordert außerdem – als Gegenstück zu dieser Regelung – sicherzustellen, dass ein Atom-Feed, der zu einem HTML-Element gehört, auch automatisch erkannt werden kann. Dazu dient der Mechanismus der Feed Autodiscovery, der das HTML-Element link verwendet. Der Wert von rel bei dem HTML-Link für die Autodiscovery ist in diesem Fall alternate, der Wert von type atom+xml. Als Wert von href wird der URI des Atom-Feeds angegeben. (Bei HTML können die Attributwerte groß oder klein geschrieben werden – anders als beim XML-Format Atom.)

Es ist auch möglich, mehrere Links zu unterschiedlichen Atom-Feeds in einem HTML-Dokument anzugeben, z. B. zu einem Feed für ein Weblog, einem Feed für ein assoziiertes Linkblog und einem dritten Feed mit Kommentaren. In diesem Fall soll durch den Wert des Attributs title, das eine für Menschen verständliche Bezeichnung des Links enthält, klar gemacht werden, welche Inhalte die verschiedenen Feeds haben. Wenn automatisch Feeds von einer Seite abonniert werden, wird dazu das erste der Link-Elemente benutzt. Der Autor des HTML-Elements sollte also sicherstellen, dass auf den wichtigsten Feed zuerst verwiesen wird.

Zum Element link siehe auch die Seite atom:link der Atom-Elemente-Referenz.

   

<< zurück vor >>

 

 

 

Tipp der data2type-Redaktion:
Zum Thema Newsfeeds mit RSS und Atom bieten wir auch folgende Schulungen zur Vertiefung und professionellen Fortbildung an: