Этот документ является не официальным переводом исходной английской версии. Обратите внимание на то, что оригинальная версия документа существует только на английском языке. Может содержать неточности и ошибки. © Зайцев Дмитрий, 2011. При поддержке сайта latex pillows. Комментарии к переводу оставляйте здесь! | | На главную

W3C

Пространства имен в XML 1.1 (Второе издание)

Рекомендация W3C от 16 августа 2006

Данная версия:
http://www.w3.org/TR/2006/REC-xml-names11-20060816
Последняя версия:
http://www.w3.org/TR/xml-names11
Предыдущая версия:
http://www.w3.org/TR/2006/PER-xml-names11-20060614
Редакторы:
Tim Bray, Textuality <[email protected]>
Dave Hollander, Contivo, Inc. <[email protected]>
Andrew Layman, Microsoft <[email protected]>
Richard Tobin, University of Edinburgh and Markup Technology Ltd <[email protected]>

Пожалуйста, обратитесь к странице исправлений этого документа, которая может включать в себя нормативные изменения.

См. также переводы.


Аннотация

Пространства имен XML обеспечивают простую методику получения имен элементов и атрибутов имен, используемых в документах использующих расширяемый язык разметки, ассоциируя их с пространствами имен определенными ссылками IRI.

Статус этого документа

Этот раздел описывает статус данного документа на момент его публикации. Другие документы могут заменять этот документ. Со списком текущих публикаций W3C и последней ревизией этого технического доклада можно ознакомиться в индексе технических докладов W3C на http://www.w3.org/TR/.

Этот документ был подготовлен Рабочей Группой XML Core в рамках деятельности W3C XML. Английская версия этой спецификации является единственной нормативной версией. Тем не менее, переводы данного документа см. http://www.w3.org/2003/03/Translations/byTechnology?technology=xml-names-11 .

Известные реализации описаны в докладе о реализациях Пространства имен 1.1 (все известные реализации Пространства имен 1.1 также поддерживают Пространства имен 1.0) . Также доступны наборы тестов на странице XML Test Suite .

Это второе издание включает в себя все известные исправления по состоянию на дату публикации. Оно заменяет предыдущую Рекомендацию W3C от 4 февраля 2004. Для удобства читателей, также предоставляется XHTML версия с разноцветным пересмотром показателей.

Пожалуйста, сообщите об ошибках в данном документе [email protected]; по ссылке, доступны публичные архивы. Ознакомиться со списком исправлений для этого документа можно на http://www.w3.org/XML/2006/xml-names11-errata .

Этот документ был рассмотрен членами W3C, разработчиками программного обеспечения, а также другими группами W3C и заинтересованными сторонами, и одобрен Директором в качестве Рекомендации W3C. Это стабильный документ и может быть использован в качестве справочного материала или цитат в другом документе. Роль W3C в разработке Рекомендации, заключается в привлечении внимания к спецификации, и способствовать ее широкому распространению. Это повышает функциональность и совместимость в Веб(Web).

Этот документ руководствуется 24 Января 2002 CPP с поправками, внесенными в соответствии Переходной Процедурой Патентной Политики . W3C поддерживает публичный список открытых патентов, сделанный в связи с результатами деятельности группы; эта страница также включает в себя инструкции по раскрытию патента. Лица, обладающие актуальной информацией о патенте, который удовлетворяет основным требованиям, должны раскрыть эту информацию согласно пункту 6 патентной политики W3C.

Содержание

1 Мотивация и Резюме
    1.1 Примечание к Обозначению и Использованию
2 Пространства имен XML
    2.1 Основные Понятия
    2.2 Использование IRI, как названия пространства имен
    2.3 Сравнение характеристик IRI
3 Объявление Пространства имен
4 Полные имена
5 Использование полных имен
6 Применение пространств имен для элементов и атрибутов
    6.1 Пространства имен, область действий
    6.2 Пространства имен по умолчанию
    6.3 Уникальность атрибутов
7 Соответствия документов
8 Соответствия процессоров

Приложения

