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 musseNameExp
oder ein Typ seinString
, der implizit in konvertierbar ist XName.Eingebetteter Ausdruck des Formulars
<%= nameExp %>
. Der Typ mussnameExp
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 mussaNameExp
oder ein Typ seinString
, 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:Literaltext. Der gesamte Leerraum wird
elementContents
erheblich, wenn literaler Text vorhanden ist.Eingebetteter Ausdruck des Formulars
<%= contentExp %>
.XML-Elementliteral.
XML-Kommentarliteral. Siehe XML-Kommentarliteral.
XML-Verarbeitungsanweisungsliteral. Siehe XML-Verarbeitungsanweisungsliteral.
XML-CDATA-Literal. Siehe XML-CDATA-Literal.
</[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.