DTD Disusun oleh : Tim Pengajar Pemrosesan XML Hanya untuk kepentingan pengajaran di lingkungan Fakultas Ilmu Terapan MI3234 – Pemrosesan Data XML Semester Genap 2014/2015 DTD Disusun oleh : Tim Pengajar Pemrosesan XML Diajar oleh : Tora Fahrudin., M.T.
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. [1] Aplikasi XML harus memastikan bahwa dokumen yang diberikan adalah benar-banar mematuhi aturan. [1]
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. [1] Sehingga kita tahu bahwa seperti apa struktur dokumen dan dapat membedakan yang mana tag dan yang mana elemen. [1]
DTD Dokumen XML di katakan valid, salah satunya adalah dokumen yang mendeklarasikan DTD didalam dokumen tersebut. [1] DTD memungkinkan untuk penempatan beberapa konstrain pada form sebuah dokumen XML. Parser membaca apakah dokumen tersbut valid atau tidak.[1] Jika dokumen tersebut valid, maka program akan menerima data dari parser. [1]
DTD Contoh Penggunaan DTD: <!DOCTYPE person [ person menjadi elemen root dimana didalam elemen person harus ditulis satu kali element name dan elemen profession boleh muncul atau boleh tidak. Contoh Penggunaan DTD: <!DOCTYPE person [ <!ELEMENT person (name, profession*)> <!ELEMENT name (first_name, last_name)> <!ELEMENT first_name (#PCDATA)> <!ELEMENT last_name (#PCDATA)> <!ELEMENT profession (#PCDATA)> ]> <person> <name> <first_name>Alan</first_name> <last_name>Turing</last_name> </name> <profession>mathematician</profession> <profession>cryptographer</profession> </person> Sedangkan pada elemen name harus memiliki dua elemen child yaitu first_name, last_name dan kemunculannya msing-masing satu kali Sedangkan (#PCDATA) menunjukan tipe isi dari elemen yaitu data karakter.
<!ELEMENT person (student+)> <!DOCTYPE person [ <!ELEMENT person (student+)> <!ELEMENT student (name, hobbi | favorite)> <!ELEMENT name (#PCDATA)> <!ELEMENT hobbi (#PCDATA)> <!ELEMENT favorite (#PCDATA)> ]> <person> <student> <name>Alan Turing</name> <hobbi>Tenis</hobbi> </student> <name>Johan</name> <favorite>Arktis</favorite> <name>Marie</name> </person> didalam elemen student wajib mengandung satu elemen nama dan boleh salah satu dari elemen hobbi atau faforite yang muncul atau keduanya muncul.
DTD Selain itu, dokumen yang valid juga memasukan sebuah reference kedalam DTD yang harus dibandingkan disajikan dalam dokumen dari satu jenis dokumen deklarasi. [1] Ini berguna jika kita menuliskan DTDnya didalam file yang terpisah dengan dokumen. Contoh deklarasi dokument type adalah :
Deklarasi Elemen Bentuk dasarnya <!ELEMENT element_name content_specification>
Deklarasi Elemen
Deklarasi Elemen
Deklarasi Elemen
DTD <!DOCTYPE person [ <!ELEMENT person (student+)> <!ELEMENT student (name, hobbi | favorite)> <!ELEMENT name (#PCDATA)> <!ELEMENT hobbi (#PCDATA)> <!ELEMENT favorite (#PCDATA)> ]>
ATTLIST Seperti halnya elemen, dokumen dikatakan valid jika dapat menyatakan semua atribut elemen jika elemennya memiliki atribut. Yaitu sintaks ATTLIST dapat mendeklarasikan beberapa atribut dalam suatu elemen. Contoh berikut merupakan pendeklarasian ATTLIST pada elemen image, dimana elemen image memiliki atribut source : <!ATTLIST image source CDATA #REQUIRED>
ATTLIST <!ATTLIST image source CDATA #REQUIRED width CDATA #REQUIRED height CDATA #REQUIRED alt CDATA #IMPLIED > Maksud dari deklarasi diatas adalah elemen image memiliki atribut source, width, height dan alt. Dengan type CDATA.
Attribut ATTLIST [1] [1] [1]
ENTITY Referensi entitas didefinisikan dengan pendeklarasian sebuah ENTITY didalam DTD. Hal ini diberikan guna memberikan nama pada entiti. Dengan kata lain, kita bisa menggantikan kalimat yang panjang atau satu blok elemen yang sering kita gunakan dengan sebuah pengenal singkat. Misalnya deklarasi entity mendefinisikan &email; sebagai singkatan dari “admin@somethingweb.com”, maka contoh penulisannya : <!ENTITY email "admin@somethingweb.com"> <person> <name>Peter Kok kok</name> <email>&email;</email> </person>
PERBEDAAN PCDATA DAN CDATA #CDATA means the element contains character data that is not supposed to be parsed by a parser. #PCDATA means that the element contains data that IS going to be parsed by a parser. The keyword ANY declares an element with any content. If a #PCDATA section contains elements, these elements must also be declared.
Daftar Pustaka Hendra, Kusmayadi, and Eko Darwiyanto. XML dan Web Services. Bandung: Politeknik Telkom, 2009.