Кратко, RSS - это формат синдикации web-контента. Это обычный формат представления данных, основанный на языке XML. Первоначально этот формат был разработан специально для экспорта заголовков новостей. Однако область его применения может выходить далеко за рамки этой задачи. Вы с легкостью можете экспортировать любую информацию, любые материалы. Формат примечателен тем, что дает единство представления данных. Любая информация, оформленная в RSS должна соответствовать определенной структуре, о чем будет написано ниже. Благодаря такой формализации, конечный пользователь получает информацию в стандартизированном виде, что упрощает чтение и работу с ней. Именно удобством работы и объясняется растущий интерес к этому формату и его всё большая популяризация. На данный момент синдицируют информацию уже сотни тысяч сайтов по всему миру, и если Вы, как пользователь, хотите быть в курсе новостей того или иного сайта, Вам нет нужды постоянно его посещать. Раньше Вы могли подписаться на новости сайта, либо на информационную рассылку, однако, RSS имеет ряд неоспоримых преимуществ перед технологией электронной почты, одни из важнейших - это отсутствие спама и гарантированность доставки информации.
Ниже приводится краткая спецификация формата RSS 2.0. Настоящая спецификация основана на документе, расположенном по адресу: http://blogs.law.harvard.edu/tech/rss, где Вы можете почерпнуть более обширную информацию на английском языке.
Структура RSS-документа
RSS - это диалект языка XML. Соответственно, все RSS-файлы должны соответствовать спецификации XML 1.0. Это значит, что правильный rss-файл должен начинаться строкой (приведен пример для универсальной кодировки UTF-8, старайтесь использовать только её):
<?xml version="1.0" encoding="UTF-8" ?>
Корневым элементом документа является элемент с одним параметром version. Для файла в формате RSS 2.0 он должен выглядеть так:
<rss version="2.0">
Внутри элемента содержится вся информация. Упрощенно, структура RSS-файла выглядит так:
Далее рассмотрим все допустимые элементы в подробностях.
Элемент
Описание
Пример
title
Заголовок канала. Основной элемент, по которому люди смогут идентифицировать Ваш канал. Используйте заголовки умеренной длинны, и максимально информативные. Вначале заголовка можно упомянуть ваш сайт, если он популярен. Отличной техникой является неизменный заголовок, ни в коем случая не указывайте в заголовке дат и тому подобного, для этого есть другие элементы. Избегайте СПАМА в заголовках, поисковиков по RSS всё-равно пока нет, а пользователю разобрать что-то будет нелегко.
Kanban.Ru - каталог RSS-каналов.
link
Ссылка на Ваш сайт. Ссылка должна вести на главную страницу вашего сайта. Или, как максимум, на соответствующий каналу раздел.
http://www.kanban.ru/
description
Описание канала. Описание не должно повторять заголовок, а должно его расшифровывать и дополнять.
Последние поступления в каталог русских RSS-каналов.
language
Язык, на котором написан канал. Несмотря на то, что этот элемент необязателен, УКАЗЫВАЙТЕ ЕГО ВСЕГДА. Это поможет миновать целый список проблем. Есть 2 списка значений для этого элемента этот и этот. Оба допустимы.
ru, ru-ru
copyright
Копирайт
Copyright 2004, ОАО "Рога и копыта"
managingEditor
Электронная почта редактора канала (лица, отвечающего за информацию, представленную в канале).
vasja@pupkin.com (Vasja Pupkin)
webMaster
Электронная почта веб-мастера (лица, отвечающего за техническую реализацию канала).
vasja@pupkin.com (Vasja Pupkin)
pubDate
Дата публикации информации в канале. Каждый раз, когда информация публикуется, необходимо обновлять этот элемент. Это позволит многим агрегаторам ранжировать Ваш канал по актуальности представленной информации. Формат нужно использовать только этот. Единственное исключение, в том, что год можно указать 2-мя последними числами. Но никогда так не делайте.
Fri, 17 Jun 2004 00:00:01 GMT
lastBuildDate
Время последнего изменения канала.Отличие от предыдущего в том, что эта дата отражает последнее изменения контента, в то время, как pubDate - дата публикации, а не последнего редактирования.Например, Ваш канал может быть опубликован год назад с информацией о курсах валют, которые обновляются каждый день.
Fri, 17 Jun 2004 00:00:01 GMT
category
Определяет категорию, к которой принадлежит канал. Можно указать несколько. Подробнее...
<category>Newspapers</category>
generator
Заполняется программой, сгенерировавшей канал.
HelloWorld! 1.0
docs
Ссылка на страницу с документацией по формату, который используется в этом RSS файле. Если инопланетяне получат RSS файл, они всегда смогут его прочитать, ознакомившись со спецификацией по указанному здесь адресу.
http://blogs.law.harvard.edu/tech/rss
cloud
Указывает веб-сервис, поддерживающий интерфейс rssCloud, отвечающий за уведомления об изменениях в канале. Более подробная информация здесь.
Этот элемент поддерживается для совместимости, ранее он был предназначен для указания времени в минутах, в течение которого этот канал допустимо кэшировать.
60
image
Путь к изображению в формате GIF, JPEG или PNG, отображаемому в заголовке канала. Дочерние узлы: <url> - URL изображения. <title>
; - описание изображения, используется в атрибуте ALT HTML-тега IMG, если агрегатор конвертирует канал в HTML. <link> - cсылка на Ваш сайт. Ссылка должна вести на главную страницу вашего сайта. Или, как максимум, на соответствующий каналу раздел. Элементы title и link лучше всего делать копией этих же элементов, указанных в channel. <description> - описание картинки. Используется в элементе TITLE HTML-тега IMG. <width> - ширина картинки в пикселях. Максимально допустимое значение - 400, по умолчанию - 88. <height> - высота картинки в пикселях. Максимально допустимое значение - 144, по умолчанию - 31.
Определяет строку ввода для пользователя. Дочерние узлы: <title> - надпись на кнопке. <description> - разъяснение того, что требуется ввести в поле. <name> - атрибут name для HTML-тега INPUT. <link> - адрес скрипта, которому будут переданы данные. Назначение этого элемента туманно. Вы можете использовать его, например, для ввода пользователем поискового запроса, либо для организации обратной связи, однако, большинство агрегаторов этот элемент игнорируют.
skipHours
Может содержать до 24-х элементов <hour>. Они указывают агрегатору, в какие часы можно не обновлять канал, а брать его из кэша. Значения элементов должны быть в диапазоне 0..23.
<hour>0</hour> <hour>1</hour> <hour>2</hour>
skipDays
Может содержать до 7 элементов <day>. Они указывают, в какие дни недели агрегатор может не обновлять канал. Диапазон значений: Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday.
<day>Saturday</day> <day>Sunday</day>
Item
Канал может содержать несколько элементов <item>. <item> может содержать статью, целиком, в таком случае дочерний элемент link не заполняется. Item может содержать только заголовок статьи, а ссылка будет вести на полный текст. Любая комбинация допустима. Все дочерние элементы item необязательны, однако хотя бы 1 элемент (либо title, либо description) должен присутствовать.
Уникальная строка, однозначно идентифицирующая статью в рамках данного канала. Особых требований нет, однако, стало традицией использовать полный интернет адрес, по которому доступен оргинал статьи. Установка атрибута isPermaLink в true, будет означать, что именно такой идентификатор и используется.