RSS (Really Simple Syndication) je standardním prvkem často aktualizovaných webů. Nejčastěji můžeme RSS kanál (soubor s vlastní URI) najít na weblogu nebo na zpravodajském serveru. V tomto článku se budeme věnovat popisu RSS 2.0, respektive verzi 2.0.1, která byla publikována na podzim roku 2002.

Co je RSS

Co je vlastně RSS? RSS je kanál, který je podmnožinou XML, je určen pro poskytování obsahu. RSS umožňuje uživateli z jediného místa sledovat informace zveřejňované na různých webech. Nástrojem pro sledování obsahu RSS jsou desktopové RSS čtečky nebo některé z mnoha webových agregátorů. RSS má několik variant – na Intervalu byl již dříve zveřejněn popis RSS 0.91.

Hlavní osobou, která stojí za specifikací RSS 2.0, je Dave Winer. V současnosti je specifikace RSS 2.0 nabízena pod licencí Creative Commons. Specifikaci RSS 2.0 spravuje Berkman Center for Internet & Society (Harvard Law School).

Letmý pohled do zdrojového kódu prozradí, že RSS 2.0 je poměrně jednoduchý formát, především díky samopopisným názvům elementů a atributů. Následující příklad ukazuje obsah souboru ve formátu RSS 2.0:

<?xml version=“1.0″?>
<rss version=“2.0″>
  <channel>
    <title>Zelená moucha</title>
    <link>http://www.exmaple.com/moucha/</link>
    <description>Ze života Zelené mouchy.</description>
    <language>cs</language>
    <pubDate>Tue, 10 Jun 2003 04:00:00 GMT</pubDate>
    <lastBuildDate>Tue, 10 Jun 2003 09:41:01 GMT</lastBuildDate>
    <docs>http://blogs.law.harvard.edu/tech/rss</docs>
    <generator>MujSystem 1.0</generator>
    <managingEditor>editor@example.com</managingEditor>
    <webMaster>webmaster@example.com</webMaster>
    <item>
      <title>Druhý den</title>
      <link>http://example.com/moucha/druhy-den.htm</link>
      <description>Druhý den života Zelené mouchy.</description>
      <pubDate>Tue, 03 Jun 2003 09:39:21 GMT</pubDate>
      <guid>http://www.example.com/moucha/archiv.htm#item3</guid>
    </item>
    <item>
      <description>A večer šla Zelená moucha spát.</description>
      <pubDate>Fri, 30 May 2003 11:06:42 GMT</pubDate>
      <guid>http://www.example.com/moucha/archiv.htm#item2</guid>
    </item>
    <item>
      <title>První den</title>
      <link>http://example.com/moucha/prvni-den.htm</link>
      <description>Zelená moucha je tady. Snad se bude líbit.</description>
      <pubDate>Fri, 30 May 2003 9:16:28 GMT</pubDate>
      <guid>http://www.example.com/moucha/archiv.htm#item1</guid>
    </item>
  </channel>
</rss>

Z ukázky je patrná struktura XML dokumentu ve formátu RSS 2.0:

  • dokument začíná informací o verzi XML
  • dokument ve formátu RSS 2.0 je na nejvyšší úrovni uzavřen do právě jednoho elementu rss, do kterého je zanořen element channel
  • následují informace o elementu channel dokumentu (v příkladu se jedná o elementy title, link, description, language, pubDate, lastBuildDate, docs, generator, managingEditor a webMaster),
  • informace o jednotlivých položkách jsou vnořovány do elementu item (v příkladu jsou uvedeny tři s mírně odlišnou strukturou).

Povinné elementy

Povinných elementů je v RSS 2.0 překvapivě málo:

<rss>
Element nejvyšší úrovně (kořenový element). Element rss povinně obsahuje informaci o verzi RSS, která je umístěna v atributu „version“ (viz příklad).
<channel>
Samotný „kanál“, který obsahuje informace. Obsahuje tyto vnořené elementy:

