Описание: W3C

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

Рекомендация W3C от 8 декабря 2009 года

Данная версия:

http://www.w3.org/TR/2009/REC-xml-names-20091208/

Последняя версия:

http://www.w3.org/TR/XML-Names/

Предыдущие версии:

http://www.w3.org/TR/2006/REC-xml-names-20060816/ http://www.w3.org/TR/2009/per-XML-Names-20090806/

Редакторы:

Tim Bray, Textuality <tbray@textuality.com>

Dave Hollander, Contivo, Inc. <dmh@contivo.com>

Andrew Layman, Microsoft <andrewl@microsoft.com>

Richard Tobin, University of Edinburgh and Markup Technology Ltd <richard@inf.ed.ac.uk>

Henry S. Thompson, University of Edinburgh and W3C <ht@w3.org> - Third Edition

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

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

Данный документ также доступен в следующих не нормативных форматах: XML и HTML (выделения указывают на отличия от второго издания).

Copyright © 2009 W3C ® (MIT, ERCIM, Keio), все права защищены. Применяются правила W3C относительно ответственности, товарных знаков и использования документов.


Примечание переводчика: обратите внимание на то, что оригинальная версия документа существует только на английском языке. Предлагаемый перевод может содержать ошибки, неточности и т. д. Текст на таком фоне в официальной рекомендации отсутствует.
Перевод выполнил
Геннадий Берман.

Аннотация

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

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

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

Данный документ является продуктом XML Core Working Group как часть W3C XML Activity. Только версия данной спецификации на английском языке является нормативной. Тем не менее, переводы данного документа можно найти на http://www.w3.org/2003/03/Translations/byTechnology?technology=xml-names.

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

Данное третье издание включает в себя все известные ошибки на дату публикации. Оно заменяет предыдущее издание от 16 августа 2006 года.

Данное издание было широко рассмотрено. Лишь незначительные редакционные изменения были сделаны после 6 августа 2009 года в Редактируемых Предложениях Рекомендации.

Пожалуйста, сообщайте об ошибках в данном документе по адресу xml-names-editor@w3.org; доступны публичные архивы. Список опечаток для данного документа можно получить на http://www.w3.org/XML/2009/xml-names-errata.

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

W3C поддерживает публичный список всех патентных публикаций, сделанных по результатам деятельности группы. Эта страница также включает инструкции, позволяющие раскрывать патент. Каждый человек, обладающий реальными знаниями патента,  и предающий значение содержанию Основных требований (Essential Claim(s)),должен раскрывать информацию в соответствии с разделом 6 патентной политики W3C.

Оглавление

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

Приложения

A Нормативные ссылки
B
Другие ссылки (не нормативное)
C
Внутренняя структура пространств имен XML (не нормативное)
D
Изменения, начиная с версии 1.0 (не нормативное)
E
Признательности (не нормативное)
F
Более не используемые особенности (не нормативное)


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

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

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

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

1.1 Замечание об условном изображении и использовании

В местах, где АКЦЕНТИРОВАНО следующим образом, ключевые слова ДОЛЖЕН (MUST), НЕ ДОЛЖЕН (MUST NOT), ТРЕБУЕМЫЙ (REQUIRED), НЕОБХОДИМО (SHOULD), НЕТ НЕОБХОДИМОСТИ (SHOULD NOT), МОЖЕТ (MAY)  в данном документе должны толковаться согласно [Ключевые слова].

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

При переводе данной спецификации использовались понятия и термины перевода спецификации XML, информация о которой представлена на странице переводов W3C на русский язык.

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

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

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

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

[Определение: расширенное имя представляет собой пару, состоящую из имени пространства имен и локального имени.]  [Определение: для имени N в пространстве имен, определенным URI I, имя пространства имен есть I. Для имени N, которое не в пространстве имен, имя пространство имен не имеет значения. ] [ Определение: В любом случае локальное имя есть N.] Представленная комбинация первоначально идущего URI пространства имен с локальными именами словаря обеспечивает универсальность, позволяющую избежать конфликтов имен.

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

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

Хотя пустая строка - это правильная ссылка URI, она не может использоваться как имя пространства имен.

В объявлениях пространств имен использование относительных ссылок URI, включая ссылки на тот же самый документ, не одобряется.

Примечание:

Решение о том, что использование относительных ссылок URI не одобряется, было принято голосованием на пленарном заседании W3C по XML [Не одобрение относительных URI]. На этом заседании также было заявлено, что «в более поздних спецификациях, такие как DOM, XPath и т.д. их  толкование определяться не будет».

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

