Fast die Hälfte der RSS-Feeds ist ungültig
24. Juli 2004 von Wolfgang SommergutMark Pilgrim zieht in seinem Artikel auf XML.com den Schluss, dass XML im Web bereits gescheitert sei. Er begründet diese Behauptung damit, dass RSS und Atom dort die meistgenutzten XML-Anwendungen seien – und ein großer Teil von ihnen ist ungültig. Er untersuchte über 5000 Feeds, davon erwiesen sich 44 Prozent als fehlerhaft. Diese Ergebnisse lassen sich auch auf deutsche Verhältnisse übertragen.
Die häufigste Ursache für ungültige Feeds besteht darin, dass RSS-Dateien mit dem MIME-Type text/plain ausgeliefert werden. XML-Daten müssen laut RFC 3023 jedoch im HTTP-Header als text/xml angekündigt werden. Die zweihäufigste Ursache für fehlerhaftes RSS besteht darin, dass sein Zeichensatz HTTP-Header als US-ASCII angegeben wird, aber dann de facto eine andere Codierung zum Einsatz kommt (etwa Latin-1).
Ich habe stichprobenartig ein paar deutschsprachige Feeds untersucht. Auch hier muss man nicht lange warten, um auf Fehler zu stoßen. Der Stern liefert RSS als MIME-Type „text/plain“ aus, der Heise-Newsticker, die Computerwoche und die FAZ geben einen falschen Zeichensatz an. Auch in der Blogosphere liegt einiges im Argen, einige der meistfrequentierten Blogs begehen dieselben Fehler. Der Hoster 20six macht ebenfalls falsche Angaben über den Zeichensatz.
Ein anderes Bild ergibt sich, wenn man die meisten der ungültigen Feeds nicht in den Validator, sondern in einen gängigen RSS-Reader einliest. Da setzt es kaum eine Beschwerde, die große Mehrzahl wird ordentlich angezeigt. Also alles nur künstliche Aufregung von Pedanten, die Standards zu kleinlich auslegen? Das glaube ich nicht.
RSS und damit XML könnte das gleiche Schicksal beschieden sein wie HTML. Die meistgenutzten Browser, besonders aber der Internet Explorer, tolerierten von Anfang an jeden Tag-Salat. Das Ergebnis: Ein Web-Client, der nur standardkonformes HTML akzeptiert, ist heute zum Surfen praktisch nicht zu gebrauchen. XML lebt davon, dass strenge Kriterien an Syntax, Struktur und Zeichensatz angelegt werden. Schließlich handelt es sich dabei um keine Layout-Sprache wie HTML, sondern um ein Mittel zur Beschreibung von (komplexen) Datenstrukturen.
Kategorie: RSS 6 Kommentare »
Feeds sollten nicht als text/xml sondern als application/xml+rss oder application/xml+atom ausgeliefert werden. text/xml ist ein sehr problematischer Mime-Type, da er nur etwas über die Formatierung des Files aussagt (datt is ene XML-Datei), aber nichts über die Verwendung – deshalb ist man schon vor einiger Zeit zu application/xml+YYY übergegangen, wobei YYY dann das Applikationsspezifische Format angibt. Wenn das nicht passt, kann man es immer noch als application/xml angeben.
text/xml ist an verschiedensten Stellen verwendet worden, unter anderem bei XHTML und anderen visuellen Formaten. Das würde der „text/*“ Präfix auch aussagen: ein visuelles Textformat das im XML Format abgelegt ist.
Also bitte bei Feeds besser application/xml+rss nehmen.
Allerdings ist Mark Pilgrim oft eher jemand der überreagiert und (IMO unzulässig) dramatisiert um seinen Punkt rüber zu bringen. Denn defakto ist bei RSS Feeds der Mime-Type ziemlich wurscht, da sie immer noch von Spezialprogrammen verwendet werden die _wissen_ das sie einen RSS Feed ansprechen (unter anderem weil man ihnen eine entsprechende URL eingegeben hat). Das Rumgehacke auf dem Mime-Type ist also eher kindisch – der Wechsel würde keinen echten Vorteil bringen.
Anders siehts aus beim Zeichensatz, der sollte nach Möglichkeit passen. Allerdings wird der auch im XML-Header angegeben und man sollten den dortigen Zeichensatz verwenden, da der vom selben Programm wie der XML Inhalt geschrieben wird.
Man hat halt immer zwei Sichten auf ein Problem: eine sture nach den Regeln und eine pragmatische, die das Ding zum Laufen bekommt. Mark Pilgrim ist einer der ersten Sorte, und dazu noch ein extrem penetranter. Regelhuberei um der Regelhuberei willen.
Der Untergang des Abendlandes aufgrund falsch gekennzeichneter RSS oder Atom Feeds wird also noch einige Zeit auf sich warten lassen :-)
Das Einhalten eines Standards nur um des Standards willen, halte ich auch für falsch. Nachdem wohl alle RSS-Reader mit diesen Abweichungen klarkommen, sehe ich hier kein Problem. Wem tut das weh? Und wenn ein Browser oder ein RSS-Reader nur standardkonformen Input schluckt, dann benutze ich ihn einfach nicht. Die eigenmächtige Modifikation von Standards fördert in der Regel Innovationen. Wenn man die Entscheidung über Veränderungen einigen wenigen Theoretikern überlässt, kommt in den seltensten Fällen etwas sinnvolles dabei heraus. Es ist meiner Ansicht nach die Sache des Marktes, die guten Standards von den schlechten zu trennen. PDF ist ein sehr schönes Beispiel dafür, wie gut das funktionieren kann.
Es stimmt, dass die willkürliche Verletzung von Standards oft mit Innovation begründet wird. Aber das muss man deswegen nicht glauben. Während offene Standards per Definitionem frei zugänglich sind, trifft dies auf die „erneuerten“ Standards i.a. nicht zu (und worin z.B. die Innovation besteht, wenn ein Browser CSS nur schlampig unterstützt, bleibt mir verborgen). Standards sind kein Selbstzweck, sondern sollen die Interoperabilität von Systemen gewährleisten (das nutzt dem Anwender, den Hersteller interessiert das weniger). Sie sollen außerdem sicherstellen, dass jeder ohne patentrechtliche Einschränkungen bestimmte Technologien implementieren kann.
Über das Märchen mächtiger Softwareanbieter, sie dienten mit ihrer Verletzung von Standards der Innovation, würde man in anderen Branchen nur lachen. Man stelle sich vor, eine Eisenbahngesellschaft würde willkürlich die Spurweite ihrer Schienennetze ändern. Kein Problem, man kann doch Lokomotiven bauen, deren Spurweite sich verstellen lässt!
Mir fällt dazu der Vergleich mit den natürlichen Sprachen ein. Das Deutsche z.B. ist klar geregelt in Sachen Orthografie und Grammatik. Wie wir wissen, lässt sich davon nicht ableiten, dass sich alle Leute daran halten und (aus welchem Grund auch immer) Wörter und Sätze normgerecht schreiben und sprechen. Und weil das nun mal so ist, gibt es z.B. Suchmaschinen mit unscharfer Suche („meinten Sie xy“) oder auch phonetische Suche.
Man könnte sich hier auch auf den Standpunkt stellen, die Leute sollen gefälligst nach der Norm sprechen und schreiben. Wer an Märkten wie dem der Suchmaschinen aktiv ist, wird eher die pragmatische Strategie verfolgen und Techniken wie Fehlertoleranz integrieren, statt von den Leuten korrekte Eingaben zu verlangen.
Und in der IT ist es das gleiche: Wenn zig-Millionen Menschen HTML, oder neuerdings XML, benutzen, dann ist es schlicht unrealistisch, zu erwarten, dass sich 100% der Beteiligten exakt an die Regeln halten. Egal, ob es sich dabei um Nutzer oder Hersteller von Tools handelt. Dass dann auch noch Hersteller ins Spiel kommen, die mit Abweichungen gewisse Strategien verfolgen, versteht sich von selbst.
Man könnte hier mal die Frage aufwerfen, ob sich die Standardisierungsgremien mit den Konsequenzen der Massennutzung einer Technik und deren Folgen befassen – also z.B. der zutiefts menschlichen Neigung, Regeln etwas anders auszulegen…
Ich bitte, die Passage „RSS und damit XML“ zu überdenken.
Georg Bauer schreibt es ja in seinem Kommentar ja schon sehr schön, dass RSS eigentlich ein Format für application ist und nicht zum Anschauen (text).
Das sollten sich die obigen Schreiber mal überlegen. Wenn ein Browser ein html oder xhtml nicht richtig parst bzw. darstellt, dann ist es für den davorsitzenden Benutzer ziemlich egal, weil er aufgrund seines Assoziativen Gehirns in der Regel sehr leicht den Bezug herstellen kann und das richtige erfasst.
Die Krux an all den obigen Kommentaren ist doch die, dass alle von RSS-Readern ausgehen, die wiederum von Menschen (s.o.) benutzt werden. Genau das ist aber doch das spannende und interessante an RSS, dass es eben nicht nur von Menschen, sondern auch von Maschinen – sprich applications – gelesen und verarbeitet wird.
RSS ist ja auch kein Standard der vom W3C abgesegnet ist – ausser man nimmt die RSS 1.0 Variante namens RDF. Aber das heisst doch nicht, dass man einfach so ein wenig dran rumdrehen kann. Wenn ich sehe, wieviel Arbeit es war, dass unser RSS Reader NewsBee all die unterschiedlichen Datumsformate gelesen bekommen hat, die die Erzeuger von RSS-Feeds für angebracht halten, dann kann ich Mark Pilgrim, der auch Programmierer ist, wie ja Georg auch, ganz gut verstehen, dass es nervt, wenn sich keiner an die Vorgaben hält.
Bei CSS hat es doch so lange gedauert, weil Microsoft es bis heute nicht fertig gebracht hat, sich an den Standard zu halten und CSS Entwickler ziemlich genervt von dem IE sind. Es gibt haufenweise Workarounds für den IE, damit der einigermassen in der Lage ist, ordentliches – sprich standardkonformes – CSS zu verstehen.
Da ist auch der Vergleich mit der natürlichen Sprache ziemlich unangebracht und hat wohl auch gar nichts gemein mit den Problemen. Nicht umsonst haben doch Computer immer noch mächtige Probleme Sprache interpretieren zu können.
Ich will jetzt nicht noch einen anderen Vergleich anschleppen, wie es meine Vorredner schon versucht haben, aber meines Erachtens damit ziemlich gescheitert sind. Ein Standard ist eben dazu da, dass er eingehalten wird. Und wenn es jemand nicht passt oder Innovation gefragt ist, dann kann ein neuer Standard abgeleitet werden. Aber doch bitte nicht den aktuellen Standard immer mehr verhunzen.
Das mag uns Menschen entgegenkommen – aber Maschinen und Software sind noch nicht soweit.
Und nicht zuletzt hat Mark Pilgrim einen der liberalsten RSS Parser in Python geschrieben. D.h. er weiss also von was er redet.
PING:
TITLE: XML hat im Web versagt
BLOG NAME: WWWorker
Die Kernaussage lautet: 44% einer Stichprobe von n=5096 Feeds von Syndic8 sind nicht wohlgeformt, also ist XML am Ende. Das zugrundeliegende Problem hat allerdings strenggenommen nichts mit XML zu tun, sondern mit Zeichensätzen und der Art und Weise, w…
PING:
TITLE: Über Sinn und Unsinn von offenen Web-Standards
BLOG NAME: Michael Pietroforte
Mal wieder ist ein Kommentar viel zu lang geworden. Dieser Text ist als Antwort auf Wolfgang Sommerguts Beitrag "Fast die Hälfte der RSS-Feeds ist ungültig" zu verstehen….