A Нормативные документы
B Другие документы (ненормативные)
C Внутренняя структура пространства имен XML (ненормативное)
D Изменения по сравнению с версией 1.0 (ненормативное)
    D.1 Изменения по сравнению с версией 1.1
E Благодарности (ненормативное)


1 Мотивация и Резюме

Мы предполагаем, что применение расширяемого языка разметки (XML), где один документ XML может содержать элементы и атрибуты (здесь называемый "словарь разметки"), которые определены и используются несколькими программными модулями. Причина возникновения для этого является модульность: если такой словарь разметки существует, который в свою очередь хорошо понимает и для которого есть полезное программное обеспечение, в таком случае, эту разметку лучше использовать повторно, чем изобретать ее для новой обработки.

Такие документы, содержащие несколько словарей разметки, создают проблемы распознавания и коллизии. Программные модули должны быть в состоянии распознавать элементы и атрибуты, которые предназначены для обработки, даже в условиях "коллизий", возникающих при использовании того же имени или атрибута разметкой, которая предназначена для другого программного пакета.

Эти соображения накладывают требования, чтобы конструкции документа имели имена, построенные таким образом, чтобы избежать столкновений между именами из разных словарей разметки. В данной спецификации описывается механизм пространства имен XML, который решает эту задачу путем назначения расширенных имен элементов и атрибутов.

1.1 Примечание к Обозначению и Использованию

В тех местах, где встречаются ВЫДЕЛЕННЫЕ, ключевые слова ДОЛЖЕН, НЕ ДОЛЖЕН, НЕОБХОДИМО, СЛЕДУЕТ, НЕ СЛЕДУЕТ, ВЕРОЯТНО, в этом документе должны интерпретироваться, как описано в [Ключевые слова].

Обратите внимание, что нетерминальные конструкции в данной спецификации определяются не здесь, а в спецификации XML [XML]. Когда нетерминальные конструкции определенные здесь имеют такие же имена, как нетерминалы определенные в спецификации XML, тогда сценарии, использованные здесь, во всех случаях будут подмножеством строк, которые соответствуют сценарию там.

В сценариях этого документа аббревиатура NSC, обозначающая "Ограничение пространства Имен" ("Namespace Constraint"), это одно из правил, которому ДОЛЖНЫ следовать документы соответствующие этой спецификации.

2 Пространства имен XML

2.1 Основные понятия

[Определение: Пространство имен XML идентифицируется ссылкой IRI [RFC3987]; имена элементов и атрибутов могут быть помещены в пространство имен XML с помощью механизмов, описанных в этой спецификации.]

[Определение: Расширенное имя это пара, состоящая из имени пространства имен и локального имени.] [Определение: Для имени N в пространстве имен определенном с помощью IRI как I, Именем пространства имен будет I. Для имени N которое не находится в пространстве имен, имя пространства имен будет не определено.] [Определение: В любом из случаев локальным именем будет N.] Именно это сочетание из универсально управляемых IRI пространства имен с локальными именами лексики, является эффективным в предотвращении конфликтов имен.

IRI ссылки могут содержать символы не допустимые в именах, и очень часто слишком длинные, поэтому расширенные имена не используются непосредственно для названия элементов и атрибутов в XML-документах. Вместо этого используются полные имена. [Определение: Полное имя это имя субъекта в интерпретации пространства имен.] В документах, соответствующих данной спецификации, имена элементов и атрибутов отображаются как полные имена. Синтаксически, они являют собой префиксные имена или безпрефиксные имена. Описание синтаксиса на основании атрибутов обеспечивает связь префиксов пространства имен и связь пространства имен по умолчанию, которое применяется к безпрефиксным именам элементов; эти описания находятся в области видимости элементами, на которых они появляются, так что разные привязки могут применяться в различных частях документа. Процессоры соответствующие данной спецификации, ДОЛЖНЫ опознать и действовать на основании этих описаний и префиксов.

2.2 Использование IRI как названия пространства имен

Пустая строка, хотя это и законная ссылка IRI, не может быть использована как имя пространства имен.

