<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2russianfull.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0"><channel><title>IN Info: статьи и заметки</title><link>http://www.ininfo.biz</link><description>Подборка статей и заметок: отличное дополнение к нашим курсам</description><language>en</language><lastBuildDate>Sat, 20 Jun 2009 21:53:25 PDT</lastBuildDate><generator>http://wordpress.org/</generator><sy:updatePeriod xmlns:sy="http://purl.org/rss/1.0/modules/syndication/">hourly</sy:updatePeriod><sy:updateFrequency xmlns:sy="http://purl.org/rss/1.0/modules/syndication/">1</sy:updateFrequency><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://feeds.feedburner.com/InInfo" type="application/rss+xml" /><feedburner:feedFlare href="http://add.my.yahoo.com/rss?url=http%3A%2F%2Ffeeds.feedburner.com%2FInInfo" src="http://us.i1.yimg.com/us.yimg.com/i/us/my/addtomyyahoo4.gif">Subscribe with My Yahoo!</feedburner:feedFlare><feedburner:feedFlare href="http://www.newsgator.com/ngs/subscriber/subext.aspx?url=http%3A%2F%2Ffeeds.feedburner.com%2FInInfo" src="http://www.newsgator.com/images/ngsub1.gif">Subscribe with NewsGator</feedburner:feedFlare><feedburner:feedFlare href="http://feeds.my.aol.com/add.jsp?url=http%3A%2F%2Ffeeds.feedburner.com%2FInInfo" src="http://o.aolcdn.com/favorites.my.aol.com/webmaster/ffclient/webroot/locale/en-US/images/myAOLButtonSmall.gif">Subscribe with My AOL</feedburner:feedFlare><feedburner:feedFlare href="http://www.bloglines.com/sub/http://feeds.feedburner.com/InInfo" src="http://www.bloglines.com/images/sub_modern11.gif">Subscribe with Bloglines</feedburner:feedFlare><feedburner:feedFlare href="http://www.netvibes.com/subscribe.php?url=http%3A%2F%2Ffeeds.feedburner.com%2FInInfo" src="http://www.netvibes.com/img/add2netvibes.gif">Subscribe with Netvibes</feedburner:feedFlare><feedburner:feedFlare href="http://fusion.google.com/add?feedurl=http%3A%2F%2Ffeeds.feedburner.com%2FInInfo" src="http://buttons.googlesyndication.com/fusion/add.gif">Subscribe with Google</feedburner:feedFlare><feedburner:feedFlare href="http://www.pageflakes.com/subscribe.aspx?url=http%3A%2F%2Ffeeds.feedburner.com%2FInInfo" src="http://www.pageflakes.com/ImageFile.ashx?instanceId=Static_4&amp;fileName=ATP_blu_91x17.gif">Subscribe with Pageflakes</feedburner:feedFlare><feedburner:feedFlare href="http://lenta.yandex.ru/settings.xml?name=feed&amp;url=http%3A%2F%2Ffeeds.feedburner.com%2FInInfo" src="http://lenta.yandex.ru/i/addfeed.gif">?????? ? ??????.?????</feedburner:feedFlare><feedburner:feedFlare href="http://www.plusmo.com/add?url=http%3A%2F%2Ffeeds.feedburner.com%2FInInfo" src="http://plusmo.com/res/graphics/fbplusmo.gif">Subscribe with Plusmo</feedburner:feedFlare><feedburner:feedFlare href="http://www.thefreedictionary.com/_/hp/AddRSS.aspx?http%3A%2F%2Ffeeds.feedburner.com%2FInInfo" src="http://img.tfd.com/hp/addToTheFreeDictionary.gif">Subscribe with The Free Dictionary</feedburner:feedFlare><feedburner:feedFlare href="http://www.bitty.com/manual/?contenttype=rssfeed&amp;contentvalue=http%3A%2F%2Ffeeds.feedburner.com%2FInInfo" src="http://www.bitty.com/img/bittychicklet_91x17.gif">Subscribe with Bitty Browser</feedburner:feedFlare><feedburner:feedFlare href="http://www.newsalloy.com/?rss=http%3A%2F%2Ffeeds.feedburner.com%2FInInfo" src="http://www.newsalloy.com/subrss3.gif">Subscribe with NewsAlloy</feedburner:feedFlare><feedburner:feedFlare href="http://www.live.com/?add=http%3A%2F%2Ffeeds.feedburner.com%2FInInfo" src="http://tkfiles.storage.msn.com/x1piYkpqHC_35nIp1gLE68-wvzLZO8iXl_JMledmJQXP-XTBOLfmQv4zhj4MhcWEJh_GtoBIiAl1Mjh-ndp9k47If7hTaFno0mxW9_i3p_5qQw">Subscribe with Live.com</feedburner:feedFlare><feedburner:feedFlare href="http://mix.excite.eu/add?feedurl=http%3A%2F%2Ffeeds.feedburner.com%2FInInfo" src="http://image.excite.co.uk/mix/addtomix.gif">Subscribe with Excite MIX</feedburner:feedFlare><feedburner:feedFlare href="http://www.yourminis.com/subscribe.aspx?u=http%3A%2F%2Ffeeds.feedburner.com%2FInInfo" src="http://www.yourminis.com/images/addtoyourminisbadge.gif">Subscribe with Yourminis.com</feedburner:feedFlare><feedburner:feedFlare href="http://download.attensa.com/app/get_attensa.html?feedurl=http%3A%2F%2Ffeeds.feedburner.com%2FInInfo" src="http://www.attensa.com/blogs/attensa/WindowsLiveWriter/BadgeredintoBadges_10C02/attensa_feed_button5.gif">Subscribe with Attensa for Outlook</feedburner:feedFlare><feedburner:feedFlare href="http://www.webwag.com/wwgthis.php?url=http%3A%2F%2Ffeeds.feedburner.com%2FInInfo" src="http://www.webwag.com/images/wwgthis.gif">Subscribe with Webwag</feedburner:feedFlare><feedburner:feedFlare href="http://hub.netomat.net/account/account.autoSubscribe.jspa?urls=http%3A%2F%2Ffeeds.feedburner.com%2FInInfo" src="http://www.netomat.net/blogger/images/icon_netomat_feedbutton.gif">Subscribe with netomat Hub</feedburner:feedFlare><feedburner:feedFlare href="http://www.podcastready.com/oneclick_bookmark.php?url=http%3A%2F%2Ffeeds.feedburner.com%2FInInfo" src="http://www.podcastready.com/images/podcastready_button.gif">Subscribe with Podcast Ready</feedburner:feedFlare><feedburner:feedFlare href="http://www.flurry.com/pushRssFeed.do?r=fb&amp;url=http%3A%2F%2Ffeeds.feedburner.com%2FInInfo" src="http://www.flurry.com/images/flurry_rss_logo2.gif">Subscribe with Flurry</feedburner:feedFlare><feedburner:feedFlare href="http://www.wikio.com/subscribe?url=http%3A%2F%2Ffeeds.feedburner.com%2FInInfo" src="http://www.wikio.com/shared/img/add2wikio.gif">Subscribe with Wikio</feedburner:feedFlare><feedburner:feedFlare href="http://www.dailyrotation.com/index.php?feed=http%3A%2F%2Ffeeds.feedburner.com%2FInInfo" src="http://www.dailyrotation.com/rss-dr2.gif">Subscribe with Daily Rotation</feedburner:feedFlare><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com" /><item><title>Коротко о пространствах имен (XML Namespaces)</title><link>http://feedproxy.google.com/~r/InInfo/~3/-N1Vvj_KUJ0/</link><category>XML</category><category>namespace</category><category>xmlns</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Игорь Борисов</dc:creator><pubDate>Wed, 25 Feb 2009 22:00:38 PST</pubDate><guid isPermaLink="false">http://www.ininfo.biz/?p=111</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<h3>Введение</h3>
<p>При создании XML-документа мы можем столкнуться с тем, что разные по смыслу элементы будут иметь одинаковое имя. Вы можете увидеть пример в статье <a href="http://www.ininfo.biz/2009/02/23/rss-errors/" title="10 главных ошибок RSS">«10 главных ошибок RSS»</a> в пункте 5 «Неправильное расширение RSS».</p>
<p>Разберём пример, явно «притянутый за уши», зато простой для понимания. Нам необходимо сделать выборку из двух таблиц базы данных, касающихся творчества некоего музыкального коллектива и сформировать каталог в виде XML-документа. В одной таблице базы данных содержится информация об аудио записях коллектива, в другой &#8211; информация о книгах посвященных его творчеству. По какой-то причине (непонятно какой, но очень важной), и описание аудио записей и описание книг должно содержаться в элементе «<code>item</code>». По той же причине, и названия записей и названия книг должны содержаться в элементе «<code>title</code>».<br />
<span id="more-111"></span><br />
В результате получаем, что-то вроде этого:</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;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;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> <span style="color: #000000; font-weight: bold;">/&gt;</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;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> <span style="color: #000000; font-weight: bold;">/&gt;</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;/catalog<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></pre></td></tr></table></div>

