1. Каналы новостей
  2. Структура
  3. RSS
  4. Atom
  5. Сравнение RSS и Atom

Сравнение RSS и Atom

Разработчики каналов новостей имеют определенную возможность выбора среди форматов синдикации, однако с середины 2005 г актуальными остались два из них: RSS 2.0 и Atom 1.0. Сравним, насколько это возможно, функциональность этих форматов по следующим критериям:

Основные возможности

Распространенность

В середине 2005 года, когда стандарт Atom был только принят, он использовался лишь на нескольких десятках сайтов. В то же время RSS 2.0 был широко распространен на различных социальных сервисах.

К началу 2006 года Atom 1.0 стал получать распространение и стал проблемой для программ-агрегаторов, которые не могли разобрать формат, не похожий на RSS. Разработчики агрегаторов принялись патчить свои программы на основе баг-репортов.

К середине 2006 года, благодаря активному продвижению W3C и поддержке со стороны Google, IBM и еще ряда корпораций, Atom стал основным форматом для многих крупных онлайн-сервисов. При этом популярность RSS 2.0 не снизилась, так как контент-провайдеры зачастую стали представлять новости в обоих форматах, на выбор.

Стандартизация

Авторские права на спецификацию RSS 2.0 принадлежат Гарвардскому Университету и проект заморожен. Хотя спецификация находится под лицензией Creative Commons никаких существенных изменений в ней не может быть сделано. Дэйв Уинер (Dave Winer), один из главных разработчиков RSS, призвал разработчиков объединить свои усилия и разработать единый формат, совместимый как с RSS, так и с Atom, чтобы слить конкурентные стандарты в единое целое.

Atom — открытый стандарт IETF, который продолжает развиваться и совершенствоваться.

Публикация информации

RSS 2.0 представляет скудные встроенные возможности публикации, но на основе спецификации были разработаны проприетарные протоколы, наиболее популярные из них — MetaWeblog и Blogger. Оба протокола не лишены недостатков и слабо совместимы между собой.

Спецификация Atom имеет собственный стандартный протокол публикации Atom Publishing Protocol (Atompub), тесно интегрированный с Atom Syndication Format.

Обязательное содержание

RSS 2.0 требует наличия названия, ссылки и описания на уровне канала (метаинформации) и не требует, чтобы любое из этих полей отдельных элементов канала было представлено.

Atom 1.0 требует, чтобы и канал и записи включали названия (которое может быть пустым), уникальный идентификатор и временные метки последего обновления.

Типы содержания

Канал RSS 2.0 может содержать только текстовую, или только гипертекстовую (HTML-escaped, теги экранируются в CDATA) информацию, без возможности указания, какое предоставление используется. Экранированные HTML (например, строка AT&T будет представлена как AT&amp;T) привносят дополнительные сложности разработчикам. Модель содержания заголовков (<title>) не определена. Заголовки с угловыми скобками или амперсандами будут интерпретированы значительной частью программ чтения независимо от представления.

Модель содержания RSS 2.0 не допускает использования XML, что уменьшает возможности повторного использования содержимого.

В свою очередь, Atom имеет тщательно проработанный контейнер содержания, которое может быть следующих типов:

Atom не дает гарантии, что получатель будет иметь возможность сделать что-нибудь полезное с внешними данными или бинарным содержанием. Тем не менее, это ограждает получателей от неправильного определения типа содержимого на основе предположений.

Полное или частичное содержание

RSS 2.0 имеет элемент <description> (описание) который содержит или полный текст сообщения, или краткую сводку (иногда о всем канале), и который порой вообще отсутствует. Нет никакой возможности явно сообщить читателю, что текст является полным или частичным.

Atom представляет отдельные элементы <summary> (резюме) и <content> (содержимое). Элемент <summary> позволяет описывать нетекстовое (например, audio-поток) или внешнее (идентифицируемое указателем) содержание.

Сбор информации и агрегация

RSS 2.0 представляет доступ только к документу целиком (элемент <rss>).

Atom 1.0 разрешает доступ к автономным Atom Entry документам элемент <entry>; которые могут передаваться по любым сетевым протоколам, например XMPP. Atom также имеет поддержку агрегированных каналов с обратной связью на исходный канал.

Дополнительные возможности

Расширяемость

RSS 2.0 не является пространством имен XML, но может сам содержать элементы других пространств имен XML. Не существует единого центра, где можно было бы уточнить информацию о заимствованных элементах, таких как <dc:creator> или <content:encoded>.

