次の方法で共有


XML 要素リテラル (Visual Basic)

XElement オブジェクトを表すリテラル。

<name [ attributeList ] />
-or-
<name [ attributeList ] > [ elementContents ] </[ name ]>

指定項目

語句

定義

<

必ず指定します。 開始要素タグを開きます。

name

必ず指定します。 要素の名前。 次のいずれかの形式です。

  • 要素名のリテラル テキスト。[ePrefix:]eName の形式。

指定項目

Description

ePrefix

省略可能です。 要素の XML 名前空間プレフィックス。 ファイルまたはプロジェクト レベルで Imports ステートメントを使用して定義されているグローバル XML 名前空間、またはこの要素か親要素で定義されているローカル XML 名前空間を指定する必要があります。

eName

必ず指定します。 要素の名前。 次のいずれかの形式です。

  • <%= nameExp %> の形式の埋め込み式。 nameExp の型は、String または暗黙的に XName に変換できる型である必要があります。 埋め込み式は、要素の終了タグでは使用できません。

attributeList

省略可能です。 リテラルで宣言されている属性のリスト。

attribute [ attribute ... ]

各 attribute の構文は次のいずれかです。

  • 属性の割り当て。形式は [aPrefix:]aName=aValue。

指定項目

Description

aPrefix

省略可能です。 属性の XML 名前空間プレフィックス。 Imports ステートメントを使用して定義されているグローバル XML 名前空間、またはこの要素か親要素で定義されているローカル XML 名前空間を指定する必要があります。

aName

必ず指定します。 属性の名前です。 次のいずれかの形式です。

aValue

省略可能です。 属性の値。 次のいずれかの形式です。

  • 引用符で囲んだリテラル テキスト。

  • <%= aValueExp %> の形式の埋め込み式。 任意の型を使用できます。

  • <%= aExp %> の形式の埋め込み式。

/>

省略可能です。 内容のない空の要素であることを示します。

>

必ず指定します。 開始要素タグまたは空の要素タグを終了します。

elementContents

省略可能です。 要素の内容。

content [ content ... ]

各 content は次のいずれかです。

</[name]>

省略可能です。 要素の終了タグを表します。 この省略可能な name パラメーターは、埋め込み式の結果になる場合は、使用できません。

戻り値

XElement オブジェクト。

解説

XML 要素リテラル構文を使用して、コード内に XElement オブジェクトを作成できます。

注意

XML リテラルは、行継続文字なしで複数の行に記述できます。この機能により、XML ドキュメントで内容をコピーし、Visual Basic プログラムに直接貼り付けることができます。

<%= exp %> の形式の埋め込み式を使用すると、動的な情報を XML 要素リテラルに追加できます。 詳細については、「XML での埋め込み式 (Visual Basic)」を参照してください。

Visual Basic コンパイラは、XML 要素リテラルを、#ctor コンストラクターおよび必要に応じて #ctor コンストラクターの呼び出しに変換します。

XML 名前空間

XML 名前空間プレフィックスは、同じ名前空間の要素を含む XML リテラルを、コード内で何回も作成する必要がある場合に役立ちます。 Imports ステートメントを使用して定義するグローバル XML 名前空間プレフィックス、または xmlns:xmlPrefix="xmlNamespace" 属性構文を使用して定義するローカル プレフィックスを使用できます。 詳細については、「Imports ステートメント (XML 名前空間)」を参照してください。

XML 名前空間のスコープ規則に従い、ローカル プレフィックスがグローバル プレフィックスより優先されます。 ただし、XML リテラルが XML 名前空間を定義する場合、その名前空間は、埋め込み式に出現する式には使用できません。 埋め込み式は、グローバル XML 名前空間のみにアクセスできます。

Visual Basic コンパイラは、XML リテラルで使用される各グローバル XML 名前空間を、生成されるコードでは 1 つのローカル名前空間の定義に変換します。 使用されないグローバル XML 名前空間は、生成されるコードには出現しません。

使用例

次の例は、入れ子になった空の要素を 2 つ含む簡単な XML 要素の作成方法を示します。

Dim test1 As XElement = 
<outer>
    <inner1></inner1>
    <inner2/>
</outer>

Console.WriteLine(test1)

このコードを実行すると、次のテキストが表示されます。 リテラルが空の要素の構造を維持しています。

<outer>
  <inner1></inner1>
  <inner2 />
</outer>

次の例は、埋め込み式を使用して、要素の名前を指定し、属性を作成する方法を示します。

Dim elementType = "book" 
Dim authorName = "My Author" 
Dim attributeName1 = "year" 
Dim attributeValue1 = 1999
Dim attributeName2 = "title" 
Dim attributeValue2 = "My Book" 

Dim book As XElement = 
<<%= elementType %>
    isbn="1234"
    author=<%= authorName %>
    <%= attributeName1 %>=<%= attributeValue1 %>
    <%= New XAttribute(attributeName2, attributeValue2) %>
/>

Console.WriteLine(book)

このコードは、次のテキストを表示します。

<book isbn="1234" author="My Author" year="1999" title="My Book" />

次の例では、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 名前空間のプレフィックスを、XML 名前空間のプレフィックス定義に変換しています。 <ns:middle> 要素は、<ns:inner1> 要素の XML 名前空間プレフィックスを再定義します。 一方、<ns:inner2> 要素は、Imports ステートメントで定義されている名前空間を使用します。

参照

関連項目

XElement

XML コメント リテラル (Visual Basic)

XML CDATA リテラル (Visual Basic)

Imports ステートメント (XML 名前空間)

概念

宣言する XML 要素と属性の名前 (Visual Basic)

XML での埋め込み式 (Visual Basic)

その他の技術情報

XML リテラル (Visual Basic)

Visual Basic での XML の作成