Freigeben über


XML-Elementliteral (Visual Basic)

Ein Literal, das ein XElement-Objekt darstellt.

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

Bestandteile

Ausdruck

Definition

<

Erforderlich. Öffnet das Startelementtag.

name

Erforderlich. Name des Elements. Das Format ist eins der folgenden:

  • Literaltext für den Elementnamen in der Form [ePrefix:]eName, für den gilt:

BestandteilBeschreibungen
ePrefix Optional.XML-Namespacepräfix für das Element.Muss ein globaler XML-Namespace sein, der mit einer Imports-Anweisung in der Datei oder auf Projektebene definiert wird, oder ein lokaler XML-Namespace, der in diesem Element oder einem übergeordneten Element definiert wird.
eName Erforderlich.Name des Elements.Das Format ist eins der folgenden:
  • Eingebetteter Ausdruck der Form <%= nameExp %>. Der Typ von nameExp muss String oder ein Typ sein, der implizit zu XName umwandelbar ist. Eingebettete Ausdrücke sind in Endtags von Elementen nicht zulässig.

attributeList

Optional. Liste von Attributen, die im Literal deklariert werden.

attribute [ attribute ... ]

Jedes attribute hat eine der folgenden Syntaxen:

  • Attributzuweisung in der Form [aPrefix:]aName=aValue, für die gilt:

BestandteilBeschreibungen
aPrefix Optional.XML-Namespacepräfix für das Attribut.Muss ein globaler XML-Namespace sein, der mit einer Imports-Anweisung definiert wird, oder ein lokaler XML-Namespace, der in diesem Element oder einem übergeordneten Element definiert wird.
aName Erforderlich.Name des Attributs.Das Format ist eins der folgenden:
aValue Optional.Wert des Attributs.Das Format ist eins der folgenden:
  • Literaltext in Anführungszeichen.

  • Eingebetteter Ausdruck der Form <%= aValueExp %>.Jeder Typ ist zulässig.

  • Eingebetteter Ausdruck der Form <%= aExp %>.

/>

Optional. Gibt an, dass das Element ein leeres Element ohne Inhalt ist.

>

Erforderlich. Beendet den öffnenden oder leeren Elementtag.

elementContents

Optional. Inhalt des Elements.

content [ content ... ]

Für jeden content gibt es folgende Möglichkeiten:

</[name]>

Optional. Stellt das Endtag für das Element dar. Der optionale name-Parameter ist nicht zulässig, wenn er aus einem eingebetteten Ausdruck resultiert.

Rückgabewert

Ein XElement-Objekt.

Hinweise

Mit der Syntax des XML-Elementliterals können Sie XElement-Objekte im Code erstellen.

Tipp

Ein XML-Literal kann mehrere Zeilen umfassen, ohne Zeilenfortsetzungszeichen zu verwenden. Mit diesem Feature können Sie den Inhalt eines XML-Dokuments kopieren und direkt in ein Visual Basic-Programm einfügen.

Mit eingebetteten Ausdrücken der Form <%=exp%> können einem XML-Elementliteral dynamische Informationen hinzugefügt werden. Weitere Informationen finden Sie unter Eingebettete Ausdrücke in XML (Visual Basic).

Im Visual Basic-Kompiler wird das XML-Elementliteral in Aufrufe an den XElement-Konstruktor und ggf. an den XAttribute-Konstruktor umgewandelt.

XML-Namespaces

XML-Namespacepräfixe sind hilfreich, wenn Sie oft mit Elementen aus demselben Namespace XML-Literale im Code erstellen möchten. Sie können globale XML-Namespacepräfixe verwenden, die Sie mithilfe der Imports-Anweisung definieren, oder lokale Präfixe, die mit der xmlns:xmlPrefix="xmlNamespace"-Attributsyntax definiert werden. Weitere Informationen finden Sie unter Imports-Anweisung (XML-Namespace).

Entsprechend den Bereichsregeln für XML-Namespaces haben lokale Präfixe Vorrang gegenüber globalen Präfixen. Wenn ein XML-Literal einen XML-Namespace definiert, ist dieser lokale Namespace jedoch nicht für Ausdrücke verfügbar, die in einem eingebetteten Ausdruck auftreten. Der eingebettete Ausdruck kann nur auf den globalen XML-Namespace zugreifen.

Der Visual Basic-Kompiler wandelt jeden von einem XML-Literal verwendeten globalen XML-Namespace in eine lokale Namespacedefinition im generierten Code um. Nicht verwendete globale XML-Namespaces werden im generierten Code nicht angezeigt.

Beispiel

Im folgenden Beispiel wird gezeigt, wie ein einfaches XML-Element mit zwei geschachtelten leeren Elementen erstellt wird.

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

Console.WriteLine(test1)

In diesem Beispiel wird der folgende Text dargestellt. Beachten Sie, dass das Literal die Struktur der leeren Elemente beibehält.

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

Im folgenden Beispiel wird gezeigt, wie eingebettete Ausdrücke verwendet werden, um ein Element zu benennen und Attribute zu erstellen.

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)

Durch diesen Code wird folgender Text angezeigt:

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

Das folgende Beispiel deklariert ns als ein XML-Namespacepräfix. Anschließend wird ein XML-Literal erstellt, das das Namespacepräfix verwendet und die abschließende Form des Elements anzeigt.

' 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

Durch diesen Code wird folgender Text angezeigt:

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

Beachten Sie, dass das XML-Namespacepräfix vom Compiler von einer globalen Präfixdefinition in eine lokale Präfixdefinition umgewandelt wurde. Das <ns:middle>-Element definiert das XML-Namespacepräfix für das <ns:inner1>-Element. Das <ns:inner2>-Element verwendet jedoch den Namespace, der durch die Imports-Anweisung definiert ist.

Siehe auch

Referenz

XElement

XML-Kommentarliteral (Visual Basic)

XML-CDATA-Literal (Visual Basic)

Imports-Anweisung (XML-Namespace)

Konzepte

Namen von deklarierten XML-Elementen und Attributen (Visual Basic)

Eingebettete Ausdrücke in XML (Visual Basic)

Weitere Ressourcen

XML-Literale (Visual Basic)

Erstellen von XML in Visual Basic