Ссылки URI, идентифицирующие пространства имен, сравниваются, когда нужно определить принадлежность имени заданному пространству имен, либо принадлежность  двух имен одному и тому же пространству имен. [Определение: два URI трактуются как строки, и они идентичны только тогда, когда идентичны строки, то есть, они представляются одной и той же последовательностью символов. Сравнение чувствительно к регистру символов, и не сравнивает символ с заменяющим его %-маскированием (%-escaping).

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

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

Примеры:

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

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

Поскольку существует риск запутаться при разыменовании  между возможно эквивалентными URI, то настоятельно не рекомендуется использование символов %-маскирования в именах пространств имен.

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

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

Имена атрибутов для объявления пространства имен

[1] 

NSAttName

 ::= 

PrefixedAttName

     

| DefaultAttName

[2] 

PrefixedAttName

 ::= 

'xmlns:' NCName

[NSC: Резервируемые имена префиксов и пространств имен]

[3] 

DefaultAttName

 ::= 

'xmlns'

 

[4] 

NCName

 ::= 

Name - (Char* ':' Char*)

/* XML Name за исключением ":" */

Нормализованное значение атрибута ДОЛЖНО быть либо ссылка URI «имя пространства имен, идентифицирующее пространство имен», либо пустая строка. Пространству имен, для обеспечения указанной цели, НЕОБХОДИМО иметь характеристики уникальности и постоянства. При этом не ставится задача  непосредственного его использования для получения схемы (даже, если такая схема существует). Унифицированные имена ресурсов [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

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

Обратите внимание, что префикс обеспечивает только замену имени пространства имен. Приложениям НЕОБХОДИМО использовать имя пространства имен, а не префикс, при формировании имен, область действия которых выходит за пределы содержания документа.

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

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

Имена элементов

[12]

STag

::=

'<' QName (S Attribute)* S? '>'

[NSC: объявленный префикс]

[13]

ETag

::=

'</' QName S? '>'

[NSC: объявленный префикс]

[14]

EmptyElemTag

::=

'<' QName (S Attribute)* S? '/>'

[NSC: объявленный префикс]

Пример полного имени в качестве имени элемента:

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

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

Атрибут

[15]

Attribute

::=

NSAttName Eq AttValue

| QName Eq AttValue

[NSC: объявленный префикс]

[NSC: обязательно объявленный префикс]

[NSC: уникальные атрибуты]

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

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

Ограничение пространства имен: объявление префикс

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

Ограничение пространства имен: обязательность объявления  префикса

В объявление пространства имен для префикса (т.е., в случае NSAttName есть  PrefixedAttName), значение атрибута НЕ ДОЛЖНО быть пустым.

Это ограничение может привести к определенным сложностям в случае, когда атрибут объявления пространства имен представляется не непосредственно в XML сущности document, а через атрибут по умолчанию, объявленный во внешней сущности. Такие объявления не могут быть прочитаны программами, базирующимися на не проверяющих (non-validiting) 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. В случае пустого тега такой областью является сам тег.

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

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

  <?xml version="1.0"?>
  
  <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.0"?>
  <!-- both namespace prefixes are available throughout -->
  <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>

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

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

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

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

  <?xml version="1.0"?>
  <!-- elements are in the HTML namespace, in this case by default -->
  <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.0"?>
  <!-- unprefixed element types are from "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.0"?>
  <!-- initially, the default namespace is "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>
      <!-- make HTML the default namespace for some commentary -->
	     <p xmlns='http://www.w3.org/1999/xhtml'>
          This is a <i>funny</i> book!
	     </p>
    </notes></book>

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

  <?xml version='1.0'?>
  <Beers>
  <!-- the default namespace inside tables is that of HTML -->
	  <table xmlns='http://www.w3.org/1999/xhtml'>
     <th><td>Name</td><td>Origin</td><td>Description</td></th>
     <tr> 
       <!-- no default namespace inside table cells -->
       <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 is bound to n1 and 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 is bound to n1 and is the default -->
  <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.0. Для соответствия данной спецификации, документ ДОЛЖЕН быть корректным, согласно спецификации XML 1.0 [XML].

В XML документах, соответствующих требованиям данной спецификации, имена элементов и атрибутов ДОЛЖНЫ соответствовать правилам QName и ДОЛЖНЫ удовлетворять "Namespace Constraints". С целью обеспечения требований корректности XML 1.0, все другие ТРЕБУЕМЫЕ лексемы в документе  чтобы соответствовать XML Name ДОЛЖНЫ соответствовать правилам данной спецификации для NCName.

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

Отсюда следует, что в корректном документе при использовании пространств имен:

Кроме этого корректный документ при использовании пространств также может быть действительным.

[ Определение: корректный документ является действительным при  использовании пространств имен, если он является действительным, согласно требований спецификации XML 1.0. С целью обеспечения требований действительности, все ТРЕБУЕМЫЕ лексемы, кроме имен элементов и атрибутов, чтобы соответствовать правилам XML Name должны соответствовать правилам данной спецификации для NCName. ]

Отсюда следует, что в действительном документе при использовании пространстве имен:

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

Чтобы соответствовать данной спецификации, процессор ДОЛЖЕН сообщать о нарушениях корректности пространств имен. Не ТРЕБУЕТСЯ  проверять имена пространств имен, если они являются URI ссылками [RFC3986].

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

A Нормативные ссылки

Ключевые слова

RFC 2119: Key words for use in RFCs to Indicate Requirement Levels, S. Bradner, ed. IETF (Internet Engineering Task Force), March 1997. Available at http://www.rfc-editor.org/rfc/rfc2119.txt

RFC2141

RFC 2141: URN Syntax, R. Moats, ed. IETF (Internet Engineering Task Force), May 1997. Available at http://www.rfc-editor.org/rfc/rfc2141.txt.

RFC3986

RFC 3986: Uniform Resource Identifier (URI): Generic Syntax, T. Berners-Lee, R. Fielding, and L. Masinter, eds. IETF (Internet Engineering Task Force), January 2005. Available at http://www.rfc-editor.org/rfc/rfc3986.txt

RFC3629

RFC 3629: UTF-8, a transformation format of ISO 10646, F. Yergeau, ed. IETF (Internet Engineering Task Force), November 2003. Available at http://www.rfc-editor.org/rfc/rfc3629.txt

XML

Extensible Markup Language (XML) 1.0, Tim Bray, Jean Paoli, C. M. Sperberg-McQueen, Eve Maler, and François Yergeau eds. W3C (World Wide Web Consortium). Available at http://www.w3.org/TR/REC-xml/.

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

1.0 Опечатки

Namespaces in XML Errata. W3C (World Wide Web Consortium). Available at http://www.w3.org/XML/xml-names-19990114-errata.

1.0 Опечатки (вторая редакция)

Namespaces in XML (Second Edition) Errata. W3C (World Wide Web Consortium). Available at http://www.w3.org/XML/2006/xml-names-errata.

Не одобрение относительных URI

Results of W3C XML Plenary Ballot on relative URI References In namespace declarations 3-17 July 2000, Dave Hollander and C. M. Sperberg-McQueen, 6 September 2000. Available at http://www.w3.org/2000/09/xppa.

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

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

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

Данная версия включает в себя сообщения об ошибках от 20 июля 2009 года [1.0 Errata] [1.0 2е Errata].

Существует несколько редакционных изменений, включая ряд терминологических изменений и дополнений, предназначенных для обеспечения большей согласованности. Не нормативное приложение «Внутренняя структура пространств имен XML» было удалено. BNF (форма Бэкуса-Наура) была должным образом приведена в порядок, чтобы соединить все редакции XML 1.0, включая и пятую редакцию.

E Признательности (не нормативное)

Эта работа отражает вклад очень большого числа людей, особенно членов XML Working Group консорциума World Wide Web, Special Interest Group и участников W3C Metadata Activity. Особо важен вклад Charles Frankston из корпорации Майкрософт.

F Более не используемые особенности (не нормативное)

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

Поскольку сценарий Letter XML 1.0, который первоначально использовался в определении NCNameStartChar, больше не является правильной основой для определения имен в XML 1.0 пятой редакции, то сценарий NCNameStartChar был изменен, чтобы обеспечить корректные результаты для любой редакции XML, определяя NCNameStartChar с точки зрения NCName.

[5]

NCNameChar

::=

NameChar - ':' /* XML NameChar, за исключением ":" */

[6]

NCNameStartChar

::=

NCName - ( Char Char Char* ) /* Первый символ NCName */

Примечание:

Сценарий NC-NCNameStartChar использует преимущество того факта, что одно символьный NCName это NCNameStartChar, и работает, вычитая  из набора NCNames набор всех строк из двух или более символов, оставляя только одно символьный NCNames.

Сайт создан в системе uCoz