Imports 문(XML 네임스페이스)

XML 리터럴 및 XML 축 속성에 사용할 XML 네임스페이스 접두사를 가져옵니다.

구문

Imports <xmlns:xmlNamespacePrefix = "xmlNamespaceName">

부분

xmlNamespacePrefix
선택 사항. XML 요소와 특성이 xmlNamespaceName을 참조할 수 있는 문자열입니다. xmlNamespacePrefix가 제공되지 않으면 가져온 XML 네임스페이스가 기본 XML 네임스페이스입니다. 유효한 XML 식별자여야 합니다. 자세한 내용은 선언된 XML 요소 및 특성의 이름을 참조하세요.

xmlNamespaceName
필수입니다. 가져올 XML 네임스페이스를 식별하는 문자열입니다.

설명

Imports 문을 사용하면 XML 리터럴 및 XML 축 속성과 함께 사용하거나 GetXmlNamespace 연산자에 전달되는 매개 변수로 사용할 수 있는 전역 XML 네임스페이스를 정의할 수 있습니다. (Imports 문을 사용하여 코드에서 형식 이름이 사용되는 곳에 사용할 수 있는 별칭을 가져오는 방법에 대한 자세한 내용은 Imports 문(.NET 네임스페이스 및 형식)을 참조하세요.) Imports 문을 사용하여 XML 네임스페이스를 선언하는 구문은 XML에 사용되는 구문과 동일합니다. 따라서 XML 파일에서 네임스페이스 선언을 복사하여 Imports 문에서 사용할 수 있습니다.

XML 네임스페이스 접두사는 동일한 네임스페이스의 XML 요소를 반복적으로 만들려는 경우에 유용합니다. Imports 문으로 선언된 XML 네임스페이스 접두사는 파일의 모든 코드에서 사용할 수 있다는 점에서 전역입니다. XML 요소 리터럴을 만들고 XML 축 속성에 액세스할 때 사용할 수 있습니다. 자세한 내용은 XML 요소 리터럴XML 축 속성을 참조하세요.

네임스페이스 접두사 없이 전역 XML 네임스페이스를 정의하는 경우(예: Imports <xmlns="http://SomeNameSpace>") 해당 네임스페이스는 기본 XML 네임스페이스로 간주됩니다. 기본 XML 네임스페이스는 네임스페이스를 명시적으로 지정하지 않는 모든 XML 요소 리터럴 또는 XML 특성 축 속성에 사용됩니다. 지정된 네임스페이스가 빈 네임스페이스(xmlns="")인 경우에도 기본 네임스페이스가 사용됩니다. 기본 XML 네임스페이스는 XML 리터럴의 XML 특성이나 네임스페이스가 없는 XML 특성 축 속성에 적용되지 않습니다.

로컬 XML 네임스페이스라고 하는 XML 리터럴에 정의된 XML 네임스페이스는 Imports 문에서 전역으로 정의된 XML 네임스페이스보다 우선합니다. Imports 문으로 정의된 XML 네임스페이스는 Visual Basic 프로젝트용으로 가져온 XML 네임스페이스보다 우선합니다. XML 리터럴이 XML 네임스페이스를 정의하는 경우 해당 로컬 네임스페이스는 포함 식에 적용되지 않습니다.

전역 XML 네임스페이스는 .NET Framework 네임스페이스와 동일한 범위 지정 및 정의 규칙을 따릅니다. 따라서 .NET Framework 네임스페이스를 가져올 수 있는 모든 위치에 전역 XML 네임스페이스를 정의하는 Imports 문을 포함할 수 있습니다. 여기에는 코드 파일과 프로젝트 수준의 가져온 네임스페이스가 모두 포함됩니다. 프로젝트 수준의 가져온 네임스페이스에 대한 자세한 내용은 참조 페이지, 프로젝트 디자이너(Visual Basic)를 참조하세요.

각 원본 파일에는 원하는 만큼의 Imports 문이 포함될 수 있습니다. 이는 Option Strict 문과 같은 옵션 선언 뒤에 와야 하며 Module 또는 Class 문과 같은 프로그래밍 요소 선언 앞에 와야 합니다.

예 1

다음 예에서는 기본 XML 네임스페이스와 접두사 ns로 식별되는 XML 네임스페이스를 가져옵니다. 그런 다음 두 네임스페이스를 모두 사용하는 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

다음 예에서는 XML 네임스페이스 접두사 ns를 가져옵니다. 그런 다음 네임스페이스 접두사를 사용하고 요소의 최종 형식을 표시하는 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

다음 예에서는 XML 네임스페이스 접두사 ns를 가져옵니다. 네임스페이스의 접두사를 사용하여 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

참고 항목