共用方式為


XML 項目常值

更新:2007 年 11 月

表示 XElement 物件的常值 (Literal)。

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

參數

  • <
    必要項。代表起始項目標記的開始。

  • name
    必要項。項目的名稱。格式為下列其中一種:

    • 項目名稱的常值文字,格式為 [ePrefix:]eName,其中:

      參數

      描述

      ePrefix

      選擇項,項目的 XML 命名空間前置字元。必須是使用 Imports 陳述式 (Statement) 在檔案或專案層級定義的全域 XML 命名空間 (Namespace),或是在這個項目或其父項目中定義的區域 XML 命名空間。

      eName

      必要項。項目的名稱。格式為下列其中一種:

    • <%= nameExp %> 格式的內嵌運算式。nameExp 的型別必須是 String,或可以隱含轉換為 XName 的型別。項目的結尾標記中不能有內嵌運算式。

  • attributeList
    選擇項,常值中宣告的屬性 (Attribute) 清單。

    attribute [ attribute ... ]

    每個 attribute 都具有下列其中一個語法:

    • 屬性指派,格式為 [aPrefix:]aName=aValue,其中:

      參數

      描述

      aPrefix

      選擇項,屬性的 XML 命名空間前置字元。必須是使用 Imports 陳述式定義的全域 XML 命名空間,或是在這個項目或其父項目中定義的區域 XML 命名空間。

      aName

      必要項。屬性 (Attribute) 名稱。格式為下列其中一種:

      aValue

      選擇項,屬性的值。格式為下列其中一種:

      • 以引號括住的常值文字。

      • <%= aValueExp %> 格式的內嵌運算式。任何型別都可以。

    • <%= aExp %> 格式的內嵌運算式。

  • />
    選擇項,表示項目是沒有內容的空項目。

  • >
    必要項。起始項目標記或空項目標記的結尾。

  • elementContents
    選擇項,項目的內容。

    content [ content ... ]

    每個content 都可以是下列其中一項:

    • 常值文字。如果有常值文字,則會顯示 elementContents 中的所有泛空白字元 (White Space)。

    • <%= contentExp %> 格式的內嵌運算式。

    • XML 項目常值。

    • XML 註解常值。請參閱 XML 註解常值

    • XML 處理指示常值。請參閱 XML 處理指示常值

    • XML CDATA 常值。請參閱 XML CDATA 常值

  • </[name]>
    選擇項,表示項目的結尾標記。當 name 參數是內嵌運算式的結果時,不允許使用此選擇性參數。

傳回值

XElement 物件。

備註

您可以在程式碼中使用 XML 項目常值語法來建立 XElement 物件。

注意事項:

XML 常值 (Literal) 可以在不需使用行接續字元的情況下跨越數行。這項功能可讓您複製 XML 文件中的內容,並直接貼入 Visual Basic 程式。

您可以利用 <%= exp %> 格式的內嵌運算式,將動態資訊加入至 XML 項目常值。如需詳細資訊,請參閱 XML 中內嵌的運算式

Visual Basic 編譯器會將 XML 項目常值轉換為 XElement 建構函式的呼叫,必要時也可以是 XAttribute 建構函式的呼叫。

XML 命名空間

當您必須於程式碼中多次使用相同命名空間的項目建立 XML 常值時,XML 命名空間前置字元會相當有用。您可以使用透過 Imports 陳述式定義的全域 XML 命名空間前置字元,也可以使用透過 xmlns:xmlPrefix="xmlNamespace" 屬性語法定義的區域前置字元。如需詳細資訊,請參閱 Imports 陳述式 (.NET 命名空間和型別)

依照 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 As String = "book"
Dim attributeName1 As String = "year"
Dim attributeValue1 As Integer = 1999
Dim attributeName2 As String = "title"
Dim attributeValue2 As String = "My Book"

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

Console.WriteLine(book)

這個程式碼會顯示下列文字:

<book isbn="1234" 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 項目和屬性的名稱

XML 中內嵌的運算式

參考

XElement

XML 註解常值

XML CDATA 常值

Imports 陳述式 (.NET 命名空間和型別)

其他資源

XML 常值

在 Visual Basic 中建立 XML