Šiuo straipsniu pratęsiu anksčiau rašytą straipsnį apie “Web feeds” - “Web feeds (RSS, Atom) - 1 dalis“. Jame rašiau apie žiniatinklio srauto pagrindus, kaip naudotis ir kam tai reikalinga. Šiuo straipsniu paaiškinsiu apie RSS/Atom standartus bei formą.
Sąvokos
RSS - XML duomenų formatas, dar kitaip vadinamas žiniatinklio srautu (angl. web feeds).
RSS santrupa turi tris reikšmes. Pateikiu pagal populiarumą:
Tikrai paprastas surinkimas (angl. Really Simple Syndication)
Išsamus puslapio aprašymas (angl. Rich Site Summary) - (RSS 0.91)
RDF (angl. Resource Description Framework Site Summary) - (RSS 0.9, 1.0 ir 1.1)
Lietuviškai apibrėžti būtų galima taip: “Labai paprasta sindikacija”.
Atom - sindikacijos standartas, pateikiamas XML kalba ir naudojamas žiniatinklio srautuose (angl. web feeds). Daugeliui tikriausiai iškyla klausimas, jeigu yra RSS, kam reikia Atom?
Atom buvo sukurtas dėl daug egzistuojančių neišbaigtų RSS sindikacijos formatų. Pavyzdžiui dėl suderinamumo su XML-RPC problemų.
Keletas skirtumų
RSS 2.0 įrašai gali būti sudaryti iš paprasto teksto (angl. Plain text) arba ištaisyto HTML (angl. Escaped HTML), ir neturi galimybės identifikuoti, kuris iš jų yra naudojimas. HTML palaikymas yra nekoks, pavyzdžiui & pakeičiamas į &. Įrašo pavadinime (angl. Title) panaudojus laužtinius skliaustus gausite klaidas, kadangi jie paprasčiausiai nepalaikomi. Taip pat RSS 2.0 turinio modelis nepalaiko XML žymių kalbos, ko pasekoje susiduriame su turinio ‘usability’ problemomis.
Atom turi daug geriau sutvarkytą elementų palaikymo sistemą. Turiniui privalo būti paskirtas vienas iš šių tipų:
- paprastas tekstas, be jokių žymių (pagal nutylėjimą)
- ištaisytas (angl. escaped) HTML
- taisyklinga (angl. well-formed) xHTML žymių kalba
- Kitos XML žymės
- base64-encoded binary turinys
RSS 2.0 turi „description“ (aprašymo elementą), kuriame galima talpinti santrauką arba pilną straipsnį. Atom šį elementą realizavo patogiau – išskirstė į du skirtingus elementus: „summary“ ir „content“.
Kalbos, naudojamos įrašuose identifikavimui, RSS 2.0 naudoja savo žymę <language>, Atom naudoja XML xml:lang atributą.
RSS 2.0 suteikia galimybę nurodyti el. paštą žiniatinklio srauto autoriui/savininkui (angl. Feed author). Tam naudojamos žymės <managingEditor> ir <webMaster>, o įrašų autoriams nurodyti naudojama <author>. Kai kurie autoriai nenori dalintis savo el. paštu ir todėl naudoja <dc:creator>.
Atom 1.0 suteikia <author> ir <contributor> elementus abiems lygiams - ir srauto aprašymo, ir įrašams. Abu elementai privalo turėti nurodytą autoriaus vardą, taip pat pasirinktai galima papildomai nurodyti el. paštą arba tinklalapio adresą.
Daugiau skirtumų galima surasti http://en.wikipedia.org/wiki/Atom
Formatas
RSS 2.0
<?xml version="1.0" encoding="utf-8"?> <rss version="2.0"> <channel> <title>Pixel.lt RSS srautas</title> <link>http://jusu.svetaine.com/</link> <description>Geriausios svetainės naujienų RSS srautas.</description> <language>lt</language> <pubDate>Tue, 10 Apr 2007 04:00:00 GMT</pubDate> <lastBuildDate>Tue, 10 Jun 2007 09:41:01 GMT</lastBuildDate> <managingEditor>belenkas@svetaine.com</managingEditor> <webMaster>webmaster@svetaine.com</webMaster> <item> <title>Kažkas kažkodėl</title> <link>http://domenas.org/2007/02/13/atom03</link> <guid isPermaLink="false">urn:uuid:1225c695-cfb8-4ebb-aaaa-80da344efa6a</guid> <pubDate>Sat, 13 Apr 2007 18:30:02 GMT</pubDate> <description>Kažkoks straipsnio tekstas - pilnas/santrauka</description> </item> </channel> </rss>
Taigi, privalomos kanalo žymės (<channel>) aprašymui yra trys:
- <title> - Srauto pavadinimas - svetainės pavadinimas. Čia paliekama teisė jums rinktis, kaip norite pateikti savo RSS internete. Dažniausiai užpildoma svetainės pavadinimu, pvz.: Pixel.lt RSS srautas.
- <link> - URL adresas į svetainę, kuri atstovauja jūsų pateiktą RSS srautą.
- <description> - Žodis/frazė/sakinys apibūdinantis jūsų RSS srautą - čia taip pat paliekama laisva valia - improvizuokite kaip norit..
Visos kitos žymės nurodytos pavyzdyje yra nebūtinos ir užpildomos pasirinktinai, jų yra ir daugiau, tačiau dauguma jų yra nereikšmingos. Apie jas visas galite rasti w3schools.
Privalomos žymės įrašui (<item>) yra lygiai tokios pačios kaip aukščiau išvardintos, tiesiog jų paskirtis yra nurodyti informaciją ne apie bendrai rss srautą, o apie būtent tą įrašą.
Visas žymes galima rasti taip pat w3schools.
Atom 1.0
<?xml version="1.0" encoding="utf-8"?> <feed xmlns="http://www.w3.org/2005/Atom"> <title>Pavyzdinis Atom srautas</title> <subtitle>Tai mūsų Atom srautas</subtitle> <link href="http://svetaines.nuoroda.com/"/> <updated>2007-02-13T18:30:02Z</updated> <author> <name>Vardenis pavardenis</name> <email>vpavardenis@domenas.com</email> </author> <id>urn:uuid:60a76c80-d399-11d9-b93C-0003939e0af6</id> <entry> <title>Kažkas kažkodėl</title> <link>http://domenas.org/2007/02/13/atom03</link> <id>urn:uuid:1225c695-cfb8-4ebb-aaaa-80da344efa6a</id> <updated>2007-02-13T18:30:02Z</updated> <summary>Kažkoks straipsnio tekstas – santrauka</summary> <content>Kažkoks straipsnio tekstas – pilnas tekstas</content> </entry> </feed>
Atom srauto (<feed>) aprašyme privalomos šios žymės:
- <id> - Jūsų srauto unikalus ID. Galima naudoti savo svetainės adresą, jeigu jis yra pakankamai ilgas ir unikalus. Aukščiau pateiktame pavyzdyje yra sugeneruotas atsitiktinių simbolių ID.
- <title> - Toks pats tikslas kaip ir RSS, šios žymės nepatartina palikti tuščios.
- <updated> - Nurodo, kada paskutinį kartą buvo atnaujintas Atom srautas (įdėtas naujas įrašas ir pan.).
Taip pat rekomenduočiau naudoti ir šias žymes: <author> (privaloma nurodyti bent jau vardą) ir <link> (nuoroda į svetainę).
Atom srauto įrašo (<entry>) aprašyme reikalingos lygiai tokios pačios žymės kaip ir bendram srauto aprašyme, tik informacija taikoma įrašui. Papildomai rekomenduojamos šios žymės:
- <summary> - turinys, jūsų įrašo santrauka (ne pilnas tekstas).
- <content> - Jūsų įrašo pilnas tekstas (ne santrauka).
Taip pat rekomenduoju nurodyti ir <author> bei <link>.
Kaip pastebėjote sudėtis šiek tiek skiriasi.
RSS 2.0 ‘feed‘ aprašymui naudoja <description> žymę, o Atom 1.0 <subtitle>. Kaip jau minėjau anksčiau, vietoje <language> žymės naudojamos RSS, Atom naudoja xml:lang atributą. Atom nebeturi <webMaster>, <rating>, <textInput>, <skipHours>, <skipDays> žymių, jos visiškai ‘useless’ (nenaudingos). <managingEditor> pakeista į <author> arba <contributor>.
Taip pat vietoje <guid>, naudojama <id>. Na ir žinoma vietoj <description> naudojama <summary> ir/arba <content>, priklausomai nuo to ar teikiate pilną straipsnį, ar ne.
Šioje dalyje tiek, jeigu turite klausimų/pastabų - laukiu komentarų. ;)
2007-05-02 | 17:33
Tai pasirodo Atom protingiau padarytas. Kodel kazin RSS visi naudoja?