Спецификация RSS 2.0
Что такое RSS.
RSS (Really Simple Syndication) — это формат обмена информацией для Web.
RSS — это диалект XML, поэтому любые RSS документы должны соответствовать
стандарту http://www.w3.org/TR/REC-xml XML 1.0, опубликованному на
официальном сайте http://www.w3.org.
На верхнем уровне RSS-документа находится элемент <rss>, который содержит обязательный атрибут version, который, в свою очередь, указывает на версию документа. Если документ соответствует данной спецификации, то атрибут version должен быть равен 2.0.
На уровень ниже от элемента <rss> находится единожды встречающийся элемент <channel>, который содержит информацию о канале (метаданные) и о его содержании.
Обязательные элементы <channel>.
| Элемент | Описание | Пример |
|---|---|---|
| title | Название канала. Если у вас есть web-сайт, который содержит некоторую информации о канале, то имя канала, упомянутое на сайте, должно соответствовать имени, описанному в этом элементе. | Новости bikman.ru |
| link | URL web-сайта, соответствующего данному каналу. | http://bikman.ru/ |
| description | Фраза или предложение, описывающее канал. | Последние новости сайта bikman.ru. |
Необязательные элементы <channel>.
| Элемент | Описание | Пример |
|---|---|---|
| language | Язык канала. Список допустимых значений, которые приводит Netscape, находятся http://blogs.law.harvard.edu/tech/stories/storyReader$15. Также можно пользоваться определенными W3C обозначениями http://www.w3.org/TR/REC-html40/struct/dirlang.html#langcodes . | en-us |
| copyright | Информация об авторских правах. | Copyright 2004, Dmitry Bikman. |
| managingEditor | E-mail адрес ответственного за содержание канала. | fkspm@mailus.com(Василий Пупкин) |
| webMaster | E-mail адрес ответственного за техническую составляющую работы канала. | fkspm@mailus.com (Василий Пупкин) |
| pubDate | Дата публикации контента канала, соответствующая RFC 822 http://asg.web.cmu.edu/rfc/rfc822.html. | Sat, 07 Sep 2002 00:00:01 GMT |
| lastBuildDate | Дата и время последнего изменения контента канала, соответствующая RFC822 http://asg.web.cmu.edu/rfc/rfc822.html. | Sat, 07 Sep 2002 00:00:01 GMT |
| category | Одна или несколько категории, к которым принадлежит канал. | <category>Newspapers</category> |
| generator | Строка, описывающая программу, которая использовалась для создания канала. | MightyInHouse Content System v2.3 |
| docs | URL спецификации RSS 2.0. | http://blogs.law.harvard.edu/tech/rss |
| cloud | Позволяет процессорам зарегистрироваться, используя cloud, и быть проинформированными об изменениях канала, используя легкий протокол публикации-подписки на RSS-фиды. | <cloud domain="rpc.sys.com" port="80" path="/RPC2" registerProcedure="pingMe" protocol="soap" /> |
| ttl | Устанавливает время жизни (time to live). Это число в минутах, которое показывает, насколько долго канал может быть кэширован без обновления из источника. | <ttl>60</ttl> |
| image | Определяет GIF, JPEG или PNG изображение, которое может быть ассоциировано с каналом. | --- |
| rating | PICS рейтинг канала http://www.w3.org/PICS/. | --- |
| textInput | Определяет поле текстового ввода, которое может быть ассоциировано с каналом. | --- |
| skipHours | Подсказка процессорам, сообщающая, сколько часов они могут пропустить. | --- |
| skipDays | Подсказка процессорам, сообщающая, сколько дней они могут пропустить. | --- |
<image>, вложенный элемент <channel>.
<image> — это необязательный вложенный элемент <channel>, который содержит в себе три обязательных и три необязательных элемента.
<url> — это URL, указывающий на GIF, JPEG или PNG изображение, которое ассоциируется с каналом.
<title> описывает изображение. Используется в качестве атрибута alt тэга <img> при формировании HTML.
<link> — это URL, указывающий на web-сайт. При формировании HTML канала, изображение является ссылкой (необходимо принять во внимание, что <title> и <link> на практике должны быть равны элементам <title> и <link> в описании канала).
Опциональные элементы <width> и <height> определяют ширину и высоту изображения в пикселях. Необязательный элемент <description> содержит текст, который при формировании HTML должен содержаться в атрибуте title HTML тэга <a>, сформированного вокруг изображения.
Максимальное значение ширины изображения - 144. Значение по умолчанию - 88. Максимальное значение высоты изображения - 400. Значение по умолчанию - 31.
<cloud>, вложенный элемент <channel>.
<cloud> — это необязательный вложенный элемент <channel>, который определяет web-службу, поддерживающую интерфейс rssCloud. Данный интерфейс может быть реализован с помощью протоколов HTTP-POST, XML-RPC или SOAP 1.1.
Его роль заключается в том, чтобы дать возможность процессорам RSS быть оповещенными об изменениях, произошедших с каналом, используя легкий протокол публикации-подписки на RSS-фиды.
<cloud domain="rpc.sys.com" port="80" path="/RPC2" registerProcedure="myCloud.rssPleaseNotify" protocol="xml-rpc" />
В этом примере для запроса информации об изменениях канала нужно отправить XML-RPC сообщение на rpc.sys.com (порт 80), указав путь равным "/RPC2". Процедура, которую необходимо вызвать, называется myCloud.rssPleaseNotify.
Полное описание интерфейса rssCloud находиться http://blogs.law.harvard.edu/tech/soapMeetsRss#rsscloudInterface.
<ttl>, вложенный элемент <channel>.
<ttl> — это необязательный вложенный элемент <channel>, указывающий время жизни (time to live). Это число в минутах, которое указывает, как долго канал можно кэшировать без обновления из первоисточника.
<ttl>60</ttl>
<textInput>, вложенный элемент <channel>.
<textInput> — это необязательный вложенный элемент <channel>, который должен содержать 4 обязательных вложенных элемента.
<title> — Надпись на кнопке Submit текстового поля ввода.
<description> — Описание поля ввода текста.
<name> — Имя текстового поля ввода.
<link> — URL на CGI скрипт, который должен обрабатывать текст, введенный в поле ввода.
Элементы <item>.
<channel> может содержать любое количество элементов <item>. Эти элементы могут содержать в себе публикации целиком, или же анонсы со ссылками на полные варианты публикаций. Все вложенные элементы являются необязательными, однако хотя бы один элемент <title> или <description> должен присутствовать.
| Элемент | Описание | Пример |
|---|---|---|
| title | Заголовок. | Рождение RSS — это чудо! |
| link | URL на публикацию. | http://bikman.ru/2004/01/01/a.html |
| description | Синопсис публикации (краткий обзор) или полный вариант публикации. | Текст, который должен описывать краткое содержание публикации или же текст публикации целиком. Это личное дело авторов канала. |
| author | E-mail адрес автора публикации. | author@channel.org (Василий Пупкин) |
| category | Категория или категории публикации. | Новости спорта |
| comments | URL страницы отзывов и комментариев данной публикации. | http://bikman.ru/comments/12345 |
| enclosure | Описание медиа объекта, который прикреплен к публикации. | --- |
| guid | Строка, однозначно определяющая публикацию. | http://bikman.ru/2004/01/01/a.html |
| pubDate | Дата и время публикации, соответствующие RFC 822 http://asg.web.cmu.edu/rfc/rfc822.html | Sun, 19 May 2002 15:21:36 GMT |
| source | RSS канал которому принадлежит публикация. | Цитаты дня |
<source>, вложенный элемент <item>.
<source> — это необязательный вложенный элемент <item>.
Его значение — это имя RSS канала, которому принадлежит публикация. Он имеет один обязательный атрибут url, в котором указывается URL XML версии источника.
<source url="http://bikman.ru/links2.xml">Источник публикации</source>
Роль данного элемента заключена в распространении информации об источнике публикации.
<enclosure>, вложенный элемент <item>.
<enclosure> — это необязательный вложенный элемент <item>.
Данный элемент имеет три обязательных атрибута. Url указывает URL вложения, length указывает длину в байтах, type указывает стандартный MIME тип вложения.
Атрибут url должен быть HTTP URL.
<enclosure url="http://bikman.ru/music.mp3" length="12216320" type="audio/mpeg" />
<category>, вложенный элемент <item>.
<category> — это необязательный вложенный элемент <item>.
Этот элемент имеет единственный необязательный атрибут domain, который указывает на систематику классификации категории.
Значение элемента - это разделенная прямым слешем ("/") строка, которая описывает иерархическое положение в данной таксономии. Процессоры могут использовать эту информацию для устанавливания связей при интерпретировании категорий.
<category>Почетная Смерть</category>
<category domain="http://bikman.ru/category">НЖМД</category>
В элемент <item> можно включать любое количество элементов <category>, в том числе для разных доменов, а так же иметь различные пересечения в пределах одного домена.
<pubDate>, вложенный элемент <item>.
<pubDate> — это необязательный вложенный элемент <item>.
Значение этого элемента — это дата публикации, соответствующая стандарту RFC 822 http://asg.web.cmu.edu/rfc/rfc822.html. Если дата указывает на будущее время, то процессоры могут не отображать элемент до тех пор, пока дата не станет текущей или прошедшей.
<pubDate>Sun, 19 May 2002 15:21:36 GMT</pubDate>
<guid>, вложенный элемент <item>.
<guid> — это необязательный вложенный элемент <item>.
Значение элемента <guid> — это строка, однозначно определяющая публикацию. Например, данное значение может использоваться процессорами для определения новизны публикации.
<guid>http://bikman.ru/weblogItem3207</guid>
Не существует каких-либо определенных правил формирования значения <guid>. Обеспечение уникальности этой строки — задача канала.
Если элемент <guid> имеет атрибут isPermaLink, который равен true, процессор интерпретирует элемент <guid> как URL на публикацию, которая может быть открыта в web-браузере.