Этот документ является не официальным переводом исходной английской версии. Обратите внимание на то, что оригинальная версия документа существует только на английском языке. Может содержать неточности и ошибки. © Зайцев Дмитрий, 2011. При поддержке сайта latex pillows. Комментарии к переводу оставляйте здесь! | | На главную
Пожалуйста, обратитесь к странице исправлений этого документа, которая может включать в себя нормативные изменения.
См. также переводы.
Copyright © 2006 W3C® (MIT, ERCIM, Keio), Все права защищены. W3C придерживается правил ответственности, торговой марки и использования документов
Пространства имен 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 Благодарности (ненормативное)
Мы предполагаем, что применение расширяемого языка разметки (XML), где один документ XML может содержать элементы и атрибуты (здесь называемый "словарь разметки"), которые определены и используются несколькими программными модулями. Причина возникновения для этого является модульность: если такой словарь разметки существует, который в свою очередь хорошо понимает и для которого есть полезное программное обеспечение, в таком случае, эту разметку лучше использовать повторно, чем изобретать ее для новой обработки.
Такие документы, содержащие несколько словарей разметки, создают проблемы распознавания и коллизии. Программные модули должны быть в состоянии распознавать элементы и атрибуты, которые предназначены для обработки, даже в условиях "коллизий", возникающих при использовании того же имени или атрибута разметкой, которая предназначена для другого программного пакета.
Эти соображения накладывают требования, чтобы конструкции документа имели имена, построенные таким образом, чтобы избежать столкновений между именами из разных словарей разметки. В данной спецификации описывается механизм пространства имен XML, который решает эту задачу путем назначения расширенных имен элементов и атрибутов.
В тех местах, где встречаются ВЫДЕЛЕННЫЕ, ключевые слова ДОЛЖЕН, НЕ ДОЛЖЕН, НЕОБХОДИМО, СЛЕДУЕТ, НЕ СЛЕДУЕТ, ВЕРОЯТНО, в этом документе должны интерпретироваться, как описано в [Ключевые слова].
Обратите внимание, что нетерминальные конструкции в данной спецификации определяются не здесь, а в спецификации XML [XML]. Когда нетерминальные конструкции определенные здесь имеют такие же имена, как нетерминалы определенные в спецификации XML, тогда сценарии, использованные здесь, во всех случаях будут подмножеством строк, которые соответствуют сценарию там.
В сценариях этого документа аббревиатура
NSC
, обозначающая "Ограничение пространства Имен" ("Namespace Constraint"), это одно из правил, которому ДОЛЖНЫ следовать документы соответствующие этой спецификации.
[Определение: Пространство имен XML идентифицируется ссылкой IRI [RFC3987]; имена элементов и атрибутов могут быть помещены в пространство имен XML с помощью механизмов, описанных в этой спецификации.]
[Определение: Расширенное имя это пара, состоящая из имени пространства имен и локального имени.] [Определение: Для имени N в пространстве имен определенном с помощью IRI как I, Именем пространства имен будет I. Для имени N которое не находится в пространстве имен, имя пространства имен будет не определено.] [Определение: В любом из случаев локальным именем будет N.] Именно это сочетание из универсально управляемых IRI пространства имен с локальными именами лексики, является эффективным в предотвращении конфликтов имен.
IRI ссылки могут содержать символы не допустимые в именах, и очень часто слишком длинные, поэтому расширенные имена не используются непосредственно для названия элементов и атрибутов в XML-документах. Вместо этого используются полные имена. [Определение: Полное имя это имя субъекта в интерпретации пространства имен.] В документах, соответствующих данной спецификации, имена элементов и атрибутов отображаются как полные имена. Синтаксически, они являют собой префиксные имена или безпрефиксные имена. Описание синтаксиса на основании атрибутов обеспечивает связь префиксов пространства имен и связь пространства имен по умолчанию, которое применяется к безпрефиксным именам элементов; эти описания находятся в области видимости элементами, на которых они появляются, так что разные привязки могут применяться в различных частях документа. Процессоры соответствующие данной спецификации, ДОЛЖНЫ опознать и действовать на основании этих описаний и префиксов.
Пустая строка, хотя это и законная ссылка IRI, не может быть использована как имя пространства имен.
Использование относительных ссылок IRI, включая ссылки того же документа, в объявлениях пространств имен, является устаревшим.
Примечание:
Это неодобрение относительных ссылок URI было принято на Пленарном голосовании W3C XML (W3C XML Plenary Ballot) [неодобрение относительных ссылок URI]. В нем также заявлено, что "последующие характеристики, такие как DOM, XPath, и прочие будут определять без расшифровки к ним".
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é">
<p:foo xmlns:p="http://example.org/rosé">
<p:foo xmlns:p="http://example.org/rosé">
<p:foo xmlns:p="http://example.org/rosé">
Из-за риска путаницы между IRI, которые будут эквивалентны при разыменовании, использование %-маскированных символов в именах пространства имен настоятельно не рекомендуется.
[Определение: Пространство имен (или если точнее, обязательное пространство имен) объявляется с помощью семейства зарезервированных атрибутов. Такое имя атрибута должно быть либо 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, в любых комбинациях, так как эти имена будут зарезервированы, если использовать их без префикса.
В документах XML соответствующих данной спецификации, некоторые имена (конструкции, которые соответствуют нетерминальному Name) ДОЛЖНЫ быть переданы как полные имена, которые определяются следующим образом:
[7] | QName | ::= | PrefixedName |
| UnprefixedName | |||
[8] | PrefixedName | ::= |
Prefix ':' LocalPart
|
[9] | UnprefixedName | ::= |
LocalPart
|
[10] | Prefix | ::= | NCName |
[11] | LocalPart | ::= | NCName |
Поле Prefix определяет из части полного имени префикс пространства имен, и ДОЛЖЕН быть связан со ссылкой IRI указанной в декларации пространства имен. [Определение: Поле LocalPart определяет локальную часть полного имени.]
Отметьте, что префикс используется только для сохранения названия пространства имен. Приложениям СЛЕДУЕТ использовать только название пространства имен, а не префикс, при построении имен, область действия которых выходит за пределы первоначального документа.
В документах 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
значений для атрибутов, которые декларируют пространства имен.
Область действий декларации пространства имен при декларировании префикса проходит от начала открывающего тега, в котором она появляется, до конца соответствующего закрывающего тега, за исключением области действий любых внутренних деклараций с таким же полем 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>
Область действий декларации пространства имен по умолчанию проходит от начала открывающего тега, в котором она появляется, до конца соответствующего закрывающего тега, за исключением области действий любых внутренних деклараций пространств по умолчанию. В том случае, когда тег пустой, областью становится сам тег.
Декларация пространства имен по умолчанию относится ко всем именам элементов без префикса в пределах своей области. Декларации пространств имен по умолчанию не относятся непосредственно к именам атрибутов; интерпретации атрибутов без префикса определяются элементом, в котором они возникают.
Если существует декларация пространства имен по умолчанию в области действий, тогда расширенное имя, соответствующего имени элемента без префикса, имеет 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>
В документах XML соответствующих данной спецификации, нет тега, содержащего два атрибута, которые:
имеют одинаковые имена, или
имеют полные имена с одинаковой локальной частью и с префиксами связанными с именами пространства имен, которые идентичны.
Это ограничение равносильно тому, что нет элемента имеющего два атрибута с одинаковым расширенным именем.
Например, каждый из 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>
Эта спецификация относится к документам 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.]
Из этого следует, что в валидном, по отношению к пространству имен, документе:
Ни один атрибут с объявленными типами ID, IDREF(S), ENTITY(IES), или NOTATION не содержит двоеточий.
Чтобы соответствовать данной спецификации, процессор ДОЛЖЕН сообщать о нарушениях в корректно-сформированном пространстве имен, с тем исключением, когда нет НЕОБХОДИМОСТИ проверять, что названия пространства имен являются легальными ссылками IRI.
[Определение: Процессор проверяющий корректность XML, который соответствует этой спецификации, является проверкой корректности пространства имен, если, кроме того, он сообщает о нарушениях корректности пространства имен.]
Данная версия включает в себя исправления для версии 1.0 от 6 декабря 2002 [Исправления 1.0]. Также имеются еще два существенных изменения:
Механизм предназначен для не объявленных префиксов;
Имена пространства имен это ссылки IRI, вместо URI.
Есть несколько изменений редакционного характера, включая количество изменений и дополнений в терминологии предназначенной для получения большей согласованности. Ненормативное приложение "Внешняя структура пространства имен XML" ("The Internal Structure of XML Namespaces"), было удалено.
Эта версия включает в себя исправления до версии 1.1 по состоянию на 1 Июня 2006 [Исправления 1.1].
Поскольку окончательный вариант IRI RFC еще не был опубликован, первое издание версии 1.1, включало в себя свое собственное определение IRI. В этой версии, это определение было удалено, и заменено ссылкой на RFC.
Эта работа отражает вклад от очень большого количества людей, особенно хочется отметить участников World Wide Web Consortium XML Working Group и Special Interest Group, а также участников из W3C Metadata Activity. Особенно ценным является вклад Чарльза Фрэнкстона из Microsoft.