Atom 0.3
Syndikování obsahu se pomalu ale jistě stává běžným prvkem nejenom weblogů a zpravodajských webů. Až donedávna se pro poskytování obsahu nabízelo pouze několik variant formátu RSS, respektive formát RDF. Nyní začíná do povědomí autorů webů i návštěvníků nastupovat nový formát – Atom.
Co je Atom
Atom je standardizovaný, dobře dokumentovaný XML formát. Je určený pro snadné poskytování obsahu, podobně jako hojně používaný formát RSS. Už dříve byl na Intervalu zveřejněn popis RSS 0.91, kde najdete mimo jiné nástin používání RSS. Atom, stejně jako RSS/RDF, představuje snadný způsob, jak z jednoho místa sledovat informace zveřejňované na webu. Ale Atom není jen formát. Je to také Atom API, které umožňuje čtení a zveřejňování informací dalším aplikacím. V tomto článku se budeme věnovat specifikaci formátu Atom v aktuální verzi 0.3. Pre-draft Atom 0.3 byl zveřejněn v prosinci 2003.
Podobně jako RSS i Atom je podmnožinou XML. Platí pro něj tedy stejná obecná pravidla jako pro XML (například nutnost rozlišovat velká a malá písmena). Následující příklad ukazuje minimální obsah souboru ve formátu Atom:
<?xml version=“1.0″ encoding=“utf-8″ ?>
<feed version=“0.3″ xmlns=“http://purl.org/atom/ns#“>
<title>Example.com</title>
<link rel=“alternate“ type=“text/html“ href=“http://www.example.com/“ />
<modified>2004-07-26T15:10:37+01:00</modified>
<author>
<name>Jiří Bureš</name>
</author>
<entry>
<title>Atom 0.3 a RSS</title>
<link rel=“alternate“ type=“text/html“ href=“http://www.example.com/2004-07-26/atom.htm“/>
<issued>2004-07-26T06:30:55+01:00</issued>
<modified>2004-07-26T15:10:37+01:00</modified>
</entry>
</feed>
Z ukázky je patrná jednoduchá struktura Atom dokumentu:
- dokument začíná informací o verzi XML a použitém kódování
- Atom dokument je uzavřen do právě jednoho elementu
feed - následují informace o Atom dokumentu (elementy
title,link,modifiedaauthor) - informace o jednotlivých položkách jsou vnořeny do elementu
entry
Povinné elementy
- <feed>
- Element nejvyšší úrovně. Element
feedmusí obsahovat atribut „version“ (momentálně 0.3). - Volitelně by měl obsahovat atribut
lang(RFC3066), který popisuje jazyk dokumentu. - <title>
- Název daného kanálu (měl by odpovídat názvu zdroje – většinou názvu daného webu). Rodičovský element
feedmusí obsahovat právě jeden elementtitle. - <link>
- Element
linkobsahuje adresu daného kanálu. Musí obsahovat následující atributy:rel(a to vedle jiných právě jeden s hodnotoualternate),type– typ média podle RFC2045,href– URI (RFC2396) daného zdroje
Volitelně může obsahovat atribut
title, který poskytuje doplňkové informace o odkazu. - <modified>
- Čas, kdy byl kanál naposledy změněn. Element
feedmusí obsahovat právě jeden elementmodified. Hodnota by měla obsahovat informaci o časové zóně. Veškeré časové údaje Atom kanálů musí být v souladu s W3C Date and Time Formats. - <author>
- Každý Atom kanál musí obsahovat pro rodičovský element
feedprávě jeden elementauthor. Má povinně vnořený elementname:- <name>
- Jméno autora (případně firmy) v lidsky čitelné podobě. Entita se v dokumentu musí vyskytovat právě jednou.
- <entry>
- Element představuje jednotlivou položku Atom kanálu. Každý kanál může obsahovat jeden nebo více elementů
entry. Podobně jako v případě elementufeedmohou být použity další jmenné prostory.- <title>
- Titulek dané položky v lidsky čitelné podobě. Každý element
entrymusí obsahovat právě jeden elementtitle. - <link>
- URI dané položky. Každý element
entrymusí obsahovat právě jeden elementlinks hodnotou „alternate“ atributu „rel“. Může obsahovat i další elementylink. - <issued>
- Čas zveřejnění položky. Vyskytuje se v každém elementu
entryprávě jednou. - <modified>
- Čas, kdy byla daná položka naposledy změněna. V jednom elementu
entryse položka vyskytuje právě jednou.
Nepovinné elementy
- <url>
- Součást elementu
author. Obsahuje URI (RFC2396) spojené s autorem. - <email>
- Součást elementu
author. E-mailová adresa autora (RFC2822). - <author>
- Každý element
entrymůže obsahovat elementauthor. - <contributor>
- Přispěvatel. Elementy
feedientrymohou obsahovat jeden nebo více elementůcontributor. - <tagline>
- Nepovinný lidsky čitelný popis kanálu se může vyskytovat v elementu
feednejvýše jednou. - <id>
- Trvalý jedinečný identifikátor kanálu nebo položky (URI), který se vyskytuje v elementu
feednejvýše jednou. Změna je možné jen při přemístění kanálu. Pokud se stejná položka vyskytuje ve více kanálech, musí mít stejnéid. - <generator>
- Řetězcová identifikace agenta použitého pro generování kanálu v lidsky čitelné formě. V kanálu (v elementu
feed) se vyskytuje nejvýše jednou. Může obsahovat atributy:url– URI odkazující na generátorversion– verze generátoru
- <copyright>
- Autorská práva k danému kanálu v lidsky čitelné formě. V elementu
feedse vyskytuje nejvýše jednou. - <info>
- Element
feedmůže obsahovat nejvýše jeden elementinfopopisující samotný kanál v lidsky čitelné podobě. - <created>
- Čas vytvoření položky. Element
entrymůže obsahovat nejvýše jeden elementcreated. Časový údaj musí obsahovat informaci o časové zóně. - <summary>
- Krátké shrnutí dané položky. Element
entrymůže obsahovat více elementůsummary. - <content>
- Obsah dané položky. Element
entrymůže obsahovat více elementůcontent.
Jak vytvořit Atom
Jak už bylo řečeno, Atom je XML dokument se vším všudy. Jedná o prostý textový dokument. Doporučená koncovka je .atom, často se ale používá název souboru atom.xml. Způsob, jakým takový dokument autor vytvoří, závisí pouze na něm samotném. Může obsah editovat ručně ve vhodném textovém editoru, nebo může dokument generovat automaticky (například pomocí PHP z databáze).
Odkazy, zdroje
- AtomEnabled – stránky The Atom Enabled Alliance
- AtomEnabled Directory – užitečné nástroje pro vývojáře
- AtomWiki – wiki Atom projektu
- Feed Validator – Atom validátor
- The Atom Syndication Format 0.3 (PRE-DRAFT) – specifikace Atom 0.3
Starší komentáře ke článku
Pokud máte zájem o starší komentáře k tomuto článku, naleznete je zde.







