表示 XElement 物件的常值。
語法
<name [ attributeList ] />
-or-
<name [ attributeList ] > [ elementContents ] </[ name ]>
組件
<必須的。 開啟起始項目標記。
name必須的。 項目的名稱。 格式為下列其中一項:
項目名稱的常值文字,格式
[ePrefix:]eName為 ,其中:部分 說明 ePrefix選擇性。 專案的 XML 命名空間前置詞。 必須是全域 XML 命名空間,該命名空間是以檔案或專案層級的 語句所定義 Imports,或是在這個元素或父元素中定義的本機 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 命名空間轉換成所產生程式代碼中的一個本機命名空間定義。 未使用的全域 XML 命名空間不會出現在產生的程式代碼中。
範例 1
下列範例示範如何建立具有兩個巢狀空元素的簡單 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 定義的命名空間。