XML 要素リテラル (Visual Basic)
XElement オブジェクトを表すリテラル。
<name [ attributeList ] />
-or-
<name [ attributeList ] > [ elementContents ] </[ name ]>
指定項目
語句 |
定義 |
< |
必ず指定します。開始要素タグを開きます。 |
name |
必ず指定します。要素の名前。次のいずれかの形式です。
指定項目Description
ePrefix 省略可能です。要素の XML 名前空間プレフィックス。ファイルまたはプロジェクト レベルで Imports ステートメントを使用して定義されているグローバル XML 名前空間、またはこの要素か親要素で定義されているローカル XML 名前空間を指定する必要があります。
eName 必ず指定します。要素の名前。次のいずれかの形式です。
|
attributeList |
省略可能です。リテラルで宣言されている属性のリスト。 attribute [ attribute ... ] 各 attribute の構文は次のいずれかです。
指定項目Description
aPrefix 省略可能です。属性の XML 名前空間プレフィックス。 Imports ステートメントを使用して定義されているグローバル XML 名前空間、またはこの要素か親要素で定義されているローカル XML 名前空間を指定する必要があります。
aName 必ず指定します。属性の名前です。次のいずれかの形式です。
aValue 省略可能です。属性の値。次のいずれかの形式です。
|
/> |
省略可能です。内容のない空の要素であることを示します。 |
> |
必ず指定します。開始要素タグまたは空の要素タグを終了します。 |
elementContents |
省略可能です。要素の内容。 content [ content ... ] 各 content は次のいずれかです。
|
</[name]> |
省略可能です。要素の終了タグを表します。この省略可能な name パラメーターは、埋め込み式の結果になる場合は、使用できません。 |
戻り値
XElement オブジェクト。
解説
XML 要素リテラル構文を使用して、コード内に XElement オブジェクトを作成できます。
[!メモ]
XML リテラルは、行継続文字なしで複数の行に記述できます。この機能により、XML ドキュメントで内容をコピーし、Visual Basic プログラムに直接貼り付けることができます。
<%= exp %> の形式の埋め込み式を使用すると、動的な情報を XML 要素リテラルに追加できます。詳細については、「XML での埋め込み式 (Visual Basic)」を参照してください。
Visual Basic コンパイラは、XML 要素リテラルを、XElement コンストラクターおよび必要に応じて XAttribute コンストラクターの呼び出しに変換します。
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 ステートメントで定義されている名前空間を使用します。
参照
関連項目
概念
宣言する XML 要素と属性の名前 (Visual Basic)