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

Язык XML

Протокол Atom

  1. Что такое Atom?
  2. Примеры каналов
  3. Структура и элементы Atom 1.0
    1. Элемент <feed>
    2. Элемент <entry>
  4. Дополнительные возможности Atom
  5. Перспективы развития Atom
Логотип Atom
Логотип Atom
(но пользователи больше привыкли к логотипу RSS)

Что такое Atom?

Название Atom применяется к двум связанным веб-стандартам: Atom Syndication Format и Atom Publishing Protocol.

  1. Atom Syndication Format — это основанный на XML язык, используемый для описания каналов новостей;
  2. Atom Publishing Protocol (AtomPub, APP) — это простой, основанный на HTTP протокол создания и обновления веб-ресурсов.

Формат Atom был разработан как альтернатива RSS, с целью устранения его недостатков и добавления отсутствующих в этом формате возможностей. За короткое время Atom получил статус стандарта W3C и IETF (Internet Engineering Task Force), спецификация Atom 1.0, «The Atom Syndication Format», была опубликована в RFC 4287 в декабре 2005 г, а «The Atom Publishing Protocol» — в RFC 5023 в октябре 2007 г.

Примеры каналов

Листинг 1. Краткий фид Atom с одним элементом

<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title>Example Feed</title>
	<link href="http://example.org/"/>
	<updated>2003-12-13T18:30:02Z</updated>
	<author>
		<name>John Doe</name>
	</author>
	<id>urn:uuid:60a76c80-d399-11d9-b93C-0003939e0af6</id>
	<entry>
		<title>Atom-Powered Robots Run Amok</title>
		<link href="http://example.org/2003/12/13/atom03"/>
		<id>urn:uuid:1225c695-cfb8-4ebb-aaaa-80da344efa6a</id>
		<updated>2003-12-13T18:30:02Z</updated>
		<summary>Some text</summary>
	</entry>
</feed>

Листинг 2. Расширенный фид Atom с одним элементом

<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="text">dive into mark</title>
	<subtitle type="html">
		A &lt;em&gt;lot&lt;/em&gt; of 
		effort went into making this effortless
	</subtitle>

	<updated>2005-07-31T12:29:29Z</updated>
	<id>tag:example.org,2003:3</id>
	<link rel="alternate" type="text/html" hreflang="en" href="http://example.org/"/>
	<link rel="self" type="application/atom+xml" href="http://example.org/feed.atom"/>
	<rights>Copyright (c) 2003, Mark Pilgrim</rights>
	<generator uri="http://www.example.com/" version="1.0">
		Example Toolkit
	</generator>
	<entry>
		<title>Atom draft-07 snapshot</title>
		<link rel="alternate" type="text/html" href="http://example.org/2005/04/02/atom"/>
		<link rel="enclosure" type="audio/mpeg" length="1337" 
			href="http://example.org/audio/ph34r_my_podcast.mp3"/>
		<id>tag:example.org,2003:3.2397</id>
		<updated>2005-07-31T12:29:29Z</updated>
		<published>2003-12-13T08:29:29-04:00</published>
		<author>
			<name>Mark Pilgrim</name>
			<uri>http://example.org/</uri>
			<email>f8dy@example.com</email>
		</author>
		<contributor>
			<name>Sam Ruby</name>
		</contributor>
		<contributor>
			<name>Joe Gregorio</name>
		</contributor>
		<content type="xhtml" xml:lang="en" xml:base="http://diveintomark.org/">
			<div xmlns="http://www.w3.org/1999/xhtml">
			<p><i>[Update: The Atom draft is finished.]</i></p>
			</div>
		</content>
	</entry>
</feed>

Как видно из примеров в листингах 1 и 2, формат Atom можно использовать как для описания простых новостных лент, так и для каналов со сложной структурой. При этом стандарт разработан так, чтобы его можно было представить как в человеко-, так и в машинно-читаемом виде.

Структура и элементы формата Atom

Корневым элементом в документе Atom является <feed>. Он содержит метаданные о канале (адрес, название, авторство и т.д.) и любое количество элементов <entry>, в которых и помещены новости. Элементы канала бывают следующих типов: обязательные, рекомендуемые и необязательные. При этом они могут иметь обязательные или опциональные атрибуты и вложенные элементы.

Элемент <feed>

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

<id> — Идентификатор фида, постоянный URI.

<title> — Название канала. Не может быть пустым.

<updated> — Дата последнего обновления в формате RFC 3339.

<updated>2003-12-13T18:30:02Z</updated>

Рекомендуемые элементы

Нижеперечисленные элементы не являются обязательными, но их использование желательно для обеспечения большей информативности.

<author> — Имя автора. Множественное авторство может быть указано в элементах entry

<author>
  <name>John Doe</name>
  <email>JohnDoe@example.com</email>
  <uri>http://example.com/~johndoe</uri>
</author>

<link> — Адрес связанного сайта. Тип связи определяется в атрибуте rel.

<link rel="self" href="/feed" />

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

<category> — Задает категории, к которым относится канал. Элемент feed может включать несколько элементов category.

<category term="networking"/>

<generator> — Название программы, с помощью которой собран канал. Может использоваться, например, для отладки. Атрибуты uri и version необязательные.

<generator uri="/myblog.php" version="1.0">
  Example Toolkit
</generator>

<icon> — Маленькое изображение, пиктограмма канала.

<icon>/icon.jpg</icon>

<logo> — Большое изображение, логотип канала.

<logo>/logo.jpg</logo>

<rights> — Информация об авторском и смежных правах.

<rights> © 2005 John Doe </rights>

<subtitle> — Человеко-читаемое описание или подзаголовок канала.

