Hlavní navigace

Atom 1.0: formát

26. 1. 2006
Doba čtení: 4 minuty

Sdílet

Tvůrci Atomu měli k dispozici pět let praktických zkušenosti s RSS. Viděli, jak srozumitelné a čitelné formáty RSS 0.9x nastartovaly syndikační boom, ale také, jaké jsou jejich meze. Zažili relativní neúspěch složitějšího formátu RSS 1.0 založeného na RDF. Těchto znalostí autoři Atomu využili a navrhli formát stejně přehledný jako je RSS, a přitom dostatečně podrobně a přesně specifikovaný.

Atom 1.0 je nový standardní formát pro publikování syndikovaného obsahu na webu. Je to formát nové generace, je určen k tomu nahradit stávající formáty RSS. Atom vznikl iniciativou zdola, jako reakce na úspěch i na nedostatky rozšířených verzí formátů RSS. Teprve později byl Atom akceptován IETF, aby byl v prosinci 2005 vydán jako RFC 4287.

Abychom nezůstávali jen u obecných tvrzení o výhodách formátu Atom 1.0, pojďme se podívat na některé jeho konkrétní přednosti. Nejedná se o žádné převratné vynálezy, spíše důsledné dotažení všech maličkostí, které nám v RSS mohou více nebo méně vadit. Porovnáváme s RSS 2.0, což je nejnovější a nejlépe definovaná verze formátu RSS.

povinná metadata

Atom 1.0: Jak celý kanál, tak každá položka musí mít svůj název, jedinečný identifikátor (URI) a datum poslední změny (ve formátu podle RFC 3339). Mezi nepovinné údaje patří adresa zdroje (URL). Jméno autora položky je povinné, pokud není uvedeno u všech položek.

RSS 2.0: Vyžaduje pouze velmi základní metadata pro celý kanál (název, odkaz, popis), zbytek je nepovinný. Položky nemusejí mít svůj identifikátor ani časovou značku, kvůli čemuž nelze často poznat, zda je položka jen aktualizována mebo opravena, či zda se jedná o novou položku. Čtečky s tím mívají problémy. Buď riskují několikanásobné načtení jedné zprávy, nebo naopak nedokážou načíst aktualizaci ani opravu překlepu. Splynutí identifikátoru a skutečného URL zdroje znemožňuje například zrcadlení oblíbeného kanálu nebo přesunutí, aniž by to změnilo jeho identitu.

plný a částečný obsah

Atom 1.0: Má oddělené elementy summary a content pro shrnutí a plný obsah. Element content je povinný, pokud není přítomen element link. summary je nepovinný element.

RSS 2.0: Není jasné, zda element description obsahuje plné znění zprávy nebo jen její shrnutí. V praxi se objevují obě možnosti.

typ obsahu

Atom 1.0: Rozeznává několik typů obsahu – prostý text, escapované HTML, XHTML, jiné XML, binární obsah (base64), odkaz na jiný webový zdroj. Čtečka pozná, s jakým typem obsahu má co do činění a může jej odpovídajícím způsobem zobrazit.

RSS 2.0: Obsah je vždy považován za escapované HTML.

rozšiřitelnost

Atom 1.0: Formát lze snadno rozšiřovat. Element content může obsahovat libovolné uzly XML, pokud patří do jiného jmenného prostoru než elementy Atomu (typ obsahu „jiné XML“, viz předchozí odstavec). Cizí elementy se mohou vyskytovat prakticky kdekoli, kromě několika míst, kde je to zakázáno. Specifikace Atom 1.0 pochopitelně nedefinuje význam rozšiřujících elementů, nicméně předpokládá jejich existenci a dělí je na jednoduché (elementy bez dětí a atributů) a strukturované s tím, že jednoduché logicky představují vlastnosti nadřazeného elementu (jméno elementu je jméno vlastnosti, text je hodnota). Často se přidávají například elementy z modulů původně definovaných pro RSS 1.0.

RSS 2.0: Elementy nepatří do žádného jmenného prostoru. Do dokumentů lze přidávat elementy se jmenným prostorem, jejich zpracování čtečkou však není definováno.

relativní URL

Atom 1.0: Používá pro vyhodnocení relativních URL standardní globální atribut  xml:base.

RSS 2.0: Vyhodnocení relativních URL není specifikováno, nelze je bezpečně používat.

Pro lepší představu uvádím ukázku současného kanálu z Root.cz ve formátu RSS 2.0 (zkráceno na jednu položku a mírně upraveno):

<rss version="2.0">
  <channel>

    <title>Root.cz - články</title>
    <link>/clanky/</link>
    <description>informace nejen ze světa Linuxu</description>
    <language>cs</language>

    <pubDate>Mon, 8 Jan 2006 23:00:05 GMT</pubDate>

    <item>
      <title>XML Prague 2006</title>
      <link>/clanky/xml-prague-2006/</link>

      <description>Také v letošním roce ...</description>
    </item>

  </channel>
</rss> 

a její pomyslné převedení do formátu Atom 1.0:

UX DAy - tip 2

<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="cs-CZ">

  <title>Root.cz</title>
  <link href="http://rss.root.cz/2/clanky/"/>
  <subtitle type="text">informace nejen ze světa Linuxu</subtitle>

  <id>/export/rss2/clanky</id>
  <updated>2006-01-08T23:00:00+01:00</updated>
  <author><name>Root.cz</name></author>

  <entry>
    <title>XML Prague 2006</title>;
    <id>/export/rss2/clanky/xml-prague-2006</id>
    <link href="/clanky/xml-prague-2006/"/>
    <summary type="text">Také v letošním roce ...</summary>

    <updated>2006-01-08T23:00:00+01:00</updated>
  </entry>

</feed> 

Jak už jsem výše naznačil, Atom nepřináší žádnou revoluci. Jeho hlavní předností je promyšlený a důsledný návrh vycházející z reálných zkušeností. Atom věnuje pozornost detailům, které mohou být pro někoho nepodstatné, ale často rozhodují o tom, zda věci fungují nebo nikoli.

RSS změnilo web víc, než by se mohlo na první pohled zdát. Z pohledu uživatele informace už nesedí klidně na svém místě a nečekají, kdo se na ně přijde podívat. Cestují po agregačních webech, vydávají se samy ke svým čtenářům. RSS je první a zatím jediná hromadně používaná webová služba. Atom má potenciál posunout syndikaci informací ještě o kousek dál. Na prahu skutečně masového rozšíření syndikace (jakmile se RSS čtečka stane standardní součástí příští verze Windows) by se mohl stát uznávaným otevřeným standardem a základem pro další související technologie. Mezi ně patří zejména komunikační protokol Atom, ale o něm si něco řekneme až příště.

Byl pro vás článek přínosný?

Autor článku