Использование относительных ссылок IRI, включая ссылки того же документа, в объявлениях пространств имен, является устаревшим.

Примечание:

Это неодобрение относительных ссылок URI было принято на Пленарном голосовании W3C XML (W3C XML Plenary Ballot) [неодобрение относительных ссылок URI]. В нем также заявлено, что "последующие характеристики, такие как DOM, XPath, и прочие будут определять без расшифровки к ним".

2.3 Сравнение ссылок IRI

IRI ссылки, идентифицируя пространства имен, сравнивают при определении, имя на принадлежность к данному пространству имен, и относятся ли два имени к одному и тому же пространству имен. [Определение: Две ссылки IRI рассматриваются как строки, и они считаются идентичными только в том случае, если эти строки идентичны, то есть, они имеют одинаковую последовательность символов.] Сравнение происходит с учетом регистра символов, и без выполненного или невыполненного %-маскирования.

Следствием этого является то, что IRI ссылки, которые не являются идентичными в этом смысле, могут быть отнесены к одному и тому же ресурсу. Примеры включают в себя ссылки IRI, которые отличаются только регистром, %-маскированием или когда ссылки находятся во внешних объектах, которые имеют различные базовые URI (но учтите, что относительные IRI являются устаревшими, как названия пространства имен).

В декларации пространства имен, ссылка IRI является нормированным значением атрибута, поэтому замена символа XML и ссылки на объекты были уже сделаны ранее, перед всеми сравнениями.

Примеры:

Ссылки IRI, представленные ниже, все различные для идентификации пространств имен, так как они отличаются регистром:

  • http://www.example.org/wine

  • http://www.Example.org/wine

  • http://www.example.org/Wine

IRI ссылки, представленные ниже, также все различны для идентификации пространств имен:

  • http://www.example.org/rosé

  • http://www.example.org/ros%c3%a9

  • http://www.example.org/ros%c3%A9

  • http://www.example.org/ros%C3%a9

  • http://www.example.org/ros%C3%A9

Как и этот пример:

  • http://www.example.org/~wilbur

  • http://www.example.org/%7ewilbur

  • http://www.example.org/%7Ewilbur

Если объект с именем eacute был определен как é, то ниже, при объявлении пространств имен, начало тегов содержат обязательный префикс p на туже самую ссылку IRI, http://example.org/rosé.

  • <p:foo xmlns:p="http://example.org/rosé">

  • <p:foo xmlns:p="http://example.org/ros&#xe9;">

  • <p:foo xmlns:p="http://example.org/ros&#xE9;">

  • <p:foo xmlns:p="http://example.org/ros&#233;">

  • <p:foo xmlns:p="http://example.org/ros&eacute;">

Из-за риска путаницы между IRI, которые будут эквивалентны при разыменовании, использование %-маскированных символов в именах пространства имен настоятельно не рекомендуется.

3 Объявление Пространств имен

[Определение: Пространство имен (или если точнее, обязательное пространство имен) объявляется с помощью семейства зарезервированных атрибутов. Такое имя атрибута должно быть либо xmlns или начаться с xmlns:. Эти атрибуты, как и любые другие XML-атрибуты, могут быть представлены непосредственно или быть по умолчанию.]

Имена атрибутов для объявления пространства имен
[1]   NSAttName   ::=   PrefixedAttName
| DefaultAttName
[2]   PrefixedAttName   ::=   'xmlns:' NCName[NSC: Зарезервированные префиксы и названия пространства имен]
[3]   DefaultAttName   ::=   'xmlns'
[4]   NCName   ::=   NCNameStartChar NCNameChar*/* Имя XML за вычетом ":" */
[5]   NCNameChar   ::=   NameChar - ':'
[6]   NCNameStartChar   ::=   NameStartChar - ':'

Нормализованное значение атрибута ДОЛЖНО быть либо ссылкой IRIназвание пространства имен определяет пространство имен — или пустой строкой. Имя пространства имен, служит по прямому своему назначению и ему СЛЕДУЕТ иметь характеристики уникальности и постоянства. Это не основная цель, которая будет непосредственно использоваться для поиска схемы отображения (если таковая существует). Uniform Resource Names [RFC2141] является примером синтаксиса, который разработан с учетом этих целей. Однако следует отметить, что обычными URL-адресами можно управлять точно таким образом, чтобы достичь этих же целей.

