Semantic Web 4 : XML namespace&DTD OLEH: DEVIE ROSA ANAMISA
Bagian-Bagian dari Dokumen XML Sebuah dokumen XML terdiri dari bagian bagian yang disebut dengan node. Node-node itu adalah: 1. Root node yaitu node yang melingkupi keseluruhan dokumen. Dalam satu dokumen XML hanya ada satu root node. Node-node yang lainnya berada di dalam root node. 2. Element node yaitu bagian dari dokumen XML yang ditandai dengan tag pembuka dan tag penutup, atau bisa juga sebuah tag tunggal elemen kosong seperti <anggota nama=”budi”/> . Root node biasa juga disebut root element 3. Attribute note termasuk nama dan nilai atribut ditulis pada tag awal sebuah elemen atau pada tag tunggal. 4. Text node, adalah text yang merupakan isi dari sebuah elemen, ditulis diantara tag pembuka dan tag penutup
Namespace XML 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
Contoh: Bila ada dokumen yang mendiskripsikan tentang kebutuhan material pembuatan gardu jaga dari bambu <bambu> <jenis>Jawa</jenis> <panjang>2</panjang> </bambu>
Bandingkan dengan dokumen yang mendiskripsikan “bambu” sebagai merek produk. <bambu> <jumlah>246</jumlah> <hargasatuan>200</hargasatuan> </bambu>
untuk mengatasi hal ini, Namespace menyediakan metode dengan menggunakan awalan yang berbeda <a:bambu> <a:jenis>Jawa</a:jenis> <a:panjang>2</a:panjang> </a:bambu>
Dokumen kedua menjadi seperti berikut <b:bambu> <b:jumlah>246</b:jumlah> <b:hargasatuan>200</b:hargasatuan> <b:/bambu>
Dengan cara demikian konflik penamaan tag tidak terjadi lagi Dengan cara demikian konflik penamaan tag tidak terjadi lagi. Aturan penggunaan namespace adalah: <a:bambu xmlns:a=”http:/www.somewhere.com/gardu”> a adalah prefix yang dipakai, sedangkan atribut namespace di tambahkan pada tag. Syntax untuk atribut namespace adalah sebagai : xmlns:a=”namespace”
Document Type Definition (DTD) Meskipun XML sangatlah fleksibel, namun tidak semua program dapat membaca dokumennya secara baik. Banyak program yang dapat bekerja dengan beberapa aplikasi XML tetapi terkadang tidak untuk yang lain. Aplikasi XML harus memastikan bahwa dokumen yang diberikan adalah benar-banar mematuhi aturan.
Document Type Definition (DTD) DTD berfungsi untuk mendefinisikan tipe dokumen XML. DTD ditulis untuk menjelaskan elemen dan entitas yang mungkin muncul di dalam dokumen dan elemen isi serta atributnya. Sehingga kita tahu bahwa seperti apa struktur dokumen dan dapat membedakan yang mana tag dan yang mana elemen.
Validation Dokumen yang valid termasuk jenis dokumen mendeklarasikan DTD. DTD digunakan untuk mendeklarasikan semua elemen, atribut, dan entitas yang akan digunakan didalam dokumen. Semua dokumen yang akan ditulis harus dideklarasikan didalam DTD.
Sebagai contoh, buatlah dokumen XML berikut yang menyertakan deklarasi DTD. Simpan file tersebut dengan nama contoh3_1.xml. <?xml version=”1.0” encoding=”UTF-8” standalone=”yes” ?> <!DOCTYPE orang [ <!ELEMENT orang (nama, profesi)> <!ELEMENT nama (nama_depan, nama_belakang)> <!ELEMENT nama_depan (#PCDATA)> <!ELEMENT nama_belakang (#PCDATA)> <!ELEMENT profesi (#PCDATA)> ]> <orang> <nama> <nama_depan>Hendra</nama_depan> <nama_belakang>Kusmayadi</nama_belakang> </nama> <profesi>Dosen</profesi> </orang>
Pada contoh diatas,tampilan yang ada dapat kita lihat seperti berikut :
DTD tidak mempengaruhi ke well-formed-an suatu dokumen DTD tidak mempengaruhi ke well-formed-an suatu dokumen. Sehingga dokumen diatas dianggap dokumen yang well-formed. Namun, meski demikian, dokumen selain memiliki sifat well-formed, juga memiliki valid atau tidak. Dengan DTD ini kita akan mengetahui bahwa sebuah dokumen valid atau tidak. Untuk menyatakan suatu dokumen falid atau tidaknya,diperlukan tools XML validation yang dapat didownload di http://msdn.microsoft.com/xml atau http://xmlsoftware.com atau disitus lainnya.
Deklarasi Elemen #PCDATA Konten yang terkandung didalam elemen yang dimaksud adalah text. Meskipun data yang ada dielemen tersebut berupa angka, tetap dianggap sebagai text. Contohnya : <!ELEMENT phone_number (#PCDATA)> Elemen anak Penspesifikasi konten sederhana adalah salah satu elemen yang harus memiliki satu anak dari type yang sesuai. Pada kasus ini, nama anak ditulis didalam kurung. Contohnya : <!ELEMENT fax (phone_number)> Maksudnya adalah elemen phone_number merupakan anak dari elemen fax.
Sequence Kita dapat menuliskan elemen anak lebih dari satu pada deklarasinya. Dengan penulisan ini dimaksudkan untuk menuliskan elemen anak lebih dari satu elemen. Misalnya : <!ELEMENT name (first_name, last_name)>
Jumlah anak Penulisan jumlah anak daru suatu elemen dapat kita tuliskan dengan cara menambahkan tanda berikut pada akhir nama elemen. Karakter Arti + Muncul saatu kali atau lebih. Minimal muncul satu kali * Muncul 0 kali atau lebih ? Boleh tidak muncul, tapi jika muncul maksimal satu kali | Fungsi atau
Pilihan Terkadang pada kasus tertentu ada suatu elemen yang memiliki anak tetapi berbeda-beda. Cara pendeklarasiannya dapat dilakukan dengan <!ELEMENT methodResponse (params | fault)> Penulisannya tidak hanya dibatasi dua elemen Mixed Content Memungkinkan untuk menulsikan text dan elemen dalam suatu elemen. Contoh : <definition>The <term>Turing Machine</term> is an
Deklarasi Atribut Sama seperti elemen, dokumen dikatakan valid jika dapat menyatakan semua atribut elemen jika elemennya memiliki atribut. Sintaks penulisannya adalah dengan ATTLIST.