Bagikan melalui


Gambaran Umum Literal XML (Visual Basic)

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

Visual Basic mengkompilasi 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 run time, aplikasi Anda membuat objek LINQ ke XML untuk setiap literal, menggabungkan nilai-nilai ekspresi yang disematkan. Ini memungkinkan Anda menentukan konten dinamis di dalam literal XML. Untuk informasi selengkapnya, lihat Ekspresi Tersemat dalam XML.

Untuk informasi selengkapnya tentang perbedaan antara sintaks 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. Literal elemen XML mengembalikan objek XElement. Untuk informasi selengkapnya, lihat Literal Elemen 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 literal XML dengan <?xml version="1.0"?>, seperti yang diperlihatkan dalam contoh berikut. Literal dokumen XML mengembalikan objek XDocument. Untuk informasi selengkapnya, lihat Dokumen XML Harfiah.

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>

Catatan

Sintaks literal XML dalam 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.

Pengkompilasi memperlakukan karakter kelanjutan baris sebagai bagian dari literal XML. Oleh karena itu, Anda harus menggunakan urutan spasi-garis bawah-enter hanya ketika berada di objek LINQ ke XML.

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

Menyematkan Kueri dalam Literal XML

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

Misalnya, kode berikut menggunakan kueri tersemat untuk membuat elemen XML dari anggota array phoneNumbers2 lalu menambahkan elemen tersebut sebagai turunan 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 Pengkompilasi Membuat Objek dari Literal XML

Pengkompilasi 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 ke dalam panggilan ke konstruktor XProcessingInstruction untuk instruksi versi XML, memanggil konstruktor XElement untuk elemen <contact>, <name>, dan <phone>, dan memanggil konstruktor XAttribute untuk attribut type. Secara khusus, mengingat atribut dalam sampel berikut, pengkompilasi Visual Basic akan memanggil konstruktor XAttribute(XName, Object) dua kali. Yang pertama akan meneruskan nilai type untuk parameter name dan nilai home untuk parameter value. Yang kedua juga akan meneruskan nilai type untuk parameter name, tetapi nilai work untuk parameter 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>

Lihat juga