Home » XML » XML DTD : Elemen Vs Atribut – Code dan Contohnya

XML DTD : Elemen Vs Atribut – Code dan Contohnya

by Hanifah Nurbaeti
by Hanifah Nurbaeti

Dalam XML, tidak ada aturan tentang kapan harus menggunakan atribut dan kapan harus menggunakan elemen turunan.

Penggunaan Elemen vs. Atribut

Data dapat disimpan dalam elemen anak atau dalam atribut.

Lihat contoh berikut:

<person sex="female">
  <firstname>Anna</firstname>
  <lastname>Smith</lastname>
</person>
<person>
  <sex>female</sex>
  <firstname>Anna</firstname>
  <lastname>Smith</lastname>
</person>

Dalam contoh pertama, seks adalah atribut. Pada contoh kedua, seks adalah elemen anak. Kedua contoh tersebut memberikan informasi yang sama.

Tidak ada aturan tentang kapan harus menggunakan atribu, dan kapan harus menggunakan elemen anak. Pengalaman saya adalah bahwa atribut berguna dalam HTML, tetapi dalam XML kita harus mencoba menghindarinya. Gunakan elemen anak jika informasinya terasa seperti data.

Cara Favorit

Saya suka menyimpan data dalam elemen anak.

Tiga dokumen XML berikut berisi informasi yang persis sama:

Atribut tanggal digunakan dalam contoh pertama:

<note date="12/11/2002">
  <to>Tove</to>
  <from>Jani</from>
  <heading>Reminder</heading>
  <body>Don't forget me this weekend!</body>
</note>

Elemen tanggal digunakan dalam contoh kedua:

<note>
  <date>12/11/2002</date>
  <to>Tove</to>
  <from>Jani</from>
  <heading>Reminder</heading>
  <body>Don't forget me this weekend!</body>
</note>

Elemen tanggal yang diperluas digunakan di yang ketiga (FAVORITE):

<note>
  <date>
    <day>12</day>
    <month>11</month>
    <year>2002</year>
  </date>
  <to>Tove</to>
  <from>Jani</from>
  <heading>Reminder</heading>
  <body>Don't forget me this weekend!</body>
</note>

Hindari menggunakan atribut?

Haruskah kita menghindari penggunaan atribut?

Beberapa masalah dengan atribut adalah:

  • atribut tidak boleh berisi banyak nilai (elemen anak )
  • atribut tidak dapat diperluas dengan mudah (untuk perubahan di masa mendatang)
  • atribut tidak dapat menggambarkan struktur (elemen anak )
  • atribut lebih sulit untuk dimanipulasi oleh kode program
  • nilai atribut tidak mudah untuk diuji terhadap DTD

Jika kita menggunakan atribut sebagai wadah untuk data, kita akan mendapatkan dokumen yang sulit dibaca dan dipelihara. Coba gunakan elemen untuk mendeskripsikan data. Gunakan atribut hanya untuk memberikan informasi yang tidak relevan dengan data

Jangan berakhir seperti ini (ini bukan cara penggunaan XML):

<note day="12" month="11" year="2002"
to="Tove" from="Jani" heading="Reminder"
body="Don't forget me this weekend!">
</note>

Pengecualian untuk beberapa Aturan Atribut

Aturan selalu memiliki pengecualian.

Aturan saya tentang atribut memiliki satu pengecualian:

Terkadang saya menetapkan referensi ID ke elemen. Referensi ID ini dapat digunakan untuk mengakses elemen XML dengan cara yang sama seperti atribut NAME atau ID di HTML. Contoh ini menunjukkan ini:

<messages>
<note id="p501">
  <to>Tove</to>
  <from>Jani</from>
  <heading>Reminder</heading>
  <body>Don't forget me this weekend!</body>
</note>

<note id="p502">
  <to>Jani</to>
  <from>Tove</from>
  <heading>Re: Reminder</heading>
  <body>I will not!</body>
</note>
</messages>

ID dalam contoh ini hanyalah penghitung atau pengenal unik, untuk mengidentifikasi catatan yang berbeda di file XML dan bukan bagian dari data catatan.

Apa yang ingin saya katakan di sini adalah bahwa metadata (data tentang data) harus disimpan sebagai atribut dan data itu sendiri harus disimpan sebagai elemen.

You may also like