Какво е RSS

Кратка история

Програмистите, внимавайте! Под термина "RSS" се крие във формат, който е разделен на няколко различни версии на най-малко два различни (но съществуващи едновременно) формати. Източник RSS, версия 0.90, разработена в компанията Netscape. Този формат е проектиран, за да създадете новинарски портали водещи новинарски компании. Както мнозина смятаха, че е твърде сложно, Netscape е разработила опростена версия - 0.91, което, обаче, изоставени, загубил интерес към бизнес портали. Но версия 0.91 са отпуснати за спасяване на компанията UserLand софтуер, който ще се използва този формат като основа за техните уеблог продукти и други уеб-базирано приложение.

В същото време, третият, вече е организация с нестопанска цел, които са разделени от общия поток, да създадете нов формат, който се смята, че да бъде в съответствие с духа и принципите на RSS формат източник 0.90 (тоест, преди тя да е опростена до 0.91). Този формат е базиран на езика RDF, наречена RSS 1.0. За съжаление, UserLand компанията не е участвал в разработването на този нов формат, както и като застъпник на опростена версия на 0.90, че не е щастлив, когато се появи формат RSS 1.0. Вместо да този формат UserLand е решил да се развива и да се създаде клон на 0,9 версия 0.92, след това 0.93, 0.94, и в крайна сметка 2.0.

Ето една салата.

Така че какъв формат да ме използва?

RSS версии и препоръки

Какво е RSS?

Да речем, че искате да напишете програма, която чете RSS емисии, например, да се публикуват заглавия на новини на сайта си, или да се създаде портал за новини и така нататък. Как RSS-файл? Всичко зависи от това какъв вид RSS версии става въпрос. Ето един пример файл във формат RSS 0.91 (олекотена версия на новините от www.xml.com):

Сега нека да разгледаме как изглежда една и съща информация в 1.0 формат RSS:

Въпреки факта, че RSS 1.0 е смес от RDF, XML, както и структурно е подобно на предишните версии на RSS - достатъчно, че ние го видите като обикновен XML файл подобни. Следователно можем да се напише програма, която може да се извлече информация от двата формата: RSS 0.91 и от и от RSS 1.0. Въпреки това, все още има някои различия, които вашата програма трябва да знаят:

  1. корен елемент в RSS 1.0 е отпадъчното гориво: RDF, отколкото RSS. Или трябва изрично да се справят и двата елемента, или просто да ги игнорира и сляпо изтегляте само информацията, която ви трябва.

Можете да отидете два начина: Ако вашият XML-анализатора разбира от имена, може просто да се предположи, че файлът използва елементи с представки и сляпо търсене на продукти в техните елементи и DC: създател. Този метод ще работи в повечето случаи, тъй като 1.0 формат новини RSS е най-често се използва само на пространство от имена, по подразбиране, а пространството на Dublin Core пространство от имена. Разбира се, този метод - не елегантен, тъй като няма гаранция, че в някаква новина не е друго пространство от имена ще бъдат използвани (който е правен по отношение на RDF и XML). И си анализатора ще пропусне всички новини.

Ако вашият XML-анализатора разбира от имена, може да се изгради по-елегантно решение, което ще бъде в състояние да направи от новината и формата 0.91 и 1.0 формат.

  • А по-малко очевидни, но важен факт е, че RSS 1.0 т елементи са от канал елемент. Елементите на RSS 0.91 т изхвърлят в рамките на канал. В 0.90 са били навън. В 2.0 - те са вътре. В-хау! Да не се забъркваш с това, че е необходимо да се търсят новини на всеки елемент.
  • И накрая, ще забележите, че каналът за елемент има един елемент предмети. Той се нуждаеше само за RDF-синтактичен анализ (определя реда на новини). Можете да го игнорирате и да приемем, че всички новини са в реда, в който са разположени елементите елемент.
  • И изглежда, че форматът RSS 2.0? За щастие, програми, които разбират формати RSS 0.91 и 1.0, формат RSS 2.0 ще бъде едно парче от тортата.

    Тъй като този пример показва, в RSS 2.0 също използва именни пространства, както и в RSS 1.0. Но това не е RDF. Както и в RSS 0.91, без пространство от имена, по подразбиране, както и новини (в позиция ") са поставени обратно в канала клетка.