<img src="komputer.gif"><a href="demo.html">
Atribut sering kali memberikan informasi yang bukan merupakan bagian dari data. Dalam contoh berikut, tipe file tidak ada hubungannya dengan data, namun penting bagi perangkat lunak yang perlu menangani elemen ini:
<file type="gif">komputer.gif</file>
Nilai atribut harus diapit tanda kutip, namun dapat digunakan tanda kutip tunggal dan ganda. Misalnya jenis kelamin seseorang, maka unsur person dapat dituliskan seperti ini:
<orang jenis kelamin="perempuan">
Atau ini juga berfungsi:
<orang jenis kelamin='perempuan'>
Jika nilai atributnya sendiri mengandung tanda kutip ganda, Anda dapat menggunakan tanda kutip tunggal, seperti pada contoh ini:
<nama gangster='George "Senapan" Ziegler'>
Atau Anda dapat menggunakan entitas karakter:
<person sex="female"><firstname>Anna</firstname><lastname>Smith</lastname></person>
<person><sex>perempuan</sex><firstname>Anna</firstname><lastname>Smith</lastname></person>
Pertama, seks adalah sebuah properti. Dalam contoh kedua, seks adalah sebuah elemen. Kedua contoh memberikan informasi yang sama.
Tidak ada aturan yang memberitahu kita kapan harus menggunakan atribut dan kapan menggunakan elemen. Pengalaman saya adalah bahwa dalam HTML, atribut sangat mudah digunakan, tetapi dalam XML, Anda harus menghindari penggunaan atribut. Jika informasi terasa seperti data, gunakan elemen.
Tiga dokumen XML berikut berisi informasi yang persis sama:
Atribut tanggal digunakan pada contoh pertama:
<note date="10/01/2008"><to>Tove</to><from>Jani</from><heading>Pengingat</heading><body>Jangan lupakan saya akhir pekan ini!</body ></catatan>
Contoh kedua menggunakan elemen tanggal:
<note><date>10/01/2008</date><to>Tove</to><from>Jani</from><heading>Pengingat</heading><body>Jangan lupakan saya akhir pekan ini! </tubuh></catatan>
Contoh ketiga menggunakan elemen tanggal diperpanjang (ini adalah favorit saya):
<note><date><day>10</day><month>01</month><year>2008</year></date><to>Tove</to><from>Jani</from> <heading>Pengingat</heading><body>Jangan lupakan saya akhir pekan ini!</body></note>
Beberapa masalah yang disebabkan oleh penggunaan atribut:
Atribut tidak boleh berisi banyak nilai (elemen bisa)
Atribut tidak boleh berisi struktur pohon (elemen bisa)
Properti tidak mudah diperluas (untuk perubahan di masa mendatang)
Properti sulit dibaca dan dipelihara. Silakan coba gunakan elemen untuk mendeskripsikan data. Sebaliknya, cukup gunakan atribut untuk memberikan informasi yang tidak bergantung pada data.
Jangan lakukan hal bodoh seperti ini (ini bukan cara penggunaan XML):
<note day="10" moon="01" year="2008"to="Tove" from="Jani" heading="Reminder"body="Jangan lupakan saya akhir pekan ini!"></note>
Terkadang referensi ID ditugaskan ke elemen. Indeks ID ini dapat digunakan untuk mengidentifikasi elemen XML dengan cara yang sama seperti atribut id dalam HTML. Contoh ini menunjukkan situasi ini kepada kita:
<messages><note id="501"><to>Tove</to><from>Jani</from><heading>Pengingat</heading><body>Jangan lupakan saya akhir pekan ini!</body> </note><note id="502"><to>Jani</to><from>Tove</from><heading>Re: Pengingat</heading><body>Saya tidak akan</body></ catatan></pesan>
Atribut id di atas hanyalah pengenal yang digunakan untuk mengidentifikasi catatan yang berbeda. Ini bukan bagian dari data catatan.
Gagasan yang ingin kami sampaikan kepada Anda di sini adalah bahwa metadata (data tentang data) harus disimpan sebagai atribut, dan data itu sendiri harus disimpan sebagai elemen.
Berikut adalah aturan yang harus diikuti oleh ringkasan atribut XML:
Nama atribut tidak boleh muncul satu kali dalam tag awal atau tag elemen kosong yang sama
Sebuah properti harus dideklarasikan menggunakan definisi tipe dokumen (DTD) yang dideklarasikan di lembar properti.
Nilai properti tidak boleh berisi referensi entitas langsung atau tidak langsung ke entitas eksternal
Teks pengganti entitas apa pun yang disebut nilai atribut langsung atau tidak langsung tidak boleh berisi tanda yang kurang dari itu