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

Язык XML

История и версии формата RSS

  1. История и версии формата RSS
  2. Примеры
  3. Структура и элементы RSS 2.0
    1. Элемент <channel>
    2. Элемент <item>
  4. Дополнительные возможности RSS 2.0
  5. Перспективы развития RSS
RSS иконка
Логотип RSS

RSS — основанный на XML формат описания лент новостей, анонсов статей, изменений в блогах и форумах и т. п.

В разных версиях аббревиатура RSS имела разные расшифровки:

История и версии формата RSS

Подробную историю спецификации RSS можно посмотреть на официальных сайтах RSS Advisory Board и RSS-DEV Working Group (RSS 1.0). Здесь приведем лишь хронологию появления версий RSS и их особенности.

RSS time-line

  1. 15.03.1999: RSS 0.90 (Netscape), опубликовано: Netscape, разработчик: Ramanathan Guha
  2. 10.06.1999: RSS 0.91 (Netscape), опубликовано: Netscape, разработчик: Dan Libby
  3. 09.06.2000: RSS 0.91 (UserLand), опубликовано: UserLand Software, разработчик: Dave Winer
  4. 06.12.2000: RSS 1.0 (RSS-DEV Working Group), опубликовано: RSS-DEV Working Group
  5. 25.12.2000: RSS 0.92, UserLand
  6. 19.08.2002: RSS 2.0, UserLand
  7. 15.07.2003: RSS 2.0 (version 2.0.1), опубликовано: the Berkman Center for Internet & Society at Harvard Law School, разработчик: Dave Winer
  8. 15.07.2003: RSS 2.0 (version 2.0.1-rv-1), опубликовано: the RSS Advisory Board
  9. 17.07.2003: RSS 2.0 (version 2.0.1-rv-2), RSS Advisory Board
  10. 06.04.2004: RSS 2.0 (version 2.0.1-rv-3), RSS Advisory Board
  11. 31.05.2004: RSS 2.0 (version 2.0.1-rv-4), RSS Advisory Board
  12. 19.07.2004: RSS 2.0 (version 2.0.1-rv-5), RSS Advisory Board
  13. 25.01.2005: RSS 2.0 (version 2.0.1-rv-6), RSS Advisory Board
  14. 12.08.2006: RSS 2.0 (version 2.0.8), RSS Advisory Board
  15. 05.06.2007: RSS 2.0 (version 2.0.9), RSS Advisory Board
  16. 15.10.2007: RSS 2.0 (version 2.0.10), RSS Advisory Board
  17. 30.03.2009 (current*): RSS 2.0 (version 2.0.11), RSS Advisory Board

* — текущая версия на момент написания этой страницы

Исторически, разработкой формата занимались по меньшей мере четыре различные организации, в результате сложилась такая ситуация, что различные версии формата слабо совместимы, а то и совсем не совместимы, между собой. Однако это не мешает им уживаться, благодаря тому, что популярные программы-агрегаторы, как правило, понимают несколько форматов.

Особенности версий RSS

ВерсияВладелецКраткая характеристикаСтатусСоветы
0.90NetscapeСложныйОтменен версией 1.0Устарел
0.91UserLandОчень простойОтменен с выходом версии 2.0., но все еще популяренРекомендован для простых публикаций, совместим с RSS 2.0
0.92, 0.93, 0.94UserLandРасширены по сравнению с 0.91Отменены с выходом версии 2.0Рекомендуется использовать 2.0
1.0RSS-DEV Working GroupОснован RDF и пространствах имен (namespaces). Открытая и расширяемая модульная архитектура (стандартные модули: Dublin Core, Syndication, Content).Стабилен. Ведется активная разработка модулей.Подходит для приложений на основе RDF, либо если требуется функциональность определенного модуля
2.0UserLandРасширяется с помощью модулей. Совместим с форматами 0.9хСтабилен. Ведется активная разработка модулейШироко распространен и используется для публикации новостей общего назначения

Примеры

В листингах 1, 2 и 3 приведены примеры описания лент новостей различных версий RSS.

Листинг 1. Лента новостей RSS 0.91

<RSS version="0.91">
	<channel>
		<title>Учебные материалы для студентов</title>
		<link>http://www.4stud.info/</link> 
		<description>Лента новостей сайта 4stud.info</description>
		<language>ru-ru</language>
		
		<item>
			<title>Сетевые технологии: СРС</title>
			<link>http://www.4stud.info/networking/srs.html</link>
			<description>Новые варианты заданий повышенной сложности 
			для самостоятельной работы студентов.</description>
		</item>
		<item>
			<title>Веб-программирование: Практикум</title>
			<link>http://www.4stud.info/web-programming/css-samples.html</link>
			<description>Семь примеров использования каскадных таблиц стилей</description>
		</item>
		<item>
			<title>Сетевые технологии: Лекции </title>
			<link>http://www.4stud.info/networking/lecture-06.html</link>
			<description>Исправлена схема ППО типа transaction monitor.</description>
		</item>
	</channel>