<p>Налицо конфликт имен, так как сложно определить, какой вид данных содержит каждый из элементов «<code>item</code>» и «<code>title</code>». Первый блок «<code>item</code>» относится к дискографии и элемент «<code>title</code>» содержит название диска. Второй блок «<code>item</code>» относится к библиографии и элемент «<code>title</code>» содержит название книги. Для предотвращения подобного конфликта нам надо разделить эти группы логически. Делается это заданием пространства имен: одни элементы относятся к имени «<code>music</code>», другие &mdash; к имени «<code>book</code>». Для объявления пространствa имeн используeтся атрибут имя которого состоит из зарезервированного слова «<code>xmlns</code>», после которого следует двоеточие и, собстветнно, само имя:</p>

<div class="wp_syntax"><div class="code"><pre class="xml" style="font-family:monospace;color: black;">xmlns:music = &quot;http://ininfo.biz/music&quot;</pre></div></div>

<p>Первый вопрос, который возникает, что использовать в качестве значения атрибута «<code>xmlns</code>»? Для того, чтобы обеспечить уникальность пространства имен надо использовать какой-либо <a href="http://ru.wikipedia.org/wiki/Uri" tilte="Что такое URI?">URI (Uniform Resource Identifier, Унифицированный Идентификатор Ресурса)</a>, проще говоря &mdash; уникальную строку, которая будет однозначно идентифицировать данный элемент<sup style="color:red">*</sup>. Многие используют в качестве идентификатора <a href="http://ru.wikipedia.org/wiki/URL" tilte="Что такое URL?">URL</a>, так как имена доменов, которые используются в URL являются уникальными. Кроме того, вряд ли кто-нибудь будет использовать адрес «<code>http://ininfo.biz/book</code>» кроме его владельца, так что конфликт исключен.</p>
<h3>Пространства имен для элементов</h3>
<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;music:title</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span></pre></div></div>

