XElement オブジェクトを表すリテラル。
構文
<name [ attributeList ] />
-or-
<name [ attributeList ] > [ elementContents ] </[ name ]>
部品
<
必須。 開始要素タグを開きます。
name
必須。 要素の名前。 形式は次のいずれかです。
[ePrefix:]eName
形式の要素名のリテラル テキスト。部分 説明 ePrefix
任意。 要素の XML 名前空間プレフィックス。 ファイルまたはプロジェクト レベルで Imports
ステートメントで定義されるグローバル XML 名前空間、またはこの要素または親要素で定義されているローカル XML 名前空間である必要があります。eName
必須。 要素の名前。 形式は次のいずれかです。
- リテラル テキスト。 「宣言された XML 要素と属性の名前」を参照してください。
- フォーム<%= eNameExp %>
の埋め込み式。eNameExp
の型は、String
またはXNameに暗黙的に変換できる型である必要があります。フォーム
<%= nameExp %>
の埋め込み式。nameExp
の型はString
するか、XNameに暗黙的に変換できる型である必要があります。 埋め込み式は、要素の終了タグでは使用できません。
attributeList
任意。 リテラルで宣言された属性の一覧。
attribute [ attribute ... ]
各
attribute
には、次のいずれかの構文があります。フォーム
[aPrefix:]aName=aValue
の属性の割り当て。部分 説明 aPrefix
任意。 属性の XML 名前空間プレフィックス。 Imports
ステートメントで定義されるグローバル XML 名前空間、またはこの要素または親要素で定義されているローカル XML 名前空間である必要があります。aName
必須。 属性の名前。 形式は次のいずれかです。
- リテラル テキスト。 「宣言された XML 要素と属性の名前」を参照してください。
- フォーム<%= aNameExp %>
の埋め込み式。aNameExp
の型は、String
またはXNameに暗黙的に変換できる型である必要があります。aValue
任意。 属性の値。 形式は次のいずれかです。
- 引用符で囲まれたリテラル テキスト。
- フォーム<%= aValueExp %>
の埋め込み式。 任意の型を使用できます。フォーム
<%= aExp %>
の埋め込み式。
/>
任意。 要素が空の要素であり、コンテンツが含まないことを示します。
>
必須。 先頭または空の要素タグを終了します。
elementContents
任意。 要素の内容。
content [ content ... ]
各
content
には、次のいずれかを指定できます。リテラル テキスト。 リテラル テキストがある場合、
elementContents
内のすべての空白が重要になります。フォーム
<%= contentExp %>
の埋め込み式。XML 要素リテラル。
XML コメント リテラル。 XML コメント リテラルを参照してください。
XML 処理命令リテラル。 XML 処理命令リテラルを参照してください。
XML CDATA リテラル。 XML CDATA リテラルを参照してください。
</[name]>
任意。 要素の終了タグを表します。 埋め込み式の結果である場合、省略可能な
name
パラメーターは使用できません。
戻り値
XElement オブジェクト。
注釈
XML 要素リテラル構文を使用して、コード内に XElement オブジェクトを作成できます。
注
XML リテラルは、行連結文字を使用せずに複数行にまたがることができます。 この機能を使用すると、XML ドキュメントからコンテンツをコピーし、Visual Basic プログラムに直接貼り付けることができます。
フォーム <%= exp %>
埋め込み式を使用すると、XML 要素リテラルに動的な情報を追加できます。 詳細については、「XML の 埋め込み式」を参照してください。
Visual Basic コンパイラは、XML 要素リテラルを XElement コンストラクターの呼び出しに変換し、必要な場合は XAttribute コンストラクターを呼び出します。
XML 名前空間
XML 名前空間プレフィックスは、コード内で同じ名前空間の要素を含む XML リテラルを何度も作成する必要がある場合に便利です。 グローバル XML 名前空間プレフィックスは、 Imports
ステートメントを使用して定義するか、 xmlns:xmlPrefix="xmlNamespace"
属性構文を使用して定義するローカル プレフィックスを使用できます。 詳細については、「 Imports ステートメント (XML 名前空間)」を参照してください。
XML 名前空間のスコープ規則に従って、ローカル プレフィックスはグローバル プレフィックスよりも優先されます。 ただし、XML リテラルで XML 名前空間が定義されている場合、その名前空間は埋め込み式に表示される式では使用できません。 埋め込み式は、グローバル XML 名前空間にのみアクセスできます。
Visual Basic コンパイラは、XML リテラルによって使用される各グローバル XML 名前空間を、生成されたコード内の 1 つのローカル名前空間定義に変換します。 使用されていないグローバル XML 名前空間は、生成されたコードには表示されません。
例 1
次の例は、2 つの入れ子になった空の要素を持つ単純な XML 要素を作成する方法を示しています。
Dim test1 As XElement =
<outer>
<inner1></inner1>
<inner2/>
</outer>
Console.WriteLine(test1)
この例では、次のテキストが表示されます。 リテラルは空の要素の構造を保持していることに注意してください。
<outer>
<inner1></inner1>
<inner2 />
</outer>
例 2
次の例は、埋め込み式を使用して要素に名前を付け、属性を作成する方法を示しています。
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" />
例 3
次の例では、 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
ステートメントによって定義された名前空間を使用します。
こちらも参照ください
.NET