Literały XML - Przegląd (Visual Basic)
Literał XML umożliwia bezpośrednie dołączenie kodu XML do kodu języka Visual Basic. Składnia literału XML reprezentuje obiekty LINQ to XML i jest podobna do składni XML 1.0. Ułatwia to programowe tworzenie elementów i dokumentów XML, ponieważ kod ma taką samą strukturę jak końcowy kod XML.
Język Visual Basic kompiluje literały XML do obiektów LINQ to XML. LINQ to XML udostępnia prosty model obiektów do tworzenia i manipulowania kodem XML, a ten model dobrze integruje się z zapytaniem zintegrowanym z językiem (LINQ). Aby uzyskać więcej informacji, zobacz XElement.
Wyrażenie języka Visual Basic można osadzić w literału XML. W czasie wykonywania aplikacja tworzy obiekt LINQ to XML dla każdego literału, uwzględniając wartości osadzonych wyrażeń. Dzięki temu można określić zawartość dynamiczną wewnątrz literału XML. Aby uzyskać więcej informacji, zobacz Wyrażenia osadzone w języku XML.
Aby uzyskać więcej informacji na temat różnic między składnią literału XML a składnią XML 1.0, zobacz Literały XML i specyfikacja XML 1.0.
Literały proste
Możesz utworzyć obiekt LINQ to XML w kodzie Visual Basic, wpisując lub wklejając prawidłowy kod XML. Literał elementu XML zwraca XElement obiekt. Aby uzyskać więcej informacji, zobacz Literał elementu XML i literały XML oraz specyfikacja XML 1.0. Poniższy przykład tworzy element XML zawierający kilka elementów podrzędnych.
Dim contact1 As XElement =
<contact>
<name>Patrick Hines</name>
<phone type="home">206-555-0144</phone>
<phone type="work">425-555-0145</phone>
</contact>
Dokument XML można utworzyć, uruchamiając literał XML za pomocą <?xml version="1.0"?>
polecenia , jak pokazano w poniższym przykładzie. Literał dokumentu XML zwraca XDocument obiekt. Aby uzyskać więcej informacji, zobacz Literał dokumentu XML.
Dim contactDoc As XDocument =
<?xml version="1.0"?>
<contact>
<name>Patrick Hines</name>
<phone type="home">206-555-0144</phone>
<phone type="work">425-555-0145</phone>
</contact>
Uwaga
Składnia literału XML w Visual Basic nie jest identyczna ze składnią w specyfikacji XML 1.0. Aby uzyskać więcej informacji, zobacz Literały XML i specyfikacja XML 1.0.
Kontynuacja wiersza
Literał XML może obejmować wiele wierszy bez użycia znaków kontynuacji wiersza (sekwencja spacji podkreślenia-enter). Ułatwia to porównywanie literałów XML w kodzie z dokumentami XML.
Kompilator traktuje znaki kontynuacji wiersza jako część literału XML. W związku z tym należy użyć sekwencji spacji podkreślenia-enter tylko wtedy, gdy należy do obiektu LINQ to XML.
Jeśli jednak w wyrażeniu osadzonym jest używane wyrażenie wielowierszowe, potrzebne są znaki kontynuacji wiersza. Aby uzyskać więcej informacji, zobacz Wyrażenia osadzone w języku XML.
Osadzanie zapytań w literałach XML
Możesz użyć zapytania w wyrażeniu osadzonym. Gdy to zrobisz, elementy zwrócone przez zapytanie zostaną dodane do elementu XML. Umożliwia to dodawanie zawartości dynamicznej, takiej jak wynik zapytania użytkownika, do literału XML.
Na przykład poniższy kod używa osadzonego zapytania, aby utworzyć elementy XML na podstawie elementów członkowskich phoneNumbers2
tablicy, a następnie dodać te elementy jako elementy podrzędne contact2
.
Public Class XmlSamples
Public Sub Main()
' Initialize the objects.
Dim phoneNumbers2 As Phone() = {
New Phone("home", "206-555-0144"),
New Phone("work", "425-555-0145")}
' Convert the data contained in phoneNumbers2 to XML.
Dim contact2 =
<contact>
<name>Patrick Hines</name>
<%= From p In phoneNumbers2
Select <phone type=<%= p.Type %>><%= p.Number %></phone>
%>
</contact>
Console.WriteLine(contact2)
End Sub
End Class
Class Phone
Public Type As String
Public Number As String
Public Sub New(ByVal t As String, ByVal n As String)
Type = t
Number = n
End Sub
End Class
Jak kompilator tworzy obiekty na podstawie literałów XML
Kompilator języka Visual Basic tłumaczy literały XML na wywołania równoważne konstruktorów LINQ to XML w celu skompilowania obiektu LINQ to XML. Na przykład kompilator języka Visual Basic przetłumaczy poniższy przykład kodu na wywołanie XProcessingInstruction konstruktora instrukcji wersji XML, wywoła XElement konstruktora dla <contact>
elementów , <name>
i <phone>
oraz wywoła XAttribute konstruktora dla atrybutu type
. W szczególności, biorąc pod uwagę atrybuty w poniższym przykładzie, kompilator języka Visual Basic wywoła XAttribute(XName, Object) konstruktor dwa razy. Pierwszy przekaże wartość type
parametru name
i wartość home
parametru value
. Drugi przekaże również wartość type
parametru name
, ale wartość work
parametru value
.
Dim contactDoc As XDocument =
<?xml version="1.0"?>
<contact>
<name>Patrick Hines</name>
<phone type="home">206-555-0144</phone>
<phone type="work">425-555-0145</phone>
</contact>