Уровень сложности: простой Джеймс Левин (James Lewin), президент , The Lewin Group
10.11.2000 Краткое RDF-описание сайта (RSS) является одним из наиболее широко используемых XML-форматов в Web. В данной статье описано, как создать и использовать файлы RSS-каналов, а также описаны их возможности. Будет показано, почему такие компании как Netscape, Userland и Moreover используют RSS-каналы для распределения и доставки обзоров и заголовков статей. В данную статью включен пример программы с элементами файла RSS-канала, а также пример на языке Perl, использующий модуль XML::RSS.
Файлы краткого RDF-описания сайтов (RSS) основаны на XML и предоставляют открытый способ
доставки и объединения Web-контента. С помощью формата RSS можно создавать каналы данных, содержащие заголовки, ссылки и краткое изложение статей с Web-сайтов.
Эти файлы описывают канал информации, который может включать
логотип, ссылку на сайт, поле ввода и несколько "информационных сюжетов". На страницы других сайтов
эту информацию можно добавлять автоматически. Можно также
использовать RSS-каналы с других сайтов для размещения на своем сайте текущих сводок новостей или статей по
интересным темам. Такие способы позволяют привлечь больше посетителей, заинтересованных в самой последней информации.
 |
Что представляют собой метаданные?
Файл RSS-каналов представляют собой тип метаданных. Метаданные:
- единицы информации об информации;
- обычно используются для описания контента, контекста
и характеристик данных.
Примерами метаданных являются HTML-метатеги keywords и description,
предоставляющие сведения о Web-страницах.
|
|
Формат RSS берет начало на сайтах My Netscape и My UserLand,
оба из которых объединяли контент, поставляемый из новостных XML-каналов. Это одно
из простейших XML-приложений, поэтому RSS-канал популярен среди многих разработчиков
при необходимости выполнения подобных задач. Пользователи Moreover, Meerkat, UserLand
и древовидной структуры XML. В данной статье описан формат RSS и некоторые модули
Perl с открытым исходным кодом, позволяющие легко использовать файлы RSS-каналов.
Что точно представляют собой файлы RSS-каналов?
Файлы RSS-каналов представляют собой метаданные (см. врезку Что представляют собой метаданные?). Пока
они не используются или если не показано на примере, довольно сложно понять, что представляют собой файлы
RSS-каналов, но эти файлы легко создать. Как правило, файл RSS-канала содержит
четыре элемента основного типа: канал, изображение, позиции и текстовый ввод. Эти
элементы легко идентифицируются и кодируются (см. пример на листинге 1).
В примере элемента файла RSS 0.91 на листинге 1 содержится три
четко выделенных части: название, ссылка и описание.
Листинг 1. Пример элемента в RSS-канале
<item>
<title>Mozilla Dispenses with Old, Proprietary DOM</title>
<link>http://www.mozillazine.org/talkback.html?article=604</link>
<description>The Mozilla team has decided to forgo backwards
compatibility with Netscape's proprietary DOM.</description>
|
В заголовке публикуются коллекции в результате объединения файлов RSS.
HTML, как правило, используется для отображения указанного названия в виде заголовка. Название также обычно
служит в кaчестве ссылки, используя URL-адрес, указанный в элементе link. Наконец,
описание обычно представлено в виде краткого содержания статьи, расположенной под
заголовком.
Создание файлов RSS-каналов
Можно создавать файлы RSS-каналов в соответствии с предложенной спецификацией RSS 1.0
или в соответствии с более популярной спецификацией RSS 0.91. Для рабочих приложений
используйте RSS 0.91, предложенная спецификация 1.0 все еще находится на рассмотрении. Раздел
Ресурсы включает ссылки на
обе спецификации - 1.0 и 0.91, предоставляющие подробный обзор всех элементов.
Данное обсуждение относится к наиболее общим используемым элементам, все
примеры в статье относятся к формату 0.91.
Между предлагаемой спецификацией 1.0 и форматом 0.91 имеется одно значительное различие: спецификация 1.0 включает
элементы среды описания ресурсов (RDF), обеспечивающие большую гибкость
за счет некоторого увеличения сложности. Данная предложенная спецификация
является более гибкой, описывает стандарт W3C для файлов RSS-каналов, удовлетворяющий
текущим потребностям, будет совместима с предыдущими версиями, а также адаптирована
к будущим требованиям.
Обе версии спецификации имеют общую характеристику -
простой формат, который разработчики могут использовать в различных целях.
RSS-канал представляет собой XML-файл. Поэтому все RSS-документы начинаются
с объявления XML 1.0, затем идет объявление типа документа RSS
(см. листинг 2).
Листинг 2. XML-объявление
<?xml version="1.0"?>
<!DOCTYPE rss PUBLIC "-//Netscape Communications//DTD RSS 0.91//EN"
"http://my.netscape.com/publish/formats/rss-0.91.dtd">
<rss version="0.91"> |
В первой строке объявляется XML-документ. Во второй
строке находится объявление DTD, определяющее, что данный XML-файл основан на
определении типа документа (DTD) RSS 0.91 компании Netscape. Наконец,
начало контента файла RSS-канала отмечается корневым элементом, все содержимое находится
между тегами <rss version "0.91"> и </rss>.
Четыре основных раздела файла RSS-канала
Четыре основных раздела файла RSS-канала находятся после корневого элемента.
К ним относятся разделы channel,
image, item и text input. На практике элементы channel и item необходимы
для любого рабочего файла RSS-канала, элементы image и text input являются дополнительными.
Раздел channel
Элемент channel содержит метаданные, описывающие собственно канал:
что он собой представляет и кто его создал. Раздел channel является необходимым
элементом и включает имя канала, его описание, язык
и URL-адрес. Как правило, URL-адрес используется для указания на источник информации
канала.
В листинге 3 показано начало элемента channel. В данной части
элемента channel определяется канал и приводятся сведения о канале.
Листинг 3. Элемент channel
<channel>
<title>MozillaZine</title>
<link>http://www.mozillazine.org</link>
<description>Your source for Mozilla news, advocacy, interviews, builds,
and more! </description>
<language>en-us</language>
</channel>
|
Элемент channel содержит остальные теги канала, описывающие
канал и позволяющие отображать его содержимое в HTML. Тег title можно рассматривать
как ссылку на заголовок со следующим описанием. Определение языка канала
позволяет накопителям фильтровать новостные каналы и предоставляет программе
визуализации информацию, необходимую для правильного отображения языка.
Тег </channnel> размещается после всех элементов канала и используется как закрывающий
тег. RSS соответствует спецификациям XML, поэтому раздел element должен быть оформлен правильно;
для него необходимо использовать закрывающий тег.
В соответствии со спецификацией канала 0.91 можно включить девять дополнительных тегов. Примерами каналов
являются PICS Rating, Copyright Identifier, Publication Date и Webmaster.
Эти дополнительные элементы можно использовать в различных целях. Например,
сайты, объединяющие контент, могут использовать такую дополнительную мета-информацию
для разрешения пользователям фильтровать новостные каналы на основе рейтингов Platform for Internet
Content Selection (PICS). Дополнительную информацию о других тегах
канала см. в спецификации RSS.
Раздел image
Элемент image не является обязательным и обычно используется для включения
логотипа поставщика канала. Размер изображения по умолчанию составляет 88
пикселей в ширину и 31 пиксел в высоту, хотя логотип можно увеличить до размера
144 на 400 пикселей. Далее показан пример элемента image:
Листинг 4. Элемент image
<image>
<title>MozillaZine</title>
<url>http://www.mozillazine.org/image/mynetscape88.gif</url>
<link>http://www.mozillazine.org</link>
<width>88</width>
<height>31</height>
</image>
|
Теги элемента title, URL, link, width и height позволяют средствам визуализации
преобразовать файл в HTML-формат. Тег title обычно используется для
текста изображения ALT. По возможности не увеличивайте изображение больше размера 88 x 31
пиксел, потому что многие средства визуализации преобразуют каналы в таблицы фиксированной
ширины менее 100 пиксел. Большие графические изображения могут привести к
нежелательному разрыву таблиц, или изображение не будет показываться вообще.
Элемент item
Элемент item является самым важным элементом канала и обычно составляет динамическую
часть RSS-канала. Если элементы channel, image и text input определяют
идентичность канала и не изменяются в течение длительных периодов
времени, элементы канала item отображаются как новостные заголовки, ценность канала
зависит от их частого изменения. Далее показан пример элемента канала
item:
Листинг 5. Элемент item
<item>
<title>Java2 in Navigator 5?</title>
<link>http://www.mozillazine.org/talkback.html?article=607</link>
<description>Will Java2 be an integrated part of Navigator 5?
Read more about it in this discussion...</description>
</item> |
Для канала можно использовать до 15 элементов item. Это разумное ограничение,
так как каналы в основном используются для распространения последнего Web-контента. Длина названий
не должна превышать 100 символов, длина описаний -
500 символов. Название элемента item обычно отображается как заголовок
со ссылкой на всю статью, URL-адрес которой определяется тегом link. Описание элемента item
обычно используется для краткого обзора содержимого статьи
или для комментария к статье. Новостные каналы используют описание
для выделения содержимого новых статей, обычно на сайте владельца
канала, каналы Web-журналов используют описание для предоставления комментариев к
различному контенту, часто взятому со сторонних сайтов.
Практически вся прелесть RSS-формата заключается в элементе item. Как видно на
примере выше, разработчики легко могут использовать элементы item
для определения, а пользователи - для чтения.
Элемент text input
Область text input является дополнительным элементом, для канала можно использовать только один
элемент. Обычно элемент text input отображается в виде HTML-формы и позволяет пользователям реагировать
на канал. Эту функцию можно использовать для разрешения пользователям подписываться
на информационный бюллетень или выполнить поиск по сайту. Далее показан пример элемента
text input:
Листинг 6. Элемент text input
<textinput>
<title>Send</title>
<description>Comments about MozillaZine?</description>
<name>responseText</name>
<link>http://www.mozillazine.org/cgi-bin/sampleonly.cgi</link>
</textinput> |
Тег title обычно отображается в виде текста на кнопке отправки формы,
тег description - в виде текста до или над полем ввода.
Тег name элемента text input отправляется вместе с содержимым текстового поля
при нажатии кнопки Submit.
Это четыре основных элемента файла RSS-канала. После добавления элементов image,
item и text input на забудьте добавить закрывающий тег </channel>
и тег закрытия RSS-канала </rss>.
Рассматриваемая спецификация RSS 1.0 включает модули, позволяющие расширить
RSS-канал для поставки дополнительной информации без необходимости переписывать
спецификацию. Например, можно написать модуль для добавления к каналу мультимедийных данных
для клиентов с широкополосным доступом, тогда как для обычных клиентов по-прежнему будут отображаться
заголовки и описания. Можно изучить модули подробней
и использовать их преимущества после принятия спецификации 1.0.
Работа с файлами RSS-каналов
Имеется несколько способов начать использовать файлы RSS-каналов. Файлы RSS-каналов
являются простыми, поэтому их можно создавать с помощью любого текстового редактора или XML-редактора.
Также имеются сайты с Web-формами, позволяющие создавать пользовательские файлы RSS-канала
в оперативном режиме. Наконец, можно также попробовать создавать файлы RSS-каналов автоматически.
Инструментальные средства с открытым исходным кодом для Java, PHP и Perl могут оказаться полезными (см. в разделе Ресурсы дополнительные примеры).
После создания простого файла RSS-канала его можно проверить.
Это можно сделать на сайте Netscape, указанном в разделе Ресурсы .
Разместите файл RSS-канала в общедоступной области Web-сайта, перейдите на сайт
Netscape, введите URL-адрес своего канала, и средство проверки протестирует файл
на совместимость.
Публикация RSS-файла
Когда на Web-сайте имеется допустимый файл RSS-канала, можно
выполнять доставку контента. Это можно сделать в виде публикации и подписки
- информация публикуется, любой желающий может на нее подписаться -
или можно отправить свой URL-адрес в такую систему как Moreover или Userland.
Такие компании занимаются объединением контента с различных сайтов и его публикацией в виде каналов.
Хотя информация с вашего сайта может смешиваться с контентом других
поставщиков, агрегаторы могут значительно улучшить
границы распространения информации.
Файлы RSS-каналов также можно использовать для частного распространения в локальных или корпоративных
сетях. Благодаря своей простоте файлы RSS-каналов являются хорошим способом публиковать информацию
в различных системах.
Анализ файлов RSS
Начав использование файлов RSS-каналов, потребуется выполнять обратный анализ
этих файлов и разбивать их на отдельные блоки данных. Это можно делать с помощью
различных инструментальных средств с открытым исходным кодом, написанных на Java, Perl, PHP и даже
ASP. Анализатор языка считывает поток XML-текста, определяет открывающие и
закрывающие теги, находит текст, заключенный в тегах, и создает указатели
для работы с проанализированной информацией. После выполнения анализа эту информацию можно
включить в динамически создаваемые страницы.
В листинге 7 показана простая программа на Perl, считывающая файлы RSS-каналов.
Даже если пользватель не работает на Perl, в примере содержится несколько идей,
которые можно использовать в собственной среде разработки.
Perl представляет собой замечательный язык для манипуляций с файлами RSS-каналов; наличие достаточного количества
открытого кода позволяет легко начать работу с Perl. Джонатан
Айзенцопф (Jonathan Eisenzopf) разработал модуль XML::RSS для создания и анализа файлов
RSS-каналов. Чтобы воспользоваться преимуществами этого анализатора, потребуется
модульXML::Parser. Эти два модуля Perl можно бесплатно загрузить на CPAN
(см. раздел Ресурсы).
Далее приводится пример использования модуля XML:RSS:
Листинг 7. Пример на Perl с использованием модуля XML::RSS
# Setup includes
use strict;
use XML::RSS;
use LWP::Simple;
# Declare variables for URL to be parsed
my $url2parse;
# Get the command-line argument
my $arg = shift;
# Create new instance of XML::RSS
my $rss = new XML::RSS;
# Get the URL, assign it to url2parse, and then parse the RSS content
$url2parse = get($arg);
die "Could not retrieve $arg" unless $url2parse;
$rss->parse($url2parse);
|
Данный пример кода передает URL-адрес в сценарий Perl для анализа. После выполнения анализа
элементы файла RSS можно использовать различными способами. Например, элементы
RSS можно использовать для создания списка заголовков:
Листинг 8. Создание заголовков с помощью Perl
# Print the channel items
foreach my $item (@{$rss->{'items'}}) {
next unless defined($item->{'title'}) && defined($item->{'link'});
print "<li><a href=\"$item->{'link'}\">$item->{'title'}</a><BR>\n";
}
|
В данном примере просматривается массив элементов RSS, у каждого элемента
проверяется наличие названия и ссылки. Неполные элементы пропускаются;
остальные включаются в список заголовков.
Если планируется использовать модуль XML::RSS, его можно открыть и просмотреть в любом текстовом
редакторе; в модуле содержится множество комментариев с предположениями по его эффективному использованию.
После опробования своих сил в создании файлов RSS-каналов, станет понятно,
какими способами эти каналы можно использовать. Например, можно создать сценарии для
генерации кратких отчетов об RSS-каналах при каждом обновлении сайта, или сценарии для
периодического получения новостей с других сайтов и автоматического обновления собственной
новостной страницы. (Как создавать такие сценарии - это тема для другой статьи, но некоторые полезные инструментальные средства с открытым исходным кодом для автоматического создания кратких обзоров RSS-каналов можно найти в разделе Ресурсы.
Несколько советов по созданию и использованию файлов
RSS-каналов. В разделе "Ресурсы" можно найти дополнительную информацию, например, источники
файлов RSS-каналов, спецификации RSS и адреса, по которым можно отправлять свои
заголовки.
Ресурсы Научиться
Получить продукты и технологии
- На сайте Webreference имеется редактор RSS
Channel Editor - прекрасное средство для создания файлов RSS-каналов;
-
На сайте Wireless
Developer Network имеются инструментальные средства для анализа файлов RSS с помощью PHP;
-
Компания Moreover является агрегатором
бесплатных новостных каналов с более чем 1500 новостных источников;
-
Meerkat
представляет собой средство чтения собранной информации на основе RSS, а также источник новостных
каналов.
Обсудить
Об авторе  | |  | Джеймс Левин (James Lewin) работает с Интернетом с 1995 года, беспроводными сетями он стал заниматься только с 2000 года. Джеймс является президентом и владельцем компании The Lewin Group, поставщиком сетевых решений и решений для Интернета. Он является сертифицированным инженером по продуктам Microsoft и работает с корпорацией Microsoft и инструментальными средствами разработки Интернет-приложений с открытым исходным кодом. |
Выскажите мнение об этой странице
|