[Определение: Если имя атрибута соответствует PrefixedAttName, в таком случае, NCName дает префикс пространства имен, используемый для связывания имен элементов и атрибутов с указанным в значении атрибута именем пространства имен в пределах элемента, где эта декларация была подана.]

[Определение: Если имя атрибута соответствует DefaultAttName, в таком случае, указанное в значении атрибута имя пространства имен в области видимости элемента, где эта декларация была подана, становится пространством имен по умолчанию.] Пространства имен по умолчанию и переопределение деклараций обсуждаются в 6 Применение пространства имен к элементам и атрибутам.

Пример декларации пространства имен, который связывает префикс пространства имен edi с названием пространства имен http://ecommerce.example.org/schema:

<x xmlns:edi='http://ecommerce.example.org/schema'>
  <!-- "edi" префикс связан с http://ecommerce.example.org/schema
       для элемента "x" и его содержимого -->
</x>

Ограничения для пространства имен: Защищенные префиксы и названия пространств имен

Префикс xml, по определению, связан с названием пространства имен http://www.w3.org/XML/1998/namespace. Он МОЖЕТ, но в этом нет необходимости, быть объявлен, и НЕ ДОЛЖЕН быть отменен или связан с любым другим названием пространства имен. Другие префиксы НЕ ДОЛЖНЫ быть связаны с этим названием пространства имен, и он НЕ ДОЛЖЕН быть декларирован как пространство имен по умолчанию.

Префикс xmlns служит только для декларирования привязок пространства имен и, по определению, связан с названием пространства имен http://www.w3.org/2000/xmlns/. Он НЕ ДОЛЖЕН быть объявлен или не объявлен. Другие префиксы НЕ ДОЛЖНЫ быть связаны с этим названием пространства имен, и он НЕ ДОЛЖЕН быть объявлен как пространство имен по умолчанию. Имена элементов НЕ ДОЛЖНЫ иметь префикс xmlns.

Все остальные префиксы, начинающиеся с трех букв x, m, l, в любых комбинациях, зарезервированы. Это означает, что:

  • пользователям НЕ СЛЕДУЕТ использовать их, за исключением, случаев определенных в последующих спецификациях

  • процессоры НЕ ДОЛЖНЫ рассматривать их как фатальные ошибки.

Хотя сами они не зарезервированы, нецелесообразно использовать имена префиксов, локальная часть(LocalPart) которых начинается с букв x, m, l, в любых комбинациях, так как эти имена будут зарезервированы, если использовать их без префикса.

4 Полные имена

В документах XML соответствующих данной спецификации, некоторые имена (конструкции, которые соответствуют нетерминальному Name) ДОЛЖНЫ быть переданы как полные имена, которые определяются следующим образом:

Полное Имя
[7]   QName   ::=   PrefixedName
| UnprefixedName
[8]   PrefixedName   ::=    Prefix ':' LocalPart
[9]   UnprefixedName   ::=    LocalPart
[10]   Prefix   ::=   NCName
[11]   LocalPart   ::=   NCName

Поле Prefix определяет из части полного имени префикс пространства имен, и ДОЛЖЕН быть связан со ссылкой IRI указанной в декларации пространства имен. [Определение: Поле LocalPart определяет локальную часть полного имени.]

Отметьте, что префикс используется только для сохранения названия пространства имен. Приложениям СЛЕДУЕТ использовать только название пространства имен, а не префикс, при построении имен, область действия которых выходит за пределы первоначального документа.

5 Использование полных имен

В документах XML соответствующих данной спецификации, имена элементов указаны как полные имена, а именно:

Имена элементов
[12]   STag   ::=   '<' QName (S Attribute)* S? '>' [NSC: Декларированный Префикс]
[13]   ETag   ::=   '</' QName S? '>'[NSC: Декларированный Префикс]
[14]   EmptyElemTag   ::=   '<' QName (S Attribute)* S? '/>'[NSC: Декларированный Префикс]

