18%
25%
50%
75%

Kripkorn Studios | Komuniti Drupal phpBB Malaysia

Atribut XML

Tutorial
XML
Tentang artikel ini
Penulis: parasolx -- Jan 27, 2009
kemas kini Kemas kini: Aug 12, 2011

Elemen XML boleh mempunyai atribut di bahagian permulaan tag seperti HTML. Setiap atribut yang dimasukkan menyediakan maklumat tambahan mengenai elemen.

Atribut XML

Seperti HTML yang anda pelajari, anda pasti akan ingat ini: <img src="komputer.gif">. Atribut "src" merupakan maklumat tambahan kepada tag <img>.

Dalam HTML (dan dalam XML) atribut menyediakan informasi tambahan kepada elemen tersebut:

<img src="komputer">
<a href="demo.php">

Atribut selalunya menyediakan maklumat tambahan yang tidak terlibat secara langsung dengan data kita. Dalam contoh di bawah, jenis fail tidak berkait langsung dengan data, tetapi sangat penting kepada perisian yang ingin mengunakan maklumat daripada elemen itu:

<file type="gif">komputer.gif</file>

Atribut XML mesti di "Quote"

Nilai atribut mesti selalu ditutup dengan "Quote", tidak kira sama ada satu quote (') atau quote berganda (") boleh digunakan. Untuk jantina pengguna, atribut tersebut boleh ditulis sama ada begini:

<pengguna jantina="perempuan">

atau pun begini:

<pengguna jantina='perempuan'>

Sekiranya nilai atribut itu mengandungi satu quote atau quote berganda, seperti dalam contoh ini:

<kumpulan nama='Semarak "Merah" Padi'>

atau anda boleh gunakan aksara entiti:

<kumpulan nama='Semarak &quot;Merah&quot; Padi'>

Elemen vs atribut

Cuba perhatikan contoh di bawah ini:

<pengguna jantina="perempuan">
  <nama_pertama>Kripkorn</nama_pertama>
  <nama_terakhir>Studios</nama_terakhir>
</pengguna>
<pengguna>
  <jantina>perempuan</jantina>
  <nama_pertama>Kripkorn</nama_pertama>
  <nama_terakhir>Studios</nama_terakhir>
</pengguna>

Dalam contoh yang pertama jantina merupakan atribut. Manakala contoh yang kedua jantina menjadi elemen. Kedua-duanya menyediakan maklumat yang sama.

Tiada sebarang peraturan ketika dan bila perlu digunakan elemen. Atibut selalunya sangat berguna di dalam HTML, tetapi dalam XML, saya nasihat agar lebih menggunakan elemen berbanding atribut.

Perhatikan satu contoh yang saya berikan di bawah ini. Cuba bandingkan penyusunan data dan elemen serta penggunaan atribut dalam contoh pertama berbanding contoh kedua. Kedua-duanya menyediakan maklumat yang sama tetapi contoh kedua lebih senang difahami berbanding pertama.

<nota date="10/01/2009">
  <kepada>Johnny</kepada>
  <daripada>Parasolx</daripada>
  <tajuk>Peringatan</tajuk>
  <mesej>Jangan lupa temu janji hari minggu ini</mesej>
</nota>
<nota>
<tarikh>
  <hari>10</hari>
  <bulan>01</bulan>
  <tahun>2009</bulan>
</tarikh>
  <kepada>Johnny</kepada>
  <daripada>Parasolx</daripada>
  <tajuk>Peringatan</tajuk>
  <mesej>Jangan lupa temu janji hari minggu ini</mesej>
</nota>

Elakkan penggunaan atribut

Beberapa masalah yang timbul dalam penggunaan atibut XML seperti:

  • atribut tidak boleh mengandungi nilai yang perbagai (elemen boleh)
  • atribut tidak boleh mengandungi struktur pokok (elemen boleh)
  • atribut tidak mudah untuk dikembangkan (untuk kegunaan masa hadapan)

Atribut sebenarnya sangat sukar untuk dibaca dan dikemas kini. Gunakan elemen berbanding atribut. Atribut biasanya digunakan bila ianya melibatkan informasi yang langsung tiada kaitan dengan data-data kita.

Atibut XML sebagai metadata

Kadang-kala atribut digunakan sebagai tanda rujukan kepada elemen yang kita masukkan. Rujukan ini digunakan sebagai identiti kepada elemen kita seperti dalam HTML. Antara contoh penggunaan adalah seperti berikut:

<mesej>
  <nota id="123">
    <kepada>Johnny</kepada>
    <daripada>Parasolx</daripada>
    <kandungan>Selamat belajar dan rajin berusaha.</kandungan>
  </nota>
  <nota id="124">
    <kepada>Kirana</kepada>
    <daripada>Parasolx</daripada>
    <kandungan>Selamat belajar dan rajin berusaha.</kandungan>
  </nota>
</mesej>

Atribut ID di atas hanya sebagai penanda kenal. Ianya langsung tidak melibatkan data/maklumat utama mesej kita. Apa yang hendak saya tekankan di sini, metadata (data kepada data) seharusnya disimpan sebagai atribut manakala data tersebut perlu dipamerkan dalam elemen.

mad