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:
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:
|
attributeList |
Optional. Liste von Attributen, die im Literal deklariert werden. attribute [ attribute ... ] Jedes attribute hat eine der folgenden Syntaxen:
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:
|
/> |
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
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)