Пример использования полного имени, выступающего в качестве имени элемента:

  <!-- пространство имен элемента 'price' является http://ecommerce.example.org/schema -->
  <edi:price xmlns:edi='http://ecommerce.example.org/schema' units='Euro'>32.18</edi:price>

Атрибуты либо декларируют пространства имен или их имена указаны как полные имена:

Атрибут
[15]   Attribute   ::=   NSAttName Eq AttValue
| QName Eq AttValue[NSC: Декларированный Префикс]

Пример использования полного имени, в качестве имени атрибута:

<x xmlns:edi='http://ecommerce.example.org/schema'>
  <!-- пространство имен атрибута 'taxClass' - http://ecommerce.example.org/schema -->
  <lineItem edi:taxClass="exempt">Baby food</lineItem>
</x>

Ограничение пространства имен: Декларированный Префикс

Префикс пространства имен, за исключением xml или xmlns, ДОЛЖЕН быть объявлен в атрибуте, который декларирует пространство имен, в любом начальном теге элемента, где используется префикс или в том элементе, который является его предком (т.е. элемент, в содержании которого действует префиксная разметка). Кроме того, внутри такой декларации, значение атрибута НЕ ДОЛЖНО быть пустой строкой.

Это ограничение может привести к эксплуатационным трудностям, когда атрибут, который декларирует пространство имен, не был представлен непосредственно в сущности документа XML, но был декларирован во внешней сущности с помощью атрибута по умолчанию. Такие декларации не могут быть прочитаны программным обеспечением основанном на непроверяющем процессоре XML. Многие приложения XML, предположительно включая и те, которые зависят от пространства имен, не могут использовать проверяющие процессоры. Если требуется правильность работы с такими приложениями, декларации пространств имен ДОЛЖНЫ быть представлены или непосредственно или с помощью атрибутов по умолчанию, которые декларированы во внутреннем подмножестве DTD.

Имена элементов и имена атрибутов, также приводятся как полные имена, когда они появляются в декларациях в DTD:

Полные имена в декларациях
[16]   doctypedecl   ::=   '<!DOCTYPE' S QName (S ExternalID)? S? ('[' (markupdecl | PEReference | S)* ']' S?)? '>'
[17]   elementdecl   ::=   '<!ELEMENT' S QName S contentspec S? '>'
[18]   cp   ::=   (QName | choice | seq) ('?' | '*' | '+')?
[19]   Mixed   ::=   '(' S? '#PCDATA' (S? '|' S? QName)* S? ')*'
| '(' S? '#PCDATA' S? ')'
[20]   AttlistDecl   ::=   '<!ATTLIST' S QName AttDef* S? '>'
[21]   AttDef   ::=   S (QName | NSAttName) S AttType S DefaultDecl

Обратите внимание, что проверка, основанная на DTD это не знакомое пространство имен в следующем смысле: DTD ограничивает элементы и атрибуты, которые могут появиться в документе по их неинтерпретированным именам, а не по (название пространства имен, локальное имя) парам. Чтобы проверить документ, который использует пространства имен в отношении DTD необходимо, чтобы префиксы, использованные в DTD, были такие же, как и документе. Однако DTD может косвенно ограничивать пространства имен, используемые в валидном документе, путем предоставления #FIXED значений для атрибутов, которые декларируют пространства имен.

6 Применение пространства имен к элементам и атрибутам

6.1 Область действий пространства имен

Область действий декларации пространства имен при декларировании префикса проходит от начала открывающего тега, в котором она появляется, до конца соответствующего закрывающего тега, за исключением области действий любых внутренних деклараций с таким же полем NSAttName. В случае если тег пустой, областью является сам тег.

Такая декларация пространства имен распространяется на все имена элементов и атрибутов в своей области действий, префиксы которых соответствуют тому, который указан в декларации.

Расширенное имя соответствующее префиксному элементу или имени атрибута имеет ссылку IRI, в которой префикс связан, как его имя пространства имен, а локальная часть, как его локальное имя.

