Bagikan melalui


Gambaran Umum Literal XML (Visual Basic)

Literal XML memungkinkan Anda menggabungkan XML langsung ke dalam kode Visual Basic Anda. Sintaksis literal XML mewakili LINQ ke objek XML, dan mirip dengan sintaks XML 1.0. Ini memudahkan untuk membuat elemen dan dokumen XML secara terprogram karena kode Anda memiliki struktur yang sama dengan XML akhir.

Visual Basic mengompilasi literal XML ke dalam objek LINQ ke XML. LINQ ke XML menyediakan model objek sederhana untuk membuat dan memanipulasi XML, dan model ini terintegrasi dengan baik dengan Language-Integrated Query (LINQ). Untuk informasi selengkapnya, lihat XElement .

Anda dapat menyematkan ekspresi Visual Basic dalam literal XML. Pada waktu proses, aplikasi Anda membuat objek LINQ ke XML untuk setiap literal, menggabungkan nilai ekspresi yang disematkan. Ini memungkinkan Anda menentukan konten dinamis di dalam xml literal. Untuk informasi selengkapnya, lihat Ekspresi Tersemat dalam XML.

Untuk informasi selengkapnya tentang perbedaan antara sintaksis literal XML dan sintaks XML 1.0, lihat Literal XML dan Spesifikasi XML 1.0.

Literal Sederhana

Anda dapat membuat objek LINQ ke XML di kode Visual Basic Anda dengan mengetik atau menempelkan di XML yang valid. Elemen XML secara harfiah mengembalikan XElement objek. Untuk informasi lebih lanjut, lihat Elemen Literal XML dan Literal XML dan Spesifikasi XML 1.0. Contoh berikut membuat elemen XML yang memiliki beberapa elemen turunan.

Dim contact1 As XElement = 
    <contact>
      <name>Patrick Hines</name>
      <phone type="home">206-555-0144</phone>
      <phone type="work">425-555-0145</phone>
    </contact>

Anda dapat membuat dokumen XML dengan memulai XML literal dengan <?xml version="1.0"?>, seperti yang diperlihatkan dalam contoh berikut. Literal dari dokumen XML mengembalikan sebuah objek XDocument. Untuk informasi lebih lanjut, lihat Literal Dokumen 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>

Nota

Sintaksis literal XML di Visual Basic tidak identik dengan sintaks dalam spesifikasi XML 1.0. Untuk informasi selengkapnya, lihat Literal XML dan Spesifikasi XML 1.0.

Kelanjutan Baris

Literal XML dapat mencakup beberapa baris tanpa menggunakan karakter kelanjutan baris (urutan spasi-garis bawah-enter). Ini memudahkan untuk membandingkan literal XML dalam kode dengan dokumen XML.

Kompilator memperlakukan karakter penyambung baris sebagai bagian dari literal XML. Oleh karena itu, Anda harus menggunakan urutan spasi-garis bawah-enter hanya saat digunakan dalam objek LINQ ke XML.

Namun, Anda memerlukan karakter kelanjutan baris jika Anda memiliki ekspresi multibaris dalam ekspresi yang disematkan. Untuk informasi selengkapnya, lihat Ekspresi Tersemat dalam XML.

Menyematkan Kueri dalam Literal XML

Anda dapat menggunakan kueri dalam ekspresi yang disematkan. Saat Anda melakukan ini, elemen yang dikembalikan oleh kueri ditambahkan ke elemen XML. Ini memungkinkan Anda menambahkan konten dinamis, seperti hasil kueri pengguna, ke xml literal.

Misalnya, kode berikut menggunakan kueri yang disematkan untuk membuat elemen XML dari anggota array phoneNumbers2 dan kemudian menambahkan elemen tersebut sebagai turunan dari 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

Cara Compiler Membuat Objek dari XML Literals

Kompilator Visual Basic menerjemahkan literal XML ke dalam panggilan ke konstruktor LINQ ke XML yang setara untuk membangun objek LINQ ke XML. Misalnya, pengkompilasi Visual Basic akan menerjemahkan contoh kode berikut menjadi panggilan ke konstruktor XProcessingInstruction untuk instruksi versi XML, panggilan ke konstruktor XElement untuk elemen <contact>, <name>, dan <phone>, dan panggilan ke konstruktor XAttribute untuk atribut type. Secara khusus, mengingat atribut dalam sampel berikut, pengkompilasi Visual Basic akan memanggil XAttribute(XName, Object) konstruktor dua kali. Yang pertama akan meneruskan nilai type untuk name parameter dan nilai home untuk value parameter . Yang kedua juga akan meneruskan nilai type untuk name parameter , tetapi nilai work untuk value parameter .

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>

Lihat juga