<?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>IN info &#187; Web разработка</title>
	<atom:link href="http://www.ininfo.biz/topics/web/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.ininfo.biz</link>
	<description>Статьи об информационных технологиях</description>
	<lastBuildDate>Sun, 05 Feb 2012 14:57:24 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Как правильно писать телефонный номер на сайте</title>
		<link>http://www.ininfo.biz/2011/01/13/phone-number/</link>
		<comments>http://www.ininfo.biz/2011/01/13/phone-number/#comments</comments>
		<pubDate>Thu, 13 Jan 2011 10:50:58 +0000</pubDate>
		<dc:creator>Иван Никитин</dc:creator>
				<category><![CDATA[Web разработка]]></category>
		<category><![CDATA[Разное]]></category>
		<category><![CDATA[e.164]]></category>
		<category><![CDATA[tel]]></category>
		<category><![CDATA[web разработка]]></category>
		<category><![CDATA[телефонный номер]]></category>

		<guid isPermaLink="false">http://www.ininfo.biz/?p=249</guid>
		<description><![CDATA[На сайте всегда пишите телефон полностью! С кодом страны и кодом города, в соответствии с рекомендацией E.164]]></description>
			<content:encoded><![CDATA[<p>Боюсь увеличить энтропию Вселенной очередной статьей на тему «Как писать номер телефона», но, честно говоря, безграмотное написание телефонных номеров на сайте сильно усложняет мне жизнь.</p>
<p>Но этот счет высказывались все, не исключая Гегемона Дизайна Всея Руси (см. <a href="http://www.artlebedev.ru/kovodstvo/sections/91/" target="_blank">§ 91 Откровений Горнила Мудрости</a>), но все эти экзерсизы подразумевают  технику написания телефонного номера на бумаге, в печатном виде, а сайт — это, прежде всего, не бумага и не полиграфия!</p>
<p>Итак, как всё же правильно указать номер телефона на сайте?</p>
<p><span id="more-249"></span></p>
<p>Я оттолкнусь от очень простого утверждения, что телефон нужен чтобы по нему звонить. Если я вижу нужный мне телефон на экране, я звоню двумя способами:</p>
<ol>
<li>Если экран мобильного — просто щелкаю по ссылке (практически все мобильники умеют выделять телефоны в тексте и делать их ссылками на звонок)<img style="background-image: none; padding-left: 0px; padding-right: 0px; display: inline; padding-top: 0px; border: 0px;" title="IMG_0279" src="http://www.ininfo.biz/images/blog/111b1b18bd9e_97B9/IMG_0279.png" border="0" alt="IMG_0279" width="164" height="244" /></li>
<li>Если это экран настольного компьютера или ноутбука, я копирую интересующий меня телефон или в Заметки, или в «звонилку», типа Skype<img style="background-image: none; padding-left: 0px; padding-right: 0px; display: inline; padding-top: 0px; border: 0px;" title="site" src="http://www.ininfo.biz/images/blog/111b1b18bd9e_97B9/site.png" border="0" alt="site" width="244" height="155" /> <img style="background-image: none; padding-left: 0px; padding-right: 0px; display: inline; padding-top: 0px; border: 0px;" title="note" src="http://www.ininfo.biz/images/blog/111b1b18bd9e_97B9/note.png" border="0" alt="note" width="244" height="174" /></li>
</ol>
<p>Опять же, предполагается что телефон уже написан правильно для звонка. А что будет если позвонить вот по этому телефону?</p>
<p><a rel="nofollow" href="http://www.nyt.ru/"><img style="background-image: none; padding-left: 0px; padding-right: 0px; display: inline; padding-top: 0px; border: 0px;" title="nyt" src="http://www.ininfo.biz/images/blog/111b1b18bd9e_97B9/nyt.png" border="0" alt="nyt" width="244" height="67" /></a></p>
<p>Мы позвоним в страну с кодом +49 — а это Германия!</p>
<p>Точно так же, вставлять «8» или «+7» перед каждым телефонным номером, скопированным или взятым с сайта, всегда бывает утомительным, попробуйте сделать это на мобильнике!</p>
<p><span style="font-size: small;">Отсюда вывод: <strong>на сайте всегда пишите телефон полностью!</strong> С кодом страны и кодом города, в соответствии с рекомендацией </span><a href="http://ru.wikipedia.org/wiki/E.164"><span style="font-size: small;">E.164</span></a><span style="font-size: small;">, то есть вот так, и никак иначе:</span></p>
<p><span style="font-size: large;">+7 (495) 780-48-48</span></p>
]]></content:encoded>
			<wfw:commentRss>http://www.ininfo.biz/2011/01/13/phone-number/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Тестирование сайтов на Internet Explorer 6 или как обойтись без IE6 portable</title>
		<link>http://www.ininfo.biz/2010/09/17/ie6-at-windows7xp-mode/</link>
		<comments>http://www.ininfo.biz/2010/09/17/ie6-at-windows7xp-mode/#comments</comments>
		<pubDate>Fri, 17 Sep 2010 06:50:15 +0000</pubDate>
		<dc:creator>Иван Никитин</dc:creator>
				<category><![CDATA[Web разработка]]></category>
		<category><![CDATA[IE6]]></category>
		<category><![CDATA[Internet Explorer 6]]></category>
		<category><![CDATA[windows 7]]></category>
		<category><![CDATA[xp mode]]></category>

		<guid isPermaLink="false">http://www.ininfo.biz/?p=210</guid>
		<description><![CDATA[Невероятно просто можно установить ЛЮБУЮ ВЕРСИЮ ЛЮБОГО БРАУЗЕРА в Windows 7 и пользоваться им для тестирования сайтов.]]></description>
			<content:encoded><![CDATA[<p>При разработке сайта HTML верстальщики часто проверяют свою работу в Internet Explorer 6, так как особенности этого мерзкого браузера могут свести «на нет» всю компоновку страницы. Правда сейчас всё меньше и меньше сайтов подгоняются под IE6, но по данным <a rel="nofollow" href="http://www.liveinternet.ru/stat/ru/browsers.html?period=month" target="_blank">статистики того же Liveinternet</a> около 6% пользователей по-прежнему используют этот жутко устаревший браузер.</p>
<p>Обычно для тестов разработчики сайтов устанавливают себе в систему т.н. IE6 portable, или прибегают к различным ухищрениям, чтобы установить его параллельно с другими версиями Internet Explorer. Здесь я расскажу как невероятно просто можно установить ЛЮБУЮ ВЕРСИЮ ЛЮБОГО БРАУЗЕРА в Windows 7 и пользоваться им для тестирования сайтов.</p>
<p><span id="more-210"></span></p>
<p>В состав Windows 7 входит изумительное средство: <a href="http://ivan-nikitin.spaces.live.com/blog/cns!B1CBCA6B7D433991!4828.entry" target="_blank">Windows Virtual PC / XP Mode</a>. Это виртуальная машина, позволяющая запускать любые версии операционных систем и готовый образ виртуальной машины под управлением Windows XP SP3. Последний используется для запуска устаревших программ в основной системе, то есть любая программа, штатно установленная в виртуальную машину XP, может запускаться из основной системы прямо значком в меню Пуск Windows 7.</p>
<p>Понятно, в саму Windows XP уже входит IE6 во всей своей «красе». Правда он не отображается в списке приложений XP Mode в Windows 7, но это очень легко поправить.</p>
<p>Итак, <a href="http://www.microsoft.com/rus/windows/virtual-pc/" target="_blank">устанавливайте и запускайте виртуальную машину XP Mode</a>, и, когда откроется окно виртуальной машины просто откройте в ней папку:<br />
«C:\Documents and Settings\All Users\Главное меню»</p>
<p>Скопируйте в эту папку ярлык на Internet Explorer, который есть в меню Пуск виртуальной машины. Завершайте сеанс (Пуск —&gt; Завершение работы —&gt; Выйти из системы) пользователя виртуальной машины и закрывайте виртуальную машину.</p>
<p>Всё! Через секунду в Windows 7 появится в меню<br />
Пуск —&gt; Все прораммы —&gt; Windows Virtual PC —&gt; Приложения Windows XP Mode —&gt; Internet Explorer 6</p>
<p>Готово, запускаем браузер прямо в Windows 7:</p>
<p><img style="display: inline;" title="ie6 publish" src="http://www.ininfo.biz/images/blog/InternetExplorere6_8F8C/ie6publish.png" alt="ie6 publish" width="640" height="464" /></p>
<p>Вот и всё! И никаких лишних телодвижений <img class="wlEmoticon wlEmoticon-smile" style="border-style: none;" src="http://www.ininfo.biz/images/blog/InternetExplorere6_8F8C/wlEmoticonsmile.png" alt="Улыбка" /> Удачи Вам!</p>
<div id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:a47e301b-7e92-406b-85e1-242ee2a95149" class="wlWriterEditableSmartContent" style="margin: 0px; display: inline; float: none; padding: 0px;">Technorati Теги: <a rel="tag" href="http://technorati.com/tags/Internet+Explorer+6">Internet Explorer 6</a>,<a rel="tag" href="http://technorati.com/tags/IE6">IE6</a>,<a rel="tag" href="http://technorati.com/tags/windows+7">windows 7</a>,<a rel="tag" href="http://technorati.com/tags/xp+mode">xp mode</a></div>
]]></content:encoded>
			<wfw:commentRss>http://www.ininfo.biz/2010/09/17/ie6-at-windows7xp-mode/feed/</wfw:commentRss>
		<slash:comments>20</slash:comments>
		</item>
		<item>
		<title>Автоматическое формирование XML Sitemap в CMS s.Builder</title>
		<link>http://www.ininfo.biz/2010/08/16/sbuilder-xml-sitemap/</link>
		<comments>http://www.ininfo.biz/2010/08/16/sbuilder-xml-sitemap/#comments</comments>
		<pubDate>Mon, 16 Aug 2010 11:09:59 +0000</pubDate>
		<dc:creator>Иван Никитин</dc:creator>
				<category><![CDATA[s.Builder]]></category>
		<category><![CDATA[Web разработка]]></category>
		<category><![CDATA[XML]]></category>
		<category><![CDATA[sitemap]]></category>

		<guid isPermaLink="false">http://www.ininfo.biz/?p=141</guid>
		<description><![CDATA[Здесь мы рассмотрим формирование карты сайта на основе данных модуля «Навигация» — одного из основных модулей системы, но s.Builder невероятно гибкая система и построить карту сайта можно на базе данных любого из модулей системы или их произвольной комбинации по приведенному ниже алгоритму.]]></description>
			<content:encoded><![CDATA[<p><img style="margin: 0px 10px 10px 0px; display: inline; border-width: 0px;" title="CMS s.Builder" src="http://www.ininfo.biz/images/blog/XMLSitemapCMSs.Builder_A803/sbuilder.logo.png" border="0" alt="CMS s.Builder" width="213" height="62" align="left" /></p>
<p><a title="Описание протокола XML Sitemap" href="http://sitemaps.org/ru/protocol.php" target="_blank">Формат XML Sitemap</a> сегодня очень активно используется для ускорения индексации поисковыми роботами страниц сайта. И в рекомендациях поисковых машин часто содержится совет обязательно использовать эту возможность. Конечно же, создать XML карту сайта для своего ресурса можно и с помощью <a title="XML Sitemap generator" href="http://www.xml-sitemaps.com/" target="_blank">автоматических средств</a> или просто руками в блокноте. Но если на сайте множество страниц и они часто меняются, содержать XML карту сайта в актуальном состоянии бывает проблематично.</p>
<p>Далеко не любая CMS умеет генерировать карты сайта, что называется, прямо из коробки, но здесь мы рассмотрим <strong>очень простой способ</strong> как это сделать в <a title="CMS s.Builder 4 — лучшая система управления контентом в России" href="http://www.sbuilder.ru/" target="_blank">CMS s.Builder 4</a>.</p>
<p>Здесь мы рассмотрим формирование карты сайта на основе данных модуля «Навигация» — одного из основных модулей системы, но s.Builder невероятно гибкая система и построить карту сайта можно на базе данных любого из модулей системы или их произвольной комбинации по приведенному ниже алгоритму.</p>
<p><span id="more-141"></span></p>
<h2>Модуль навигации s.Builder</h2>
<p>Подготовим данные, то есть сформируем одно или несколько меню сайта. Это можно сделать в панели управления CMS:<br />
<strong>Меню пользователя –&gt; Навигация по сайту</strong></p>
<p><a href="http://www.ininfo.biz/images/blog/XMLSitemapCMSs.Builder_A803/1sitenavigation.png" rel="lightbox[141]"><img style="display: inline; border-width: 0px;" title="Меню сайта" src="http://www.ininfo.biz/images/blog/XMLSitemapCMSs.Builder_A803/1sitenavigation_thumb.png" border="0" alt="Меню сайта" width="244" height="236" /></a></p>
<p>Теперь необходимо создать еще один макет вывода меню в формате XML Sitemap. Это можно сделать здесь:<br />
<strong>Меню разработчика –&gt; Макеты дизайна компонентов –&gt; Навигация по сайту –&gt; Вывод меню</strong></p>
<p>Добавляем еще один макет и называем его «Формирование XML sitemap»</p>
<p><a href="http://www.ininfo.biz/images/blog/XMLSitemapCMSs.Builder_A803/2maketdesign.png" rel="lightbox[141]"><img style="display: inline; border-width: 0px;" title="Макет дизайна меню" src="http://www.ininfo.biz/images/blog/XMLSitemapCMSs.Builder_A803/2maketdesign_thumb.png" border="0" alt="Макет дизайна меню" width="244" height="216" /></a></p>
<p>Содержимое макета очень простое:</p>
<p>1-й уровень, Верх:</p>

<div class="wp_syntax"><div class="code"><pre class="xml" style="font-family:monospace;color: black;"><span style="color: #808080; font-style: italic;">&lt;!-- XML Sitemap Generator: s.Builder 4 --&gt;</span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;color: blue;">&lt;urlset</span> <span style="color: #000066;">xmlns</span>=<span style="color: #ff0000;color: gray;">&quot;http://www.sitemaps.org/schemas/sitemap/0.9&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span></pre></div></div>

<p>1-й уровень, Пункт с подпунктами:</p>

<div class="wp_syntax"><div class="code"><pre class="xml" style="font-family:monospace;color: black;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;color: blue;">&lt;url<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>  <span style="color: #808080; font-style: italic;">&lt;!-- {TEXT} --&gt;</span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;color: blue;">&lt;loc<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>http://www.site.ru{URL}<span style="color: #009900;"><span style="color: #000000; font-weight: bold;color: blue;">&lt;/loc<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;color: blue;">&lt;/url<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
{SUB_ITEMS}</pre></div></div>

<p>1-й уровень, Пункт с подпунктами (выбранный) – аналогично пункту выше</p>
<p>1-й уровень, Пункт без подпунктов: и Пункт без подпунктов (выбранный)</p>

<div class="wp_syntax"><div class="code"><pre class="xml" style="font-family:monospace;color: black;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;color: blue;">&lt;url<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>  <span style="color: #808080; font-style: italic;">&lt;!-- {TEXT} --&gt;</span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;color: blue;">&lt;loc<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>http://www.site.ru{URL}<span style="color: #009900;"><span style="color: #000000; font-weight: bold;color: blue;">&lt;/loc<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;color: blue;">&lt;/url<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></pre></div></div>

<p>1-й уровень. Низ</p>

<div class="wp_syntax"><div class="code"><pre class="xml" style="font-family:monospace;color: black;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;color: blue;">&lt;/urlset<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></pre></div></div>

<p>Далее, нажимая кнопку [+] (добавить уровень), добавляем столько уровней, сколько уровней вложенности у вас в меню. Можно даже один лишний добавить, на всякий случай.</p>
<p>Теперь переходим на 2-й уровень и нажимаем кнопку [Копировать предыдущий уровень]. <strong>Важно! На втором уровне стираем код «Верх» и «Низ»!</strong></p>
<p>Переходим на третий уровень и нажимаем кнопку [Копировать предыдущий уровень]. Уже ничего стирать не нужно, так как «Верх» и «Низ» очищены на втором уровне. И так далее, делаем на всех уровнях от второго и далее.</p>
<p>Всё! Макет дизайна вывода сделан. Нажимаем кнопку [Сохранить]</p>
<h2>Макет дизайна страницы</h2>
<p>Переходим на макеты дизайна сайта</p>
<p><strong>Меню разработчика –&gt; Макеты дизайна сайта</strong></p>
<p>Создаем очень простой макет и называем его “Простой вывод”. Весь макет состоит из одного элемента:</p>

<div class="wp_syntax"><div class="code"><pre class="xml" style="font-family:monospace;color: black;">{CONTENT}</pre></div></div>

<p><a href="http://www.ininfo.biz/images/blog/XMLSitemapCMSs.Builder_A803/3maketdesign.png" rel="lightbox[141]"><img style="display: inline; border: 0px;" title="Макет дизайна страницы" src="http://www.ininfo.biz/images/blog/XMLSitemapCMSs.Builder_A803/3maketdesign_thumb.png" border="0" alt="Макет дизайна страницы" width="244" height="193" /></a></p>
<p>Сохраняем его, нажав кнопку [Сохранить]</p>
<h2>Страница карты сайта</h2>
<p>Переходим на управление страницами и в корне сайта создаем новую страницу, называем её sitemap.php и указываем в качестве макета «Простой вывод». Нажимаем на кнопку [Применить] и переключаемся на закладку «Связанные компоненты». В выпадающем списке выбираем вывод меню и переходим на страницу свойств компонента (нажимаем «шестерёнку» справа). На закладке «Меню» выбираем наше меню, а на закладке «Свойства» — в качестве макета дизайна выбираем «Формирование XML sitemap».</p>
<p><a href="http://www.ininfo.biz/images/blog/XMLSitemapCMSs.Builder_A803/4pagesettings.png" rel="lightbox[141]"><img style="display: inline; border: 0px;" title="Настройка компонента на странице" src="http://www.ininfo.biz/images/blog/XMLSitemapCMSs.Builder_A803/4pagesettings_thumb.png" border="0" alt="Настройка компонента на странице" width="244" height="131" /></a></p>
<p>Нажимаем [Сохранить].</p>
<p>И последний, но очень важный шаг: переключаемся в настройках страницы на закладку [Дополнительно] и прописываем в поле «Content-Type» строку «text/xml; charset=UTF-8»</p>
<p><a href="http://www.ininfo.biz/images/blog/XMLSitemapCMSs.Builder_A803/5contenttype.png" rel="lightbox[141]"><img style="display: inline; border: 0px;" title="Content-type" src="http://www.ininfo.biz/images/blog/XMLSitemapCMSs.Builder_A803/5contenttype_thumb.png" border="0" alt="Content-type" width="244" height="41" /></a></p>
<p>Всё! Сохраняем страницу, нажав на кнопку “Сохранить” и смотрим результат! XML карта сайта формируется на основе меню. То есть, если вы добавите в навигацию новую страницу, или измените существующую, это автоматически отобразится в карте сайта.</p>
<p>Совершенно аналогично можно сделать вывод данных в любом формате, включая XML Sitemap из любого модуля системы.</p>
<div id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:af1de63b-6b98-4310-9db5-b17b39808595" class="wlWriterSmartContent" style="margin: 0px; display: inline; float: none; padding: 0px;">Technorati Теги: <a rel="tag" href="http://technorati.com/tags/s.builder.+xml+sitemap">s.builder. xml sitemap</a></div>
]]></content:encoded>
			<wfw:commentRss>http://www.ininfo.biz/2010/08/16/sbuilder-xml-sitemap/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>10 главных ошибок RSS</title>
		<link>http://www.ininfo.biz/2009/02/23/rss-errors/</link>
		<comments>http://www.ininfo.biz/2009/02/23/rss-errors/#comments</comments>
		<pubDate>Mon, 23 Feb 2009 19:31:21 +0000</pubDate>
		<dc:creator>Иван Никитин</dc:creator>
				<category><![CDATA[Web разработка]]></category>
		<category><![CDATA[XML]]></category>
		<category><![CDATA[rss]]></category>
		<category><![CDATA[web разработка]]></category>
		<category><![CDATA[ошибки]]></category>

		<guid isPermaLink="false">http://www.ininfo.biz/?p=101</guid>
		<description><![CDATA[Сегодня RSS используется очень и очень часто, и все больше пользователей начинают ценить этот великолепный инструмент получения свежих новостей. И, конечно же, очень многие сайты предоставляют свои RSS-каналы пользователям. Но, к сожалению, нередко в этих каналах встречаются досадные ошибки, которые сводят «на нет» всё удобство и прелесть RSS. Здесь мы рассмотрим наиболее «популярные» ошибки, встречаемые нами на различных ресурсах.]]></description>
			<content:encoded><![CDATA[<p align="justify"><img style="border-right: 0px; border-top: 0px; display: inline; margin: 0px 0px 10px 10px; border-left: 0px; border-bottom: 0px" title="RSS icon" src="http://www.ininfo.biz/images/blog/10RSS_12532/rssicon.png" border="0" alt="RSS icon" width="73" height="97" align="right" /> Сегодня RSS используется очень и очень часто, и все больше пользователей начинают ценить этот великолепный инструмент получения свежих новостей. И, конечно же, очень многие сайты предоставляют свои RSS-каналы пользователям. Но, к сожалению, нередко в этих каналах встречаются досадные ошибки, которые сводят «на нет» всё удобство и прелесть RSS. Здесь мы рассмотрим наиболее «популярные» ошибки, встречаемые нами на различных ресурсах.</p>
<p><span id="more-101"></span></p>
<h3>1. Синтаксические ошибки RSS потока</h3>
<p align="justify">Многие разработчики забывают о том, что RSS — это, прежде всего, XML. А XML-документы изначально «не прощают» ошибки, так как большинство XML анализаторов работают по принципу: «Или этот XML документ не нарушает синтаксис, или это не XML». В отличие от HTML, DOM анализатор обязан отказаться от разбора XML документа, если в документе есть ошибки. Поэтому контролировать синтаксис своего RSS просто необходимо! Существуют множество инструментов для проверки RSS-каналов, но, пожалуй, самый популярный — <a href="http://feedvalidator.org/" target="_blank">http://feedvalidator.org/</a></p>
<p align="justify"><em>Рекомендация</em>: используйте RSS агрегатор, чувствительный к ошибкам. Многие RSS агрегаторы могут игнорировать ошибки, используя не XML DOM парсер (который, как мы отметили, обязан отказаться от анализа в случае ошибки), а свои собственные, но большинство всё же используют именно DOM парсер. Вот пример такого агрегатора: <a href="http://rssbandit.org/" target="_blank">RSS Bandit</a>. Установите этот бесплатный агрегатор к себе на компьютер и подпишитесь в нём на собственный RSS канал. Если у вас возникнут ошибки, вы узнаете о них первым!</p>
<h3>2. Использование спец.символов HTML в заголовках или описаниях элементов RSS</h3>
<p align="justify">Очень распространенная ошибка! Веб-мастера очень привыкли использовать так называемые спец. символы типа &amp;nbsp; &amp;quot; и др. Ну и понятно, если RSS лента генерируется автоматически (что бывает в 99.9% случаев), то такие символы попадают в заголовок элемента или в его описание, например:</p>

<div class="wp_syntax"><div class="code"><pre class="xml" style="font-family:monospace;color: black;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;color: blue;">&lt;item<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
	<span style="color: #009900;"><span style="color: #000000; font-weight: bold;color: blue;">&lt;title<span style="color: #000000; font-weight: bold;">&gt;</span></span></span><span style="color: #ddbb00;">&amp;nbsp;</span>Вот моя <span style="color: #ddbb00;">&amp;quot;</span>новость<span style="color: #ddbb00;">&amp;quot;</span><span style="color: #009900;"><span style="color: #000000; font-weight: bold;color: blue;">&lt;/title<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
	<span style="color: #009900;"><span style="color: #000000; font-weight: bold;color: blue;">&lt;pubDate<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>Thu, 19 Feb 2009 09:00:47 +0300<span style="color: #009900;"><span style="color: #000000; font-weight: bold;color: blue;">&lt;/pubDate<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
	<span style="color: #009900;"><span style="color: #000000; font-weight: bold;color: blue;">&lt;link<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>http://www.mysite.ru/item1<span style="color: #009900;"><span style="color: #000000; font-weight: bold;color: blue;">&lt;/link<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
	<span style="color: #009900;"><span style="color: #000000; font-weight: bold;color: blue;">&lt;description<span style="color: #000000; font-weight: bold;">&gt;</span></span></span><span style="color: #ddbb00;">&amp;nbsp;</span>Это моя <span style="color: #ddbb00;">&amp;quot;</span>новость<span style="color: #ddbb00;">&amp;quot;</span><span style="color: #009900;"><span style="color: #000000; font-weight: bold;color: blue;">&lt;/description<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
	<span style="color: #009900;"><span style="color: #000000; font-weight: bold;color: blue;">&lt;guid<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>http://www.mysite.ru/item1<span style="color: #009900;"><span style="color: #000000; font-weight: bold;color: blue;">&lt;/guid<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;color: blue;">&lt;/item<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></pre></div></div>

<p align="justify">Формально &amp;nbsp; и другие сущности не определены в XML разметке, что приводит к неизбежным ошибкам вашей ленты. Как этого избежать?</p>
<p align="justify"><em>Рекомендация 1</em>: Если вы используете автоматическую генерацию RSS, заключайте содержимое элементов title и description в секции CDATA, например:</p>

<div class="wp_syntax"><div class="code"><pre class="xml" style="font-family:monospace;color: black;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;color: blue;">&lt;item<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
	<span style="color: #009900;"><span style="color: #000000; font-weight: bold;color: blue;">&lt;title<span style="color: #000000; font-weight: bold;">&gt;</span></span></span><span style="color: #339933;">&lt;![CDATA[[&amp;nbsp;Вот моя &amp;quot;новость&amp;quot;]]&gt;</span><span style="color: #009900;"><span style="color: #000000; font-weight: bold;color: blue;">&lt;/title<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
	<span style="color: #009900;"><span style="color: #000000; font-weight: bold;color: blue;">&lt;pubDate<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>Thu, 19 Feb 2009 09:00:47 +0300<span style="color: #009900;"><span style="color: #000000; font-weight: bold;color: blue;">&lt;/pubDate<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
	<span style="color: #009900;"><span style="color: #000000; font-weight: bold;color: blue;">&lt;link<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>http://www.mysite.ru/item1<span style="color: #009900;"><span style="color: #000000; font-weight: bold;color: blue;">&lt;/link<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
	<span style="color: #009900;"><span style="color: #000000; font-weight: bold;color: blue;">&lt;description<span style="color: #000000; font-weight: bold;">&gt;</span></span></span><span style="color: #339933;">&lt;![CDATA[[&amp;nbsp;Это моя &amp;quot;новость&amp;quot;]]&gt;</span><span style="color: #009900;"><span style="color: #000000; font-weight: bold;color: blue;">&lt;/description<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
	<span style="color: #009900;"><span style="color: #000000; font-weight: bold;color: blue;">&lt;guid<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>http://www.mysite.ru/item1<span style="color: #009900;"><span style="color: #000000; font-weight: bold;color: blue;">&lt;/guid<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;color: blue;">&lt;/item<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></pre></div></div>

<p align="justify"><em>Рекомендация 2</em>: Вообще-то, может быть имеет смысл выглянуть в окошко и заметить, что на дворе уже как 9-й год идёт во всю XXI век, век юникода. И также имеет смысл не заменять специальные символы на их HTML-представление, а просто их использовать в своих текстах. Например, если вам нужны кавычки, просто набирайте их в своей ленте (это символы набираются как Alt+0171 и Alt+0187):</p>

<div class="wp_syntax"><div class="code"><pre class="xml" style="font-family:monospace;color: black;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;color: blue;">&lt;item<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
	<span style="color: #009900;"><span style="color: #000000; font-weight: bold;color: blue;">&lt;title<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>Вот моя «новость»<span style="color: #009900;"><span style="color: #000000; font-weight: bold;color: blue;">&lt;/title<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
	<span style="color: #009900;"><span style="color: #000000; font-weight: bold;color: blue;">&lt;pubDate<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>Thu, 19 Feb 2009 09:00:47 +0300<span style="color: #009900;"><span style="color: #000000; font-weight: bold;color: blue;">&lt;/pubDate<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
	<span style="color: #009900;"><span style="color: #000000; font-weight: bold;color: blue;">&lt;link<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>http://www.mysite.ru/item1<span style="color: #009900;"><span style="color: #000000; font-weight: bold;color: blue;">&lt;/link<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
	<span style="color: #009900;"><span style="color: #000000; font-weight: bold;color: blue;">&lt;description<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>Это моя «новость»<span style="color: #009900;"><span style="color: #000000; font-weight: bold;color: blue;">&lt;/description<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
	<span style="color: #009900;"><span style="color: #000000; font-weight: bold;color: blue;">&lt;guid<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>http://www.mysite.ru/item1<span style="color: #009900;"><span style="color: #000000; font-weight: bold;color: blue;">&lt;/guid<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;color: blue;">&lt;/item<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></pre></div></div>

<p>Если нужен неразрывный пробел — просто его поставьте как символ Alt+0160 (U+ 00A0)</p>
<p>Более подробно см. здесь:</p>
<ul>
<li><a href="http://ru.wikipedia.org/wiki/Пробел" target="_blank">http://ru.wikipedia.org/wiki/Пробел</a></li>
<li><a href="http://ru.wikipedia.org/wiki/Юникод">http://ru.wikipedia.org/wiki/Юникод</a></li>
<li><a href="http://ru.wikipedia.org/wiki/Символы,_представленные_в_Юникоде">http://ru.wikipedia.org/wiki/Символы,_представленные_в_Юникоде</a></li>
</ul>
<h3>3. HTML теги в description</h3>
<p align="justify">Самый распространенный случай! Вообще-то, это — не ошибка, но всё же, неточность. Формально, элемент description — это краткое текстовое описание вашей новости. Мы знаем, что HTML и XML не совместимы просто синтаксически (XHTML — пожалуйста, но не HTML), и прямое использование HTML в description формально нарушает грамматику RSS. Поэтому <a href="http://www.rssboard.org/rss-specification#hrelementsOfLtitemgt" target="_blank">в спецификации RSS</a> читаем: «<em>допускается использование только экранированной разметки HTML» </em>(«An item may also be complete in itself, if so, the description contains the text (<strong>entity-encoded HTML</strong> is allowed)»)</p>

<div class="wp_syntax"><div class="code"><pre class="xml" style="font-family:monospace;color: black;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;color: blue;">&lt;description<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>this is <span style="color: #ddbb00;">&amp;lt;</span>b<span style="color: #ddbb00;">&amp;gt;</span>bold<span style="color: #ddbb00;">&amp;lt;</span>/b<span style="color: #ddbb00;">&amp;gt;</span><span style="color: #009900;"><span style="color: #000000; font-weight: bold;color: blue;">&lt;/description<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></pre></div></div>

<p align="justify">Но, всё же, я не рекомендую так поступать. Дело в том, что есть агрегаторы, которые считают содержимое элемента description текстом и выводят его как текст, не воспринимая его внутреннюю разметку. И в результате пользователь увидит примерно следующее:</p>
<p align="center">this is &amp;lt;b&amp;gt;bold&amp;lt;/b&amp;gt;</p>
<p align="justify">Понятно, такой текст прочитать невозможно. Я однажды озадачился идеей поставить себе скринсейвер Windows, который бы показывал новости из RSS потоков. И в результате я отказался от этой идеи — они все показывали новость именно в таком виде!</p>
<p><em>Рекомендация</em>: В элементе description используйте только текст. А форматированный текст пишите, используя расширения <a href="http://web.resource.org/rss/1.0/modules/content/" target="_blank">RDF Site Summary Modules</a>, например, вот так (обратите внимание на объявление пространства имен с префиксом content):</p>

<div class="wp_syntax"><div class="code"><pre class="xml" style="font-family:monospace;color: black;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;color: blue;">&lt;rss</span> <span style="color: #000066;">version</span>=<span style="color: #ff0000;color: gray;">&quot;2.0&quot;</span></span>
<span style="color: #009900;">	<span style="color: #000066;">xmlns:content</span>=<span style="color: #ff0000;color: gray;">&quot;http://purl.org/rss/1.0/modules/content/&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
	<span style="color: #009900;"><span style="color: #000000; font-weight: bold;color: blue;">&lt;channel<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
	<span style="color: #808080; font-style: italic;">&lt;!-- ... --&gt;</span>
		<span style="color: #009900;"><span style="color: #000000; font-weight: bold;color: blue;">&lt;item<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
			<span style="color: #009900;"><span style="color: #000000; font-weight: bold;color: blue;">&lt;title<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>Вот моя «новость»<span style="color: #009900;"><span style="color: #000000; font-weight: bold;color: blue;">&lt;/title<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
			<span style="color: #009900;"><span style="color: #000000; font-weight: bold;color: blue;">&lt;pubDate<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>Thu, 19 Feb 2009 09:00:47 +0300<span style="color: #009900;"><span style="color: #000000; font-weight: bold;color: blue;">&lt;/pubDate<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
			<span style="color: #009900;"><span style="color: #000000; font-weight: bold;color: blue;">&lt;link<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>http://www.mysite.ru/item1<span style="color: #009900;"><span style="color: #000000; font-weight: bold;color: blue;">&lt;/link<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
			<span style="color: #009900;"><span style="color: #000000; font-weight: bold;color: blue;">&lt;description<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>Это моя «новость»<span style="color: #009900;"><span style="color: #000000; font-weight: bold;color: blue;">&lt;/description<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
			<span style="color: #009900;"><span style="color: #000000; font-weight: bold;color: blue;">&lt;guid<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>http://www.mysite.ru/item1<span style="color: #009900;"><span style="color: #000000; font-weight: bold;color: blue;">&lt;/guid<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
			<span style="color: #808080; font-style: italic;">&lt;!-- Здесь полный и HTML форматированный текст элемента --&gt;</span>
			<span style="color: #009900;"><span style="color: #000000; font-weight: bold;color: blue;">&lt;content:encoded<span style="color: #000000; font-weight: bold;">&gt;</span></span></span><span style="color: #339933;">&lt;![CDATA[&lt;p&gt;What a &lt;em&gt;beautiful&lt;/em&gt; day!&lt;/p&gt;]]&gt;</span><span style="color: #009900;"><span style="color: #000000; font-weight: bold;color: blue;">&lt;/content:encoded<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
		<span style="color: #009900;"><span style="color: #000000; font-weight: bold;color: blue;">&lt;/item<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
	<span style="color: #808080; font-style: italic;">&lt;!-- ... --&gt;</span>
	<span style="color: #009900;"><span style="color: #000000; font-weight: bold;color: blue;">&lt;/channel<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;color: blue;">&lt;/rss<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></pre></div></div>

<p align="justify">Такой способ понимается практически всеми RSS агрегаторами (мне известен только один распространенный агрегатор, который не понимает такое расширение — встроенный в FireFox)</p>
<h3>4. Неправильная разметка в HTML</h3>
<p align="justify">При представлении форматированного текста в RSS многие Веб-мастера пытаются перенести в RSS элемент чуть ли не весь дизайн своего сайта. Так вот, этого делать не следует. Дело в том, что каждый RSS агрегатор отображает элементы RSS по-своему, и вы не знаете, каким именно агрегатором будет пользоваться ваш пользователь: это может быть и desktop-агрегатор, такой как RSS bandit, и online-агрегатор, как Goole Reader или Яндекс.Лента, или вообще агрегатор на мобильном телефоне. У каждого из них свои возможности, и ваша красивая верстка колонками может просто не вписаться в экран пользователя.</p>
<p><em>Рекомендация</em>: используйте следующие простые правила:</p>
<ol>
<li>Никогда не фиксируйте ширину текста своего элемента — пусть текст заполняет все доступное пространство</li>
<li>Никогда явно не указывайте размер шрифта в абсолютных единицах, например, px, pt. Лучше использовать либо em, ex, или относительные размеры, например, 80%</li>
<li>Никогда явно не указывайте цвет фона и желательно не указывайте цвет шрифта (ссылок и т.п.). У агрегатора может быть свой фон (например, темный) и указанный вами цвет шрифта начнет с ним сливаться.</li>
<li>Никогда не используйте колонки текста, опять же — представление текста отдайте на откуп агрегатору</li>
</ol>
<h3>5. Неправильное расширение RSS</h3>
<p align="justify">Как и любой язык, базирующийся на XML, RSS великолепно расширяется. Но следует с осторожностью к этому относиться, так как никакие ваши собственные расширения не будут правильно понятыми практически всеми стандартными агрегаторами.</p>
<p>Например, вот <a href="http://www.rosbalt.ru/backend/newsfull.rss" target="_blank">фрагмент RSS</a> известного новостного сайта <a href="http://www.rosbalt.ru/" target="_blank">Росбалт</a>:</p>

<div class="wp_syntax"><div class="code"><pre class="xml" style="font-family:monospace;color: black;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;color: blue;">&lt;item<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
	<span style="color: #009900;"><span style="color: #000000; font-weight: bold;color: blue;">&lt;title<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>По делу грабителей, похитивших 43 млн рублей, проверяет лиц, знавших о сделке<span style="color: #009900;"><span style="color: #000000; font-weight: bold;color: blue;">&lt;/title<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
	<span style="color: #009900;"><span style="color: #000000; font-weight: bold;color: blue;">&lt;link<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>http://www.rosbalt.ru/2009/02/23/620591.html<span style="color: #009900;"><span style="color: #000000; font-weight: bold;color: blue;">&lt;/link<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
	<span style="color: #009900;"><span style="color: #000000; font-weight: bold;color: blue;">&lt;category</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
	<span style="color: #009900;"><span style="color: #000000; font-weight: bold;color: blue;">&lt;section<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>Главная лента<span style="color: #009900;"><span style="color: #000000; font-weight: bold;color: blue;">&lt;/section<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
	<span style="color: #009900;"><span style="color: #000000; font-weight: bold;color: blue;">&lt;pubDate<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>Mon, 23 Feb 2009 19:42:00 +0300<span style="color: #009900;"><span style="color: #000000; font-weight: bold;color: blue;">&lt;/pubDate<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
	<span style="color: #009900;"><span style="color: #000000; font-weight: bold;color: blue;">&lt;full-text<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>МОСКВА, 23 февраля. Следователи в рамках уголовного ....<span style="color: #009900;"><span style="color: #000000; font-weight: bold;color: blue;">&lt;/full-text<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;color: blue;">&lt;/item<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></pre></div></div>

<p align="justify">Легко увидеть, что, с одной стороны, разработчики «забыли» про обязательный элемент description, но добавили свои элементы section и full-text, чем формально нарушили стандарт.</p>
<p align="justify">Читаем в спецификации: «<em>Канал RSS 2.0 может содержать элементы и атрибуты, не упомянутые на этой странице, только если они определены в своих пространствах имен.</em>»</p>
<p align="justify">То есть, в данном случае мы можем решить эту проблему следующим образом: полный текст вынести на элемент content:encoded как рекомендовано в совете №3, а раздел новости указать хотя бы так:</p>

<div class="wp_syntax"><div class="code"><pre class="xml" style="font-family:monospace;color: black;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;color: blue;">&lt;rss</span> <span style="color: #000066;">version</span>=<span style="color: #ff0000;color: gray;">&quot;2.0&quot;</span></span>
<span style="color: #009900;">	<span style="color: #000066;">xmlns:content</span>=<span style="color: #ff0000;color: gray;">&quot;http://purl.org/rss/1.0/modules/content/&quot;</span></span>
<span style="color: #009900;">	<span style="color: #000066;">xmlns:rosbalt</span>=<span style="color: #ff0000;color: gray;">&quot;http://www.rosbalt.ru/my-rss-schema&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
	<span style="color: #009900;"><span style="color: #000000; font-weight: bold;color: blue;">&lt;channel<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
		<span style="color: #009900;"><span style="color: #000000; font-weight: bold;color: blue;">&lt;item<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
			<span style="color: #009900;"><span style="color: #000000; font-weight: bold;color: blue;">&lt;title<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>По делу грабителей, похитивших 43 млн рублей, проверяет лиц, знавших о сделке<span style="color: #009900;"><span style="color: #000000; font-weight: bold;color: blue;">&lt;/title<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
			<span style="color: #009900;"><span style="color: #000000; font-weight: bold;color: blue;">&lt;link<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>http://www.rosbalt.ru/2009/02/23/620591.html<span style="color: #009900;"><span style="color: #000000; font-weight: bold;color: blue;">&lt;/link<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
			<span style="color: #009900;"><span style="color: #000000; font-weight: bold;color: blue;">&lt;category</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
			<span style="color: #009900;"><span style="color: #000000; font-weight: bold;color: blue;">&lt;rosbalt:section<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>Главная лента<span style="color: #009900;"><span style="color: #000000; font-weight: bold;color: blue;">&lt;/rosbalt:section<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
			<span style="color: #009900;"><span style="color: #000000; font-weight: bold;color: blue;">&lt;pubDate<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>Mon, 23 Feb 2009 19:42:00 +0300<span style="color: #009900;"><span style="color: #000000; font-weight: bold;color: blue;">&lt;/pubDate<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
			<span style="color: #009900;"><span style="color: #000000; font-weight: bold;color: blue;">&lt;content:encoded<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>МОСКВА, 23 февраля. ....<span style="color: #009900;"><span style="color: #000000; font-weight: bold;color: blue;">&lt;/content:encoded<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
		<span style="color: #009900;"><span style="color: #000000; font-weight: bold;color: blue;">&lt;/item<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
	<span style="color: #009900;"><span style="color: #000000; font-weight: bold;color: blue;">&lt;/channel<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;color: blue;">&lt;/rss<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></pre></div></div>

<p>Здесь мы ввели свое пространство имен и элемент section вынесли в него.</p>
<p align="justify"><em>Рекомендация</em>: при расширении RSS своими элементами всегда объявляйте свои пространства имен или используйте существующие схемы.</p>
<h3>6. Отсутствие элемента GUID</h3>
<p align="justify">Несмотря на то, что элемент guid не является обязательным, тем не менее подавляющее число агрегаторов используют его для идентификации элемента. Если в вашем RSS потоки элементы item не будут иметь guid, есть вероятность того, что агрегатор будет загружать одни и те же элементы повторно. Например, так ведет себя RSS-Hub на коммуникаторах HTC Touch Cruise.</p>
<p><em>Рекомендация</em>: всегда явно указывайте уникальный guid у каждого из элементов RSS.</p>
<h3>7. Неправильное указание даты элемента</h3>
<p align="justify">У элемента item, как правило, присутствует дата публикации, указанная с помощью элемента pubDate. Так вот, эта дата указывается не в формате <a href="http://www.w3.org/TR/xmlschema-2/" target="_blank">XSD Date and Time</a>, что логично было бы предположить, а в старом формате <a href="http://www.faqs.org/rfcs/rfc822.html" target="_blank">RFC822</a>, то есть так:</p>

<div class="wp_syntax"><div class="code"><pre class="xml" style="font-family:monospace;color: black;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;color: blue;">&lt;pubDate<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>Sun, 19 May 2002 15:21:36 GMT<span style="color: #009900;"><span style="color: #000000; font-weight: bold;color: blue;">&lt;/pubDate<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></pre></div></div>

<p><em>Рекомендация</em>: обязательно проверяйте в каком формате вы передаёте дату.</p>
<h3>8. Неправильная ссылка на RSS в HTML странице</h3>
<p align="justify">Добавив к себе на сайт RSS поток (или несколько потоков), не забудьте указать браузерам, что эти RSS потоки у вас есть. Заметьте, это делается не просто ссылкой на странице (хотя и ссылка на странице не помешает), а объявлением в разделе head вашего HTML:</p>

<div class="wp_syntax"><div class="code"><pre class="xml" style="font-family:monospace;color: black;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;color: blue;">&lt;head<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
...
	<span style="color: #009900;"><span style="color: #000000; font-weight: bold;color: blue;">&lt;link</span> <span style="color: #000066;">rel</span>=<span style="color: #ff0000;color: gray;">&quot;alternate&quot;</span> <span style="color: #000066;">type</span>=<span style="color: #ff0000;color: gray;">&quot;application/rss+xml&quot;</span></span>
<span style="color: #009900;">		<span style="color: #000066;">title</span>=<span style="color: #ff0000;color: gray;">&quot;Мой сайт: новости&quot;</span> <span style="color: #000066;">href</span>=<span style="color: #ff0000;color: gray;">&quot;http://www.mysite.ru/rss.xml&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span>
&nbsp;
	<span style="color: #009900;"><span style="color: #000000; font-weight: bold;color: blue;">&lt;link</span> <span style="color: #000066;">rel</span>=<span style="color: #ff0000;color: gray;">&quot;alternate&quot;</span> <span style="color: #000066;">type</span>=<span style="color: #ff0000;color: gray;">&quot;application/rss+xml&quot;</span></span>
<span style="color: #009900;">		<span style="color: #000066;">title</span>=<span style="color: #ff0000;color: gray;">&quot;Мой сайт: комментарии к заметкам&quot;</span> <span style="color: #000066;">href</span>=<span style="color: #ff0000;color: gray;">&quot;http://www.mysite.ru/comments.xml&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span>
...
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;color: blue;">&lt;/head<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></pre></div></div>

<p align="justify">Обратите внимание на атрибут title элемента link. Это название вашего RSS потока. Крайне желательно указать там внятное название вашего канала, а не просто безликое «RSS 2.0». Вообще, многие любят одновременно указывать несколько форматов, например, RSS 0.9, RSS 1.0, RSS 2.0, Atom. Я, честно говоря, считаю это, как бы помягче выразится, снобизмом. Ну зачем одновременно предлагать пользователю несколько практически идентичных форматов? Скажите, вы сами можете вот так, на вскидку, называть отличия RSS 1.0 от RSS 2.0? А вы думаете пользователь об этом знает? Ничего подобного! Поэтому лучше выбрать один формат и использовать его, тем более все агрегаторы, как правило, легко понимают эти форматы.</p>
<p align="justify"><em>Рекомендация</em>: выберите для себя наиболее приемлемый формат (RSS 2.0 или Atom) и придерживайтесь только его. Явно укажите ссылку на RSS поток на всех страницах сайта с помощью элемента link. Не забудьте написать внятный заголовок своего RSS.</p>
<h3>9. Бестолковое использование виджетов в разметке элемента</h3>
<p align="justify">Сейчас очень популярны так называемые виджеты, позволяющие одним кликом добавить RSS в любимый пользователем online агрегатор новостей. Как правило, это графическая ссылка на соответствующую службу с изображением логотипа этой службы. А поскольку таких служб много, Веб-мастера похоже соревнуются друг с другом, кто больше приляпает этих самых виджетов в свои RSS ленты:</p>
<p align="center"><img style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" title="Пример виджетов" src="http://www.ininfo.biz/images/blog/10RSS_12532/vidgets1.png" border="0" alt="Пример виджетов" width="482" height="175" /></p>
<p align="justify">Так вот, это уже не снобизм, а скорее — дебилизм! Нет, на сайте размещайте виджеты сколько угодно! Но зачем пихать 26 картинок к КАЖДОЙ ЗАПИСИ своего блога, к КАЖДОЙ НОВОСТИ своего сайта, то есть в RSS, если учесть, что пользователь УЖЕ ЧИТАЕТ ваш RSS с помощью своего любимого агрегатора! То есть, пользователь уже подписался на ваш канал, и эти ссылки ему попросту не нужны!</p>
<p align="justify"><em>Рекомендация</em>: виджеты подписки на ваш RSS размещайте на сайте, а не в тексте самих элементов RSS.</p>
<h3>10. Полнота изложения</h3>
<p align="justify">Ну и самая, пожалуй, распространенная «ошибка» — неполный текст новости/заметки и т.п. в RSS. Вы наверняка замечали, что большинство RSS передаются в виде анонсов, то есть не содержат в себе полный текст материала. Здесь в принципе существует несколько диаметрально противоположных точек зрения: например, некоторые считают, что пользователя нужно «подразнить», показав ему только лишь часть заметки и тем самым заставив его щелкнуть по ссылке «Читать далее» и перейти на сайт. Что ж, по-своему приверженцы такого подхода правы.</p>
<p align="justify">Правда, я считаю, что самая главная ценность RSS в том, что пользователь может быть в курсе событий, вообще не открывая сайты ! Я, например, практически все свои RSS читаю в транспорте на мобильном телефоне. И когда скорость GPRS соединения снижается, открывать сайты для чтения статьи дальше становится очень некомфортно. Сам же телефон закачивает все RSS утром, при синхронизации с основным компьютером. Понятно, RSS с обрывочными новостями и ссылками «Читать далее» долго в моем агрегаторе не живут, я их просто удаляю! И вы, как автор сайта с такими RSS перестаете для меня существовать, потому что, я уже не помню где и когда я подписался на ваш RSS. С другой стороны, RSS с полным содержанием живут у меня годами, даже если мне неинтересна ваша новость, пролистать ее невероятно легко, буквально одним движением пальца.</p>
<p align="justify">Важно помнить, что наша основная задача при публикации RSS — обеспечить постоянную читающую аудиторию сайта, а не увеличить посещаемость! Ведь пользователь, постоянно читающий ваш RSS, относится к вашему сайту с бо́льшей степенью доверия, чем просто к сайту, и важно не отпугнуть такого пользователя.</p>
<p align="justify">Поэтому рекомендация: публикуйте в RSS материалы полностью! Ну разве что, исключение составляет статья объемом более 10 – 20 машинопечатных страниц… Если, конечно же, вы такие статьи пишете <img src='http://www.ininfo.biz/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p align="justify">Таким образом, мы видим, что RSS — это великолепная штука, особенно если его правильно подать. Успехов вам!</p>
<p align="justify">Некоторые полезные ссылки:</p>
<ul>
<li>
<div><a href="http://www.rssboard.org/rss-specification" target="_blank">Спецификация RSS 2.0</a></div>
</li>
<li>
<div><a href="http://beshenov.ru/rss2.html" target="_blank">Спецификация RSS 2.0 на русском языке</a></div>
</li>
</ul>
<p><em>Post Scriptum</em><br />
Скачать презентацию семинара по теме этой статьи можно по этой ссылке:<br />
<a href="http://cid-b1cbca6b7d433991.skydrive.live.com/self.aspx?path=%2f%D0%9E%D0%B1%D1%89%D0%B8%D0%B5%20%D1%84%D0%B0%D0%B9%D0%BB%D1%8B%2f%D0%9F%D1%80%D0%B5%D0%B7%D0%B5%D0%BD%D1%82%D0%B0%D1%86%D0%B8%D0%B8%2f%D0%9E%D1%81%D0%BD%D0%BE%D0%B2%D0%BD%D1%8B%D0%B5%20%D0%BE%D1%88%D0%B8%D0%B1%D0%BA%D0%B8%20%D0%BF%D1%80%D0%B8%20%D1%81%D0%BE%D0%B7%D0%B4%D0%B0%D0%BD%D0%B8%D0%B8%20RSS.pps" target="_blank" onClick="pageTracker._trackEvent('Файлы', 'Скачивание', 'Презентация Ошибки RSS');">Основные ошибки при создании RSS.pps</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.ininfo.biz/2009/02/23/rss-errors/feed/</wfw:commentRss>
		<slash:comments>15</slash:comments>
		</item>
		<item>
		<title>Коротко о DTD</title>
		<link>http://www.ininfo.biz/2009/02/20/dtd-first-look/</link>
		<comments>http://www.ininfo.biz/2009/02/20/dtd-first-look/#comments</comments>
		<pubDate>Fri, 20 Feb 2009 13:32:09 +0000</pubDate>
		<dc:creator>Игорь Борисов</dc:creator>
				<category><![CDATA[Web разработка]]></category>
		<category><![CDATA[XML]]></category>
		<category><![CDATA[dtd]]></category>
		<category><![CDATA[введение]]></category>

		<guid isPermaLink="false">http://www.ininfo.biz/?p=72</guid>
		<description><![CDATA[Что такое DTD (определение типа документа, document type definition), зачем оно нужно, как его читать и, главное, как его создавать &mdah; об этом Вы узнаете прочитав эту статью...]]></description>
			<content:encoded><![CDATA[<h3>Введение</h3>
<p>Спецификация <a href="http://ru.wikipedia.org/wiki/SGML" target="_blank">SGML</a> предусматривает создание новых языков разметки.<br />
<a href="http://www.w3.org/html/" target="_blank">HTML</a> и <a href=" www.w3.org/XML" target="_blank">XML</a> как раз таковыми и являются. Причём XML сам по себе предусматривает расширяемость. Документы созданные с помощью этих языков могут быть «корректными (well-formed)» и «допустимыми (valid)».</p>
<p>С проверкой документа на корректность проблем не возникает: если ошибок не выскочило и всё отобразилось так, как мы хотели, то документ корректен. Например, если в HTML-документе написать что-то вроде «<code>&lt;Z&gt;Привет!&lt;/Z&gt;</code>», то наш документ будет полностью корректен, но проигнорирован браузером. Почему? Потому что браузер ничего не знает о том, что это за «Z» такой. И если мы проверим наш документ на допустимость с помощью <a href="http://validator.w3.org/" target="_blank">валидатора</a>, то документ таковым признан не будет. А как об этом узнает валидатор и на основании чего он вынес такой вердикт?</p>
<p><span id="more-72"></span></p>
<p>Допустимость проверяется с помощью определения типа документа (DTD, document type definition). Например, для «строгого» HTML он выглядит <a href="http://www.w3.org/TR/html4/strict.dtd" title="Так выглядит файл strict.dtd" target="_blank">так</a>.</p>
<p>DTD может быть описан как внутри документа, так и вынесен в отдельный файл (аналогия с CSS: встроенные и подключаемые таблицы стилей).</p>
<h3>Объявление DTD</h3>
<p>Объявление DTD располагается перед первым (корневым) элементом документа, начинается с последовательности «<code>&lt;!DOCTYPE</code>» и заканчивается символом «<code>&gt;</code>».</p>
<p>Внутреннее DTD описывается так:</p>

<div class="wp_syntax"><div class="code"><pre class="schema" style="font-family:monospace;color: black;">&lt;!DOCTYPE catalog [
&nbsp;
]
&gt;</pre></div></div>

<p>Между квадратными скобками располагается содержимое DTD, так называемое <em>внутреннее подмножество</em>, например:</p>

<div class="wp_syntax"><div class="code"><pre class="schema" style="font-family:monospace;color: black;">&lt;!DOCTYPE catalog [
    &lt;!ELEMENT someelement (#PCDATA)&gt;
]
&gt;</pre></div></div>

<p>Если DTD вынесено в отдельный файл (обычно имеющий расширение .dtd), то его объявление в документе записывается так:</p>

<div class="wp_syntax"><div class="code"><pre class="schema" style="font-family:monospace;color: black;">&lt;!DOCTYPE catalog SYSTEM &quot;catalog.dtd&quot;&gt;</pre></div></div>

<p>Соответственно, в этом файле и прописываются все правила, так называемое <em>внешнее подмножество</em>. </p>
<p>Имя, указанное за словом «<code>DOCTYPE</code>» (в нашем случае «<code>catalog</code>»), должно соответствовать имени корневого элемента. То есть, XML-документ должен быть примерно таким:</p>

<div class="wp_syntax"><div class="code"><pre class="schema" style="font-family:monospace;color: black;">&lt;?xml version=&quot;1.0&quot;?&gt;
&lt;!DOCTYPE catalog SYSTEM &quot;catalog.dtd&quot;&gt;
&lt;catalog&gt;
  &lt;someelement&gt;Hello, world!&lt;/someelement&gt;
&lt;/catalog&gt;</pre></div></div>

<p>Вместо ключевого слова «<code>SYSTEM</code>» может быть использовано слово «<code>PUBLIC</code>», указывающее, что DTD применяется для широкого использования:</p>

<div class="wp_syntax"><div class="code"><pre class="schema" style="font-family:monospace;color: black;">&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.01//EN&quot;
    &quot;http://www.w3.org/TR/html4/strict.dtd&quot;&gt;</pre></div></div>

<p>Внутренние и внешние подмножества могут быть заданы одновременно (опять же, аналогия с CSS):</p>

<div class="wp_syntax"><div class="code"><pre class="schema" style="font-family:monospace;color: black;">&lt;!DOCTYPE catalog SYSTEM &quot;catalog.dtd&quot;[
    &lt;!ELEMENT someelement (#PCDATA)&gt;
]
&gt;</pre></div></div>

<p>Здесь, сначала зачитывается содержимое файла «<code>catalog.dtd</code>», а потом содержимое, указанное внутри квадратных скобок.</p>
<h3>Элементы документа</h3>
<p>Элементы объявляются в DTD с помощью ключевого слова «<code>ELEMENT</code>», после которого следует имя элемента и его содержимое заключенное в круглые скобки :</p>

<div class="wp_syntax"><div class="code"><pre class="schema" style="font-family:monospace;color: black;">&lt;ELEMENT book (#PCDATA)&gt;</pre></div></div>

<p>Если у элемента есть дочерние элементы, то это записывается так:</p>

<div class="wp_syntax"><div class="code"><pre class="schema" style="font-family:monospace;color: black;">&lt;!ELEMENT book (title)&gt;</pre></div></div>

<p>что соответствует документу:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
</pre></td><td class="code"><pre class="xml" style="font-family:monospace;color: black;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;color: blue;">&lt;book<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;color: blue;">&lt;title</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;color: blue;">&lt;/book<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></pre></td></tr></table></div>

<p>Если у элемента несколько дочерних элементов, то они перечисляются через запятую и должны следовать строго в указанном порядке:</p>

<div class="wp_syntax"><div class="code"><pre class="schema" style="font-family:monospace;color: black;">&lt;!ELEMENT book (title, author)&gt;
&lt;!ELEMENT title (#PCDATA)&gt;
&lt;!ELEMENT author (#PCDATA)&gt;</pre></div></div>

<p>Приведённый выше пример читается следующим образом. Элемент «<code>book</code>» должен содержать только один элемент «<code>title</code>», за которым должен следовать только один элемент «<code>author</code>». Сами элементы «<code>title</code>» и «<code>author</code>» никаких элементов не содержат, а могут содержать лишь какой-нибудь текст.</p>
<p>С помощью следующих специальных символов можно определять количественное присутствие элемента:</p>
<ul>
<li>Символ «<code>*</code>», следующий после элемента, означает, что элемент может присутствовать один или несколько раз, или не присутствовать вовсе(от нуля до + бесконечности) </li>
<li>Символ «<code>+</code>», следующий после элемента, означает, что элемент может присутствовать один или несколько раз(от 1 до + бесконечности) </li>
<li>Символ «<code>?</code>», следующий после элемента, означает, что элемент может либо отсуствовать, либо присутствовать только один раз(0 или 1) </li>
</ul>

<div class="wp_syntax"><div class="code"><pre class="schema" style="font-family:monospace;color: black;">&lt;!ELEMENT book (title, author)&gt;
...
&lt;!ELEMENT book (title*, author)&gt;
...
&lt;!ELEMENT book (title+, author)&gt;
...
&lt;!ELEMENT book (title?, author)&gt;</pre></div></div>

<p>Если существует необходимость указать один из нескольких элементов (или title, или author &#8211; любой из них, но не оба), надо испольовать символ «<code>|</code>»:</p>

<div class="wp_syntax"><div class="code"><pre class="schema" style="font-family:monospace;color: black;">&lt;!ELEMENT book (title | author)&gt;</pre></div></div>

<p>Текст тоже равноправный участник игры. Ключевое слово «<code>PCDATA</code>» указывает на анализируемые символьные данные, поэтому любой текст содержащий символы разметки («<code>&lt;</code>», «<code>&gt;</code>» и «<code>&amp;</code>») будет трактоваться как разметка. Совместное использование текста и элементов называется <em>смешанным содержимым</em>. При объявлении смешанного содержимого, «<code>PCDATA</code>» необходимо указывать первым:</p>

<div class="wp_syntax"><div class="code"><pre class="schema" style="font-family:monospace;color: black;">&lt;!ELEMENT book (#PCDATA | title | author)&gt;</pre></div></div>

<p>Следующий фрагмент документа валиден вышеприведенному примеру:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
</pre></td><td class="code"><pre class="xml" style="font-family:monospace;color: black;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;color: blue;">&lt;book<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;color: blue;">&lt;title</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;color: blue;">&lt;/book<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;color: blue;">&lt;book<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;color: blue;">&lt;author</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;color: blue;">&lt;/book<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;color: blue;">&lt;book<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
    Нет данных
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;color: blue;">&lt;/book<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></pre></td></tr></table></div>

<p>Группы элементов заключаются в круглые скобки. Элемент «<code>book</code>» должен содержать либо текст, либо (один «<code>title</code>», один или неколько «<code>author</code>» и может быть один «<code>pubyear</code>» именно в таком порядке):</p>

<div class="wp_syntax"><div class="code"><pre class="schema" style="font-family:monospace;color: black;">&lt;!ELEMENT book (#PCDATA | (title, author+, pubyear?))&gt;
&lt;!ELEMENT disc (#PCDATA | title)*&gt;</pre></div></div>

<p>Данному примеру соответствует следующий фрагмент XML-документа:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
</pre></td><td class="code"><pre class="xml" style="font-family:monospace;color: black;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;color: blue;">&lt;disc</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;color: blue;">&lt;book<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;color: blue;">&lt;title</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;color: blue;">&lt;author</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;color: blue;">&lt;author</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;color: blue;">&lt;/book<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;color: blue;">&lt;book<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
    Нет данных
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;color: blue;">&lt;/book<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></pre></td></tr></table></div>

<p>Элемент может быть пустым. Такой элемент не может содержать не дочерних элементов ни текста (например, элемент «<code>br</code>» в HTML). Такой элемент задается с ключевым словом «<code>EMPTY</code>»:</p>

<div class="wp_syntax"><div class="code"><pre class="schema" style="font-family:monospace;color: black;">&lt;!ELEMENT photo EMPTY&gt;</pre></div></div>

<p>Элемент также может быть объявлен с ключевым словом «<code>ANY</code>» означающее, что элемент может содержать и элементы, и текст, и все это вместе, и даже быть пустым.</p>
<h3>Атрибуты элементов</h3>
<p>Элементы в XML-документе могут иметь атрибуты, которые записываются в виде «<code>имя = значение</code>» в открывающем или пустом тегах. Общее объявление атрибутов конкретного элемента начинается с ключевого слова «<code>ATTLIST</code>», после которого следует имя данного элемента и объявления самих атрибутов:</p>

<div class="wp_syntax"><div class="code"><pre class="schema" style="font-family:monospace;color: black;">&lt;!ELEMENT title (#PCDATA)&gt;
    &lt;!ATTLIST title
           id CDATA #REQUIRED
           stock CDATA #IMPLIED&gt;</pre></div></div>

<p>Ключевое слово «<code>REQUIRED</code>» указывает на то, что атрибут обязателен. Ключевое слово «<code>IMPLIED</code>», наоборот, говорит, что атрибут необязателен. </p>
<p>У атрибутов могут быть перечисленны разрешенные значения:</p>

<div class="wp_syntax"><div class="code"><pre class="schema" style="font-family:monospace;color: black;">&lt;!ATTLIST title
       readonly (yes|no) #REQUIRED&gt;</pre></div></div>

<p>Также может быть задано значение по-умолчанию:</p>

<div class="wp_syntax"><div class="code"><pre class="schema" style="font-family:monospace;color: black;">&lt;!ATTLIST title
       readonly (yes|no) #REQUIRED &quot;yes&quot;&gt;
       pubyear CDATA #IMPLIED &quot;2007&quot;&gt;</pre></div></div>

<p>Атрибут может быть и константой, то есть у него может быть только то значение, которое заявлено в объявлении атрибута. Делается это с помощью ключевого слова «<code>FIXED</code>»:</p>

<div class="wp_syntax"><div class="code"><pre class="schema" style="font-family:monospace;color: black;">&lt;!ATTLIST title
       copyright &lt;strong&gt;#FIXED &quot;udvikler&quot;&gt;</pre></div></div>

<p>Тип атрибута «<code>CDATA</code>»позволяет использовать любые символы кроме «<code>&lt;</code>», «<code>&gt;</code>», «<code>&amp;</code>», «<code>&quot;</code>» и «<code>'</code>». В случае использования, данные символы должны быть заменены на спецсимволы типа «<code>&amp;lt;</code>» и т.п. <span style="color:red;background:yellow">Внимание</span>: в DTD ключевое слово «<code>CDATA</code>» имеет другое значение, чем раздел «<code>CDATA</code>» в XML-документе!</p>
<p>Помимо типа CDATA, атрибуты могут иметь следующие типы:</p>
<ul>
<li><code>NMTOKEN</code> — может содержать только <code>буквы</code>, <code>цифры</code>, «<code>.</code>», «<code>-</code>», «<code>_</code>» и «<code>:</code>» </li>
<li><code>NMTOKENS</code> — может содержать те же символы, что и «<code>NMTOKEN</code>», а также символы <code>пробела</code>, <code>возврата каретки</code>, <code>перевода строки</code> и <code>табуляции</code></li>
</ul>

<div class="wp_syntax"><div class="code"><pre class="schema" style="font-family:monospace;color: black;">&lt;!ATTLIST title
       id CDATA #REQUIRED
       stock NMTOKEN #IMPLIED
       publisher NMTOKENS #IMPLIED&gt;</pre></div></div>

<p>Еще один тип атрибута «<code>ID</code>» разрешает задавать те же значения, что и тип NMTOKEN, но начинаться значение должно либо с буквы, либо с «<code>_</code>», либо с «<code>:</code>». У любого элемента может быть только один атрибут с типом «<code>ID</code>». Атрибут типа «<code>ID</code>» не может быть константой (объявляться как «<code>FIXED</code>»). Значение атрибута типа «<code>ID</code>» должно быть уникальным для всего XML-документа:</p>

<div class="wp_syntax"><div class="code"><pre class="schema" style="font-family:monospace;color: black;">&lt;!ELEMENT book (title, author)&gt;
&lt;!ELEMENT title (#PCDATA)&gt;
&lt;!ELEMENT author (#PCDATA)&gt;
    &lt;!ATTLIST title
           id ID #REQUIRED
           stock CDATA #IMPLIED&gt;
    &lt;!ATTLIST author
           id ID #REQUIRED
           city CDATA #IMPLIED&gt;</pre></div></div>

<p>Атрибут элемента может быть ссылкой на атрибут типа «<code>ID</code>» другого элемента. Для этого он объявляется как атрибут типа «<code>IDREF</code>». Если атрибут должен ссылаться на атрибут типа «<code>ID</code>» нескольких элементов, то испольуется ключевое слово «<code>IDREFS</code>»:</p>

<div class="wp_syntax"><div class="code"><pre class="schema" style="font-family:monospace;color: black;">&lt;!ELEMENT book (title+, author, year, publisher)&gt;
&lt;!ELEMENT title (#PCDATA)&gt;
&lt;!ELEMENT author (#PCDATA)&gt;
&lt;!ELEMENT year (#PCDATA)&gt;
&lt;!ELEMENT publisher (#PCDATA)&gt;
    &lt;!ATTLIST title
           id ID #REQUIRED&gt;
    &lt;!ATTLIST author
           id ID #REQUIRED&gt;
    &lt;!ATTLIST year
           ref IDREF #REQUIRED&gt;
    &lt;!ATTLIST publisher
           from IDREFS #REQUIRED&gt;</pre></div></div>

<p>В XML-документе это будет выглядить так:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
</pre></td><td class="code"><pre class="xml" style="font-family:monospace;color: black;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;color: blue;">&lt;book<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;color: blue;">&lt;title</span> <span style="color: #000066;">id</span>=<span style="color: #ff0000;color: gray;">&quot;t1&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;color: blue;">&lt;title</span> <span style="color: #000066;">id</span>=<span style="color: #ff0000;color: gray;">&quot;t2&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;color: blue;">&lt;title</span> <span style="color: #000066;">id</span>=<span style="color: #ff0000;color: gray;">&quot;t3&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;color: blue;">&lt;author</span> <span style="color: #000066;">id</span>=<span style="color: #ff0000;color: gray;">&quot;a1&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;color: blue;">&lt;year</span> <span style="color: #000066;">ref</span>=<span style="color: #ff0000;color: gray;">&quot;t2&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;color: blue;">&lt;publisher</span> <span style="color: #000066;">from</span>=<span style="color: #ff0000;color: gray;">&quot;t1 t2 a1&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;color: blue;">&lt;/book<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></pre></td></tr></table></div>

<h3>Объявление сущностей</h3>
<p>Помимо элементов и их атрибутов, мы можем определить <em>сущности</em>, записываемые с помощью ключевого слова «<code>ENTITY</code>»:</p>

<div class="wp_syntax"><div class="code"><pre class="schema" style="font-family:monospace;color: black;">&lt;!ENTITY name &quot;SuperMegaMaster&quot;&gt;</pre></div></div>

<p>В XML-документе ссылка на эту сущность определяется следующим образом (амперсанд + имя сущности + точка с запятой):</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="xml" style="font-family:monospace;color: black;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;color: blue;">&lt;userName<span style="color: #000000; font-weight: bold;">&gt;</span></span></span><span style="color: #ddbb00;">&amp;name;</span><span style="color: #009900;"><span style="color: #000000; font-weight: bold;color: blue;">&lt;/userName<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></pre></td></tr></table></div>

<p>В результате чего, на место имени сущности «<code>name</code>», будет подставлено ее значение, в нашем случае &#8211; «<code>SuperMegaMaster</code>».</p>
<p>И для полноты нашего счастья, надо добавить, что атрибуты элементов могут иметь в качестве значения подобные сущности &#8211; <em>сущности-атрибуты</em>. Они тоже определяются с помощью ключевого слова «<code>ENTITY</code>», но имеют одно ограничение &#8211; они должны ссылаться на внешние неанализируемые сущности, определенные во внешнем подмножестве DTD:</p>

<div class="wp_syntax"><div class="code"><pre class="schema" style="font-family:monospace;color: black;">&lt;!DOCTYPE catalog [
    &lt;!ENTITY list SYSTEM &quot;companyList.html&quot; NDATA parse&gt;
    &lt;!ELEMENT catalog (user+)&gt;
    &lt;!ELEMENT user (name)&gt;
        &lt;!ATTLIST user company ENTITY #REQUIRED&gt;
    &lt;!ELEMENT name (#PCDATA)&gt;
]
&gt;</pre></div></div>

<p>В вышеприведённом примере, объявлена сущность «<code>list</code>», которая ссылается на внешний документ «<code>companyList.html</code>». Ключевое слово «<code>NDATA</code>», говорит о том, что внешний документ неявляется XML-документом. Далее, для элемента «<code>user</code>» объявляется атрибут «<code>company</code>», который является обязательным и имеет тип «<code>ENTITY</code>», то есть ссылается на какую-либо сущность. Поскольку в нашем пример задана только одна сущность («<code>list</code>»), то именно она и только она может быть значением атрибута «<code>company</code>» в XML-документе:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
</pre></td><td class="code"><pre class="xml" style="font-family:monospace;color: black;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;color: blue;">&lt;catalog<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;color: blue;">&lt;user</span> <span style="color: #000066;">company</span>=<span style="color: #ff0000;color: gray;">&quot;list&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
        <span style="color: #009900;"><span style="color: #000000; font-weight: bold;color: blue;">&lt;name<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>SuperMegaMaster<span style="color: #009900;"><span style="color: #000000; font-weight: bold;color: blue;">&lt;/name<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;color: blue;">&lt;/user<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;color: blue;">&lt;/catalog<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></pre></td></tr></table></div>

<p>Осталось только понять, что означает «<code>parse</code>» в строке объявления сущности «<code>list</code>»? Когда используются неанализируемые данные, то есть те, которые не анализируются синтаксическим анализатором XML, хорошо было бы дать информацию приложению (использующему данный XML-документ), каким образом обработать эту сущность, если все-таки потребуется. Для этого нужно использовать нотацию, задаваемую ключевым словом «<code>NOTATION</code>» и дополнить наш DTD следующим образом:</p>

<div class="wp_syntax"><div class="code"><pre class="schema" style="font-family:monospace;color: black;">&lt;!NOTATION parse SYSTEM &quot;iexlorer&quot;&gt;
&lt;!ENTITY list SYSTEM &quot;companyList.html&quot; NDATA parse&gt;</pre></div></div>

<p>Слово «<code>parse</code>» в объявлении сущности лист указывает на то, каким образом можно проанализировать файл «<code>companyList.html</code>» &#8211; найти нотацию с именем «<code>parse</code>» и следовать ее указаниям. В нашем случае, приложение может открыть MS InternetExplorer и загрузить в него документ «<code>companyList.html</code>». </p>
]]></content:encoded>
			<wfw:commentRss>http://www.ininfo.biz/2009/02/20/dtd-first-look/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Коротко о XML</title>
		<link>http://www.ininfo.biz/2009/02/18/xml-first-look/</link>
		<comments>http://www.ininfo.biz/2009/02/18/xml-first-look/#comments</comments>
		<pubDate>Wed, 18 Feb 2009 14:54:06 +0000</pubDate>
		<dc:creator>Игорь Борисов</dc:creator>
				<category><![CDATA[Web разработка]]></category>
		<category><![CDATA[XML]]></category>
		<category><![CDATA[введение]]></category>

		<guid isPermaLink="false">http://www.ininfo.biz/?p=21</guid>
		<description><![CDATA[В этой вводной статье рассказывается об основах XML: как создать XML файл, как объявить кодировку и другое. Знакомство с XML рекомендуется начинать именно с этой статьи...]]></description>
			<content:encoded><![CDATA[<h3>Введение</h3>
<p>XML (англ. eXtensible Markup Language — расширяемый язык разметки) — рекомендованный <a href="http://www.w3.org" target="_blank">Консорциумом WWW</a> язык разметки, фактически представляющий собой свод общих синтаксических правил. XML — текстовый формат, предназначенный для хранения структурированных данных (взамен существующих файлов баз данных), для обмена информацией между программами, а также для создания на его основе более специализированных языков разметки (например, <a href="http://www.w3.org/MarkUp/" target="_blank">XHTML</a>), иногда называемых словарями. XML является упрощённым подмножеством языка <a href="http://ru.wikipedia.org/wiki/SGML" target="_blank">SGML</a>.</p>
<p><span id="more-21"></span></p>
<p>Целью создания XML было обеспечение совместимости при передаче структурированных данных между разными системами обработки информации, особенно при передаче таких данных через Интернет. Словари, основанные на XML (например, <a href="http://www.w3.org/RDF/" target="_blank">RDF</a>, <a href="http://www.rssboard.org/rss-specification" target="_blank">RSS</a>, <a href="http://www.w3.org/Math/" target="_blank">MathML</a>, <a href="http://www.w3.org/MarkUp/" target="_blank">XHTML</a>, <a href="http://www.w3.org/Graphics/SVG/" target="_blank">SVG</a>), сами по себе формально описаны, что позволяет программно изменять и проверять документы на основе этих словарей, не зная их семантики, то есть не зная смыслового значения элементов.</p>
<h3>Декларация XML-документа</h3>
<p>XML-документ начинается с XML-декларации, которая определяет используемую версию XML:</p>

<div class="wp_syntax"><div class="code"><pre class="xml" style="font-family:monospace;color: black;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;color: blue;">&lt;?xml</span> <span style="color: #000066;">version</span>=<span style="color: #ff0000;color: gray;">&quot;1.0&quot;</span><span style="color: #000000; font-weight: bold;">?&gt;</span></span></pre></div></div>

<p>Если в документе используются символы выходящие за рамки ASCII, то необходимо указать кодировку документа:</p>

<div class="wp_syntax"><div class="code"><pre class="xml" style="font-family:monospace;color: black;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;color: blue;">&lt;?xml</span> <span style="color: #000066;">version</span>=<span style="color: #ff0000;color: gray;">&quot;1.0&quot;</span> <span style="color: #000066;">encoding</span>=<span style="color: #ff0000;color: gray;">&quot;UTF-8&quot;</span><span style="color: #000000; font-weight: bold;">?&gt;</span></span></pre></div></div>

<h3>Элементы</h3>
<p>XML документ состоит из элементов, которые описываются открывающим (&lt;element&gt;) и закрывающим (&lt;/element&gt;) тегами. Текст между открывающим и закрывающим тегами называется содержимым элемента.</p>

<div class="wp_syntax"><div class="code"><pre class="xml" style="font-family:monospace;color: black;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;color: blue;">&lt;element<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>Содержимое элемента<span style="color: #009900;"><span style="color: #000000; font-weight: bold;color: blue;">&lt;/element<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></pre></div></div>

<p>Если элемент не имеет содержимого(empty element) и, соответственно, закрывающго тега, то он все равно должен быть закрыт:</p>

<div class="wp_syntax"><div class="code"><pre class="xml" style="font-family:monospace;color: black;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;color: blue;">&lt;element</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span></pre></div></div>

<p>XML документ должен содержать хотя бы один элемент:</p>

<div class="wp_syntax"><div class="code"><pre class="xml" style="font-family:monospace;color: black;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;color: blue;">&lt;?xml</span> <span style="color: #000066;">version</span>=<span style="color: #ff0000;color: gray;">&quot;1.0&quot;</span> <span style="color: #000066;">encoding</span>=<span style="color: #ff0000;color: gray;">&quot;UTF-8&quot;</span><span style="color: #000000; font-weight: bold;">?&gt;</span></span></pre></div></div>

<p>При наличие более, чем одного элемента, должен существовать один и только один корневой элемент, который не может быть вложен в другие элементы:</p>

<div class="wp_syntax"><div class="code"><pre class="xml" style="font-family:monospace;color: black;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;color: blue;">&lt;?xml</span> <span style="color: #000066;">version</span>=<span style="color: #ff0000;color: gray;">&quot;1.0&quot;</span> <span style="color: #000066;">encoding</span>=<span style="color: #ff0000;color: gray;">&quot;UTF-8&quot;</span><span style="color: #000000; font-weight: bold;">?&gt;</span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;color: blue;">&lt;root<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;color: blue;">&lt;title<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>XML за 10 минут<span style="color: #009900;"><span style="color: #000000; font-weight: bold;color: blue;">&lt;/title<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;color: blue;">&lt;author<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>Вася Пупкин<span style="color: #009900;"><span style="color: #000000; font-weight: bold;color: blue;">&lt;/author<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;color: blue;">&lt;/root<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></pre></div></div>

<p>Имена тегов чувствительны к регистру, поэтому нижеследующее допустимо:</p>

<div class="wp_syntax"><div class="code"><pre class="xml" style="font-family:monospace;color: black;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;color: blue;">&lt;?xml</span> <span style="color: #000066;">version</span>=<span style="color: #ff0000;color: gray;">&quot;1.0&quot;</span> <span style="color: #000066;">encoding</span>=<span style="color: #ff0000;color: gray;">&quot;UTF-8&quot;</span><span style="color: #000000; font-weight: bold;">?&gt;</span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;color: blue;">&lt;root<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;color: blue;">&lt;title<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>XML за 10 минут<span style="color: #009900;"><span style="color: #000000; font-weight: bold;color: blue;">&lt;/title<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;color: blue;">&lt;Title<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>XML за 20 минут<span style="color: #009900;"><span style="color: #000000; font-weight: bold;color: blue;">&lt;/Title<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;color: blue;">&lt;TITLE<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>XML за 30 минут<span style="color: #009900;"><span style="color: #000000; font-weight: bold;color: blue;">&lt;/TITLE<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;color: blue;">&lt;/root<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></pre></div></div>

<p>Элементы должны быть правильно вложены друг в друга. Простое правило — кто первым открылся, тот последним закрылся:</p>

<div class="wp_syntax"><div class="code"><pre class="xml" style="font-family:monospace;color: black;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;color: blue;">&lt;?xml</span> <span style="color: #000066;">version</span>=<span style="color: #ff0000;color: gray;">&quot;1.0&quot;</span> <span style="color: #000066;">encoding</span>=<span style="color: #ff0000;color: gray;">&quot;UTF-8&quot;</span><span style="color: #000000; font-weight: bold;">?&gt;</span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;color: blue;">&lt;root<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;color: blue;">&lt;book<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;color: blue;">&lt;title<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>XML за 10 минут<span style="color: #009900;"><span style="color: #000000; font-weight: bold;color: blue;">&lt;/title<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;color: blue;">&lt;/book<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;color: blue;">&lt;/root<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></pre></div></div>

<p>Имена элементов могут начинаться только с буквы или символа подчеркивания. Далее, имя может содержать буквы, цифры, дефисы, символы подчеркивания, и точки. Также, может быть использовано двоеточие, но только в специальных случаях, когда оно разделяет пространство имен (namespace).<br />
Имя элемента не может начинаться с последовательности символов «xml» (в любой комбинации регистров букв) — такое начало имени зарезервированo для нужд стандарта XML.</p>

<div class="wp_syntax"><div class="code"><pre class="xml" style="font-family:monospace;color: black;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;color: blue;">&lt;?xml</span> <span style="color: #000066;">version</span>=<span style="color: #ff0000;color: gray;">&quot;1.0&quot;</span> <span style="color: #000066;">encoding</span>=<span style="color: #ff0000;color: gray;">&quot;UTF-8&quot;</span><span style="color: #000000; font-weight: bold;">?&gt;</span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;color: blue;">&lt;root<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;color: blue;">&lt;_title<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>XML за 10 минут<span style="color: #009900;"><span style="color: #000000; font-weight: bold;color: blue;">&lt;/_title<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;color: blue;">&lt;xmlTitle<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>ОШИБКА! Неправильное имя элемента<span style="color: #009900;"><span style="color: #000000; font-weight: bold;color: blue;">&lt;/xmlTitle<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;color: blue;">&lt;/root<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></pre></div></div>

<h3>Атрибуты</h3>
<p>Элемент может иметь один или несколько атрибутов. Правила для имен атрибутов такие же как и для имен элементов.<br />
Атрибут состоит из имени и значения разделенных символом «=». Значение атрибута заключается в одинарные(апострофы) или двойные кавычки. Указываются атрибуты внутри открывающего тега и отделяются друг от друга пробелом. При наличие нескольких атрибутив порядок их следования не важен:</p>

<div class="wp_syntax"><div class="code"><pre class="xml" style="font-family:monospace;color: black;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;color: blue;">&lt;?xml</span> <span style="color: #000066;">version</span>=<span style="color: #ff0000;color: gray;">&quot;1.0&quot;</span> <span style="color: #000066;">encoding</span>=<span style="color: #ff0000;color: gray;">&quot;UTF-8&quot;</span><span style="color: #000000; font-weight: bold;">?&gt;</span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;color: blue;">&lt;root<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;color: blue;">&lt;book</span> <span style="color: #000066;">id</span>=<span style="color: #ff0000;color: gray;">&quot;1&quot;</span> <span style="color: #000066;">quantity</span>=<span style="color: #ff0000;color: gray;">&quot;100&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;color: blue;">&lt;title</span> <span style="color: #000066;">lang</span>=<span style="color: #ff0000;color: gray;">'ru'</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>XML за 10 минут<span style="color: #009900;"><span style="color: #000000; font-weight: bold;color: blue;">&lt;/title<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;color: blue;">&lt;author</span> <span style="color: #000066;">age</span>=<span style="color: #ff0000;color: gray;">&quot;15&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>Василий Пупкин<span style="color: #009900;"><span style="color: #000000; font-weight: bold;color: blue;">&lt;/author<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;color: blue;">&lt;/book<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;color: blue;">&lt;/root<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></pre></div></div>

<p>Если одинарные или двойные кавычки присутствуют в значении атрибута, то значение надо заключать в те, которые не используются в данном значении:</p>

<div class="wp_syntax"><div class="code"><pre class="xml" style="font-family:monospace;color: black;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;color: blue;">&lt;title</span> <span style="color: #000066;">alias</span>=<span style="color: #ff0000;color: gray;">'book &quot;learn XML&quot;'</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>XML за 10 минут<span style="color: #009900;"><span style="color: #000000; font-weight: bold;color: blue;">&lt;/title<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;color: blue;">&lt;author</span> <span style="color: #000066;">address</span>=<span style="color: #ff0000;color: gray;">&quot;pupkin's homepage&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>Василий Пупкин<span style="color: #009900;"><span style="color: #000000; font-weight: bold;color: blue;">&lt;/author<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></pre></div></div>

<h3>Спецсимволы</h3>
<p>В содержимом элемента не могут использоваться символы «&lt;» и «&amp;», так как они используются в разметке. В случае необходимости, надо использовать специальные символы — «&amp;lt;» вместо «&lt;» и «&amp;amp;» вместо «&amp;»:</p>

<div class="wp_syntax"><div class="code"><pre class="xml" style="font-family:monospace;color: black;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;color: blue;">&lt;result<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>2 <span style="color: #ddbb00;">&amp;lt;</span> 5<span style="color: #009900;"><span style="color: #000000; font-weight: bold;color: blue;">&lt;/result<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></pre></div></div>

<p>Также могут быть заменены символы «&gt;», «&raquo;», и «&#8217;» на, соответственно, «&amp;gt;», «&amp;quot;» и «&amp;apos;»:</p>

<div class="wp_syntax"><div class="code"><pre class="xml" style="font-family:monospace;color: black;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;color: blue;">&lt;result<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>2 <span style="color: #ddbb00;">&amp;lt;</span> 5<span style="color: #009900;"><span style="color: #000000; font-weight: bold;color: blue;">&lt;/result<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;color: blue;">&lt;result<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>5 <span style="color: #ddbb00;">&amp;gt;</span> 3<span style="color: #009900;"><span style="color: #000000; font-weight: bold;color: blue;">&lt;/result<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;color: blue;">&lt;text<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>Скажите: <span style="color: #ddbb00;">&amp;quot;</span>Hello, world!<span style="color: #ddbb00;">&amp;quot;</span><span style="color: #009900;"><span style="color: #000000; font-weight: bold;color: blue;">&lt;/text<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></pre></div></div>

<h3>Комментарии</h3>
<p>XML-документ может содержать комментарии. Комментарии начинаются с последовательности символов «&lt;!––» и заканчиваются последовательностью символов «––&gt;». Однако, внутри комментария не должно встречаться последовательности символов «––»:</p>

<div class="wp_syntax"><div class="code"><pre class="xml" style="font-family:monospace;color: black;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;color: blue;">&lt;?xml</span> <span style="color: #000066;">version</span>=<span style="color: #ff0000;color: gray;">&quot;1.0&quot;</span> <span style="color: #000066;">encoding</span>=<span style="color: #ff0000;color: gray;">&quot;UTF-8&quot;</span><span style="color: #000000; font-weight: bold;">?&gt;</span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;color: blue;">&lt;root<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
<span style="color: #009900;">&lt;!–- Это правильный комментарий -–<span style="color: #000000; font-weight: bold;">&gt;</span></span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;color: blue;">&lt;title<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>XML за 10 минут<span style="color: #009900;"><span style="color: #000000; font-weight: bold;color: blue;">&lt;/title<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
<span style="color: #009900;">&lt;!–- А это -- неправильный комментарий -–<span style="color: #000000; font-weight: bold;">&gt;</span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;color: blue;">&lt;/root<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></pre></div></div>

<h3>Секция CDATA</h3>
<p>Если, все-таки, необходимо в содержании элемента использовать текст который не должен восприниматься как разметка(например, часть кода), то этот текст можно заключить в секцию CDATA. Секция CDATA начинается с последовательности символов «&lt;![CDATA[» и заканчивается последовательностью символов «]]&gt;». Внутри секции может присутствовать любой текст, кроме последовательности символов «]]&gt;», которая указывает на окончание самой секции:</p>

<div class="wp_syntax"><div class="code"><pre class="xml" style="font-family:monospace;color: black;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;color: blue;">&lt;?xml</span> <span style="color: #000066;">version</span>=<span style="color: #ff0000;color: gray;">&quot;1.0&quot;</span> <span style="color: #000066;">encoding</span>=<span style="color: #ff0000;color: gray;">&quot;UTF-8&quot;</span><span style="color: #000000; font-weight: bold;">?&gt;</span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;color: blue;">&lt;root<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;color: blue;">&lt;code<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
    <span style="color: #339933;">&lt;![CDATA[</span>
<span style="color: #339933;">      &lt;div&gt;&lt;h2&gt;&lt;a href=&quot;#&quot;&gt;John &amp; Peter&lt;/a&gt;&lt;/h2&gt;&lt;/div&gt;</span>
<span style="color: #339933;">    ]]&gt;</span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;color: blue;">&lt;/code<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;color: blue;">&lt;/root<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></pre></div></div>

<h3>Другое</h3>
<p>И, в заключение, XML-документ может включать инструкции по обработке для приложений:</p>

<div class="wp_syntax"><div class="code"><pre class="xml" style="font-family:monospace;color: black;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;color: blue;">&lt;?xml</span> <span style="color: #000066;">version</span>=<span style="color: #ff0000;color: gray;">&quot;1.0&quot;</span> <span style="color: #000066;">encoding</span>=<span style="color: #ff0000;color: gray;">&quot;UTF-8&quot;</span><span style="color: #000000; font-weight: bold;">?&gt;</span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;color: blue;">&lt;root<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;color: blue;">&lt;?web-server</span> <span style="color: #000066;">add-header</span>=<span style="color: #ff0000;color: gray;">&quot;Powered by Pupkin&quot;</span><span style="color: #000000; font-weight: bold;">?&gt;</span></span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;color: blue;">&lt;title<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>XML за 10 минут<span style="color: #009900;"><span style="color: #000000; font-weight: bold;color: blue;">&lt;/title<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;color: blue;">&lt;/root<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></pre></div></div>

<p>Подробнее о XML можно прочитать на <a href="http://www.w3.org/XML/" target="_blank">www.w3.org/XML</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ininfo.biz/2009/02/18/xml-first-look/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
	</channel>
</rss>