</rss>

Листинг 2. Лента новостей RSS 1.0

<rdf:RDF
	xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
	xmlns="http://purl.org/rss/1.0/"
	xmlns:dc="http://purl.org/dc/elements/1.1/">
	
	<channel rdf:about="http://www.4stud.info/about.html">
		<title>Учебные материалы для студентов</title>
		<link>http://www.4stud.info/</link>
		<description>Лента новостей сайта 4stud.info</description>
		<language>ru-ru</language>
		<items>
			<rdf:Seq>
				<rdf:li rdf:resource="http://www.4stud.info/networking/srs.html"/>
				<rdf:li rdf:resource="http://www.4stud.info/web-programming/css-samples.html"/>
				<rdf:li rdf:resource="http://www.4stud.info/networking/lecture-06.html"/>
			</rdf:Seq>
		</items>
	</channel>
	
	<item rdf:about="http://www.4stud.info/networking/srs.html">
		<title>Сетевые технологии: СРС</title>
		<link>http20://www.4stud.info/networking/srs.html</link>
		<description>Новые варианты заданий повышенной сложности 
			для самостоятельной работы студентов.</description>
		<dc:creator>aag</dc:creator>
		<dc:date>2009-10-04</dc:date>		
	</item>
	<item rdf:about="http://www.4stud.info/web-programming/css-samples.html">
		<title>Веб-программирование: Практикум</title>
		<link>http://www.4stud.info/web-programming/css-samples.html</link>
		<description>Семь примеров использования каскадных таблиц стилей</description>
		<dc:creator>aag</dc:creator>
		<dc:date>2009-10-04</dc:date>		
	</item>
	<item rdf:about="http://www.4stud.info/networking/lecture-06.html">
		<title>Сетевые технологии: Лекции</title>
		<link>http://www.4stud.info/networking/lecture-06.html</link>
		<description>Исправлена схема ППО типа transaction monitor.</description>
		<dc:creator>aag</dc:creator>
		<dc:date>2009-10-04</dc:date>		
	</item>
</rdf:RDF>

Листинг 3. Лента новостей RSS 2.0

<RSS version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
	<channel>
		<title>Учебные материалы для студентов</title>
		<link>http://www.4stud.info/</link>
		<description>Лента новостей сайта 4stud.info</description>
		<language>ru-ru</language>

		<item>
			<title>Сетевые технологии: СРС</title>
			<link>http://www.4stud.info/networking/srs.html</link>
			<description>Новые варианты заданий повышенной сложности 
			для самостоятельной работы студентов.</description>
			<dc:creator>aag</dc:creator>
			<dc:date>2009-10-04</dc:date>		
		</item>
		<item>
			<title>Веб-программирование: Практикум</title>
			<link>http://www.4stud.info/web-programming/css-samples.html</link>
			<description>Семь примеров использования каскадных таблиц стилей.</description>
			<dc:creator>aag</dc:creator>
			<dc:date>2009-10-04</dc:date>		
		</item>
		<item>
			<title>Сетевые технологии: Лекции</title>
			<link>http://www.4stud.info/networking/lecture-06.html</link>
			<description>Исправлена схема ППО типа transaction monitor.</description>
			<dc:creator>aag</dc:creator>
			<dc:date>2009-10-04</dc:date>		
		</item>
	</channel>
</rss>

Как видно из приведенных примеров, формат RSS 1.0 существенно отличается от версий 0.91 и 2.0. Он ближе к общей структуре новостных каналов, представляет более полное описание, но, при этом и более многословен. Это повышает сложность алгоритма разбора программы-агрегатора. RSS 0.91 и RSS 2.0 представляют более простое, компактное и наглядное описание канала. Синтаксис и назначение основных элементов в этих версиях сходный, следовательно без особых трудностей можно перейти с версии 0.91 на 2.0, обеспечив такую же функциональность, как у RSS 1.0. В силу этого далее будем рассматривать спецификацию RSS 2.0.

Структура и элементы RSS 2.0

RSS — диалект XML, поэтому описание канала RSS обязано соответствовать спецификации XML

Корневым элементом документа RSS является элемент <rss> с обязательным атрибутом version, указывающим версию формата канала. Для формата RSS 2.0 значение этого атрибута должно быть 2.0. Единственный дочерний элемент первого уровня, <channel>, включает метаинформацию о канале (описание канала новостей) и его содержимое &mdash обязательные и необязательные дочерние элементы разной вложенности. Элементы могут содержать обязательные и необязательные атрибуты, определяющие свойства и поведение элемента.

На сайте разработчика приводится подробное описание элементов RSS 2.0, здесь рассмотрим только некоторые из них.

Элемент <channel>

Элемент <channel> определяет канал как таковой и содержит всю информацию. Сравните с RSS 1.0, где этот элемент описывает метаинформацию.