<p>Исходя из вышеизложенного, в принципе, можно объявить пространство имен для каждого элемента, который используется в документе: </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;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;music:item</span> xmlns:music = <span style="color: #ff0000;color: gray;">&quot;http://ininfo.biz/music&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;music:title</span> xmlns:music = <span style="color: #ff0000;color: gray;">&quot;http://ininfo.biz/music&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;/music:item</span> xmlns:music = <span style="color: #ff0000;color: gray;">&quot;http://ininfo.biz/music&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:item</span> xmlns:book = <span style="color: #ff0000;color: gray;">&quot;http://ininfo.biz/book&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:title</span> xmlns:book = <span style="color: #ff0000;color: gray;">&quot;http://ininfo.biz/book&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:item</span> xmlns:book = <span style="color: #ff0000;color: gray;">&quot;http://ininfo.biz/book&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;/catalog<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></pre></td></tr></table></div>

<p>Согласитесь, это не самый лучший вариант, так как во-первых, надо набирать много текста; во-вторых, такой код сложно читать; в-третьих, легко наделать ошибок. Можно поступить другим образом используя правило:</p>
<blockquote><p>Пространство имен объявленное для какого-либо элемента, является таковым для всех вложенных в него элементов, если для них не объявлено других пространств имен.
</p></blockquote>

<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;music:catalog</span> xmlns:music = <span style="color: #ff0000;color: gray;">&quot;http://ininfo.biz/music&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;music: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;music: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;/music: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;book:item</span> xmlns:book = <span style="color: #ff0000;color: gray;">&quot;http://ininfo.biz/book&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: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: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;/music:catalog<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></pre></td></tr></table></div>

<p>Можно поступить еще проще &mdash; объявить все пространства имен за один раз в корневом элементе:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
</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;music:catalog</span> </span>
<span style="color: #009900;">    xmlns:music = <span style="color: #ff0000;color: gray;">&quot;http://ininfo.biz/music&quot;</span></span>
<span style="color: #009900;">    xmlns:book = <span style="color: #ff0000;color: gray;">&quot;http://ininfo.biz/book&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;music: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;music: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;/music: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;book: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;book: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: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;/music:catalog<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></pre></td></tr></table></div>

