Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
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 Language-Integrated Query (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 obiekt XElement. 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ć, rozpoczynając literał XML od <?xml version="1.0"?>, jak pokazano w poniższym przykładzie. Literał dokumentu XML zwraca obiekt XDocument. Aby uzyskać więcej informacji, zobacz Dokumentacja literalna 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 / Notatka
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 linii bez użycia znaków kontynuacji linii (takich jak sekwencja: spacja, podkreślenie, 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żywać sekwencji: spacja-podkreślnik-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 z członków tablicy phoneNumbers2, 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 Visual Basic przetłumaczy poniższy przykład kodu na wywołanie konstruktora XProcessingInstruction dla instrukcji wersji XML, wywołania konstruktora XElement dla elementów <contact>, <name> i <phone>, a także wywołanie konstruktora XAttribute 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>