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åsteeNameExp
varaString
eller en typ som implicit kan konverteras till XName.Inbäddat uttryck i formuläret
<%= nameExp %>
. Typen måstenameExp
varaString
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åsteaNameExp
varaString
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:Literal text. Allt tomt utrymme i
elementContents
blir betydande om det finns någon literaltext.Inbäddat uttryck i formuläret
<%= contentExp %>
.XML-elementliteral.
XML-kommentarliteral. Se XML-kommentarliteral.
XML-bearbetningsinstruktionsliteral. Se XML-bearbetningsinstruktionslitral.
XML CDATA-literal. Se XML CDATA Literal.
</[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
.