<p>Однако надо помнить, что идентификатором пространства имен является значение атрибута «<code>xmlns</code>», а не его название-префикс. В следующем примере все элементы принадлежат одному пространству(значение атрибута равно «<code>http://ininfo.biz/group</code>») хотя и имеют разные имена-префиксы(«<code>music</code>» и «<code>book</code>»):</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
</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;music:catalog</span> </span>
<span style="color: #009900;">    xmlns:music = <span style="color: #ff0000;color: gray;">&quot;http://ininfo.biz/group&quot;</span></span>
<span style="color: #009900;">    xmlns:book = <span style="color: #ff0000;color: gray;">&quot;http://ininfo.biz/group&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;music: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;music: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;/music: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;book: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;book: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: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;/music:catalog<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></pre></td></tr></table></div>

<p>Допускается и обратное &mdash; элементы имеют различные пространства имен, но используют одинаковые имена-префиксы:</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;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;group:item</span> xmlns:group = <span style="color: #ff0000;color: gray;">&quot;http://ininfo.biz/music&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;group: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;/group: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;group:item</span> xmlns:group = <span style="color: #ff0000;color: gray;">&quot;http://ininfo.biz/book&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;group: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;/group: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;/catalog<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></pre></td></tr></table></div>

<p>Можно обойтись и без имен-префиксов. Для этого надо задать пространство имен по-умолчанию. В этом случае, данное пространство будет использоваться для элемента, в котором он встречается и для всех его дочерних(вложенных) элементов:</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;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;item</span> xmlns = <span style="color: #ff0000;color: gray;">&quot;http://ininfo.biz/music&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: #000000; font-weight: bold;">/&gt;</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;item</span> xmlns = <span style="color: #ff0000;color: gray;">&quot;http://ininfo.biz/book&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: #000000; font-weight: bold;">/&gt;</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;/catalog<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></pre></td></tr></table></div>

<p>Для того, чтобы отменить пространство имен заданное по-умолчанию, необходимо присвоить атрибуту «<code>xmlns</code>» значение пустой строки:</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;catalog</span> </span>
<span style="color: #009900;">    xmlns = <span style="color: #ff0000;color: gray;">&quot;http://ininfo.biz/group&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;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> <span style="color: #000000; font-weight: bold;">/&gt;</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;item</span> xmlns = <span style="color: #ff0000;color: gray;">&quot;&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: #000000; font-weight: bold;">/&gt;</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;/catalog<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></pre></td></tr></table></div>

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

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
</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;music:catalog</span> </span>
<span style="color: #009900;">    xmlns:music = <span style="color: #ff0000;color: gray;">&quot;http://ininfo.biz/music&quot;</span></span>
<span style="color: #009900;">    xmlns:book = <span style="color: #ff0000;color: gray;">&quot;http://ininfo.biz/book&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;music:item</span> <span style="color: #000066;">music:number</span>=<span style="color: #ff0000;color: gray;">&quot;10&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;music:title</span> <span style="color: #000066;">book:numref</span>=<span style="color: #ff0000;color: gray;">&quot;20&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;/music: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;book:item</span> <span style="color: #000066;">book:number</span>=<span style="color: #ff0000;color: gray;">&quot;20&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:title</span> <span style="color: #000066;">music:numref</span>=<span style="color: #ff0000;color: gray;">&quot;10&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: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;/music:catalog<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></pre></td></tr></table></div>

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

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
</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;music:catalog</span> </span>
<span style="color: #009900;">    xmlns:music = <span style="color: #ff0000;color: gray;">&quot;http://ininfo.biz/music&quot;</span></span>
<span style="color: #009900;">    xmlns:book = <span style="color: #ff0000;color: gray;">&quot;http://ininfo.biz/book&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;music:item</span> <span style="color: #000066;">music:number</span>=<span style="color: #ff0000;color: gray;">&quot;10&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;music:title</span> <span style="color: #000066;">numref</span>=<span style="color: #ff0000;color: gray;">&quot;20&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;/music: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;book:item</span> <span style="color: #000066;">book:number</span>=<span style="color: #ff0000;color: gray;">&quot;20&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:title</span> <span style="color: #000066;">numref</span>=<span style="color: #ff0000;color: gray;">&quot;10&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: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;/music:catalog<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="xml" style="font-family:monospace;color: black;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;color: blue;">&lt;music:item</span> <span style="color: #000066;">number</span>=<span style="color: #ff0000;color: gray;">&quot;10&quot;</span> </span>
<span style="color: #009900;">    xmlns:music = <span style="color: #ff0000;color: gray;">&quot;http://ininfo.biz/music&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span></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;root</span> xmlns:primer = <span style="color: #ff0000;color: gray;">&quot;http://ininfo.biz/one&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;primer:el1</span> xmlns:primer = <span style="color: #ff0000;color: gray;">&quot;http://ininfo.biz/two&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;primer:el2</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;el3</span> xmlns:primer = <span style="color: #ff0000;color: gray;">&quot;http://ininfo.biz/three&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;primer:el2</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;/el3<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;/primer:el1<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;primer:el2</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></pre></td></tr></table></div>

<p>Возможно, эта статья будет дополнена. Поэтому, продолжение следует и <a href="http://iborisov.spaces.live.com/blog/" title="Где следить за обновлением статьи?">следите за обновлениями</a>.</p>
<hr />
<p id="footer1"><sup style="color:red">*</sup> У гражданина РФ уникальным идентификатором может считаться его ИНН. Не номер паспорта &#8211; паспорт трижды меняется и, в случае потери, выписывается новый.</p>
<img src="http://feeds.feedburner.com/~r/InInfo/~4/-N1Vvj_KUJ0" height="1" width="1"/>]]></content:encoded><description>Что такое пространства имен (namespaces), зачем они нужны, как их задавать и использовать. При создании XML-документа мы можем столкнуться с тем, что разные по смыслу элементы будут иметь одинаковое имя. Эти проблемы позволяют решить пространства имен XML. Здесь подробно описывается назначение и применение пространств имен XML.</description><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.ininfo.biz/2009/02/26/namespaces-first-look/feed/</wfw:commentRss><slash:comments xmlns:slash="http://purl.org/rss/1.0/modules/slash/">0</slash:comments><feedburner:origLink>http://www.ininfo.biz/2009/02/26/namespaces-first-look/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=namespaces-first-look</feedburner:origLink></item><item><title>10 главных ошибок RSS</title><link>http://feedproxy.google.com/~r/InInfo/~3/VRxyifC_LJo/</link><category>Web разработка</category><category>XML</category><category>rss</category><category>web разработка</category><category>ошибки</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Иван Никитин</dc:creator><pubDate>Mon, 23 Feb 2009 11:31:21 PST</pubDate><guid isPermaLink="false">http://www.ininfo.biz/?p=101</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![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>
<img src="http://feeds.feedburner.com/~r/InInfo/~4/VRxyifC_LJo" height="1" width="1"/>]]></content:encoded><description>Сегодня RSS используется очень и очень часто, и все больше пользователей начинают ценить этот великолепный инструмент получения свежих новостей. И, конечно же, очень многие сайты предоставляют свои RSS-каналы пользователям. Но, к сожалению, нередко в этих каналах встречаются досадные ошибки, которые сводят «на нет» всё удобство и прелесть RSS. Здесь мы рассмотрим наиболее «популярные» ошибки, встречаемые нами на различных ресурсах.</description><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.ininfo.biz/2009/02/23/rss-errors/feed/</wfw:commentRss><slash:comments xmlns:slash="http://purl.org/rss/1.0/modules/slash/">1</slash:comments><feedburner:origLink>http://www.ininfo.biz/2009/02/23/rss-errors/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=rss-errors</feedburner:origLink></item><item><title>Коротко о DTD</title><link>http://feedproxy.google.com/~r/InInfo/~3/mwyfJBipNwk/</link><category>Web разработка</category><category>XML</category><category>dtd</category><category>введение</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Игорь Борисов</dc:creator><pubDate>Fri, 20 Feb 2009 05:32:09 PST</pubDate><guid isPermaLink="false">http://www.ininfo.biz/?p=72</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![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>
<img src="http://feeds.feedburner.com/~r/InInfo/~4/mwyfJBipNwk" height="1" width="1"/>]]></content:encoded><description>Что такое DTD (определение типа документа, document type definition), зачем оно нужно, как его читать и, главное, как его создавать &amp;mdah; об этом Вы узнаете прочитав эту статью...</description><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.ininfo.biz/2009/02/20/dtd-first-look/feed/</wfw:commentRss><slash:comments xmlns:slash="http://purl.org/rss/1.0/modules/slash/">0</slash:comments><feedburner:origLink>http://www.ininfo.biz/2009/02/20/dtd-first-look/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=dtd-first-look</feedburner:origLink></item><item><title>Коротко о XML</title><link>http://feedproxy.google.com/~r/InInfo/~3/e72iOic6na0/</link><category>Web разработка</category><category>XML</category><category>введение</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Игорь Борисов</dc:creator><pubDate>Wed, 18 Feb 2009 06:54:06 PST</pubDate><guid isPermaLink="false">http://www.ininfo.biz/?p=21</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![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>
<img src="http://feeds.feedburner.com/~r/InInfo/~4/e72iOic6na0" height="1" width="1"/>]]></content:encoded><description>В этой вводной статье рассказывается об основах XML: как создать XML файл, как объявить кодировку и другое. Знакомство с XML рекомендуется начинать именно с этой статьи...</description><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.ininfo.biz/2009/02/18/xml-first-look/feed/</wfw:commentRss><slash:comments xmlns:slash="http://purl.org/rss/1.0/modules/slash/">4</slash:comments><feedburner:origLink>http://www.ininfo.biz/2009/02/18/xml-first-look/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=xml-first-look</feedburner:origLink></item><item><title>Настройка представления «Список дел» в Outlook 2007</title><link>http://feedproxy.google.com/~r/InInfo/~3/kyFYf7TptGQ/</link><category>Office</category><category>Outlook</category><category>office 2007</category><category>sql</category><category>список дел</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Иван Никитин</dc:creator><pubDate>Thu, 29 Jan 2009 00:17:00 PST</pubDate><guid isPermaLink="false">http://www.ininfo.biz/2009/01/29/%d0%bd%d0%b0%d1%81%d1%82%d1%80%d0%be%d0%b9%d0%ba%d0%b0-%d0%bf%d1%80%d0%b5%d0%b4%d1%81%d1%82%d0%b0%d0%b2%d0%bb%d0%b5%d0%bd%d0%b8%d1%8f-%d1%81%d0%bf%d0%b8%d1%81%d0%be%d0%ba-%d0%b4%d0%b5%d0%bbraq/</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<p align="justify">В Outlook 2007 есть замечательный инструмент: «Список дел», в котором отображаются помеченные сообщения и задачи, которые нужно было выполнить вчера/сегодня/завтра. Поскольку список всегда перед глазами, он не дает забыть о невыполненных делах. Но этот список таже можно настроить и сделать более удобным для себя.</p>
<p align="justify"><span id="more-12"></span>Обычно этот список выглядит так:</p>
<p align="center"><img style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" title="Список дел в Outlook 2007" src="http://www.ininfo.biz/images/blog/Outlook2007_A331/outlooktasks_thumb.png" border="0" alt="Список дел в Outlook 2007" width="619" height="484" /></p>
<p align="justify">Но меня всегда раздражало то, что в нем показываются все будущие дела и задачи, даже те, которые терпят еще неделю-другую. Но они всё равно в списке, и поэтому список может быть большим (например, у меня сегодня задачи распланированы до конца марта!). С точки зрения юзабилити, это классический пример «размытия внимания»: пользователь привыкает к большому количеству дел в списке и просто не обращает на них свое внимание.</p>
<p align="justify">К сожалению, просто поставить фильтр в представлении, ограничивающий вывод делами только, например, на неделю – месяц вперед не получается, так как такого правила в нём нет.</p>
<p align="justify">Но подобное правило можно написать руками, так как в Outlook есть возможность использовать псевдо-SQL для выборки данных из MAPI хранилищ. Это вполне развитый язык запросов с кучей функций. Я воспользовался функцией <em>today(n)</em>, которая возвращает дату через <em>n</em> секунд после текущей.</p>
<p align="justify">Не буду пространно объяснять теорию, вот готовый рецепт настройки «Списка дел»:</p>
<p align="justify">1. Щелкните по пустому месту в списке дел правой кнопкой мышки и выберите «Настроить текущее представление»</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/Outlook2007_A331/outlookviewmenu_thumb.png" border="0" alt="Пункт меню Настройка текущего предстваления" width="244" height="223" /></p>
<p align="justify">2. Щелкните по кнопке [Отбор]</p>
<p align="justify">3. Переключитесь на закладку SQL и поставьте галочку «Изменять фильтр напрямую»</p>
<p align="center"><img style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" title="Закладка SQL" src="http://www.ininfo.biz/images/blog/Outlook2007_A331/outlookviewsql_thumb.png" border="0" alt="Закладка SQL" width="541" height="442" /></p>
<p align="justify">4. Введите следующий текст:</p>
<pre>("http://schemas.microsoft.com/mapi/id/{00062003-0000-0000-C000-000000000046}/810f0040" IS NULL
  AND "http://schemas.microsoft.com/mapi/proptag/0x10910040" IS NULL
  AND ("http://schemas.microsoft.com/mapi/id/{00062003-0000-0000-C000-000000000046}/81040040" &lt;= today(864000)
   OR "http://schemas.microsoft.com/mapi/id/{00062003-0000-0000-C000-000000000046}/81040040" IS NULL))</pre>
