Udostępnij za pośrednictwem


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>

Zobacz też