<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Insight IT &#187; XML</title>
	<atom:link href="http://www.insight-it.ru/category/set/xml/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.insight-it.ru</link>
	<description>Информационные технологии</description>
	<lastBuildDate>Tue, 31 Jan 2012 09:34:08 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Мы делаем новости!</title>
		<link>http://www.insight-it.ru/set/xml/my-delaem-novosti/</link>
		<comments>http://www.insight-it.ru/set/xml/my-delaem-novosti/#comments</comments>
		<pubDate>Mon, 07 Jan 2008 20:42:17 +0000</pubDate>
		<dc:creator>Иван Блинков</dc:creator>
				<category><![CDATA[XML]]></category>
		<category><![CDATA[RSS]]></category>
		<category><![CDATA[аггрегатор]]></category>
		<category><![CDATA[новости]]></category>
		<category><![CDATA[Сеть]]></category>
		<category><![CDATA[технология]]></category>
		<category><![CDATA[хранение данных]]></category>

		<guid isPermaLink="false">http://www.insight-it.ru/net/xml/my-delaem-novosti/</guid>
		<description><![CDATA[Ярко-рыжий логотип, который можно увидеть на практически любом сайте, наверняка не раз привлекал Ваше внимание. Если Ваше любопытство хоть раз заставляло Вас перейти по ссылке, которая чаще всего стоит за таким логотипом, то Вы наверняка уже успели представить себе о чем пойдет речь. Такая ссылка в подавляющем большинстве случаев ведет на новости сайта, на котором [...]]]></description>
			<content:encoded><![CDATA[<p><a href="/feed" target="_blank"><img alt="RSS Logo." title="Логотип RSS" src="/wp-content/uploads/rss.png" style="margin: 0 10px; float: right;" /></a></p>
<p align="justify">Ярко-рыжий логотип, который можно увидеть на практически любом сайте, наверняка не раз привлекал Ваше внимание. Если Ваше любопытство хоть раз заставляло Вас перейти по ссылке, которая чаще всего стоит за таким логотипом, то Вы наверняка уже успели представить себе о чем пойдет речь.</p>
<p align="justify">Такая ссылка в подавляющем большинстве случаев ведет на новости сайта, на котором она расположена, представленные в формате представления данных под названием RSS (хотя это даже не обязательно должны быть новости в обычном понимании этого слова, с помощью этого формата можно публиковать любой контент). Этот формат предоставляет пользователям возможность подписываться на <i>каналы</i> новостей с помощью специально предназначенных для этого программ &#8212; <i>аггрегаторов</i>, позволяя иметь быстрый и удобный доступ ко всем интересующим его/ее информационным ресурсам, без необходимости собственно посещать все эти сайты.</p>
<p>О процессе создания такого канала я и хочу Вам рассказать.</p>
<p><span id="more-18"></span></p>
<p align="justify">Конечно же многие CMS поддерживают автоматическую генерацию RSS-каналов, и <a target="_blank" href="http://www.wordpress.org">WordPress</a>, на которой работает <a href="/about">этот блог</a>, к ним относится. <a href="/feed">RSS-канал этого блога</a>, хоть и не является новостным по сути, но также прекрасно генерируется из постов блога. Но для того, чтобы работать с технологией обычно бывает не лишним понимать как она работает, по-этому в этой записи я поведаю Вам о ручном составлении RSS-канала, а в одной из последующих &#8212; об автоматической генерации.</p>
<p align="justify">Прежде всего стоит сказать, что RSS является методом, основанным на XML и предназначенным для оперативного распространения новостей и контента сайта как среди потенциальных читателей, так и среди других сайтов.</p>
<p align="justify">Как следствие, на RSS распространяются все <a href="/net/xml/9-osnovnyx-pravil-napisaniya-xml">правила написания XML-документов</a>, с которыми имеет смысл ознакомиться перед тем, как продолжить чтение этой записи. Помимо них, для RSS существует отдельный стандарт и соответственно набор не менее простых правил.</p>
<p align="justify">В качестве примера можно использовать любой понравившийся канал, например мой. Для того, чтобы увидеть сам текст документа, необходимо нажать правой кнопкой мыши на открытый в браузере документ и выбрать пункт, называющийся как-нибудь вроде &quot;Просмотр исходного кода страницы&quot; или &quot;View Page Source&quot;.</p>
<p align="justify">По сравнению с XML, RSS-документ должен обладать четко определенной структурой:</p>
<ol align="justify">
<li>За стандартным XML-заголовком открывается корневой элемент, содержащий указание версии RSS:
<pre lang="RSS"><rss version="2.0"></rss></pre>
<p>    (не забываем его закрывать в конце документа)</li>
<li>В корневой элементе должен должен содержаться ровно один элемент <strong>&lt;channel&gt;</strong>, символизирующий наш канал</li>
<li>Внутри <strong>&lt;channel&gt;</strong> обязательно должны содержаться три элемента:
<ul>
<li><strong>&lt;title&gt;</strong> &#8212; заголовок канала</li>
<li><strong>&lt;link&gt;</strong> &#8212; ссылка на сам сайт</li>
<li><strong>&lt;description&gt;</strong> &#8212; описание канала</li>
</ul>
</li>
<li>Помимо них он должен содержать один или несколько элементов <strong>&lt;item&gt;</strong>, которые будут обозначать одну конкретную новость, запись, пост, статью, заметку, не важно какое из этих слов больше подходит к каждому конкретному случаю &#8212; суть от этого не меняется.</li>
<li>Элементы между парой тэгов <strong>&lt;item&gt;</strong>, как ни странно, тоже должны в себя включать в себя волшебно-обязательные элементы, разница лишь в значении, которое им придается:
<ul>
<li><strong>&lt;title&gt;</strong> &#8212; заголовок новости-записи-поста-статьи-заметки</li>
<li><strong>&lt;link&gt;</strong> &#8212; ссылка на нее же, обычно на страницу внутри сайта</li>
<li><strong>&lt;description&gt;</strong> &#8212; собственно говоря сам текст</li>
</ul>
</li>
</ol>
<p align="justify">Перечисленного выше вполне достаточно для написания простейшего RSS-канала, но возможности RSS далеко выходят за рамки просто размещения в Сети текстовых сообщений. Для их реализации стандартом предусмотрен еще целый ряд тэгов,&nbsp; доступных для использования. Позволю себе привести краткую справку по основным из них (для полноты картины повторю обязательные):</p>
<table width="100%" cellspacing="0" border="1">
<tbody>
<tr colspan="2">
<h4 align="center">Дочерние элементы &lt;channel&gt;</h4>
</tr>
<tr>
<th width="30%" valign="top" align="left"><strong>Элемент</strong></th>
<th width="70%" valign="top" align="left"><strong>Описание</strong></th>
</tr>
<tr>
<td valign="top">&lt;category&gt;</td>
<td valign="top">Не обязателен, определяет одну или несколько категорий для канала, позволяет <em>аггрегаторам</em> группировать записи по этому параметру</td>
</tr>
<tr>
<td valign="top">&lt;cloud&gt;</td>
<td valign="top">Не обязателен, используется для осуществления об обновлении канала с помощь. технологии RPC</td>
</tr>
<tr>
<td valign="top">&lt;copyright&gt;</td>
<td valign="top">Опционально, предназначен для предупреждения о необходимости соблюдения авторских прав</td>
</tr>
<tr>
<td valign="top">&lt;description&gt;</td>
<td valign="top">Обязательное описание канала</td>
</tr>
<tr>
<td valign="top">&lt;docs&gt;</td>
<td valign="top">Необязательная ссылка на описания формата, использованного в данном канале</td>
</tr>
<tr>
<td valign="top">&lt;generator&gt;</td>
<td valign="top">Указание программы, сгенерировавшей канал, обычно они сами заполняют этот тэг. В случае заполнения вручную он вообще не нужен</td>
</tr>
<tr>
<td valign="top">&lt;image&gt;</td>
<td valign="top">Опциональное отображение логотипа канала в <em>аггрегаторе</em></td>
</tr>
<tr>
<td valign="top">&lt;language&gt;</td>
<td valign="top">Определяет язык, на котором написано содержимое канала. Не обязательно, но желательно</td>
</tr>
<tr>
<td valign="top">&lt;lastBuildDate&gt;</td>
<td valign="top">Время последнего обновления содержимого канала. Опционально.</td>
</tr>
<tr>
<td valign="top">&lt;link&gt;</td>
<td valign="top">Обязательная ссылка канала</td>
</tr>
<tr>
<td valign="top">&lt;managingEditor&gt;</td>
<td valign="top">Адрес электронной почты редактора канала, не обязателен.</td>
</tr>
<tr>
<td valign="top">&lt;pubDate&gt;</td>
<td valign="top">Опциональная дата последней публикации на канале</td>
</tr>
<tr>
<td valign="top">&lt;rating&gt;</td>
<td valign="top">Опциональный PICS рейтинг канала</td>
</tr>
<tr>
<td valign="top">&lt;skipDays&gt;</td>
<td valign="top">Количество дней, которые аггрегатор должен пропускать между проверкой обновлений канала</td>
</tr>
<tr>
<td valign="top">&lt;skipHours&gt;</td>
<td valign="top">По аналогии с предыдущим, только в часах</td>
</tr>
<tr>
<td valign="top">&lt;textInput&gt;</td>
<td valign="top">Определяет текстовое поле, которое может отображаться рядом с каналом. Не обязательно.</td>
</tr>
<tr>
<td valign="top">&lt;title&gt;</td>
<td valign="top">Обязательная тема канала</td>
</tr>
<tr>
<td valign="top">&lt;ttl&gt;</td>
<td valign="top">Время в минутах, в течении которого канал может отображаться из кэша <em>аггрегатора</em></td>
</tr>
<tr>
<td valign="top">&lt;webMaster&gt;</td>
<td valign="top">Адрес электронной почты веб-мастера, не обязательно.</td>
</tr>
</tbody>
</table>
<p>&nbsp;</p>
<table width="100%" cellspacing="0" border="1" class="ex">
<tbody>
<tr colspan="2">
<h4 align="center">Дочерние элементы &lt;item&gt;</h4>
</tr>
<tr>
<th width="30%" valign="top" align="left">Элемент</th>
<th width="70%" valign="top" align="left">Описание</th>
</tr>
<tr>
<td valign="top">&lt;author&gt;</td>
<td valign="top">Название говорит само за себя &#8212; автор, указывать не обязательно</td>
</tr>
<tr>
<td valign="top">&lt;category&gt;</td>
<td valign="top">Категория или категории, куда можно отнести запись. Опционально</td>
</tr>
<tr>
<td valign="top">&lt;comments&gt;</td>
<td valign="top">Ссылка на комментарии к записи. Опционально.</td>
</tr>
<tr>
<td valign="top">&lt;description&gt;</td>
<td valign="top">Обязательное описние записи, то есть само ее содержание</td>
</tr>
<tr>
<td valign="top">&lt;enclosure&gt;</td>
<td valign="top">Существует возможность по желанию сопровождать запись ссылкой на меда-файл так или иначе с ней связанный</td>
</tr>
<tr>
<td valign="top">&lt;guid&gt;</td>
<td valign="top">Уникальный идентификатор элемента</td>
</tr>
<tr>
<td valign="top">&lt;link&gt;</td>
<td valign="top">Обязательная ссылка записи</td>
</tr>
<tr>
<td valign="top">&lt;pubDate&gt;</td>
<td valign="top">Дата публкации. Не обязательно.</td>
</tr>
<tr>
<td valign="top">&lt;source&gt;</td>
<td valign="top">Опциональная ссылка на внешний источник записи</td>
</tr>
<tr>
<td valign="top">&lt;title&gt;</td>
<td valign="top">Обязательный заголовок записи</td>
</tr>
</tbody>
</table>
<p>&nbsp;</p>
<p align="justify">Более подробно о каждом из них можно узнать, ознакомившись со <a href="http://cyber.law.harvard.edu/rss/rss.html">спецификацией на английском</a>. Напоследок хочу напомнить, что вся эта запись представлена лишь для общего понимания принципов организации RSS-документа. На практике в большинстве случаев такие документы генерируются автоматически, о чем и пойдет речь в одной из последующих записей.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.insight-it.ru/set/xml/my-delaem-novosti/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>9 основных правил написания XML</title>
		<link>http://www.insight-it.ru/set/xml/9-osnovnyx-pravil-napisaniya-xml/</link>
		<comments>http://www.insight-it.ru/set/xml/9-osnovnyx-pravil-napisaniya-xml/#comments</comments>
		<pubDate>Sun, 06 Jan 2008 18:53:52 +0000</pubDate>
		<dc:creator>Иван Блинков</dc:creator>
				<category><![CDATA[XML]]></category>
		<category><![CDATA[markup]]></category>
		<category><![CDATA[описание данных]]></category>
		<category><![CDATA[хранение данных]]></category>

		<guid isPermaLink="false">http://www.insight-it.ru/net/xml/9-osnovnyx-pravil-napisaniya-xml/</guid>
		<description><![CDATA[Правила написания XML являются в равной степени простыми и строгими, что делает как ручное составление XML документов, так и написание программ, умеющих анализировать и генерировать XML документы, достаточно несложными задачами. Помимо этого, правильно написанный документ в этом формате говорит сам за себя &#8212; прочитав его не трудно понять о чем речь. В этой записи я [...]]]></description>
			<content:encoded><![CDATA[<p>Правила написания XML являются в равной степени простыми и строгими, что делает как ручное составление XML документов, так и написание программ, умеющих анализировать и генерировать XML документы, достаточно несложными задачами. Помимо этого, правильно написанный документ в этом формате говорит сам за себя &#8212; прочитав его не трудно понять о чем речь.</p>
<p>В этой записи я планирую перечислить и объяснить все 9 правил, с использованием примеров.</p>
<p><span id="more-17"></span></p>
<p>В качестве примера будет использован следующий XML документ, описывающий книгу:</p>
<pre lang="XML">
<xml version="1.0" encoding="UTF-8">
<book>
  <author>R. A. Salvatore</author>
  <text>
    <chapter>Well met!</chapter>
  </text>
</book>
</pre>
<p>Не правда ли легко понять, что речь идет именно о книге?</p>
<h4>Теперь самое подходящее время перейти непосредственно к правилам оформления документов.</h4>
<ol>
<li><strong>Документ должен начинаться с определения типа документа, </strong>содержащее указание версии XML (в нашем случае &#8212; 1.0) и кодировку символов (соответственно &#8212; UTF-8)</li>
<li><strong>Должен содержать ровно один корневой элемент</strong> &#8212; в нашем пимере это &lt;book&gt; &lt;/book&gt;</li>
<li><strong>Каждому открывающему тэгу должен соответствовать один закрывающий.</strong> Как не трудно заметить это правило соблюдается в примере, если Вы привыкли в HTML оставлять тэги открытыми примерно следующим образом:
<pre lang="HTML">

Какой-то текст</pre>
<p>    то изучение XML может стать неплохим поводом отучиться от этой вредной привычки.</li>
<li><strong>XML тэги чувствительны к регистру символов. </strong>Тэги &lt;Book&gt;и &lt;book&gt; считаются разными, запись &lt;Book&gt; &lt;/book&gt; будет считаться ошибочной.</li>
<li><strong>Тэги должны быть расположены строго друг внутри друга. </strong>Продемонстрирую на отдельном примере:
<pre lang="XML">
<book></book>
<book></pre>
</li>
<li><strong>Значения всех атрибутов всегда должны быть заключены в кавычки. </strong>Например:      &lt;title subtitle=&quot;The Dark Elf Trilogy&quot;&gt;Sojourn&lt;/title&gt; &#8212; верно, а &lt;title subtitle=The Dark Elf Trilogy&gt;Sojourn&lt;/title&gt; &#8212; нет.</li>
<li><strong>Последовательно расположенные пробелы не объединяются в один.</strong> Имейте это ввиду, если вы привыкли к HTML.</li>
<li><strong>Конец строки обозначается просто переводом на новою строку, без возврата каретки.</strong> Во многих приложениях для обозначения конца строки используется возврат каретки совместно с переводом на новую строку (<font color="#0000ff">/r/n</font>), в XML же принято для этих целей использовать просто перевод на новую строку (<font color="#0000ff">/n</font>).</li>
<li><strong>Комментарии обозначаются так же как и в HTML:</strong> &lt;!&ndash;&ndash;комментарий&ndash;&ndash;&gt;</li>
</ol>
<p>Как Вы могли уже убедиться этот формат оформления данных представляет собой всего лишь текст, разбавленный некоторым количеством тэгов и следующий простым правилам. Не стоит ожидать от него чего-то большего.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.insight-it.ru/set/xml/9-osnovnyx-pravil-napisaniya-xml/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Что такое XML?</title>
		<link>http://www.insight-it.ru/set/xml/chto-takoe-xml/</link>
		<comments>http://www.insight-it.ru/set/xml/chto-takoe-xml/#comments</comments>
		<pubDate>Sun, 06 Jan 2008 17:18:43 +0000</pubDate>
		<dc:creator>Иван Блинков</dc:creator>
				<category><![CDATA[XML]]></category>
		<category><![CDATA[markup]]></category>
		<category><![CDATA[описание данных]]></category>
		<category><![CDATA[разметка]]></category>
		<category><![CDATA[хранение данных]]></category>

		<guid isPermaLink="false">http://www.insight-it.ru/net/xml/chto-takoe-xml/</guid>
		<description><![CDATA[Если Вам интересен ответ на этот вопрос, то Вам сюда! Ответ на вопрос, заявленный в теме прост до безобразия. Сама аббревиатура XML расшифровывается как eXtensible Markup Language, из чего логически вытекает все остальное. Как и HTML он является языком разметки, но в отличии от HTML, XML предназначен для других целей: он был разработан для описания [...]]]></description>
			<content:encoded><![CDATA[<p>Если Вам интересен ответ на этот вопрос, то Вам сюда!</p>
<p><span id="more-16"></span></p>
<p align="justify">Ответ на вопрос, заявленный в теме прост до безобразия. Сама аббревиатура XML расшифровывается как  e<strong>X</strong>tensible <strong>M</strong>arkup <strong>L</strong>anguage, из чего логически вытекает все остальное.</p>
<p align="justify">Как и HTML он является <em>языком разметки</em>, но в отличии от  HTML, XML предназначен для других целей: он был разработан для <em>описания и хранения данных</em>, когда HTML в основном сосредоточен на определении того, как данные будут отображаться на экране. Еще одним основным отличием является тот факт, XML нет предопределенных тэгов, Вы должны сами определять какие тэги будете использовать.</p>
<p align="justify">XML может использоваться для хранения практически любых типов данных, а его расширяемость позволяет ограничивать варианты его использования лишь фантазией разработчиков. Вот некоторые из них:</p>
<div align="justify">
<ul>
<li>В совокупности с технологией XSL или CSS данные, хранящиеся в XML могут быть представлены как простая веб-страница</li>
<li>XML являться форматом обмена данными между несовместимыми системами, так как он не зависит ни от программного обеспечения, ни от оборудования, на котором хранятся данные</li>
<li>XML может не просто хранить данные, но и дать понять что же эти данные значат</li>
<li>На базе XML может быть построено множество других технологии, из уже получивших широкое распространение можно назвать RSS, WAP и WML.</li>
</ul>
</div>
<p align="justify">Одними из самых наглядных способов увидеть что же из себя представляет XML &#8212; являются <a href="/feed">RSS лента</a> и <a href="/sitemap.xml">карта сайта в XML</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.insight-it.ru/set/xml/chto-takoe-xml/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