<p>5. Нажимайте [OK] чтобы закрыть все окна</p>
<p>Все! Теперь с списке дел выводятся все незавершенные дела на 10 дней вперед.</p>
<div id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:d130bfcc-ef8f-49f4-8403-e3c7184e8a45" class="wlWriterEditableSmartContent" style="padding-right: 0px; display: inline; padding-left: 0px; float: none; padding-bottom: 0px; margin: 0px; padding-top: 0px">Technorati: <a rel="tag" href="http://technorati.com/tags/office+2007">office 2007</a>,<a rel="tag" href="http://technorati.com/tags/outlook">outlook</a>,<a rel="tag" href="http://technorati.com/tags/%d1%81%d0%bf%d0%b8%d1%81%d0%be%d0%ba+%d0%b4%d0%b5%d0%bb">список дел</a>,<a rel="tag" href="http://technorati.com/tags/sql">sql</a></div>
<img src="http://feeds.feedburner.com/~r/InInfo/~4/kyFYf7TptGQ" height="1" width="1"/>]]></content:encoded><description>В Outlook 2007 есть замечательный инструмент: «Список дел», в котором отображаются помеченные сообщения и задачи, которые нужно было выполнить вчера/сегодня/завтра. Поскольку список всегда перед глазами, он не дает забыть о невыполненных делах. Здесь можно посмотреть простой способ настройки этого представления, которая ограничивает тисло элементов списка 10 днями.</description><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.ininfo.biz/2009/01/29/outlook-task-list/feed/</wfw:commentRss><slash:comments xmlns:slash="http://purl.org/rss/1.0/modules/slash/">0</slash:comments><feedburner:origLink>http://www.ininfo.biz/2009/01/29/outlook-task-list/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=outlook-task-list</feedburner:origLink></item><item><title>Глобальное измение сайта</title><link>http://feedproxy.google.com/~r/InInfo/~3/8dihvXfvV2Y/</link><category>Разное</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Администратор</dc:creator><pubDate>Sat, 17 Jan 2009 02:25:35 PST</pubDate><guid isPermaLink="false">http://www.ininfo.biz/?p=1</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<p>В общем, я полностью изменил версию движка (<a href="http://ru.wordpress.org/" target="_blank">WordPress</a>)  и наполнение. Старых заметок больше нет. Начинаем с чистого листа</p>
<p align="center"><img style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" title="wordpress" src="http://www.ininfo.biz/images/blog/d3f5888a8927_DEB8/wordpress_thumb.png" border="0" alt="wordpress" width="240" height="67" /></p>
<p>А это подтверждение для technorati:<br />
<a rel="me" href="http://technorati.com/claim/g9ppa6rabb">Technorati Profile</a></p>
<img src="http://feeds.feedburner.com/~r/InInfo/~4/8dihvXfvV2Y" height="1" width="1"/>]]></content:encoded><description>В общем, я полностью изменил версию движка (WordPress)  и наполнение. Старых заметок больше нет. Начинаем с чистого листа

А это подтверждение для technorati:
Technorati Profile</description><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.ininfo.biz/2009/01/17/hello-world/feed/</wfw:commentRss><slash:comments xmlns:slash="http://purl.org/rss/1.0/modules/slash/">0</slash:comments><feedburner:origLink>http://www.ininfo.biz/2009/01/17/hello-world/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=hello-world</feedburner:origLink></item></channel></rss>
