Udostępnij za pomocą


Omówienie literałów XML (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 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>

Zobacz także