<?xml version="1.1"?>

<html:html xmlns:html='http://www.w3.org/1999/xhtml'>

  <html:head><html:title>Frobnostication</html:title></html:head>
  <html:body><html:p>Moved to 
    <html:a href='http://frob.example.com'>here.</html:a></html:p></html:body>
</html:html>

Несколько префиксов в пространстве имен могут быть объявлены, как атрибуты одного элемента, пример:

<?xml version="1.1"?>
<!-- оба префикса пространства имен доступны отовсюду -->
<bk:book xmlns:bk='urn:loc.gov:books'
         xmlns:isbn='urn:ISBN:0-395-36341-6'>
    <bk:title>Cheaper by the Dozen</bk:title>
    <isbn:number>1568491379</isbn:number>
</bk:book>

Значение префикса в декларации пространства имен для префикса МОЖЕТ быть пустым. Это эффективно, в рамках декларации, при устранении любых ассоциаций префикса с именем пространства имен. Дальнейшие декларации МОГУТ повторно объявить префикс снова:


<?xml version="1.1"?>
<x xmlns:n1="http://www.w3.org">
    <n1:a/>               <!-- верно; префикс n1 связан с http://www.w3.org -->
    <x xmlns:n1="">
        <n1:a/>           <!-- неверно; префикс n1, здесь, ни с чем не связан -->
	<x xmlns:n1="http://www.w3.org">
            <n1:a/>       <!-- верно; префикс n1 снова определен -->
        </x>
    </x>
</x>

6.2 Пространство имен по умолчанию

Область действий декларации пространства имен по умолчанию проходит от начала открывающего тега, в котором она появляется, до конца соответствующего закрывающего тега, за исключением области действий любых внутренних деклараций пространств по умолчанию. В том случае, когда тег пустой, областью становится сам тег.

Декларация пространства имен по умолчанию относится ко всем именам элементов без префикса в пределах своей области. Декларации пространств имен по умолчанию не относятся непосредственно к именам атрибутов; интерпретации атрибутов без префикса определяются элементом, в котором они возникают.

Если существует декларация пространства имен по умолчанию в области действий, тогда расширенное имя, соответствующего имени элемента без префикса, имеет IRI из пространства имен по умолчанию в качестве названия пространства имен. Если не существует декларации пространства имен по умолчанию в области действий, в таком случае, значение для названия пространства имен будет отсутствовать. Значение названия пространства имен для названия атрибута без префикса, всегда будет отсутствовать. Во всех случаях, локальное имя это локальная часть области (которое, конечно же, как и само имя без префикса).

<?xml version="1.1"?>
<!-- элементы в пространстве имен HTML, в этом случае по умолчанию -->
<html xmlns='http://www.w3.org/1999/xhtml'>
  <head><title>Frobnostication</title></head>
  <body><p>Moved to 
    <a href='http://frob.example.com'>here</a>.</p></body>
</html>
<?xml version="1.1"?>
<!-- типы элемента без префикса из пространства имен "books" -->
<book xmlns='urn:loc.gov:books'
      xmlns:isbn='urn:ISBN:0-395-36341-6'>
    <title>Cheaper by the Dozen</title>
    <isbn:number>1568491379</isbn:number>
</book>

Расширенный пример, который показывает область действий пространства имен:

<?xml version="1.1"?>
<!-- первоначальным пространством имен по умолчанию, является "books" -->
<book xmlns='urn:loc.gov:books'
      xmlns:isbn='urn:ISBN:0-395-36341-6'>
    <title>Cheaper by the Dozen</title>
    <isbn:number>1568491379</isbn:number>
    <notes>
      <!-- для некоторых комментариев, сделаем пространство имен HTML, по умолчанию -->
      <p xmlns='http://www.w3.org/1999/xhtml'>
          This is a <i>funny</i> book!
      </p>
    </notes>
</book>

Значение атрибута в декларации пространства имен по умолчанию МОЖЕТ быть пустым. Это будет иметь тот же эффект, как будто в пределах видимости этой декларации пространство имен по умолчанию, вообще не было задекларировано.

