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


Оператор Imports (пространство имен XML)

Импортирует префиксы пространства имен XML для использования в xml-литералах и свойствах оси XML.

Синтаксис

Imports <xmlns:xmlNamespacePrefix = "xmlNamespaceName">

Детали

xmlNamespacePrefix
Необязательно. Строка, в которой XML-элементы и атрибуты могут ссылаться xmlNamespaceName. Если не xmlNamespacePrefix задано, импортированное пространство имен XML является пространством имен XML по умолчанию. Должен быть допустимым XML-идентификатором. Дополнительные сведения см. в разделе "Имена объявленных XML-элементов и атрибутов".

xmlNamespaceName
Обязательный. Строка, определяющая импортируемое пространство имен XML.

Замечания

Инструкцию Imports можно использовать для определения глобальных пространств имен XML, которые можно использовать с свойствами XML-литералов и осей XML или в качестве параметров, передаваемых оператору GetXmlNamespace . (Сведения об использовании Imports инструкции для импорта псевдонима, который можно использовать, где имена типов используются в коде, см . в инструкции Import (пространство имен и тип.NET).) Синтаксис объявления пространства имен XML с помощью Imports инструкции идентичен синтаксису, используемому в XML. Поэтому можно скопировать объявление пространства имен из XML-файла и использовать его в инструкции Imports .

Префиксы пространства имен XML полезны при повторном создании XML-элементов из одного пространства имен. Префикс пространства имен XML, объявленный с Imports помощью инструкции, является глобальным в том смысле, что он доступен для всего кода в файле. Его можно использовать при создании литералах ЭЛЕМЕНТОВ XML и при доступе к свойствам оси XML. Дополнительные сведения см. в разделе "Литерал XML-элемента" и "Свойства оси XML".

Если определить глобальное пространство имен XML без префикса пространства имен (например, Imports <xmlns="http://SomeNameSpace>"), это пространство имен считается пространством имен по умолчанию. Пространство имен XML по умолчанию используется для любых литералов XML-элементов или свойств оси атрибутов XML, которые явно не указывают пространство имен. Пространство имен по умолчанию также используется, если указанное пространство имен является пустым пространством имен (то есть xmlns=""). Пространство имен XML по умолчанию не применяется к XML-атрибутам в XML-литералах или к свойствам оси атрибутов XML, которые не имеют пространства имен.

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

Глобальные пространства имен XML соответствуют тем же правилам области и определениям, что и платформа .NET Framework пространства имен. В результате можно включить инструкцию Imports для определения глобального пространства имен XML в любом месте, где можно импортировать пространство имен платформа .NET Framework. Это включает как файлы кода, так и импортированные пространства имен на уровне проекта. Сведения о импортированных пространствах имен на уровне проекта см. на странице ссылок, конструкторе проектов (Visual Basic).

Каждый исходный файл может содержать любое количество инструкций Imports . Они должны следовать объявлениям параметров, таким как Option Strict оператор, и они должны предшествовать объявлениям элементов программирования, таким как Module или Class операторы.

Пример 1

В следующем примере импортируется пространство имен XML по умолчанию и пространство имен XML, определяемое префиксом ns. Затем он создает XML-литералы, использующие оба пространства имен.

' Place Imports statements at the top of your program.  
Imports <xmlns="http://DefaultNamespace">
Imports <xmlns:ns="http://NewNamespace">

Module Module1

  Sub Main()
    ' Create element by using the default global XML namespace. 
    Dim inner = <innerElement/>

    ' Create element by using both the default global XML namespace
    ' and the namespace identified with the "ns" prefix.
    Dim outer = <ns:outer>
                  <ns:innerElement></ns:innerElement>
                  <siblingElement></siblingElement>
                  <%= inner %>
                </ns:outer>

    ' Display element to see its final form. 
    Console.WriteLine(outer)
  End Sub

End Module

Этот пример кода отображает следующий текст:

<ns:outer xmlns="http://DefaultNamespace"
          xmlns:ns="http://NewNamespace">
  <ns:innerElement></ns:innerElement>
  <siblingElement></siblingElement>
  <innerElement />
</ns:outer>

Пример 2

В следующем примере импортируется префикс nsпространства имен XML. Затем он создает XML-литерал, который использует префикс пространства имен и отображает окончательную форму элемента.

' Place Imports statements at the top of your program.  
Imports <xmlns:ns="http://SomeNamespace">

Class TestClass1

    Shared Sub TestPrefix()
        ' Create test using a global XML namespace prefix. 
        Dim inner2 = <ns:inner2/>

        Dim test = 
        <ns:outer>
            <ns:middle xmlns:ns="http://NewNamespace">
                <ns:inner1/>
                <%= inner2 %>
            </ns:middle>
        </ns:outer>

        ' Display test to see its final form. 
        Console.WriteLine(test)
    End Sub

End Class

Этот пример кода отображает следующий текст:

<ns:outer xmlns:ns="http://SomeNamespace">
  <ns:middle xmlns:ns="http://NewNamespace">
    <ns:inner1 />
    <inner2 xmlns="http://SomeNamespace" />
  </ns:middle>
</ns:outer>

Обратите внимание, что компилятор преобразовал префикс пространства имен XML из глобального префикса в локальное определение префикса.

Пример 3

В следующем примере импортируется префикс nsпространства имен XML. Затем префикс пространства имен используется для создания литерала XML и доступа к первому дочернему узлу с полным именем ns:name.

Imports <xmlns:ns = "http://SomeNamespace"> 
 
Class TestClass4

    Shared Sub TestPrefix()
        Dim contact = <ns:contact>
                        <ns:name>Patrick Hines</ns:name>
                      </ns:contact>
        Console.WriteLine(contact.<ns:name>.Value)
    End Sub

End Class

Этот пример кода отображает следующий текст:

Patrick Hines

См. также