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

<channel>
	<title>IN info &#187; xmlns</title>
	<atom:link href="http://www.ininfo.biz/tags/xmlns/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.ininfo.biz</link>
	<description>Статьи об информационных технологиях</description>
	<lastBuildDate>Sun, 05 Feb 2012 14:57:24 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Коротко о пространствах имен (XML Namespaces)</title>
		<link>http://www.ininfo.biz/2009/02/26/namespaces-first-look/</link>
		<comments>http://www.ininfo.biz/2009/02/26/namespaces-first-look/#comments</comments>
		<pubDate>Thu, 26 Feb 2009 06:00:38 +0000</pubDate>
		<dc:creator>Игорь Борисов</dc:creator>
				<category><![CDATA[XML]]></category>
		<category><![CDATA[namespace]]></category>
		<category><![CDATA[xmlns]]></category>

		<guid isPermaLink="false">http://www.ininfo.biz/?p=111</guid>
		<description><![CDATA[Что такое пространства имен (namespaces), зачем они нужны, как их задавать и использовать. При создании XML-документа мы можем столкнуться с тем, что разные по смыслу элементы будут иметь одинаковое имя. Эти проблемы позволяют решить пространства имен XML. Здесь подробно описывается назначение и применение пространств имен XML.]]></description>
			<content:encoded><![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>
]]></content:encoded>
			<wfw:commentRss>http://www.ininfo.biz/2009/02/26/namespaces-first-look/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
	</channel>
</rss>

