tutorial pengembangan web terbaru
 

XML Elemen vs Atribut


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


Penggunaan Elemen vs Atribut

Data dapat disimpan dalam elemen anak atau atribut.

Kita lihat contoh-contoh ini:

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

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

Pada contoh seks pertama adalah atribut. Pada yang terakhir, seks adalah elemen anak. Kedua contoh memberikan informasi yang sama.

Tidak ada aturan tentang kapan untuk menggunakan atribut, dan kapan harus menggunakan elemen anak. Pengalaman saya adalah bahwa atribut yang berguna dalam HTML, namun dalam XML Anda harus mencoba untuk menghindari mereka. Gunakan elemen anak jika informasi terasa seperti data.


Way My Favorite

I like to store data in child elements.

Berikut tiga dokumen XML tepat berisi informasi yang sama:

Sebuah 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>

Unsur 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>

Sebuah elemen tanggal diperluas digunakan dalam ketiga: (THIS IS MY 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?

Anda harus menghindari menggunakan atribut?

Beberapa masalah dengan atribut adalah:

  • atribut tidak dapat berisi beberapa nilai (child elements can)
  • atribut yang tidak mudah diperluas (for future changes)
  • atribut tidak dapat menggambarkan struktur (child elements can)
  • atribut lebih sulit untuk memanipulasi dengan kode program
  • nilai atribut tidak mudah untuk uji terhadap DTD

Jika Anda menggunakan atribut sebagai wadah untuk data, Anda berakhir dengan dokumen yang sulit untuk membaca dan menjaga. Cobalah untuk menggunakan elements untuk menggambarkan data. Gunakan atribut hanya untuk memberikan informasi yang tidak relevan dengan data.

Jangan berakhir seperti ini (this is not how XML should be used) :

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

Exception untuk Rule Atribut saya

Aturan selalu memiliki pengecualian.

Aturan saya tentang atribut memiliki satu pengecualian:

Kadang-kadang saya menetapkan referensi ID untuk elemen. ID referensi ini dapat digunakan untuk mengakses elemen XML dalam banyak cara yang sama seperti NAME atau ID atribut dalam 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 adalah hanya sebuah counter, atau pengenal unik, untuk mengidentifikasi catatan yang berbeda dalam file XML, dan bukan bagian dari data catatan.

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