<?xml version='1.1'?>
<Beers>
  <!-- внутри таблиц, по умолчанию пространством имен используется HTML -->
  <table xmlns='http://www.w3.org/1999/xhtml'>
   <th><td>Name</td><td>Origin</td><td>Description</td></th>
   <tr> 
     <!-- внутри ячеек таблицы нет пространства имен, используемого по умолчанию -->
     <td><brandName xmlns="">Huntsman</brandName></td>
     <td><origin xmlns="">Bath, UK</origin></td>
     <td>
       <details xmlns=""><class>Bitter</class><hop>Fuggles</hop>
         <pro>Wonderful hop, light alcohol, good summer beer</pro>
         <con>Fragile; excessive variance pub to pub</con>
         </details>
        </td>
      </tr>
    </table>
  </Beers>

6.3 Уникальность атрибутов

В документах XML соответствующих данной спецификации, нет тега, содержащего два атрибута, которые:

  1. имеют одинаковые имена, или

  2. имеют полные имена с одинаковой локальной частью и с префиксами связанными с именами пространства имен, которые идентичны.

Это ограничение равносильно тому, что нет элемента имеющего два атрибута с одинаковым расширенным именем.

Например, каждый из bad тегов пустого элемента неправилен, в следующих тегах:

<!-- http://www.w3.org связано с n1 и n2 -->
<x xmlns:n1="http://www.w3.org" 
   xmlns:n2="http://www.w3.org" >
  <bad a="1"     a="2" />
  <bad n1:a="1"  n2:a="2" />
</x>

Однако, каждый из следующих тегов правилен, т.к. пространство имен по умолчанию, не распространяется на имена атрибутов:

<!-- http://www.w3.org связано с n1 и является пространством по умолчанию -->
<x xmlns:n1="http://www.w3.org" 
   xmlns="http://www.w3.org" >
  <good a="1"     b="2" />
  <good a="1"     n1:a="2" />
</x>

7 Соответствия документов

Эта спецификация относится к документам XML 1.1. Чтобы соответствовать данной спецификации, документ ДОЛЖЕН быть правильно сформирован в соответствии со спецификацией XML 1.1 [XML 1.1].

В XML-документах, которые соответствуют этой спецификации, имена элементов и атрибутов ДОЛЖНЫ соответствовать конструкции для QName и ДОЛЖНЫ удовлетворять "Ограничениям пространства имен". Чтобы соответствовать конструкции XML для Name (Имени), все остальные лексемы в документе, которые НЕОБХОДИМЫ, для корректности XML 1.1, ДОЛЖНЫ соответствовать конструкции этой спецификации для NCName.

[Определение: Документ становится корректно сформированным, по отношению к пространству имен, если он соответствует данной документации.]

Из этого следует, что в корректно сформированном, по отношению к пространству имен, документе:

Кроме того, корректно сформированным, по отношению к пространству имен, документ также может быть валидным.

[Определение: корректно сформированный, по отношению к пространству имен, документ будет валидным, если он действует в соответствии с XML 1.1 спецификацией и все лексемы, за исключением, имен элементов и атрибутов, которые НЕОБХОДИМЫ для валидности XML 1.1, в соответствии с конструкцией XML для Name (Имени) соответствуют конструкции этой спецификации для NCName.]

Из этого следует, что в валидном, по отношению к пространству имен, документе:

8 Соответствие процессоров

Чтобы соответствовать данной спецификации, процессор ДОЛЖЕН сообщать о нарушениях в корректно-сформированном пространстве имен, с тем исключением, когда нет НЕОБХОДИМОСТИ проверять, что названия пространства имен являются легальными ссылками IRI.

[Определение: Процессор проверяющий корректность XML, который соответствует этой спецификации, является проверкой корректности пространства имен, если, кроме того, он сообщает о нарушениях корректности пространства имен.]

Нормативные документы

