Dalam XML, tidak ada aturan tentang kapan harus menggunakan atribut dan kapan harus menggunakan elemen turunan.
Section Artikel
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.
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>
Haruskah kita menghindari penggunaan atribut?
Beberapa masalah dengan atribut adalah:
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>
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.