RSS Feed für die Webnotizen

31.07.2004 Nun habe ich wie angekündigt für meine Webnotizen auch einen RSS Feed erstellt (manuell, so wie ich die Webnotizen auch noch weitgehend manuell erstelle) und über den orangenen XML-Button in der Navigationsleiste eingebunden. Zuerst hatte ich die Qual der Wahl eines der vielen RSS-Formate. Die gebräuchlichsten sind wohl die RSS-Versionen 0.91, 1.0 und 2.0 sowie Atom 0.3. Allein die Nummerierung ist schon irreführend, da 2.0 nicht auf 1.0 aufbaut, und 1.0 nicht abwärtskompatibel ist zu 0.91; einen klärenden Überblick vermittelt hier Thiemo Mättigs RSS-Versionsgeschichte.

RDF Site Summary (RSS) 1.0

Ich habe mich zur Erstellung des Feeds für das Format RDF Site Summary (RSS) 1.0 entschieden, da dieses im Gegensatz zu 0.91 mit Modulen erweiterbar ist, und im Gegensatz zu RSS 2.0 auf dem RDF Standard des W3C aufbaut. Vorläufig verzichte ich aber auf Module und optionale Elemente und beschränke mich erst einmal darauf, einen validen Feed mit seinen Grundelementen zu erstellen. Im folgenden erläutere ich den Aufbau meines rudimentären Feeds.

Am Anfang des Feeds steht - wie bei XHTML-Seiten - die XML-Deklaration mit Angabe des verwendeten Zeichensatzes:

<?xml version="1.0" encoding="iso-8859-1"?>

Vergleichbar dem html-Element bei Webseiten ist das rdf-Element. Als Attribute werden die Namespaces von RDF und RSS 1.0 - und gegebenenfalls weiterer im Feed verwendeter Module - angegeben

<rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns="http://purl.org/rss/1.0/"
>

Es folgt der channel - vergleichbar dem head-Element bei Webseiten. Der channel enthält als Attribut (rdf:about) die URL des Feeds sowie als weitere Elemte title, description und link zu meiner Website.

<channel rdf:about="http://notizen.joergkrusesweb.de/feeds/rss-1-0.xml">
<title>Jörgs Webnotizen</title>
<description>Persönliche Gedanken (nicht nur) über das World Wide Web, Webbrowser, Webdesign und Suchmaschinen</description>
<link>http://notizen.joergkrusesweb.de</link>

Ebenfalls noch Element des channels ist eine Liste (rdf:Seq) der weiter unten aufgeführten items mit Angabe der jeweiligen URL. Danach wird das channel Element geschlossen

<items>
<rdf:Seq>
<rdf:li resource="http://notizen.joergkrusesweb.de/2004-3/rss-reader.html" />
<rdf:li resource="http://notizen.joergkrusesweb.de/2004-3/browser.html" />
<rdf:li resource="http://notizen.joergkrusesweb.de/2004-3/msn-bot.html" />
</rdf:Seq>
</items>
</channel>

Nun folgt das erste item mit der URL der jeweiligen Webnotiz als Attribut sowie title, description und link als Kindelemente. (Die URL einer einzelnen Webnotiz wird also dreimal innerhalb eines Feeds aufgeführt: innerhalb der items-Liste im Channel, als Attribut des betreffenden item-Elementes sowie als dessen link-Element.)

<item rdf:about="http://notizen.joergkrusesweb.de/2004-3/rss-reader.html">
<title>Auf den Feed gekommen</title>
<description>Durch Zufall bin ich auf den in Opera 7.5 integrierten Newsfeed-Reader gestoßen - und auf den Geschmack gekommen.</description>
<link>http://notizen.joergkrusesweb.de/2004-3/rss-reader.html</link>
</item>

Nach dem letzten item wird das Dokument dann geschlossen

</rdf:RDF>

Das fertige Feed, das ich als .xml-Datei abgespeichert hatte, wurde vom Feed Validator als valide eingestuft.

Valid RSS

(Als Warnung gab der Validator allerdings noch aus, dass der Zeichensatz des Dokumentes nicht mit dem des Servers übereinstimme, siehe hierzu auch Webnotiz Valides RSS Feed.)