к библиотеке   к оглавлению   Банки данных Интернет   визуальные среды - 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   технологии программирования

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

НОВОСТИ ФОРУМАФорум Рыцари теории эфира
Рыцари теории эфира
 20.10.2019 - 19:34: ВОСПИТАНИЕ, ПРОСВЕЩЕНИЕ, ОБРАЗОВАНИЕ - Upbringing, Inlightening, Education -> КОМПЬЮТЕРНО-СЕТЕВАЯ БЕЗОПАСНОСТЬ ДЛЯ ВСЕХ - Карим_Хайдаров.
20.10.2019 - 19:29: ВОЙНА, ПОЛИТИКА И НАУКА - War, Politics and Science -> ЗА НАМИ БЛЮДЯТ - Карим_Хайдаров.
19.10.2019 - 18:18: ВОСПИТАНИЕ, ПРОСВЕЩЕНИЕ, ОБРАЗОВАНИЕ - Upbringing, Inlightening, Education -> Просвещение от Марины Мелиховой - Карим_Хайдаров.
18.10.2019 - 14:00: ЭКОЛОГИЯ - Ecology -> Биохимия мозга от проф. С.В. Савельева и не только - Карим_Хайдаров.
18.10.2019 - 07:39: ВОЙНА, ПОЛИТИКА И НАУКА - War, Politics and Science -> Проблема государственного терроризма - Карим_Хайдаров.
18.10.2019 - 07:34: ВОСПИТАНИЕ, ПРОСВЕЩЕНИЕ, ОБРАЗОВАНИЕ - Upbringing, Inlightening, Education -> Просвещение от Вячеслава Осиевского - Карим_Хайдаров.
18.10.2019 - 07:26: ЭКОНОМИКА И ФИНАНСЫ - Economy and Finances -> КОЛЛАПС МИРОВОЙ ФИНАНСОВОЙ СИСТЕМЫ - Карим_Хайдаров.
17.10.2019 - 18:29: ЭКСПЕРИМЕНТАЛЬНАЯ ФИЗИКА - Experimental Physics -> Ядерные эксперименты - Карим_Хайдаров.
17.10.2019 - 06:01: ЭКОЛОГИЯ - Ecology -> ПРОБЛЕМЫ МЕДИЦИНЫ - Карим_Хайдаров.
16.10.2019 - 19:24: ВОСПИТАНИЕ, ПРОСВЕЩЕНИЕ, ОБРАЗОВАНИЕ - Upbringing, Inlightening, Education -> Просвещение от Ю.Ю. Болдырева - Карим_Хайдаров.
13.10.2019 - 18:09: ВОСПИТАНИЕ, ПРОСВЕЩЕНИЕ, ОБРАЗОВАНИЕ - Upbringing, Inlightening, Education -> Просвещение от Светланы Вислобоковой - Карим_Хайдаров.
13.10.2019 - 08:05: ВОСПИТАНИЕ, ПРОСВЕЩЕНИЕ, ОБРАЗОВАНИЕ - Upbringing, Inlightening, Education -> Декларация Академической Свободы - Карим_Хайдаров.
Bourabai Research Institution home page

Bourabai Research - Технологии XXI века Bourabai Research Institution