Document Type Definition (DTD)

Sesuai namanya DTD berfungsi untuk mendefinisikan tipe documen XML. Pada saat mempelajari salah satu bahasa pemrograman atau scripting anda diperkenalkan dengan deklarasi variable, deklarasi fungsi dan deklarasi tipe data. Serupa dengan itu, DTD mendefinisikan struktur dokumen XML dengan daftar element yang digunakan.
Contoh dibawah ini akan memperjelas pengertian DTD
<?xml version =’1.0′ encoding=’utf-8′?>
<!DOCTYPE organisasi [
<!ELEMENT organisasi (anggota)>
<!ELEMENT anggota (nama,alamat,kelamin,jabatan)>
<!ELEMENT nama (#PCDATA)>
<!ELEMENT alamat (#PCDATA)>
<!ELEMENT kelamin (#PCDATA)>
<!ELEMENT jabatan (#PCDATA)>
<!ENTITY org “Forum Komunikasi Remaja Masjid se-Jabotabek”>
]>
<organisasi nama = “&org;”>
<anggota>
<nama>Budi Hermanto</nama>
<alamat>Kebayoran</alamat>
<kelamin>laki-laki</kelamin>
<jabatan>ketua</jabatan>
</anggota>
</organisasi>

Contoh diatas adalah DTD yang menjadi satu dalam satu dokumen dengan XML. Kita bisa memisahkan DTD pada file tersendiri, terpisah dari dokumen XML-nya. Caranya, perhatikan contoh berikut:
<?xml version =’1.0′ encoding=’utf-8′?>
<!DOCTYPE organisasi SYSTEM “organisasi.dtd”>
<organisasi nama = “&org;”>
<anggota>
<nama>Budi Hermanto</nama>
<alamat>Kebayoran</alamat>
<kelamin>laki-laki</kelamin>
<jabatan>ketua</jabatan>
</anggota>
</organisasi>

Lalu anda membuat file baru dengan nama “organisasi.dtd” yang berisi deklarasi DTD seperti contoh berikut
<!ELEMENT organisasi (anggota)>
<!ELEMENT anggota (nama,alamat,kelamin,jabatan)>
<!ELEMENT nama (#PCDATA)>
<!ELEMENT alamat (#PCDATA)>
<!ELEMENT kelamin (#PCDATA)>
<!ELEMENT jabatan (#PCDATA)>

<!ENTITY org “Forum Komunikasi Remaja Masjid se-Jabotabek”>

DTD memungkinkan format yang unik untuk setiap file xml. DTD akan sangat berguna bila kita membuat aplikasi dalam Visual Basic, ASP atau bahasa pemrograman lain yang mendukung XML, yaitu untuk memastikan bahwa data yang diterima aplikasi itu adalah data yang valid. Atau bermanfaat juga digunakan bila satu organisasi menyepakati penggunaan satu DTD untuk tukar menukar data dan informasi.
Unsur-unsur yang dideklarasikan dalam DTD adalah semua unsur yang membentuk suatu dokumen XML yaitu
• Element, satu blok data yang diawali tag pembuka dan tag penutup.
• Attribute, informasi pendukung element yang disertakan pada tag pembuka
• Entity, karakter pengganti untuk sekumpulan informasi yang didefinisikan
Bagaimana mendeklarasikan masing-masing unsur diatas, kita akan bahas satu persatu:

Element
Bila sebuah element mengandung beberapa child element, maka kita perlu mendeklarasikan child element apa saja yang dipunyai element tersebut. Pada contoh diatas kita melihat deklarasi element
<!ELEMENT organisasi (anggota)>
<!ELEMENT anggota (nama,alamat,kelamin,jabatan)>

Maksudnya adalah element bernama organisasi memiliki satu child element bernama anggota. Lalu element bernama anggota itu sendiri mempunyai empat child element yang bernama nama, alamat, kelamin dan jabatan.
Setelah itu kita perlu medeklarasikan juga type dari element-element diatas.
<!ELEMENT nama (#PCDATA)>
<!ELEMENT alamat (#PCDATA)>
<!ELEMENT kelamin (#PCDATA)>
<!ELEMENT jabatan (#PCDATA)>

contoh diatas adalah cara untuk mendeklarasikan type elemen, dimana element nama, alamat, kelamin dan jabatan semuanya bertipe (#PCDATA)
Attribute
Agar dokumen XML kita valid, kita juga perlu mendefinisikan semua attribut yang akan kita gunakan dalam dokumen kita. Untuk mendefinisikannya kita akan menggunakan Attribute list declaration. Caranya seperti berikut:
<!ATTLIST namaelemen spesifikasiattribut>
namaelemen adalah nama elemen dimana attribute itu digunakan. Sedangkan spesifikasiattribute adalah serangkaian informasi tentang attribute itu. Unsur yang membentuknya antara lain nama attribut, type attribute, nilai awal (default value), dan sifat attribute”
perhatikan contoh dibawah:
<!ATTLIST ORGANISASI Nama CDATA #FIXED “HMTE”>

Attribute
Agar dokumen XML kita valid, kita juga perlu mendefinisikan semua attribut yang akan kita gunakan dalam dokumen kita. Untuk mendefinisikannya kita akan menggunakan Attribute list declaration. Caranya seperti berikut:

<!ATTLIST namaelemen spesifikasiattribut>

namaelemen adalah nama elemen dimana attribute itu digunakan. Sedangkan spesifikasiattribute adalah serangkaian informasi tentang attribute itu. Unsur yang membentuknya antara lain nama attribut, type attribute, nilai awal (default value), dan sifat attribute”
perhatikan contoh dibawah:

<!ATTLIST ORGANISASI Nama CDATA #FIXED “HMTE”>

maksud dari contoh diatas adalah elemen ORGANISASI memiliki Attribute Nama yang bertype CDATA. Sifat attribute dalam hal ini adalah #FIXED, yaitu nilai dari attribute nama harus seperti yang dideklarasikan (“HMTE” adalah nilai default yang diberikan bila kita tidak menyebutkannya). Sifat-sifat attribute selengkapnya adalah:
#FIXED, bila attribute kita deklarasikan dengan ini, kita bisa mencantumkan atau menghilangkan attribute pada element bersangkutan. Bila kita menghilangkannya, secara otomatis parser akan mencantumkan attribute dengan nilai sesuai dengan nilai awal yang diberikan.
#REQUIRED, ini menandakan bahwa attribut yang bersangkutan tidak bisa dihilangkan. Pendeklarasiannya tidak membutuhkan nilai awal. Bila anda paksakan, browser akan menampilkan pesan error.
#IMPLIED, bila kita menggunakannya berarti kita bisa membuang atau mencantumkan attribute. Bila kita tidak mencantumkannya, prosesor tidak akan memberikan nilai default.

Entity
Dengan menggunakan entity XML kita bisa menggantikan kalimat yang panjang atau satu blok elemen yang sering kita gunakan dengan sebuah pengenal singkat. Misalnya kita ingin menggantikan kalimat “Manajemen Data dan Informasi dengan XML/XSL” dengan entity &judul;.(kita telah menyinggung pada pembahasan terdahulu bahwa entity diawali dengan & dan diakhiri dengan😉.
Sekali entity didefinisikan di dalam DTD, kita bisa menggunakannya dimana saja pada seluruh dokumen XML.

<?xml version=”1.0” encoding=”iso-8859-1”>
<!DOCTYPE organisasi [
<!ENTITY judul “Manajemen data dan informasi dengan XML/XSLT”>
]>
<resensi>
<buku judul=”&judul;”>
<ulasan>Buku yang berjudul &judul; ini ditulis oleh Moh Junaedi..</ulasan>
</buku>
</resensi>

Bila dijalankan, pada browser akan tampil seperti gambar dibawah:

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s

%d blogger menyukai ini: