x
в <x:out>
интерпретируется синтаксическими анализаторами XML как префикс пространства имен , который представляет собой механизм для создания документов с двумя или более словарями XML, имеющими элементы с одинаковым локальным именем. Например, XHTML имеет элемент title
, как и SVG. Теперь в документе, содержащем как XHTML, так и SVG-разметку, элементы title
должны обрабатываться по-разному (для целей проверки и в отношении допустимых атрибутов и т. Д.) В зависимости от того, предназначен ли данный элемент title
для содержимого XHTML или SVG, соответственно. В XML префикс пространства имен (все, что появляется перед :
в именах элементов или атрибутов) должен быть связан с привязкой пространства имен (один или несколько специальных атрибутов XML, начинающихся с xmlns
или xmlns:
). Например, в следующем документе используется привязка пространства имен xmlns:myvocabulary="http://example.com/myvocabulary"
для назначения префикса пространства имен XML myvocabulary
имени пространства имен, указанному в URI http://example.com/myvocabulary
:
<p>
<myvocabulary:myelement xmlns:myvocabulary="http://example.com/myvocabulary"/>
</p>
Тот факт, что пространство имен name является URL-адресом, не важен - анализатор XML просто использует URL-адрес в качестве строкового идентификатора для имени пространства имен.
Редактировать : следующее, как указал Майкл, неверно. Вместо этого конструкция <x:myelement>...</y:myelement>
является всегда недопустимой, и пространство имен с префиксами , а не только привязанные к именам пространства имен, должны совпадать при сопоставлении тегов начального и конечного элементов.
Обратите внимание, что XML требует правильного содержимого XML в отношении пространств имен XML: такая конструкция, как <x:myelement>...</y:myelement>
, допустима только в том случае, если оба префикса пространства имен x
и y
связаны с одним и тем же именем пространства имен, например, в
<x:myelement xmlns:x="http://example.com/myvocab" xmlns:y="http://example.com/myvocab">...</y:myelement>
Напротив, SGML (предок / расширенный набор XML и HTML) не обычно (1) обрабатывает префиксы пространства имен или даже специальный символ двоеточия (:
) и интерпретирует всю строку x:myelement
как имя элемента.
См. Пространства имен в XML
(1), если не используется специальная инструкция обработки привязки пространства имен DSDL-9, определенная в ИСО / МЭК 19757-9: 2008