XML-Elementliteral (Visual Basic)

Ein Literal, das ein XElement Objekt darstellt.

Syntax

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

Bestandteile

  • <

    Erforderlich. Öffnet das Startelementtag.

  • name

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

    • Literaltext für den Elementnamen des Formulars [ePrefix:]eName, wobei:

      Teil BESCHREIBUNG
      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 oder einem lokalen XML-Namespace definiert ist, der in diesem Element oder einem übergeordneten Element definiert ist.
      eName Erforderlich. Name des Elements. Das Format ist eine der folgenden:

      - Literaltext. Siehe Namen von deklarierten XML-Elementen und -Attributen.
      - Eingebetteter Ausdruck des Formulars <%= eNameExp %>. Der Typ muss eNameExp oder ein Typ sein String , der implizit in konvertierbar ist XName.
    • Eingebetteter Ausdruck des Formulars <%= nameExp %>. Der Typ muss nameExp oder ein Typ implizit konvertierbar seinString.XName Ein eingebetteter Ausdruck ist in einem schließenden Tag eines Elements nicht zulässig.

  • attributeList

    Optional. Liste der Attribute, die im Literal deklariert sind.

    attribute [ attribute ... ]

    Jede attribute weist eine der folgenden Syntaxen auf:

    • Attributzuweisung des Formulars [aPrefix:]aName=aValue, wobei:

      Teil BESCHREIBUNG
      aPrefix Optional. XML-Namespacepräfix für das Attribut. Muss ein globaler XML-Namespace sein, der mit einer Imports Anweisung oder einem lokalen XML-Namespace definiert ist, der in diesem Element oder einem übergeordneten Element definiert ist.
      aName Erforderlich. Der Name des Attributs. Das Format ist eine der folgenden:

      - Literaltext. Siehe Namen von deklarierten XML-Elementen und -Attributen.
      - Eingebetteter Ausdruck des Formulars <%= aNameExp %>. Der Typ muss aNameExp oder ein Typ sein String , der implizit in konvertierbar ist XName.
      aValue Optional. Wert des Attributs. Das Format ist eine der folgenden:

      - Literaltext, in Anführungszeichen eingeschlossen.
      - Eingebetteter Ausdruck des Formulars <%= aValueExp %>. Jeder Typ ist zulässig.
    • Eingebetteter Ausdruck des Formulars <%= aExp %>.

  • />

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

  • >

    Erforderlich. Endet das Anfangs- oder leere Elementtag.

  • elementContents

    Optional. Inhalt des Elements.

    content [ content ... ]

    Jede content kann eine der folgenden Sein:

  • </[name]>

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

Rückgabewert

Ein XElement-Objekt.

Hinweise

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

Hinweis

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

Eingebettete Ausdrücke des Formulars <%= exp %> ermöglichen es Ihnen, dynamische Informationen zu einem XML-Elementliteral hinzuzufügen. Weitere Informationen finden Sie unter Eingebettete Ausdrücke in XML.

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

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 mithilfe der Imports Anweisung oder lokaler Präfixe definieren, die Sie mithilfe der xmlns:xmlPrefix="xmlNamespace" Attributsyntax definieren. Weitere Informationen finden Sie unter Imports-Anweisung (XML-Namespace).

Gemäß den Rahmenregeln für XML-Namespaces haben lokale Präfixe Vorrang vor globalen Präfixen. Wenn ein XML-Literal jedoch einen XML-Namespace definiert, ist dieser Namespace nicht für Ausdrücke verfügbar, die in einem eingebetteten Ausdruck angezeigt werden. 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 in eine lokale Namespacedefinition im generierten Code verwendet wird. Globale XML-Namespaces, die nicht verwendet werden, werden nicht im generierten Code angezeigt.

Beispiel 1

Das folgende Beispiel zeigt, wie Sie ein einfaches XML-Element erstellen, das zwei geschachtelte leere Elemente enthält.

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

Console.WriteLine(test1)

Im Beispiel wird der folgende Text angezeigt. Beachten Sie, dass das Literal die Struktur der leeren Elemente behält.

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

Beispiel 2

Das folgende Beispiel zeigt, 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" />

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 Formular des Elements anzuzeigen.

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

Weitere Informationen