0251 / 590 837 15
info@a-coding-project.de

RSS: Syntax

Doch, wie werden nun RSS-Feeds erstellt? Der Syntax des XML-Formats ist relativ einfach und ist ebenso recht schnell erklärt:

Das Grundgerüst

Das Grundgerüst besteht wie bei jeder XML-Datei zuerst einmal aus einer XML -Deklaration gefolgt von einer DOCTYPE-Deklaration. Je nach verwendeter RSS-Version kann der Dateikopf entsprechend anders aussehen. Da es mehrere verschiedene Versionen gibt, wollen wir uns hier nur auf die geläufigste und zugleich einfachste Version " RSS 0.91" konzentrieren.
Nach der DOCTYPE-Deklaration folgt das Root-Element (also das Elements, dass alle anderen umschließt). Es trägt den Namen rss und verlangt zusätzlich die Angabe der verwendeten Versionsnummer - in unserem Fall also 0.91. Außerdem muss ein "Kanal" erstellt werden zu dem die News gehören. Ein solcher Kanal wird mit Hilfe des channel-Elements erzeugt. Das Grundgerüst einer solchen Datei könnte dann in etwa so aussehen:

<?xml version="1.0"?>
<!DOCTYPE rss PUBLIC 
      "-//Netscape Communications//DTD RSS 0.91//EN" 
      "http://my.netscape.com/publish/formats/rss-0.91.dtd">
<rss version="0.91">
 <channel>
  ... Inhalt ...
 </channel>
</rss>

Den Kanal beschreiben

Als erstes sollte der Kanal eine Beschreibung erhalten. Innerhalb des channel-Elements werden dazu einige weitere Elemente notiert. Schauen wir uns zuerst ein Beispiel dazu an:

...
<channel>
 <title>HTMLWorld</title>
 <link>http://www.html-world.de</link>
 <description>HTMLWorld - die Plattform für 
              Internet im deutschsprachigen Raum</description>
 <language>de</language>
 ...
 </channel>
...

Anhand des Beispiels läßt sich eigentlich schon die Funktion der meisten Elemente ablesen:
Der Titel wird innerhalb des title-Elements notiert. Eine Erklärung wird mit dem description-Element abgegeben. Die Adresse der Seite wird mit dem link-Element notiert und die Sprache wird mit dem language-Element beschrieben (de für Deutsch, en für Englisch, fr für Französisch usw.).

Diese vier Elemente müssen zwingend benutzt werden. Hinzu kommen weitere optionale Elemente um den Kanal näher zu beschreiben. Zwar können die meisten Newsreader leider nicht mit diesen umgehen und ignorieren sie einfach, der Vollständigkeit halber haben wir sie aber alle noch mal im Übersichtskasten festgehalten.

News erstellen

Die eigentlichen Nachrichten werden innerhalb eines item-Elements in den Kanal notiert. Für jede Nachricht sollte dazu jeweils ein solches Element existieren. Die Nachricht selbst wird durch einen Titel (title-Element) und einen Link (link-Element) ausgedrückt und kann optional eine Beschreibung (description-Element) erhalten. Beachten Sie, dass ein Kanal mindestens eine, aber nicht mehr als 15 Nachrichten enthalten sollte - ab RSS 0.92 wurde dies jedoch abgeschafft. Beispiel:

<channel> 
  ... Beschreibung ...
 <item>
  <title>Neue Doku: RSS</title>
  <link>http://www.html-world.de/program/rss_1.php</link>
  <description>Heute wurde eine neue Doku auf 
               HTMLWorld veröffentlicht: RSS.</description>
 </item>
  ... weitere News ...
</channel>

Logo definieren

Zusätzlich zu der Beschreibung des Kanals kann auch ein Logo oder eine andere Grafik angeboten werden um die Nachrichten etwas hervor zu heben. Ein solches Bild wird mit dem image-Element als Unterelement des channel's definiert. Hierzu ist die Angabe der Bildquelle (url-Element), eines Links auf den das Bild verweisen soll (link-Element) und des Bildtitels (title-Element) notwendig. Optional kann noch eine Beschreibung (description-Element) sowie die Höhe (height-Element) und Breite (width-Element) angegeben werden. Beispiel:

