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 voneNameExp
mussString
sein oder implizit in XName konvertiert werden können.Eingebetteter Ausdruck im Format
<%= nameExp %>
. Der Datentyp vonnameExp
mussString
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 vonaNameExp
mussString
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.