Namespaces
merupakan penambahan suatu
string
pada
suatu
elemen. Namespaces
diimplementasikan
dengan menempelkan
awalan untuk
setiap
elemen dan atribut. Penulisannya dengan menambahkan string tertentu pada
elemen/atribut yang
kemudian dibatasi oleh titik dua ( : ) antara namespace nama elemen/atribut. Setiap awalan adalah dipetakan ke URI oleh atribut xmlns:prefix. URI default juga dapat diberikan untuk elemen yang tidak
memiliki prefix oleh atribut xmlns.
Elemen dan atribut yang melekat pada URI yang sama merupakan berada pada namespace yang sama.
Tujuan namespaces adalah untuk membedakan antara
nama
elemen dan nama
atribut yang sama namun
memiliki arti yang berbeda dan untuk berbagai nama
yang sama serta untuk semua grup terkait dengan elemen dan atribut dari satu aplikasi share XML sehingga perangkat lunak dapat dengan mudah
mengenali mereka.
Kebutuhan Namespace
Seperti telah kita
ketahui bersama
bahwa sebuah dokumen XML memiliki nama elemen dan atribut yang
digunakan oleh aplikasi untuk memproses
dokumen XML tersebut. Namun, seperti kita
ketahui bersama bahwa
penamaan tersebut dapat kita definisikan sendiri. Namun dengan demikian
ada
kemungkinan suatu nama
elemen yang kita gunakan memiliki nama yang
sama
dengan elemen lain padahal maksudnya berbeda. Jika
kita menggunakan
dokumen untuk diri kita
sendiri, itu tidak jadi masalah, karena
kita
dapat memberikan nama elemen
tersebut berbeda. Namun jika dokumen kita digunakan oleh bayak orang
atau kita yang
menggunakan dokumen orang
lain, maka ada
kemungkinan hal tersebut terjadi. Dan aplikasi bisa
saja
salah dalam
menampilkan
dokumen sehingga
hasil keluaran berbeda dengan yang kita
harapkan. Jadi solusi untuk
menghindari hal itu adalah dengan menambahkan
namespace. Penggunaan Namespace dengan memberikan
awalan tertentu
sebagai
pembeda dengan
elemen lainnya
dan
dipisahkan tanda
titik
dua dengan nama elemen.
Sintaks Namespace
Untuk kasus
penggunaan elemen adalah misalnya jika kita
ingin menuliskan
sebuah dokumen
untuk menyimpan nama bambu,
dimana
bambu yang
pertama merupakan data untuk menyatakan bahwa
sebuah bambu akan
digunakan untuk
membuat pagar rumah
dimana penulisan elemen tersebut
adalah sebagai berikut :
<bambu>
<jenis>Jawa</jenis>
<panjang>2</panjang>
</bambu>
sedangkan ada dokumen yang keduamenyatakan
bahwa bambu itu adalah
sebuah merk produk dengan penulisan dokumen :
<bambu>
<jumlah>246</jumlah>
<hargasatuan>200</hargasatuan>
</bambu>
Jika kita menggabungkan
elemen tersebut dengan
penulisan seperti berikut :
<bambu>
<jenis>Jawa</jenis>
<panjang>2</panjang>
</bambu>
<bambu>
<jumlah>246</jumlah>
<hargasatuan>200</hargasatuan>
</bambu>
maka dalam pemprosesannya akan ambigu antara elemen bambu, maka
solisinya adalah dengan menggunakan namespace, sehingga penulisan dokumen
tersebut adalah
:
<bahan>
<n_pertama:bambu
xmlns:n_pertama='Namespace1'>
<n_pertama:jenis>Jawa</n_pertama:jenis>
<n_pertama:panjang>3m</n_pertama:panjang>
</n_pertama:bambu>
<n_kedua:bambu xmlns:n_kedua='Namespace2'>
<n_kedua:jumlah>100</n_kedua:jumlah>
<n_kedua:hargasatuan>300</n_kedua:hargasatuan>
</n_kedua:bambu>
</bahan>
simpan file tersebut dengan nama contoh4_1.xml dan jalankan. Jika dokumen tersebut dijalankan maka hasilnya adalah
sebagai
berikut :
Namespaces dan DTD
Namespace perludideklarasikan pada Document Type Definition (DTD) agar dokumen yang kita buat menjadi
falid. Pendeklarasiannya dengan
menuliskan :
<prefiks:nama_elemen
xmlns:prefiks=”Namespace”>
prefiks adalah awalan yang digunakan, nama_elemen merupakan nama
elemen yang akan diberi namespace karena
memiliki kesamaan nama dengan elemen lain
namun
berbeda maksud.
Sebagai contoh, buatlah file XML dengan nama filenya
adalah contoh4_2.xml yang isinya adalah sebagai
berikut :
<!DICTYPE barang
[
<!ELEMENT barang (bambu+)>
<n_pertama:bambu
<n_kedua:bambu
]>
No comments:
Post a Comment