Ключевые слова
RFC 2119: Ключевые слова для использования в документах RFC для указания уровней требований, S. Bradner, изд. IETF (Internet Engineering Task Force), март 1997. Доступно по ссылке http://www.rfc-editor.org/rfc/rfc2119.txt
RFC2141
RFC 2141: Синтаксис URN, R. Moats, изд. IETF (Internet Engineering Task Force), май 1997. Доступно по ссылке http://www.rfc-editor.org/rfc/rfc2141.txt.
RFC3986
RFC 3986: Унифицированный идентификатор ресурса (URI): общий синтаксис, T. Berners-Lee, R. Fielding, и L. Masinter, ред. IETF (Internet Engineering Task Force), январь 2005. Доступно по ссылке http://www.rfc-editor.org/rfc/rfc3986.txt
RFC3629
RFC 3629: UTF-8, преобразование формата ISO 10646, F. Yergeau, изд. IETF (Internet Engineering Task Force), ноябрь 2003. Доступно по ссылке http://www.rfc-editor.org/rfc/rfc3629.txt
RFC3987
Интернационализированные идентификаторы ресурсов (IRIs), M. Duerst и M. Suignard ред. январь 2005. Доступно по ссылке http://www.rfc-editor.org/rfc/rfc3987.txt.
XML
Расширяемый язык разметки (XML) 1.0 (Четвертое издание), Tim Bray, Jean Paoli, C. M. Sperberg-McQueen, Eve Maler и François Yergeau ред. W3C (World Wide Web Consortium), 16 августа 2006. Доступно по ссылке http://www.w3.org/TR/2006/REC-xml-20060816/.
XML 1.1
Расширяемый язык разметки (XML) 1.1 (Второе издание), Tim Bray, Jean Paoli, C. M. Sperberg-McQueen, Eve Maler, François Yergeau и John Cowan ред. W3C (World Wide Web Consortium), 16 августа 2006. Доступно по ссылке http://www.w3.org/TR/2006/REC-xml11-20060816/.

B Другие документы (ненормативные)

Исправления 1.0
Пространства имен в XML. Исправления. W3C (World Wide Web Consortium). Доступно по ссылке http://www.w3.org/XML/xml-names-19990114-errata.
Исправления 1.1
Пространства имен в XML 1.1. Исправления. W3C (World Wide Web Consortium). Доступно по ссылке http://www.w3.org/XML/2004/xml-names11-errata.
Неодобрение относительных ссылок URI
Результаты W3C XML пленарного голосования об относительных ссылках URI в декларации пространства имен 3-17 июля 2000 года , Dave Hollander и C. M. Sperberg-McQueen, 6 сентября 2000. Доступно по ссылке http://www.w3.org/2000/09/xppa.
Требования
Пространства имен в XML 1.1, Требования, Jonathan Marsh, изд. W3C (World Wide Web Consortium), март 2002. Доступно по ссылке http://www.w3.org/TR/2002/WD-xml-names11-req-20020403/.

C Внутренняя структура пространства имен XML (Ненормативное)

Данное приложение было удалено.

D Изменения, начиная с версии 1.0 (Ненормативное)

Данная версия включает в себя исправления для версии 1.0 от 6 декабря 2002 [Исправления 1.0]. Также имеются еще два существенных изменения:

Есть несколько изменений редакционного характера, включая количество изменений и дополнений в терминологии предназначенной для получения большей согласованности. Ненормативное приложение "Внешняя структура пространства имен XML" ("The Internal Structure of XML Namespaces"), было удалено.

D.1 Изменения, начиная с версии 1.1

Эта версия включает в себя исправления до версии 1.1 по состоянию на 1 Июня 2006 [Исправления 1.1].

Поскольку окончательный вариант IRI RFC еще не был опубликован, первое издание версии 1.1, включало в себя свое собственное определение IRI. В этой версии, это определение было удалено, и заменено ссылкой на RFC.

E Благодарности (ненормативное)

Эта работа отражает вклад от очень большого количества людей, особенно хочется отметить участников World Wide Web Consortium XML Working Group и Special Interest Group, а также участников из W3C Metadata Activity. Особенно ценным является вклад Чарльза Фрэнкстона из Microsoft.