teknologi xml - pengenalan dtd
DESCRIPTION
Dokumen XML yang baik adalah jika memenuhi syarat well formed and valid. DTD dibutuhkan sebagai blueprint untuk mencetak dokumen XML yang valid. Disertai beberapa contoh dokumen XML yang memiliki DTD. Enjoy..TRANSCRIPT
XML – Pengenalan DTD
Teknologi XML (2010/2011) - Mar 04, 2011 Teknik Informatika, Universitas Islam Indonesia
Follow Hari Setiaji on twitter
Skenario: Memindah data dari lib A ke lib B
Java EEJava EE PHPPHPif(is_wf("books.xml")) { save_to_DB("books.xml");}
if(is_wf("books.xml")) { save_to_DB("books.xml");}
Library A Library B
Teknologi XML (2010/2011) – Hari Setiaji, S.KomTeknologi XML (2010/2011) – Hari Setiaji, S.Kom
Better Way
Java EEJava EE PHPPHPif(is_wf("books.xml") and is_valid("books.xml") { save_to_DB("books.xml");}
if(is_wf("books.xml") and is_valid("books.xml") { save_to_DB("books.xml");}
Library A Library B
Teknologi XML (2010/2011) – Hari Setiaji, S.KomTeknologi XML (2010/2011) – Hari Setiaji, S.Kom
Well Formed and Valid Document
Dokumen harus well formedDokumen harus well formed Terdiri atas satu root elementTerdiri atas satu root element Mempunyai parent and childMempunyai parent and child
(Ingat Konsep Tree)(Ingat Konsep Tree) Atribut mesti sesuai dan di - Atribut mesti sesuai dan di - quotequote
Dokumen ‘may’ validDokumen ‘may’ valid Struktur dokumen dan konten mengikuti Struktur dokumen dan konten mengikuti
aturan yang telah didefenisikan (DTD, XML aturan yang telah didefenisikan (DTD, XML Schema)Schema)
Teknologi XML (2010/2011) – Hari Setiaji, S.KomTeknologi XML (2010/2011) – Hari Setiaji, S.Kom
Contoh Dokumen Well Formed
Teknologi XML (2010/2011) – Hari Setiaji, S.KomTeknologi XML (2010/2011) – Hari Setiaji, S.Kom
<daftarmahasiswa>
<nim>04523001</nim>
<nama>Sabrina</nama>
<jurusan>Teknik Informatika</jurusan>
</daftarmahasiswa>
Contoh Dokumen Well Formed (+ DTD)
Teknologi XML (2010/2011) – Hari Setiaji, S.KomTeknologi XML (2010/2011) – Hari Setiaji, S.Kom
<?xml version=“1.0”?>
<!DOCTYPE daftarmahasiswa [
<!ELEMENT daftarmahasiswa (nim,nama,jurusan)>
<!ELEMENT nim (#PCDATA)>
<!ELEMENT nama (#PCDATA)>
<!ELEMENT jurusan (#PCDATA)>
]>
<daftarmahasiswa>
<nim>04523001</nim>
<nama>Sabrina</nama>
<jurusan>Teknik Informatika</jurusan>
</daftarmahasiswa>
Deklarasi DTD
Teknologi XML (2010/2011) – Hari Setiaji, S.KomTeknologi XML (2010/2011) – Hari Setiaji, S.Kom
Untuk mendeklarasikan DTD, bisa menggunakan 2 cara :
• Internal DTD (menjadi satu dengan dokumen XML)<?xml version=“1.0” standalone=“yes”?><!DOCTYPE daftar [<!ELEMENT daftar (#PCDATA)>]>
• Eksternal DTD (terpisah pada file lainnya)<?xml version=“1.0” standalone=“no”?><!DOCTYPE daftar SYSTEM “daftar.dtd”>
Internal DTD
Teknologi XML (2010/2011) – Hari Setiaji, S.KomTeknologi XML (2010/2011) – Hari Setiaji, S.Kom
<?xml version=“1.0”?>
<!DOCTYPE daftarmahasiswa [
<!ELEMENT daftarmahasiswa (nim,nama,jurusan)>
<!ELEMENT nim (#PCDATA)>
<!ELEMENT nama (#PCDATA)>
<!ELEMENT jurusan (#PCDATA)>
]>
<daftarmahasiswa>
<nim>04523001</nim>
<nama>Sabrina</nama>
<jurusan>Teknik Informatika</jurusan>
</daftarmahasiswa>
Eksternal DTD
Teknologi XML (2010/2011) – Hari Setiaji, S.KomTeknologi XML (2010/2011) – Hari Setiaji, S.Kom
<?xml version=“1.0”?>
<!DOCTYPE daftarmahasiswa SYSTEM “mahasiswa.dtd”>
<daftarmahasiswa>
<nim>04523001</nim>
<nama>Budi Anduk</nama>
<jurusan>Teknik Informatika</jurusan>
</daftarmahasiswa>
Tipe Element Content
Teknologi XML (2010/2011) – Hari Setiaji, S.KomTeknologi XML (2010/2011) – Hari Setiaji, S.Kom
Pada contoh sebelumnya elemen berisi (#PCDATA) yang berarti bahwa isi dari elemen hanya teks biasa. Jika diinginkan elemen berisi teks dan elemen lain maka kita bisa menggunakan ANY, adapun jika hanya elemen saja maka isikan dengan nama elemen
Konsep Elemen DTD
Teknologi XML (2010/2011) – Hari Setiaji, S.KomTeknologi XML (2010/2011) – Hari Setiaji, S.Kom
Setiap element yang digunakan didalam dokumen XML harus dideklarasikan didalam Dokumen DTD
<!ELEMENT element_name content_specification>
Tipe Data DTD
Teknologi XML (2010/2011) – Hari Setiaji, S.KomTeknologi XML (2010/2011) – Hari Setiaji, S.Kom
Setiap element pada dokumen XML harus memiliki tipe data
• #PCDATA tipe data yang bisa di parserCth : <!ELEMENT phone_number (#PCDATA)>
• CDATA tipe data yang tidak bisa diparser. Biasanya digunakan pada atribut list
Cth : <!ATTLIST phone_number (CDATA)>
Kardinalitas (Number of Children)
Teknologi XML (2010/2011) – Hari Setiaji, S.KomTeknologi XML (2010/2011) – Hari Setiaji, S.Kom
Setiap element dalam dokumen XML yang telah dideklarasikan pada DTD bisa ditampilkan sesuai dengan yang kita inginkan.
? element BOLEH TIDAK muncul atau MAX 1 kali* element BOLEH TIDAK muncul atau BOLEH LEBIH 1 kali+ element HARUS muncul dan BOLEH LEBIH 1 kali| element boleh berisi beberapa child atau karakter
(seperti fungsi or)tidak ada tanda element harus muncul tepat 1 kali
Contoh DTD<?xml version=“1.0” standalone=“yes”?>
<!DOCTYPE daftarmahasiswa [
<!ELEMENT daftarmahasiswa (nim,nama,jurusan)>
<!ELEMENT nim (#PCDATA)>
<!ELEMENT nama (#PCDATA)>
<!ELEMENT jurusan (#PCDATA)>
]>
<daftarmahasiswa>
<nim>04523001</nim>
<nama>Sabrina</nama>
<jurusan>Teknik Informatika</jurusan>
</daftarmahasiswa> Teknologi XML (2010/2011) – Hari Setiaji, S.KomTeknologi XML (2010/2011) – Hari Setiaji, S.Kom
Contoh DTD<?xml version=“1.0” standalone=“yes”?>
<!DOCTYPE daftarmahasiswa [
<!ELEMENT daftarmahasiswa (nim,nama,jurusan)>
<!ELEMENT nim (#PCDATA)>
<!ELEMENT nama (#PCDATA)>
<!ELEMENT jurusan (#PCDATA)>
]>
<daftarmahasiswa>
<nim>04523001</nim>
<nama>Sabrina</nama>
</daftarmahasiswa>Teknologi XML (2010/2011) – Hari Setiaji, S.KomTeknologi XML (2010/2011) – Hari Setiaji, S.Kom
<?xml version=“1.0” standalone=“yes”?>
<!DOCTYPE daftarmahasiswa [
<!ELEMENT daftarmahasiswa (mahasiswa)>
<!ELEMENT mahasiswa (nama,alamat+,telp?)>
<!ELEMENT nama (#PCDATA)>
<!ELEMENT alamat (#PCDATA)>
<!ELEMENT telp (#PCDATA)>
]>
<daftarmahasiswa>
<mahasiswa>
<nama>Sabrina</nama>
</mahasiswa>
<mahasiswa>
<nama>Jason Mraz</nama>
<alamat>Jakal km 15</alamat>
<telp>08123456789</telp>
<telp>0219876543</telp>
</mahasiswa>
</daftarmahasiswa>Teknologi XML (2010/2011) – Hari Setiaji, S.KomTeknologi XML (2010/2011) – Hari Setiaji, S.Kom
<?xml version=“1.0” standalone=“yes”?>
<!DOCTYPE daftarmahasiswa [
<!ELEMENT daftarmahasiswa (mahasiswa+)>
<!ELEMENT mahasiswa (nama,alamat+,telp*)>
<!ELEMENT nama (#PCDATA)>
<!ELEMENT alamat (#PCDATA)>
<!ELEMENT telp (#PCDATA)>
]>
<daftarmahasiswa>
<mahasiswa>
<nama>Sabrina</nama>
<alamat>Jakal km 10</alamat>
</mahasiswa>
<mahasiswa>
<nama>Jason Mraz</nama>
<alamat>Jakal km 15</alamat>
<telp>08123456789</telp>
<telp>0219876543</telp>
</mahasiswa>
</daftarmahasiswa>Teknologi XML (2010/2011) – Hari Setiaji, S.KomTeknologi XML (2010/2011) – Hari Setiaji, S.Kom
Soal1. Buatlah dokumen XML dengan ketentuan sesuai dengan DTD
berikut ini :<?xml version="1.0" standalone="no"?><!DOCTYPE daftarmahasiswa[<!ELEMENT daftarmahasiswa (mahasiswa+)><!ELEMENT mahasiswa (nim,nama,jurusan?,email+,telp*)><!ELEMENT nim (#PCDATA)><!ELEMENT nama (#PCDATA)><!ELEMENT jurusan (#PCDATA)><!ELEMENT email (#PCDATA)><!ELEMENT telp (#PCDATA)>]>
Teknologi XML (2010/2011) – Hari Setiaji, S.KomTeknologi XML (2010/2011) – Hari Setiaji, S.Kom
Next Week Agenda (Quiz)
Silahkan pelajari dokumen DTD dengan penambahan attribute dan entities
Sekilas: - Cara Penulisan<!ATTLIST element-name attribute-name attribute-type default-value>
- SifatAtribut memiliki sifat default, required, implied atau fixed
..:: Selamat belajar::..
Teknologi XML (2010/2011) – Hari Setiaji, S.KomTeknologi XML (2010/2011) – Hari Setiaji, S.Kom
Teknologi XML (2010/2011) – Hari Setiaji, S.KomTeknologi XML (2010/2011) – Hari Setiaji, S.Kom
Sumber:
• iSchool Berkeley • http://dret.net/lectures/xml-fall06/
• TAMK University of Applied Sciences
• Developer Shed Network – XML
• Materi XML 2009• http://salhazan.com/homepage
Finally
?Any Questions ?
Teknologi XML (2010/2011) – Hari Setiaji, S.KomTeknologi XML (2010/2011) – Hari Setiaji, S.Kom