DTD - Sintaks
XML DTD dapat ditentukan di dalam dokumen, atau dapat disimpan dalam dokumen terpisah dan kemudian dokumen tersebut dapat ditautkan ke dokumen DTD untuk menggunakannya.
Sintaksis
Sintaks dasar DTD adalah sebagai berikut -
<!DOCTYPE element DTD identifier
[
declaration1
declaration2
........
]>
Dalam sintaks di atas -
DTD dimulai dengan <! DOCTYPE delimiter.
Sebuah element memberi tahu parser untuk mengurai dokumen dari elemen root yang ditentukan.
DTD identifieradalah pengenal untuk definisi jenis dokumen, yang mungkin merupakan jalur ke file di sistem atau URL ke file di internet. Jika DTD mengarah ke jalur eksternal, DTD dipanggilexternal subset.
Itu square brackets [ ] menyertakan daftar opsional deklarasi entitas yang dipanggil internal subset.
DTD internal
DTD disebut sebagai DTD internal jika elemen dideklarasikan dalam file XML. Untuk mereferensikannya sebagai DTD internal, atribut mandiri dalam deklarasi XML harus disetel keyes. Ini berarti deklarasi berfungsi independen dari sumber eksternal.
Sintaksis
Sintaks DTD internal seperti yang ditunjukkan -
<!DOCTYPE root-element [element-declarations]>
di mana root-element adalah nama dari root element dan element-declarations adalah tempat Anda mendeklarasikan elemen.
Contoh
Berikut adalah contoh sederhana DTD internal -
<?xml version = "1.0" encoding = "UTF-8" standalone = "yes" ?>
<!DOCTYPE address [
<!ELEMENT address (name,company,phone)>
<!ELEMENT name (#PCDATA)>
<!ELEMENT company (#PCDATA)>
<!ELEMENT phone (#PCDATA)>
]>
<address>
<name>Tanmay Patil</name>
<company>TutorialsPoint</company>
<phone>(011) 123-4567</phone>
</address>
Mari kita lihat kode di atas -
Start Declaration - Mulailah deklarasi XML dengan pernyataan berikut.
<?xml version = "1.0" encoding = "UTF-8" standalone = "yes" ?>
DTD- Segera setelah header XML, deklarasi tipe dokumen mengikuti, biasanya disebut sebagai DOCTYPE -
<!DOCTYPE address [
Deklarasi DOCTYPE memiliki tanda seru (!) Di awal nama elemen. DOCTYPE menginformasikan parser bahwa DTD dikaitkan dengan dokumen XML ini.
DTD Body - Deklarasi DOCTYPE diikuti oleh badan DTD, tempat Anda mendeklarasikan elemen, atribut, entitas, dan notasi -
<!ELEMENT address (name,company,phone)>
<!ELEMENT name (#PCDATA)>
<!ELEMENT company (#PCDATA)>
<!ELEMENT phone_no (#PCDATA)>
Beberapa elemen dideklarasikan di sini yang membentuk kosakata dari dokumen <name>. <! Nama ELEMEN (#PCDATA)> mendefinisikan nama elemen menjadi tipe "#PCDATA". Di sini #PCDATA berarti data teks yang dapat diurai.
End Declaration- Terakhir, bagian deklarasi DTD ditutup menggunakan braket penutup dan braket sudut penutup (]>). Ini secara efektif mengakhiri definisi, dan setelah itu, dokumen XML segera menyusul.
Aturan
Deklarasi tipe dokumen harus muncul di awal dokumen (hanya diawali dengan header XML) - tidak diizinkan di tempat lain di dalam dokumen.
Mirip dengan deklarasi DOCTYPE, deklarasi elemen harus dimulai dengan tanda seru.
Nama dalam deklarasi tipe dokumen harus sesuai dengan tipe elemen dari elemen root.
DTD Eksternal
Dalam elemen DTD eksternal dideklarasikan di luar file XML. Mereka diakses dengan menentukan atribut sistem yang bisa berupa file .dtd resmi atau URL yang valid. Untuk mereferensikannya sebagai DTD eksternal, atribut mandiri dalam deklarasi XML harus disetel sebagaino. Artinya, deklarasi menyertakan informasi dari sumber eksternal.
Sintaksis
Berikut ini adalah sintaks untuk DTD eksternal -
<!DOCTYPE root-element SYSTEM "file-name">
dimana nama file adalah file dengan ekstensi .dtd .
Contoh
Contoh berikut menunjukkan penggunaan DTD eksternal -
<?xml version = "1.0" encoding = "UTF-8" standalone = "no" ?>
<!DOCTYPE address SYSTEM "address.dtd">
<address>
<name>Tanmay Patil</name>
<company>TutorialsPoint</company>
<phone>(011) 123-4567</phone>
</address>
Isi file DTD address.dtd adalah seperti yang ditunjukkan -
<!ELEMENT address (name,company,phone)>
<!ELEMENT name (#PCDATA)>
<!ELEMENT company (#PCDATA)>
<!ELEMENT phone (#PCDATA)>
Jenis
Anda dapat merujuk ke DTD eksternal dengan menggunakan system identifiers atau public identifiers.
System Identifiers
Pengenal sistem memungkinkan Anda menentukan lokasi file eksternal yang berisi deklarasi DTD. Sintaksnya adalah sebagai berikut -
<!DOCTYPE name SYSTEM "address.dtd" [...]>
Seperti yang Anda lihat, ini berisi SISTEM kata kunci dan referensi URI yang menunjuk ke lokasi dokumen.
Public Identifiers
Pengidentifikasi publik menyediakan mekanisme untuk menemukan sumber daya DTD dan ditulis sebagai berikut -
<!DOCTYPE name PUBLIC "-//Beginning XML//DTD Address Example//EN">
Seperti yang Anda lihat, ini dimulai dengan kata kunci PUBLIK, diikuti dengan pengenal khusus. Pengidentifikasi publik digunakan untuk mengidentifikasi entri dalam katalog. Pengenal publik dapat mengikuti format apa pun, namun format yang umum digunakan disebut Pengenal Publik Formal, atau FPI.