Hlavní navigace

Atom 1.0: formát

Petr Cimprich 26. 1. 2006

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:

<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ě.

Našli jste v článku chybu?

27. 1. 2006 12:38

V Atomu muze byt obsah typu xhtml; pak lze k formatovani pouzit vsechny znacky XHTML.

27. 1. 2006 21:03

No jasně, spousta běžných čteček může mít v sobě nějaké renderovací jádro. Minimálně si myslím, že v Opeře, Thunderbirdu, nebo nějaká KDE(Konqueror) based čtečka by měla fungovat bez problémů. Dneska zkusím ten atom 1.0 feed.
Lupa.cz: Co se dá měřit přes Internet věcí

Co se dá měřit přes Internet věcí

Vitalia.cz: To není kašel! Správná diagnóza zachrání život

To není kašel! Správná diagnóza zachrání život

Podnikatel.cz: Přehledná titulka, průvodci, responzivita

Přehledná titulka, průvodci, responzivita

DigiZone.cz: Recenze Prostřeno: cirkus postižených

Recenze Prostřeno: cirkus postižených

Vitalia.cz: Tesco: Chudá rodina si koupí levné polské kuře

Tesco: Chudá rodina si koupí levné polské kuře

Vitalia.cz: Co pomáhá dítěti při zácpě?

Co pomáhá dítěti při zácpě?

Podnikatel.cz: Chtějte údaje k dani z nemovitostí do mailu

Chtějte údaje k dani z nemovitostí do mailu

Vitalia.cz: Manželka je bio, ale na sex moc není

Manželka je bio, ale na sex moc není

Vitalia.cz: Co nabídne největší výživová konference FOOD21?

Co nabídne největší výživová konference FOOD21?

DigiZone.cz: Rádio Šlágr má licenci pro digi vysílání

Rádio Šlágr má licenci pro digi vysílání

Vitalia.cz: Drahé i levné. Tyhle potraviny nosili na charitu

Drahé i levné. Tyhle potraviny nosili na charitu

Lupa.cz: Teletext je „internetem hipsterů“

Teletext je „internetem hipsterů“

Lupa.cz: Insolvenční řízení kvůli cookies? Vítejte v ČR

Insolvenční řízení kvůli cookies? Vítejte v ČR

Vitalia.cz: Láska na vozíku: Přitažliví jsme pro tzv. pečovatelky

Láska na vozíku: Přitažliví jsme pro tzv. pečovatelky

Vitalia.cz: Paštiky plné masa ho zatím neuživí

Paštiky plné masa ho zatím neuživí

Vitalia.cz: Na pečení je nejlepší medovicový med

Na pečení je nejlepší medovicový med

Měšec.cz: U levneELEKTRO.cz už reklamaci nevyřídíte

U levneELEKTRO.cz už reklamaci nevyřídíte

DigiZone.cz: Sat novinky: slovenská TV8 HD i ruský NTV Mir

Sat novinky: slovenská TV8 HD i ruský NTV Mir

Podnikatel.cz: Na poslední chvíli šokuje vyjímkami v EET

Na poslední chvíli šokuje vyjímkami v EET

Podnikatel.cz: Víme první výsledky doby odezvy #EET

Víme první výsledky doby odezvy #EET