<subtitle>all your examples are belong to us</subtitle>

Элемент <entry>

Примером элемента <entry> является отдельный пост в блоге или комментарий в форуме.

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

<id> — Уникальный и постоянный идентификатор сообщения. Два сообщения могут иметь одинаковый идентификатор, если они представляют одну и ту же новость, но в разное время.

<id>http://example.com/blog/1234</id>

<title> — Заголовок сообщения. Не может быть пустым.

<title>Atom-Powered Robots Run Amok</title>

<updated> — Дата последней модификации сообщения.

<updated>2003-12-13T18:30:02-05:00</updated>

Рекоменуемые элементы

<author> — Имя автора (авторов) сообщения.

<author>
  <name>John Doe</name>
</author>

<content> — Текст сообщения или ссылка на полный текст.

<content>complete story here</content>

<link> — Страница, связанная с текстом сообщения.

<link rel="alternate" href="/blog/1234"/>

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

<category> — Одна или несколько категорий, к которым относится сообщение.

<category term="technology"/>

<contributor> — Имя соавтора новости. Может быть несколько элементов contributor

<contributor>
  <name>Jane Doe</name>
</contributor>

<published> — Дата и время создания или первой публикации сообщения.

<published>2003-12-13T09:17:51-08:00</published>

<source> — Источник сообщения. Если entry копируется из одного канала в другой, то все дочерние элементы entry копируются также.

<source>
  <id>http://example.org/</id>
  <title>Fourty-Two</title>
  <updated>2003-12-13T18:30:02Z</updated>
  <rights>© 2005 Example, Inc.</rights>
</source>

Подробное описание всех перечисленных элементов канала приведено в спецификации Atom.

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

Модель содержания

Atom представляет возможность собирать и представлять информацию в различных форматах, таких как обычный текст, HTML, XHTML, XML, двоичные данные в формате Base64 и ссылки на внешнее содержание в документов (например, .pdf), видеофайлов, аудиопотоков и еще ряда других.

Представление даты и времени

Для представления даты и времени Atom использует международный стандарт, описанный в RFC 3339 (из состава стандартов ISO 8601).

Интернационализация

Atom имеет возможность объединить в одном канале информацию на различных языках. Это обеспечивается стандартным атрибутом xml:lang и позволяет делать человеко-читаемыми различные части фида.

Модульность

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

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

Atom Publishing Protocol (AtomPub) — протокол прикладного уровня для публикации и редактирования веб-ресурсов. Он базируется на представлении данных в формате Atom, в качестве транспорта использует протокол HTTP. AtomPub может использоваться в rich-клиентах (например, в системах управления контентом) или самостоятельных приложениях для управления информацией на веб-сайтах.

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

Дальнейшее развитие стандарта Atom разработчики видят во внесении большей ясности в описание и создании модулей расширения.

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

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

НОВОСТИ ФОРУМАФорум Рыцари теории эфира
Рыцари теории эфира
 23.10.2019 - 12:42: ВОЙНА, ПОЛИТИКА И НАУКА - War, Politics and Science -> ПРАВОСУДИЯ.НЕТ - Карим_Хайдаров.
23.10.2019 - 12:41: ВОСПИТАНИЕ, ПРОСВЕЩЕНИЕ, ОБРАЗОВАНИЕ - Upbringing, Inlightening, Education -> Просвещение от Вячеслава Осиевского - Карим_Хайдаров.
23.10.2019 - 06:53: ВОСПИТАНИЕ, ПРОСВЕЩЕНИЕ, ОБРАЗОВАНИЕ - Upbringing, Inlightening, Education -> Просвещение от Марины Мелиховой - Карим_Хайдаров.
23.10.2019 - 06:51: СОВЕСТЬ - Conscience -> РУССКИЙ МИР - Карим_Хайдаров.
23.10.2019 - 06:45: ВОЙНА, ПОЛИТИКА И НАУКА - War, Politics and Science -> Проблема государственного терроризма - Карим_Хайдаров.
22.10.2019 - 17:00: ВОСПИТАНИЕ, ПРОСВЕЩЕНИЕ, ОБРАЗОВАНИЕ - Upbringing, Inlightening, Education -> Проблема народного образования - Карим_Хайдаров.
22.10.2019 - 16:58: ВОЙНА, ПОЛИТИКА И НАУКА - War, Politics and Science -> РАСЧЕЛОВЕЧИВАНИЕ ЧЕЛОВЕКА. КОМУ ЭТО НАДО? - Карим_Хайдаров.
22.10.2019 - 13:02: ВОЙНА, ПОЛИТИКА И НАУКА - War, Politics and Science -> ФАЛЬСИФИКАЦИЯ ИСТОРИИ - Карим_Хайдаров.
22.10.2019 - 13:01: ВОСПИТАНИЕ, ПРОСВЕЩЕНИЕ, ОБРАЗОВАНИЕ - Upbringing, Inlightening, Education -> Декларация Академической Свободы - Карим_Хайдаров.
22.10.2019 - 12:45: ЭКОЛОГИЯ - Ecology -> Биологическая безопасность населения - Карим_Хайдаров.
20.10.2019 - 19:34: ВОСПИТАНИЕ, ПРОСВЕЩЕНИЕ, ОБРАЗОВАНИЕ - Upbringing, Inlightening, Education -> КОМПЬЮТЕРНО-СЕТЕВАЯ БЕЗОПАСНОСТЬ ДЛЯ ВСЕХ - Карим_Хайдаров.
20.10.2019 - 19:29: ВОЙНА, ПОЛИТИКА И НАУКА - War, Politics and Science -> ЗА НАМИ БЛЮДЯТ - Карим_Хайдаров.
Bourabai Research Institution home page

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