Elemen XML vs. Atribut
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.
Lihatlah contoh-contoh ini:
<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. Terakhir, seks adalah elemen anak. Kedua contoh memberikan informasi yang sama.
Tidak ada aturan tentang kapan harus menggunakan atribut, dan kapan harus menggunakan elemen turunan. Pengalaman saya adalah bahwa atribut berguna dalam HTML, tetapi dalam XML Anda harus mencoba menghindarinya. Gunakan elemen anak jika informasinya terasa seperti data.
Cara Favoritku
Saya suka menyimpan data dalam elemen anak.
Tiga dokumen XML berikut berisi informasi yang sama persis:
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: (INI ADALAH FAVORIT SAYA):
<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 Anda menghindari penggunaan atribut?
Beberapa masalah dengan atribut adalah:
- atribut tidak dapat berisi banyak nilai (elemen anak dapat)
- atribut tidak mudah diperluas (untuk perubahan di masa mendatang)
- atribut tidak dapat menggambarkan struktur (elemen anak dapat)
- atribut lebih sulit untuk dimanipulasi oleh kode program
- nilai atribut tidak mudah untuk diuji terhadap DTD
Jika Anda menggunakan atribut sebagai wadah untuk data, Anda 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 bagaimana XML harus digunakan):
<note day="12" month="11" year="2002"
to="Tove" from="Jani" heading="Reminder"
body="Don't forget me this weekend!">
</note>
Pengecualian untuk Aturan Atribut saya
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 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 hanyalah penghitung, atau pengenal unik, untuk mengidentifikasi catatan berbeda dalam file XML, dan bukan bagian dari data catatan.
Apa yang saya coba katakan di sini adalah bahwa metadata (data tentang data) harus disimpan sebagai atribut, dan data itu sendiri harus disimpan sebagai elemen.