Prinsip-prinsip desain XML: Kapan menggunakan elemen versus atribut oleh Uche Ogbuji dari IBM mungkin merupakan salah satu sumber daya terbaik tentang masalah ini.
Inti dari keputusan adalah bahwa atribut adalah hal-hal yang 'dilakukan'. Anda tidak dapat mengubahnya atau memodifikasinya atau membuat sarangnya. Mereka teratur dan berbeda dalam elemen (Anda tidak dapat memiliki dua hal yang sama).
Jika ada dari kendala ini adalah hal-hal yang dapat berubah, jadikan data simpul anak dari XML.
Dalam contoh Anda, Anda memiliki seseorang yang memiliki nama dan usia. Saya memiliki nama depan, tengah, dan belakang ... dan nama panggilan. Dan beberapa orang memiliki nama gadis, banyak nama tengah, atau kehormatan - bagaimana Anda memasukkan John Ronald Reuel Tolkien ke dalam struktur seperti itu?
Dan jadi kami memiliki seseorang yang memiliki dua nama tengah yang memesannya. Ini harus jelas menunjukkan bahwa tidak, atribut bukan pilihan terbaik untuk ini.
Saya tidak dapat menemukannya saat ini, tetapi dalam dokumen tertaut di atas ada pernyataan bahwa nama adalah hal-hal yang memerlukan sedikit pemikiran yang mengarah ke "Saya berharap untuk memperluas pada perlakuan nama-nama orang dalam markup di artikel mendatang." Jika ada yang memiliki petunjuk tentang ini, silakan tinggalkan komentar atau edit di tempat ini.
Di sisi lain, usia adalah sesuatu yang memiliki struktur yang agak tetap (saya sarankan ulang tahun daripada bilangan bulat). Dengan demikian, merepresentasikan informasi ini dalam format yang terkenal dan dipahami masuk akal dalam suatu atribut. Seseorang memiliki satu, dan hanya satu ulang tahun dan tidak ada 'pemesanan' untuk itu yang ingin Anda pertahankan.
Uche Ogbuji mengidentifikasi tiga prinsip inti dalam mendesain format xml dengan benar. Berikut ini adalah kutipan singkat dari dokumen tertaut di atas.
- Prinsip informasi terstruktur
Jika informasi diekspresikan dalam bentuk terstruktur, terutama jika struktur dapat diperpanjang, gunakan elemen. Di sisi lain: Jika informasi tersebut dinyatakan sebagai token atom, gunakan atribut
- Prinsip keterbacaan
Jika informasi dimaksudkan untuk dibaca dan dipahami oleh seseorang, gunakan elemen. Jika informasi paling mudah dipahami dan dicerna oleh mesin, gunakan atribut.
- Prinsip mengikat elemen / atribut
Gunakan elemen jika Anda perlu nilainya dimodifikasi oleh atribut lain
Jadi, nama harus elemen - mereka adalah data terstruktur yang bukan token atomik, mereka lebih cenderung dibaca oleh manusia daripada komputer dan mereka dapat dimodifikasi oleh atribut lain pada nama itu sendiri.
Tanggal harus menjadi atribut - mereka adalah data yang merupakan token atom, mereka lebih cenderung dibaca oleh komputer daripada manusia (dan kemudian diubah menjadi format yang disukai manusia jika perlu ), dan terakhir mereka tidak mungkin dimodifikasi oleh yang lain. atribut pada mereka.