Tim Tepaße: RSS / Atom

Beitrag lesen

Hallo tone,

Danke an alle für die Antworten.

Tschuldige, dass ich erst jetzt auf Dich eingehe, ich wurde aufgehalten ;)

Habs jetzt einfach in Atom umgeschrieben, alleine aus Gründen der Aktualitat.

Das wollte ich Dir auch raten. Im wesentlichen ist meine Argumentation ebenso einfach: RSS hat ein paar Unwägbarkeiten, von denen ich ein paar in der Antwort an Thomas erwähne, Atom kann alles, was RSS kann und noch mehr, Atom hat weniger Unwägbarkeiten. Der Support für Atom in den großen und verbreiteten Feedreadern ist derzeit recht akzeptabel, in einem halben Jahr denke ich, dass Support für Atom sich durchgesetzt hat.

Sprich: Es gibt als Anbieter keinen Grund mehr RSS zu benutzen, wenn man Atom anbieten kann und will.

Auch wenn es sich schon erledigt hat, hier noch mal Hinweise dazu:

<content type="html" >
  <img src="http://localhost:8080/test.jpg" style="max-width:150px; max-height:150px;"></img>

Die Vorschrift von Atom für type="html" ist klar:

1. Man kann nicht einfach irgendwelche Kindelemente reinhauen.
2. Man muss HTML-Inhalt maskieren, d.h. alle "<", "&" und eventuell noch ">" durch die jeweiligen Entities ersetzen, das sind "&lt;", "&amp;" und "&gt;".

Dafür weiss der jeweilige Deinen Feed verarbeitende Prozessor: „Aha, das ist HTML, hier muss ich die Entities durch ihre richtigen Zeichen ersetzen und den sich ergebenden String wieder als HTML behandeln.“ ohne wie bei RSS raten zu müssen ob das nun Text oder HTML ist.

zeigt er mir hier leider nicht das Bild an. Setze ich <content type="xhtml" > zeigt er mir alles an.

Wobei Du da streng genommen einen Bug ausnutzt. Die Vorschrift für type="xhtml" sagt:

1. Es darf nur XHTML enthalten sein.
2. Das enthaltende XHTML muss sich zusätzlich in einem eigenen Div-Element befinden, das ist bei Dir nicht so.
3. Das enthaltende XHTML muss sich im XML-Namensraum von XHTML befinden, bei Dir scheinen die Elemente aber im XML Namensraum von Atom.

Richtiger wäre es so:

<content type="xhtml">  
  <div xmlns:xhtml="http://www.w3.org/1999/xhtml"  
    <img src="http://localhost:8080/test.jpg" style="..." />  
  </div>  
</content>

Es ist nur leider so, dass ich den nachfolgenden Text (alles innerhalb von <p>) aus einem xml File nehme, welches <br> Tags besitzt, die unter XHTML auch als <br> ausgegeben werden und nicht als Zeilenumbruch dargestellt werden, wie es unter <content type="html" > der Fall ist. Wie könnte ich das umgehen?

Vermutlich wusste Dein Tool noch nicht mal, dass damit XHTML-<br>s gemeint waren. Allein "<br>" ist ja noch nicht mal richtiges XHTML. Bei type="xhtml" muss aber nicht nur Atom wohlgeformt nach XML und valide sein, auch das in Atom enthaltene XHTML muss wohlgeformt nach XML und sollte valide sein. "<br>-Tags" sind schon mal nicht wohlgeformt. Streng genommen dürfte dann auch Deine Ursprungs-XML-Datei nicht wohlgeformt sein, interessant, dass Du diese offenbar mit XSLT verarbeiten kannst.

Aber es scheint ja jetzt zu klappen.

Trotzdem: immer, wenn Du einen Feed – ob nun im Format RSS oder Atom – entwickelst, solltest Du diesen im Feedvalidator auf Gültigkeit überprüfen lassen. Und frag ruhig hier.

Tim