次の方法で共有


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 ステートメントを使用して、コードで型名が使用される場所で使用できるエイリアスをインポートする方法については、「 Imports ステートメント (.NET 名前空間と型)」を参照してください)。 Imports ステートメントを使用して XML 名前空間を宣言する構文は、XML で使用される構文と同じです。 したがって、XML ファイルから名前空間宣言をコピーし、 Imports ステートメントで使用できます。

XML 名前空間プレフィックスは、同じ名前空間の XML 要素を繰り返し作成する場合に便利です。 Imports ステートメントで宣言された XML 名前空間プレフィックスは、ファイル内のすべてのコードで使用できるという意味でグローバルです。 XML 要素リテラルを作成するとき、および XML 軸のプロパティにアクセスするときに使用できます。 詳細については、「 XML 要素リテラル 」および「 XML 軸のプロパティ」を参照してください。

名前空間プレフィックス ( Imports <xmlns="http://SomeNameSpace>" など) を使用せずにグローバル XML 名前空間を定義した場合、その名前空間は既定の 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

こちらも参照ください