Tim Tepaße: Wo liegt der Fehler?

Beitrag lesen

Hallo,

Ein paar Hinweise auf Fehler und Warnungen in Deinem Feed:

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

Die Angabe der Kodierung ist bei XML nur nötig, wenn das XML auch tatsächlich in ISO 8859-1 kodiert ist. Ist es das? Ich glaube bei PHP ist das der Default.

<channel>
    ...
    <link>www.rolandschuetz.at.tt</link>

Das ist keine richtige URI. Die richtige URI würde mit "http://" beginnen.

<description>]erklaerungstext]</description>

Sind diese eckigen Klammern ein Feature von PHP, das ich noch nicht kenne?

<language>at-de</language>

Der richtige Language Code für Deutsch österreichischer Prägung wäre "de-at".

<pubDate>17.09.06</pubDate>

Das ist kein in RSS 2.0 erlaubtes Datumsformat. Das Datumsformat in RSS 2.0 richtet sich nach RFC 822 und sähe dann so aus:

<pubDate>Tue, 17 Sep 2006 00:00:09 GMT</pubdate>

<image>
      <url>[image-link]</url>
      <title>Rolands News-Feed</title>
      <link>www.rolandschuetz.at.tt<link>

Das ist keine richtige URI. Die richtige URI würde mit "http://" beginnen.

<author>Roland Sch&uuml;tz &lt;[eimailadresse]&gt;</author>

Das Entity "&uuml;" ist in RSS 2.0 nicht erlaubt. Die Definition von "&uuml;" wird normalerweise im Doctype vorgenommen. In HTML geschieht das z.B. im Doctype von HTML. Das Format RSS hatte nur in der Version 0.91 von Netscape einen Doctype, der solche Zeichen definierte, danach wurde der fallen gelassen. Du hast stattdessen folgende Möglichkeiten:

• Ein numerisches Entity nehmen, das das kleine "ü" anhand des Zahlencodes identifiziert. Das wären dann &xFC; oder &252;.
• Einfach "ü" schreiben. Du nutzt ISO 8859-1, das kleine ü ist darin enthalten.

<author>Roland Sch&uuml;tz &lt;[eimailadresse]&gt;</author>

Zweite Anmerkung: Das Format ist falsch. Generell sagt der RSS 2.0 Standard nur, dass in den Elementen author, managingEditor und webMaster nur eine Mailadresse enthalten sein darf, das sähe dann so aus:

<author>vorname.nachname@example.org</author>

Da es im Standard aber in den Beispielen erwähnt wird, hat es sich auch eingebürgert, den Namen des Besitzers der Mailadresse in Klammern dahinter zu setzen:

<author>vorname.nachname@example.org (Vorname Nachname)</author>

Das ist wieder eine andere Syntax als in Email-Nachrichten benutzt wird, deren Syntax ja Du geborgt zu haben scheinst. Allerdings sollte man sich schon an die obigen Formate halten, nicht jeder RSS-Reader macht den gedanklichen Sprung von Mailadresse zu "Mailadresse wie in Emails". Warum auch, es sind ja zwei verschiedene Dinge.

<author>Roland Sch&uuml;tz &lt;[eimailadresse]&gt;</author>

Dritte Anmerkung dazu: Die Emailadresse steht hier im Klartext, das ist also ein gefundenes Fressen für Adresssammler, die diese Mailadressen dann an Spammer verkaufen. Viele lassen deswegen das author-Element weg, schließlich ist es ja nur optional. Ein Ersatz für author, bei dem nicht die Mailadresse angegeben werden muss, ist das Element creator aus dem Dublin Core Metadatensatz:

<dc:creator>Vorname Nachname/dc:creator>

Natürlich muss nach den Regeln von XML das Präfix "dc" dann noch an den Namensraum von von Dublin Core gebunden werden, am geschicktesten macht man das gleich am Anfang:

~~~xml <rss version="2.0"
                      xmlns:dc="http://purl.org/dc/elements/1.1/">

  
...  
  
Ich empfehle Dir trotzdem noch dringend, den fertigen Feed mit dem [Feed Validator](http://feedvalidator.org/) automatisch auf Richtigkeit überprüfen zu lassen. Das sollte man immer tun, wenn man einen Feed entwickelt.  
  
  
Tim