Обязательные элементы канала

  1. title — Название канала, по которому люди будут ссылаться на сервис. Если канал связан с веб-сайтом, то значение title должно совпадать с заголовком стартовой страницы сайта.
  2. link — URL веб-сайта, связанного с каналом.
  3. description — Краткое описание канала.

Необязательные элементы канала

  1. language — Язык канала, как определено W3C.
  2. pubDate — Дата публикации канала как определено в спецификации RFC 822.
  3. lastBuildDate — Время последнего изменения содержимого канала.
  4. category — Указывает одну и более категорию, к которой относится канал
  5. ttl — Время жизни: количество минут, на которые канал может кешироваться перед обновлением с ресурса.
  6. image — Изображение GIF, JPEG или PNG, которое может отображаться с каналом. Например, логотип компании.

Атрибуты элементов

В качестве примера элемента с атрибутами рассмотрим <image>. Это — дочерний элемент <channel>, содержащий три обязательных и три дополнительных элемента:

  1. url — URL изображения GIF, JPEG или PNG, представляющего канал
  2. title — Название изображения, которое будет использовано в атрибуте alt при отображении канала в виде гипертекста.
  3. link — URL сайта; изображение канала будет служить ссылкой на этот сайт.
  4. width, height — Необязательные атрибуты, задающие ширину и высоту изображения в пикселях. Максимальные размеры изображения — 144 х 400px, по умолчанию — 88 x 31px. Например:
    <image url="http://4stud.info/img/logo.gif" 
    	title="Учебные материалы для студентов АСОИУ" 
    	link="http://4stud.info" 
    	width="200px" height="60px" />
    
  5. description — Необязательное описание изображения.

Детальное описание атрибутов прочих элементов доступно на сайте разработчиков. Здесь же подробно рассмотрим элемент <item>.

Элемент <item>

Канал может содержать любое количество элементов <item>, описывающих отслеживаемую информацию. Каждый <item> может содержать (или не содержать, в зависимости от используемых дочерних элементов) заголовок сообщения, его содержание (краткое или полное), ссылку на источник, информацию об авторе и др. Все дочерние элементы <item> являются необязательными, однако по крайней мере <title> или <description> должен существовать. Перечислим некоторые элементы <item>:

Дочерние элементы <item>

  1. title — Заголовок сообщения.
  2. link — URL сообщения.
  3. description — Краткий обзор сообщения.
  4. author — Адрес электронной почты автора сообщения.
  5. category — Включает сообщение в одну или более категорий.
  6. enclosure — Описывает медиа-объект, прикрепленный к сообщению, например:
    <enclosure url="http://www.example.com/mp3/hello.mp3" length="12216320" type="audio/mpeg" />
    
  7. pubDate — Показывает, когда сообщение было опубликовано.

Полный список и подробное описание см. на сайте RSS Advisory Board. В спецификации формата приведены пояснения и рекомендации по использованию каждого из дочерних элементов <item>. Так, например, элемент <author>, который указывает адрес электронной почты автора сообщения, следует использовать, если авторов несколько. Если же автор всех сообщений единственный, то <author> в <item> лучше опустить.

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

Согласно спецификации, версия 2.0 поддерживает следующие схемы в элементах <link> и <url>: http://, https://, news://, mailto: и ftp://. В предыдущих версиях поддерживались только http:// и ftp://.

В RSS 0.91 различные элементы ограничивались до 500 или 100 символов. Кроме того, в <channel> не могло быть более 15 сообщений <item>. Ограничения на длины строк отсутствуют, начиная с RSS 0.92. Агрегаторы могут налагать свои ограничения по чтению, а генераторы могут иметь опции, ограничивающие количество <item> в канале, либо длины строк.

Заявленная в спецификации, но редко используемая возможность RSS 2.0 - отправка данных из ленты. Для этого стандарт представляет специальный элемент — <textInput>, атрибуты которого определяют текст отправляемого сообщения, адрес скрипта-обработчика, надпись на кнопке Submit, заголовок.

Расширение функциональности реализовано через поддержку модулей, определенных в пространствах имен XML. Канал RSS 2.0 может содержать элементы и атрибуты, не объявленные в спецификации, только если они определены в пространствах имен. В листинге 3 использована эта возможность — подключено пространство имен <xmlns:dc>:

<RSS version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">

Элементы <dc:creator> и <dc:date> в этом примере являются заимствованными.

Перспективы развития RSS

RSS не является идеальным решением, но он широко распространен и стал, по сути, «народным» форматом. Версия 2.0 стабилизировала ситуацию со спецификациями каналов новостей и дальнейшее развитие RSS разработчики формата видят не в добавлении новых возможностей, а в совершенствовании имеющихся. Последующую работу они связывают с модулями, использующими пространства имен и с разработкой совершенно иных форматов с другими названиями.

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

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

Bourabai Research Institution home page

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