Freigeben über


XML-Elementliteral (Visual Basic)

Ein Literal, das ein XElement-Objekt darstellt

Syntax

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

Bestandteile

  • <

    Erforderlich. Öffnet das einleitende Elementtag.

  • name

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

    • Literaler Text für den Elementnamen im Format [ePrefix:]eName, wobei:

      Teil Beschreibung
      ePrefix Optional. Das XML-Namespacepräfix für das Element. Es muss sich um einen globalen XML-Namespace handeln, der mit einer Imports-Anweisung in der Datei oder auf Projektebene definiert ist, oder um einen lokalen XML-Namespace, der in diesem Element oder einem übergeordneten Element definiert ist.
      eName Erforderlich. Name des Elements. Das Format ist eines der folgenden:

      – Literaltext. Weitere Informationen finden Sie unter Namen von deklarierten XML-Elementen und -Attributen.
      – Eingebetteter Ausdruck im Format <%= eNameExp %>. Der Datentyp von eNameExp muss String sein oder implizit in XName konvertiert werden können.
    • Eingebetteter Ausdruck im Format <%= nameExp %>. Der Datentyp von nameExp muss String sein oder implizit in XName konvertiert werden können. Ein eingebetteter Ausdruck ist in einem schließenden Tag eines Elements nicht zulässig.

  • attributeList

    Optional. Liste der im Literal deklarierten Attribute.

    attribute [ attribute ... ]

    Jedes attribute weist eine der folgenden Syntaxen auf:

    • Attributzuweisung im Format [aPrefix:]aName=aValue, wobei:

      Teil Beschreibung
      aPrefix Optional. Das XML-Namespacepräfix für das Attribut. Es muss sich um einen globalen XML-Namespace handeln, der mit einer Imports-Anweisung definiert ist, oder um einen lokalen XML-Namespace, der in diesem Element oder einem übergeordneten Element definiert ist.
      aName Erforderlich. Der Name des Attributs. Das Format ist eines der folgenden:

      – Literaltext. Weitere Informationen finden Sie unter Namen von deklarierten XML-Elementen und -Attributen.
      – Eingebetteter Ausdruck im Format <%= aNameExp %>. Der Datentyp von aNameExp muss String sein oder implizit in XName konvertiert werden können.
      aValue Optional. Der Wert des Attributs. Das Format ist eines der folgenden:

      – Literaltext, in Anführungszeichen eingeschlossen.
      – Eingebetteter Ausdruck im Format <%= aValueExp %>. Jeder Typ ist zulässig.
    • Eingebetteter Ausdruck im Format <%= aExp %>.

  • />

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

  • >

    Erforderlich. Beendet das einleitende oder leere Elementtag.

  • elementContents

    Optional. Der Inhalt des Elements.

    content [ content ... ]

    Jedes content-Element kann eines der folgenden sein:

    • Literaltext. Alle Leerzeichen in elementContents werden relevant, wenn Literaltext vorhanden ist.

    • Eingebetteter Ausdruck im Format <%= contentExp %>.

    • XML-Elementliteral

    • XML-Kommentarliteral. Weitere Informationen finden Sie unter XML-Kommentarliteral.

    • XML-Verarbeitungsanweisungsliteral. Weitere Informationen finden Sie unter XML-Verarbeitungsanweisungsliteral.

    • XML-CDATA-Literal. Weitere Informationen finden Sie unter XML-CDATA-Literal.

  • </[name]>

    Optional. Stellt das schließende Tag für das Element dar. Der optionale name-Parameter ist nicht zulässig, wenn er das Ergebnis eines eingebetteten Ausdrucks ist.

Rückgabewert

Ein XElement-Objekt.

Bemerkungen

Sie können die XML-Elementliteralsyntax verwenden, um XElement-Objekte in Ihrem Code zu erstellen.

Hinweis

Ein XML-Literal kann mehrere Zeilen umfassen, ohne Zeilenfortsetzungszeichen zu verwenden. Durch dieses Feature können Sie Inhalte aus einem XML-Dokument kopieren und direkt in ein Visual Basic-Programm einfügen.

Eingebettete Ausdrücke im Format <%= exp %> ermöglichen es Ihnen, einem XML-Elementliteral dynamische Informationen hinzuzufügen. Weitere Informationen finden Sie unter Eingebettete Ausdrücke in XML (Visual Basic).

Der Visual Basic-Compiler konvertiert das XML-Elementliteral in Aufrufe des XElement-Konstruktors und, falls erforderlich, des XAttribute-Konstruktors.

XML-Namespaces

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

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

Der Visual Basic-Compiler konvertiert jeden globalen XML-Namespace, der von einem XML-Literal verwendet wird, in eine lokale Namespacedefinition im generierten Code. Globale XML-Namespaces, die nicht verwendet werden, sind nicht im generierten Code vorhanden.

Beispiel 1

Im folgenden Beispiel wird gezeigt, wie ein einfaches XML-Element erstellt wird, das über zwei geschachtelte leere Elemente verfügt.

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

Console.WriteLine(test1)

Das Beispiel gibt den folgenden Text aus. Beachten Sie, dass das Literal die Struktur der leeren Elemente beibehält.

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

Beispiel 2

Das folgende Beispiel zeigt, wie sie eingebettete Ausdrücke verwenden, 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" />

Beispiel 3

Das folgende Beispiel deklariert ns als ein XML-Namespacepräfix. Anschließend wird das Präfix des Namespace verwendet, um ein XML-Literal zu erstellen und das endgültige Format des Elements darzustellen.

' 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 der Compiler das Präfix des globalen XML-Namespace in eine Präfixdefinition für den XML-Namespace konvertiert hat. Das Element <ns:middle> definiert das XML-Namespacepräfix für das Element <ns:inner1> neu. Das Element <ns:inner2> verwendet jedoch den durch die Imports-Anweisung definierten Namespace.

Siehe auch