XML 項目常值 (Visual Basic)
表示 XElement 物件的常值 (Literal)。
<name [ attributeList ] />
-or-
<name [ attributeList ] > [ elementContents ] </[ name ]>
組件
詞彙 |
定義 |
< |
必要項。 代表起始項目標記的開始。 |
name |
必要項。 項目的名稱。 格式為下列其中一種:
組件描述
ePrefix 選擇項。項目的 XML 命名空間前置字元。必須是使用 Imports 陳述式 (Statement) 在檔案或專案層級定義的全域 XML 命名空間 (Namespace),或是在這個項目或其父項目中定義的區域 XML 命名空間。
eName 必要項。項目的名稱。格式為下列其中一種:
|
attributeList |
選擇項。 常值中宣告的屬性 (Attribute) 清單。 attribute [ attribute ... ] 每個 attribute 都具有下列其中一個語法:
組件描述
aPrefix 選擇項。屬性 (Attribute) 的 XML 命名空間前置字元必須是使用 Imports 陳述式定義的全域 XML 命名空間,或是在這個項目或其父項目中定義的區域 XML 命名空間。
aName 必要項。屬性 (Attribute) 名稱。格式為下列其中一種:
aValue 選擇項。屬性的值。格式為下列其中一種:
|
/> |
選擇項。 表示項目是沒有內容的空項目。 |
> |
必要項。 起始項目標記或空項目標記的結尾。 |
elementContents |
選擇項。 項目的內容。 content [ content ... ] 每個content 都可以是下列其中一項:
|
</[name]> |
選擇項。 表示項目的結尾標記。 當 name 參數是內嵌運算式的結果時,不允許使用此選擇性參數。 |
傳回值
XElement 物件。
備註
您可以在程式碼中使用 XML 項目常值語法來建立 XElement 物件。
注意事項 |
---|
XML 常值 (Literal) 可以在不需使用行接續字元的情況下跨越數行。這項功能可讓您複製 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 命名空間各轉換成一個區域命名空間定義。 未使用的全域 XML 命名空間不會出現在產生的程式碼內。
範例
下列範例顯示如何建立簡單的 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)