<title>
Jméno (titulek) kanálu v lidsky čitelné podobě. Měl by odpovídat názvu daného webu (v příkladu Zelená moucha).
<link>
URL daného webu (například http://www.example.com/moucha/).
<description>
Popis daného RSS kanálu.

Vedle použití povinných elementů musí RSS 2.0 dokument samozřejmě dodržovat specifikaci XML 1.0.

Nepovinné elementy

Pokud bude RSS kanál obsahovat pouze povinné elementy, nebude nikomu příliš užitečný. I proto je ve specifikaci RSS 2.0 celá řada nepovinných elementů. Následující seznam popíše ty nejvýznamnější. Pro zájemce je k dispozici úplná specifikace RSS 2.0.

Element channel

<language>
Zde je zkratka jazyka, ve kterém je kanál napsán (cs pro češtinu). Tento seznam není v souladu s mezinárodně platnými normami ISO Languages (ISO 639-2T).
<copyright>
Informace o autorských právech.
<managingEditor>
E-mailová adresa osoby odpovědné za obsah.
<webMaster>
E-mailová adresa osoby odpovědné za technické záležitosti provozu daného RSS kanálu.
<pubDate>
Datum publikování obsahu kanálu (ve formátu RFC822).
<lastBuildDate>
Čas poslední změny obsahu.
<category>
Jeden element pro každou z kategorií, do které daný RSS kanál patří. Může obsahovat atribut „domain“, jehož hodnotou je URL dokumentu, který popisuje taxonomii kategorií.
<generator>
Identifikace aplikace, ve které byl kanál vytvořen.
<docs>
URL dokumentace RSS, podle které byl kanál vytvořen (například http://blogs.law.harvard.edu/tech/rss).
<ttl>
Počet minut (číslo), který určuje, jak dlouho může být kanál kešován před novou aktualizací ze zdroje.
<image>
Informace o GIF, JPEG nebo PNG obrázku daného kanálu. Obsahuje tři vnořené povinné elementy a tři volitelné:

<url>
URL obrázku. Povinný element.
<title>
Použito pro alternativní popis obrázku (pro atribut „alt“ HTML značky img). Je to text popisující obrázek. Povinný element.
<link>
URL webu. URL je použito pro obrázek, který bude zobrazen jako odkaz. Povinný element.
<width>
Číslo, které uvádí šířku obrázku v pixelech. Maximální hodnota je 144. Výchozí 88.
<height>
Číslo, které uvádí výšku obrázku v pixelech. Maximální hodnota je 400. Výchozí 31.
<description>
Při vykreslování bude tento volitelný text zobrazen v atributu „title“ HTML značky img.
<rating>
Hodnocení kanálu podle PICS.
<textInput>
Tento element značí textové pole, které může být zobrazeno spolu s obsahem RSS kanálu.
<skipHours>
Ve vnořených elementech hour je možné uvádět časové údaje (hodnota 0 až 23), které informují čtečku, ve kterých hodinách by neměla daný kanál číst.
<skipDays>
V nejvýše sedmi vnořených elementech day může být vložen textový údaj („Monday“, „Tuesday“…) informující čtečku, ve kterých dnech by neměla daný kanál číst.

Element item

RSS kanál ve verzi RSS 2.0 může obsahovat libovolné množství elementů item. Každý element item představuje položku daného kanálu. V položce může být uveden krátký popis nebo úplný text. Všechny položky jsou nepovinné, nicméně musí být přítomen alespoň jeden z dvojice elementů title nebo description.

<title>
Titulek položky.
<link>
URL odkazující na položku.
<description>
Stručný přehled o položce (krátký výtah z obsahu).
<author>
E-mailová adresa autora příspěvku. Může se odlišovat od hodnot elementů managingEditor nebo webMaster.
<category>
Řadí položku do jedné nebo i několika kategorií, podobně jako stejnojmenný element v popisu kanálu jako celku.
<comments>
URL stránky komentářů dané položky.
<enclosure>
Popisuje přílohu příspěvku. Element má tři povinné atributy:

url
Adresa (typu http), kde je příloha uložena.
length
Velikost přílohy v bytech.
type
MIME typ přílohy.
<guid>
Řetězec jednoznačně identifikující položku. Čtečka by jej měla použít při rozhodování, jestli se jedná o nový příspěvek. Není určen přesný formát tohoto elementu. Pokud je nastaven volitelný atribut isPermaLink na hodnotu true nebo není uveden, čtečka může předpokládat, že hodnotou elementu je trvalý odkaz na daný příspěvek, který bude po zvolení položky otevřen v prohlížeči. V opačném případě je potřeba nastavit atribut isPermaLink na hodnotu „false“.
<pubDate>
Čas zveřejnění položky (datum dle RFC822). Pokud je datum nastaveno na budoucnost, neměly by ji čtečky zobrazit.
<source>
Jméno RSS kanálu, odkud položka pochází. Povinný atribut url uvádí adresu odkazovaného zdroje.

Rozdíly vůči předchozím verzím

RSS 2.0 je poměrně volný formát. Přesto ale existují některá omezení a odlišnosti od předchozích verzí RSS, například:

  • První neprázdné znaky elementů link a url musí začínat registrovaným schématem URI (http:// a ftp://).
  • Padl limit RSS verze 0.91, týkající se omezeného počtu znaků uvnitř některých elementů a nejvyššího počtu samotných elementů item.

Důležité také je, že čtečky mají rozdílnou podporu RSS a jsou různě citlivé na chyby validity RSS kanálů.

Jak vytvořit RSS

RSS je v podstatě prostý textový XML dokument. Způsob jeho vytvoření je pouze v rukou autora. RSS je možné tvořit v libovolném textovém editoru nebo může být práce přenechána strojům, které RSS dokument vygenerují automaticky (například pomocí PHP z databáze). Pak už jen stačí vystavit na web adresu RSS kanálu.

Odkazy a zdroje

Starší komentáře ke článku

Pokud máte zájem o starší komentáře k tomuto článku, naleznete je zde.

1 Příspěvěk v diskuzi

Odpovědět