[Disclaimer: Данная статья была переведена в рамках "Конкурса на лучший перевод статьи" на сервисе Quizful. Ссылка на оригинал находится внизу страницы.]
RSS — это стандартный формат данных для передачи новостей, объявлений о последних публикациях или другой информации, которую компания или отдельные личности хотят сообщить большой аудитории. RSS (Really Simple Syndication) можно перевести как «действительно простой способ получить информацию». RSS-лента состоит из расположенных в заданной последовательности элементов, соответствующих спецификации XML 1.0. Каждый из этих элементов отвечает за определенную область подачи материала. В этой статье мы рассмотрим эти элементы.
Структура RSS ленты
RSS-лента всегда начинается с элемента
<rss version="2.0">
</rss>
Внутри <rss> располагается элемент-потомок <сhannel>, содержащий элементы важных данных или содержимое ленты.
<rss version="2.0">
<channel>
</channel>
</rss>
Для описания RSS-канала есть несколько тегов, которые могут быть добавлены в начало ленты. Обязательными элементами являются <title>, <link> и <description>. Дополнительными: <language>, <copyright>, <managingEditor>, <webmaster>, <pubDate>, <lastBuildDate>, <category>, <generator>, <docs>, <cloud>, <ttl>, <image>, <rating>, <textInput>, <skipHours> и <skipDays>.
Подробнее об элементах:
- language – Язык канала.
- copyright – Авторские права на канал.
- managingEditor – Адрес электронной почты редактора данного канала.
- webMaster – Адрес электронной почты администратора сайта, на котором расположен канал.
- pubDate – Дата публикации содержания в канале.
- lastBuildDate – Дата последнего изменения содержания в канале.
- category – Позволяет добавлять одну или несколько категорий, к которым принадлежит канал.
- generator – Программа-генератор, которая создала канал.
- docs – Ссылки на документацию в формате RSS ленты.
- cloud – Обеспечивает процесс регистрации в «облако», которое будет использоваться для уведомления об обновлениях.
- ttl – Время жизни канала в кэше в минутах.
- image – Файл изображения, которое будет отображаться в канале.
- rating – PICS рейтинга канала.
- textInput – Текстовое поле ввода, которое позволяет пользователям реагировать на канал.
- skipHours – Сообщает агрегаторам (программам читающим RSS-ленты), в какое время мы их не хотим видеть.
- skipDays – Сообщает агрегаторам, в какие дни они не должны нас беспокоить.
RSS-каналы состоят из элементов <item>, которые могут содержать новости с новостного ресурса, записи из интернет-дневника или еще что-то. Следующий канал состоит из единственного элемента, который содержит запись блога. Обычно канал для блога содержит много элементов, которые передают все записи интернет-дневника. Вот пример из RSS-канала, который можно встретить в блоге:
1 <rss version="2.0">
2 <channel>
3 <item>
4 <guid isPermaLink="false">
5 http://www.blogger.com/feeds/12931054/posts/full/115714541264251287
6 </guid>
7 <pubDate>Fri, 01 Sep 2006 21:08:00 +0000</pubDate>
8 <title>Secure Ajax Requests</title>
9 <description>
10 <div xmlns="http://www.w3.org/1999/xhtml">My latest article for
InformIT, titled <a href="http://www.informit.com">How to Secure
Ajax Requests</a> is on the homepage this week. This article
focuses on ensuring that your database-enabled Ajax requests
are secure and not leaving your database open for an attack.
Enjoy...
</div>
11 </description>
12 <link>
13 http://www.krishadlock.com/blog/2006/09/secure-ajax-requests.html
14 </link>
15 <author>Kris Hadlock</author>
16 </item>
17 </channel>
18 </rss>
Эта структура канала стандартная для интернет-дневника, так как она состоит из наиболее часто используемых элементов. При внимательном рассмотрении заметна абстрактность этой структуры, а значит она может содержать не только записи блога, но и информацию любого другого вида. Даже несмотря на абстрактность структуры её элементы являются простыми. Каждый элемент <item> может содержать следующие подэлменты:
- guid – Уникальный идентификатор элемента item.
- pubDate – Дата публикации элемента.
- title – Заголовок элемента. В нашем случае он совпадает с заголовком публикуемой записи в интернет-дневнике.
- description – содержит основные данные элемента. В нашем случае это тело записи в блоге.
- link – Содержит полный URL адрес до страницы, на которой данный элемент представлен максимально подробно.
- author – Автор этой записи.
- category – Позволяет поместить элемент в одну или более категорий.
- comments — Ссылка на страницу, где можно оставлять комментарии к этой записи.
- enclosure – Может быть использован для описания медиа объекта, прикрепленного к элементу.
- source – Ссылка на RSS-канал, откуда был взят этот элемент.
Заключение
RSS стал стандартом де-факто для подачи информации в виде данных. Это позволяет разработчикам в качестве основы для создания программ использовать файлы. Эти программы могут читать или парсить данные, представленные в удобочитаемом формате.
Об авторе
Крис Хэдлок вместе с Робертом Хокманом является соучредителем 33Inc. Он также является автором "Ajax для разработчиков веб-приложений" и был обозревателем многочисленных веб-сайтов и журналов о дизайне.
О переводчике
Никита Шультайс, web-разработчик, автор серии статей о веб-фреймворке Django и о построении графиков в JPGraph. Домашняя страница
----------
Оригинальный текст статьи: The Anatomy of an RSS Feed