Поделиться через


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

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

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

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

<Author>Joe Smith</Author>
<BOOK xmlns:book="https://www.contoso.com">
    <title>My Wonderful Day</title>
      <price>$3.95</price>
</BOOK>
<Publisher>
    <Name>MSPress</Name>
</Publisher>

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

Если для элемента Publisher декларировано пространство имен, имя элемента нужно указать полностью, поместив перед ним имя пространства имен с двоеточием в качестве разделителя. Допустим, элемент Publisher принадлежит пространству имен mybook . Тогда его следует декларировать как <mybook:Publisher>.

См. также

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

Пространства имен в XML-документе

Декларации пространств имен

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

Управление пространствами имен с помощью XmlNamespaceManager

Сведения, получаемые из XmlNamespaceManager