Спецификация RSS 2.0
Главная
Спецификация RSS 2.0
Что такое RSS
RSS (Really Simple Syndication) — это формат обмена информацией для Web.
RSS — это диалект XML, поэтому любые RSS документы должны соответствовать стандарту
XML 1.0
, опубликованному на официальном сайте
W3C
.
На верхнем уровне 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, находятся
тут
. Также можно пользоваться
определенными W3C обозначениями
.
en-us
copyright
Информация об авторских правах.
Copyright 2004, Dmitry Bikman.
managingEditor
E-mail адрес ответственного за содержание канала.
editor@channel.org (Василий Пупкин)
webMaster
E-mail адрес ответственного за техническую составляющую работы канала.
webmaster@channel.org (Василий Пупкин)
pubDate
Дата публикации контента канала, соответствующая
RFC 822
.
Sat, 07 Sep 2002 00:00:01 GMT
lastBuildDate
Дата и время последнего изменения контента канала, соответствующая
RFC 822
.
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
рейтинг канала.
---
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 находиться
здесь
.
<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 — это чудо!
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
.
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. Если дата указывает на будущее время, то процессоры могут не отображать элемент до тех пор, пока дата не станет текущей или прошедшей.
<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-браузере.
<guid isPermaLink="true">http://bikman.ru/2002/09/01.php#a2</guid>
<comments>, вложенный элемент <item>
<comments> — это необязательный вложенный элемент <item>.
Данный параметр указывает URL страницы комментариев, ассоциированной с данной публикацией.
<comments>http://bikman.ru/comments?blogId=705245&itemId=271</comments>
<author>, вложенный элемент <item>
<author> — это необязательный вложенный элемент <item>.
Данный элемент указывает e-mail адрес автора публикации. Для газет и журналов, использующих RSS, автором является тот, кто написал публикацию, описанную в элементе . Для общих блогов, авторы могут быть различными. Для личных блогов, имеет смысл пропускать данный элемент.
<author>author@channel.org (Вася Пупкин)</author>
Комментарии
RSS накладывает ограничение на использование первых непробельных символов в элементах
<link> и <url>
. Данные, содержащиеся в этих элементах, должны соответствовать
стандарту URI IANA
(http://, https://, news://, mailto: и ftp://). Предшествующие RSS 2.0 спецификации допускали использование только http:// и ftp:// схем, однако на практике другие URI схемы использовались авторами контента и каналов, а так же поддерживались процессорами. Стоит учитывать, что обработчики могут иметь ограничения на возможные URI схемы. Авторам не следует полагаться на полную поддержку URI схем со стороны процессоров RSS.
В спецификации RSS 0.91 длина данных элементов была ограниченна 500 или 100 символами. В элементе
<channel>
не могло содержаться более 15 элементов
<item>
. Начиная с версии 0.92, все ограничения на длину и вложенность XML элементов были сняты. Обработчики и генераторы RSS могут устанавливать собственные ограничения на количество элементов
<item>
и ограничения строк по длине.
В RSS 2.0 ставка сделана на связывание канала с его идентификатором в некотором катологе, широко используя систему категорий и иерархий. Например, для того, чтобы связать канал с идентификатором Syndic8, достаточно включить элемент
<category>
в качестве вложенного элемента
<channel>
, с атрибутом domain равным "Syndic8", и указать значение идентификатор/а для канала Syndic8 в базе данных.
<category domain="Syndic8">1765</category>
Часто задаваемый вопрос, как связаны значения элементов
<guid> и <link>
. Не одно и тоже ли это? Действительно, в некоторых системах управления контентом это так. В некоторых других системах
<link>
- это ссылка на первоисточник. Т.к. в некоторых системах несет в себе краткое описание больших публикаций,
<link> указывает на саму публикацию, а <guid>
— это ссылка на краткое описание в блоге. В любом случае, рекомендуется использовать
<guid>
, являющийся уникальной ссылкой на первоисточник, если это возможно. Это позволяет процессорам отслеживать уникальность новых публикаций и не повторяться.
Если у вас имеются вопросы по формату RSS 2.0, задавайте их в списке рассылки
RSS2-Support
.
Расширение RSS
RSS основан в 1999 году, и он должен был быть прозрачным для понимания форматом, со скоромными показаниями к применению. После того, как RSS превратился в популярный формат, разработчики стремятся расширить его, используя различные модули, определенные в различных пространствах имен (
согласно спецификации W3C
).
RSS позволяет расширять себя новыми возможностями. Для этого достаточно соблюдать простое правило. RSS канал может содержать элементы, отличные от описанных в данной спецификации, только в том случае, если эти элементы определены в пространстве имен.
Элементы, определенные в данной спецификации, сами не являются членами какого-либо пространства имен. Так что RSS 2.0 может оставаться совместимым с предыдущими версиями в таком смысле — версии 0.91 и 0.92 так же являются корректными с точки зрения RSS 2.0 спецификации. Если бы элементы RSS 2.0 были бы членами какого-либо пространства имен, то обратная совместимость была бы нарушена.
Заключение
Несомненно, RSS — это отличный формат, он крайне популярен и широко распространен. Наличие устоявшейся концепции — это то, в чем RSS нуждался длительное время. Смысл данной работы — помочь формату стать неизменным, чтобы стимулировать рост среды, формирующейся вокруг RSS, а так же расчистить путь для появления инноваций в форматах обмена информацией. Поэтому спецификация заморожена на версии 2.0.1. Возможные версии 2.0.2, 2.0.3 и т.п. ожидаются только для пояснения, но никак не для добавления новых возможностей. Последующая работа должна происходить на уровне дополнительных модулей, которые используют пространства имен, и на уровне совершенно новых форматов обмена информации.
Лицензии и авторство
Спецификация RSS 2.0 предложена Berkman Center for Internet & Society at Harvard Law School под лицензией
Attribution/Share Alike Creative Commons license
. Автором данного документа является Dave Winer, основатель UserLand Software и просто парень из Berkman Center.
Статья с сайта http://bikman.ru/ Перевод выполнил Dmitry Bikman.
Оригинал текста: http://blogs.law.harvard.edu/tech/rss.
Автор:
Dave Winer
Источник:
bikman.ru
Назад