Формат Atom 1.0 сам определен как пространство имен XML, и документ Atom может содержать элементы и атрибуты из других пространств имен. Для него определены рекомендации по интерпретации заимствованных элементов. В сетевом каталоге, управляемом IANA, имеются все описания и рекомендации по использованию расширений.

Адресация

RSS 2.0 не описывает порядок обработки относительых ссылок (например, вида "img/fig1.gif"). Это ограничивает интероперабельность протокола и разработчикам приходится использовать абсолютные ссылки ("http://example.com/img/fig1.gif").

Atom 1.0 имеет поддерживает XML-атрибут <xml:base> для указания базового адреса всех относительных ссылок в канале.

Теги интернационализации

Для указания языка канала RSS 2.0 имеет собственный элемент <language>, в то время как Atom использует XML-атрибут <xml:lang>.

Цифровая подпись и шифрование

Каналы RSS 2.0 и Atom 1.0 могут быть подписаны или зашифрованы подобно любому другому веб-контенту, если представлены как битовая последовательность. В дополнение, Atom поддерживает стандарты XML Encryption и XML Digital Signature

Информация об авторах

RSS 2.0 позволяет указать раздельно электронные адреса менеджера канала (<managingEditor>), разработчика (<webMaster>) и автора каждого сообщения (<author>). Не многие указывают свой е-мейл, предпочитая использовать вместо этих тегов элемент <dc:creator> из пространства имен Dublin Core.

Atom 1.0 представляет элементы <author> (автор) и <contributor> (соавтор) как на уровне канала, так и на уровне отдельных сообщений. Эти элементы должны содержать имя автора и, опционально, могут содержать его е-мейл и веб-адрес

Категории

Категории в RSS 2.0 определяются двумя частями: меткой категории и доменом (адресом сервера), где эти категории описаны.

В стандарте Atom 1.0 категории представлены иерархически и каждая имеет опциональный человеко-читаемый заголовок.

Схема

Спецификация RSS 2.0 не использует схем.

Atom 1.0 включает поддержку ненормативного стандарта RelaxNG, это позволяет проверить валидность документов, заявленных как Atom 1.0. Другие форматы схем могут быть сгенерированы из исходной схемы RelaxNG.

Примеры каналов RSS 2.0 и Atom 1.0

  1. Пример канала RSS
  2. Пример канала Atom

Таблица сравнения элементов

Стандарт Atom 1.0 определяет 21 элемент канала новостей, RSS 2.0 — 30 элементов. Большинство элементов RSS 2.0 и Atom 1.0 не пересекаются и не соответствуют аналогам. Часть элементов редко используется на практике или их функциональность достигается другими путями.

RSS 2.0 Atom 1.0 Comments
rss - Рудимент из прежних версий RSS
channel feed
title title
link link Atom представляет гибкие возможности для описания ссылок
description subtitle
language - Atom использует стандартный атрибут <xml:lang>
copyright rights
webMaster -
managingEditor author, contributor
pubDate published (в элементе entry) Atom не имеет эквивалента на уровне канала
lastBuildDate (in channel) updated RSS не имеет эквивалента на уровне сообщения
category category
generator generator
docs -
cloud - RSS поддерживает спецификацию Cloud
ttl - Использование ttl проблематично, связано с управлением кэшированием в протоколе HTTP 1.1
image logo В качестве логотипа Atom рекомендует изображения с отношением сторон 2:1
- icon По сути то же самое, что и favicon.ico
rating - Популярность
textInput -
skipHours -
skipDays -
item entry
author author
- contributor
description summary и/или content В зависимости от полноты содержание
comments -
enclosure - rel="enclosure" в элементе <link> стандарта Atom
guid id
source - rel="via" в элементе <link> стандарта Atom
- source Контейнер метаданных уровня канала для поддержки агрегации

Резюме

По результатам анализа и сравнения можно сделать следующие выводы:

Список ссылок

  1. http://relaxng.org/ - RelaxNG schema
  2. http://www.w3.org/standards/ — W3C standards page
  3. http://tools.ietf.org/html/rfc3339 — IETF Date and Time representation
  4. http://tools.ietf.org/html/rfc4287 — IETF Atom format
  5. http://tools.ietf.org/html/rfc5023 — IETF AtomPub
  6. http://web.resource.org/rss/ — RSS 1.0 home page
  7. http://www.rssboard.org/ — RSS 0.9x & 2.0 home page
Hosted by uCoz