Dela via


XML-elementliteral (Visual Basic)

En literal som representerar ett XElement objekt.

Syntax

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

Delar

  • <

    Obligatoriska. Öppnar taggen startelement.

  • name

    Obligatoriska. Namnet på elementet. Formatet är något av följande:

    • Literaltext för elementnamnet i formuläret [ePrefix:]eName, där:

      Delvis beskrivning
      ePrefix Valfritt. XML-namnområdesprefix för elementet. Måste vara ett globalt XML-namnområde som definieras med en Imports instruktion i filen eller på projektnivå, eller ett lokalt XML-namnområde som definieras i det här elementet eller ett överordnat element.
      eName Obligatoriska. Namnet på elementet. Formatet är något av följande:

      - Literal text. Se Namn på deklarerade XML-element och attribut.
      – Inbäddat uttryck i formuläret <%= eNameExp %>. Typen måste eNameExp vara String eller en typ som implicit kan konverteras till XName.
    • Inbäddat uttryck i formuläret <%= nameExp %>. Typen måste nameExp vara String eller en typ som implicit kan konverteras till XName. Ett inbäddat uttryck tillåts inte i en avslutande tagg för ett element.

  • attributeList

    Valfritt. Lista över attribut som deklarerats i literalen.

    attribute [ attribute ... ]

    Var och attribute en har någon av följande syntaxer:

    • Attributtilldelning, i formuläret [aPrefix:]aName=aValue, där:

      Delvis beskrivning
      aPrefix Valfritt. XML-namnområdesprefix för attributet. Måste vara ett globalt XML-namnområde som definieras med en Imports -instruktion eller ett lokalt XML-namnområde som definieras i det här elementet eller ett överordnat element.
      aName Obligatoriska. Namnet på attributet. Formatet är något av följande:

      - Literal text. Se Namn på deklarerade XML-element och attribut.
      – Inbäddat uttryck i formuläret <%= aNameExp %>. Typen måste aNameExp vara String eller en typ som implicit kan konverteras till XName.
      aValue Valfritt. Värdet för attributet. Formatet är något av följande:

      - Literal text, omgiven av citattecken.
      – Inbäddat uttryck i formuläret <%= aValueExp %>. Alla typer tillåts.
    • Inbäddat uttryck i formuläret <%= aExp %>.

  • />

    Valfritt. Anger att elementet är ett tomt element, utan innehåll.

  • >

    Obligatoriska. Avslutar elementtaggen början eller tom.

  • elementContents

    Valfritt. Innehållet i elementet.

    content [ content ... ]

    Var och content en kan vara något av följande:

  • </[name]>

    Valfritt. Representerar den avslutande taggen för elementet. Den valfria name parametern tillåts inte när det är resultatet av ett inbäddat uttryck.

Returvärde

Ett XElement objekt.

Kommentarer

Du kan använda xml-elementliteralsyntaxen för att skapa XElement objekt i koden.

Kommentar

En XML-literal kan sträcka sig över flera rader utan att använda radfortsättningstecken. Med den här funktionen kan du kopiera innehåll från ett XML-dokument och klistra in det direkt i ett Visual Basic-program.

Med inbäddade uttryck i formuläret <%= exp %> kan du lägga till dynamisk information i en XML-elementliteral. Mer information finns i Inbäddade uttryck i XML.

Visual Basic-kompilatorn konverterar XML-elementliteralen till anrop till XElement konstruktorn och, om det behövs, XAttribute konstruktorn.

XML-namnområden

XML-namnområdesprefix är användbara när du måste skapa XML-literaler med element från samma namnområde många gånger i koden. Du kan använda globala XML-namnområdesprefix som du definierar med hjälp av -instruktionen Imports eller lokala prefix som du definierar med hjälp av attributsyntaxen xmlns:xmlPrefix="xmlNamespace" . Mer information finns i Importinstruktor (XML-namnområde).

I enlighet med omfångsreglerna för XML-namnområden har lokala prefix företräde framför globala prefix. Men om en XML-literal definierar ett XML-namnområde är namnområdet inte tillgängligt för uttryck som visas i ett inbäddat uttryck. Det inbäddade uttrycket kan bara komma åt det globala XML-namnområdet.

Visual Basic-kompilatorn konverterar varje globalt XML-namnområde som används av en XML-literal till en definition av ett lokalt namnområde i den genererade koden. Globala XML-namnområden som inte används visas inte i den genererade koden.

Exempel 1

I följande exempel visas hur du skapar ett enkelt XML-element som har två kapslade tomma element.

Dim test1 As XElement = 
<outer>
    <inner1></inner1>
    <inner2/>
</outer>

Console.WriteLine(test1)

I exemplet visas följande text. Observera att literalen bevarar strukturen för de tomma elementen.

<outer>
  <inner1></inner1>
  <inner2 />
</outer>

Exempel 2

I följande exempel visas hur du använder inbäddade uttryck för att namnge ett element och skapa attribut.

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)

Den här koden visar följande text:

<book isbn="1234" author="My Author" year="1999" title="My Book" />

Exempel 3

I följande exempel deklareras som ett XML-namnområdesprefix ns . Den använder sedan prefixet för namnområdet för att skapa en XML-literal och visar elementets slutliga formulär.

' 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

Den här koden visar följande text:

<ns:outer xmlns:ns="http://SomeNamespace">
  <ns:middle xmlns:ns="http://NewNamespace">
    <ns:inner1 />
    <inner2 xmlns="http://SomeNamespace" />
  </ns:middle>
</ns:outer>

Observera att kompilatorn konverterade prefixet för det globala XML-namnområdet till en prefixdefinition för XML-namnområdet. Elementet <ns:middle> omdefinierar XML-namnområdesprefixet för elementet <ns:inner1> . Elementet <ns:inner2> använder dock det namnområde som definieras av -instruktionen Imports .

Se även