к библиотеке   к оглавлению   Банки данных Интернет   визуальные среды - 4GL   технологии программирования

Язык XML

Спецификация 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
linkURL web-сайта, соответствующего данному каналу.http://bikman.ru/
descriptionФраза или предложение, описывающее канал.Последние новости сайта bikman.ru.

Необязательные элементы <channel>

ЭлементОписаниеПример
languageЯзык канала. Список допустимых значений, которые приводит Netscape, находятся тут. Также можно пользоваться определенными W3C обозначениями.en-us
copyrightИнформация об авторских правах.Copyright 2004, Dmitry Bikman.
managingEditorE-mail адрес ответственного за содержание канала.editor@channel.org (Василий Пупкин)
webMasterE-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
docsURL спецификации 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 изображение, которое может быть ассоциировано с каналом.---
ratingPICS рейтинг канала.---
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Синопсис публикации (краткий обзор) или полный вариант публикации.Текст, который должен описывать краткое содержание публикации или же текст публикации целиком. Это личное дело авторов канала.
authorE-mail адрес автора публикации.author@channel.org (Василий Пупкин)
categoryКатегория или категории публикации.Новости спорта
commentsURL страницы отзывов и комментариев данной публикации.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
sourceRSS канал которому принадлежит публикация.Цитаты дня

<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.

Перевод выполнил Dmitry Bikman.

Оригинал текста: http://blogs.law.harvard.edu/tech/rss.

к библиотеке   к оглавлению   Банки данных Интернет   визуальные среды - 4GL   технологии программирования

Знаете ли Вы, как разрешается парадокс Ольберса?
(Фотометрический парадокс, парадокс Ольберса - это один из парадоксов космологии, заключающийся в том, что во Вселенной, равномерно заполненной звёздами, яркость неба (в том числе ночного) должна быть примерно равна яркости солнечного диска. Это должно иметь место потому, что по любому направлению неба луч зрения рано или поздно упрется в поверхность звезды.
Иными словами парадос Ольберса заключается в том, что если Вселенная бесконечна, то черного неба мы не увидим, так как излучение дальних звезд будет суммироваться с излучением ближних, и небо должно иметь среднюю температуру фотосфер звезд. При поглощении света межзвездным веществом, оно будет разогреваться до температуры звездных фотосфер и излучать также ярко, как звезды. Однако в дело вступает явление "усталости света", открытое Эдвином Хабблом, который показал, что чем дальше от нас расположена галактика, тем больше становится красным свет ее излучения, то есть фотоны как бы "устают", отдают свою энергию межзвездной среде. На очень больших расстояниях галактики видны только в радиодиапазоне, так как их свет вовсе потерял энергию идя через бескрайние просторы Вселенной. Подробнее читайте в FAQ по эфирной физике.

Bourabai Research Institution home page

Боровское исследовательское учреждение - Bourabai Research Bourabai Research Institution