<channel>
 ... Titel, Link, Beschreibung, Sprache, Nachrichten ...
 <image>
  <title>Mein Logo</title>
  <url>http://www.meineseite.de/bild.gif</url>
  <link>http://www.meineseite.de</link>
 </image>
</channel>

Eingabefelder

Leider nur von wenigen Newsreadern unterstützt werden Eingabefelder (vergleichbar mit normalen Eingabefeldern aus HTML). Diese ermöglichen es dem Leser der Nachricht z.B. Suchanfragen direkt an die Seite des Herausgebers zu senden oder Kommentare zu einer Nachricht zu hinterlassen. Ein solches Eingabefeld wird mit Hilfe des textinput-Elements innerhalb des Kanals definiert und erwartet einen Titel (title-Element), eine Adresse an die die Eingabe geschickt werden soll (link-Element), eine Beschreibung (description-Element) sowie einen Namen (name-Element) unter dem die Eingabe läuft (vergleichbar mit <input type="text" name="NAME"> aus HTML). Beispiel:

<textinput>
 <title>Suche auf HTMLWorld</title>
 <description>Durchsuchen Sie HTMLWorld nach einem 
              Begriff ...</description>
 <name>search_exp</name>
 <link>http://www.html-world.de/search/search.php</link>
 </textinput>

Das obige Feld würde dann einen HTTP-GET-Befehl an http://www.html-world.de/search/search.php?search_exp=EINGABE schicken. Meist öffnet sich dazu ein neues Browserfenster - was die Seite damit macht bleibt jedoch ihr überlassen.

Schnellübersicht RSS

Hier noch einmal alle wichtigen Elemente in der Übersicht:

ElementBeschreibung
<rss version="0.91">Root-Element. Umfasst alle anderen Elemente. Versionsnummer muss "0.91" oder "0.92" sein.
<channel>Definiert einen "Kanal" für den die News bereitgestellt werden.
<title>Der Titel des Kanals oder der Nachricht.
<description>Beschreibung des Kanals oder der Nachricht.
<link>Link zur Homepage oder zum Nachrichtentext.
<image>Definiert ein Bild/Logo
<textinput>Definiert ein Eingabefeld wie aus HTML bekannt.
<name>Entspricht dem name-Attribut eines <input type="text">-Elements
<rating>Enthält eine PICS-Bewertung des Kanals
<language>Beschreibt die Sprache des Kanals (de, en, fr, en-us, ...)
<width>Definiert die Breite eines Bildes.
<height>Definiert die Höhe eines Bildes.
<copyright>Enthält Copyrightinformationen zum Kanal.
<pubDate>Enthält das Datum an dem der Kanal erstellt wurde.
<lastBuildDate>Enthält das Datum der letzten Änderung.
<docs>Definiert eineURLunter der eine Beschreibung des Kanals zu finden ist.
<url>Definiert die Quelle eines Bildes.
<item>Umschließt eine Nachricht.
<managingEditor>Enthält die E-Mail-Adresse des Herausgebers (für inhaltliche Fragen).
<webMaster>Enthält die E-Mail-Adresse des Webmasters (für technische Fragen).
<hour>Enthält eine Stundenangabe (Zahl zwischen 0 und 23).
<day>Enthält einen Wochentag (in englischer Schreibweise / mon, tue, wed, ...)
<skipHours>Enthält eine Menge an Stunden (<hour>), an denen der Newsfeed normalerweise nicht erneuert wird.
<skipDays>Enthält eine Menge an Tagen (<day>), an denen der Newsfeed normalerweise nicht erneuert wird.
<!DOCTYPE ...>Definiert die verwendete DTD. Bei RSS 0.91 ist das: <!DOCTYPE rss PUBLIC "-//Netscape Communications//DTD RSS 0.91//EN" "">
<?xml ?>Definiert die verwendete XML-Version, Zeichensatz etc.

Arbeiten bei der a coding project GmbH

Wir sind aktuell auf der Suche nach einem Frontend-Entwickler!

Mehr erfahren