teknologi xml - pengenalan dtd

21
XML – Pengenalan DTD Teknologi XML (2010/2011) - Mar 04, 2011 Teknik Informatika, Universitas Islam Indonesia Follow Hari Setiaji on twitter

Upload: hari-setiaji

Post on 17-Dec-2014

1.992 views

Category:

Education


3 download

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

Page 1: Teknologi XML - Pengenalan DTD

XML – Pengenalan DTD

Teknologi XML (2010/2011) - Mar 04, 2011 Teknik Informatika, Universitas Islam Indonesia

Follow Hari Setiaji on twitter

Page 2: Teknologi XML - Pengenalan DTD

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

Page 3: Teknologi XML - Pengenalan DTD

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

Page 4: Teknologi XML - Pengenalan DTD

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

Page 5: Teknologi XML - Pengenalan DTD

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>

Page 6: Teknologi XML - Pengenalan DTD

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>

Page 7: Teknologi XML - Pengenalan DTD

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”>

Page 8: Teknologi XML - Pengenalan 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>

Page 9: Teknologi XML - Pengenalan DTD

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>

Page 10: Teknologi XML - Pengenalan DTD

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

Page 11: Teknologi XML - Pengenalan DTD

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>

Page 12: Teknologi XML - Pengenalan DTD

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)>

Page 13: Teknologi XML - Pengenalan DTD

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

Page 14: Teknologi XML - Pengenalan DTD

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

Page 15: Teknologi XML - Pengenalan DTD

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

Page 16: Teknologi XML - Pengenalan DTD

<?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

Page 17: Teknologi XML - Pengenalan DTD

<?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

Page 18: Teknologi XML - Pengenalan DTD

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

Page 19: Teknologi XML - Pengenalan DTD

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

Page 20: Teknologi XML - Pengenalan DTD

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

Page 21: Teknologi XML - Pengenalan DTD

Finally

?Any Questions ?

Teknologi XML (2010/2011) – Hari Setiaji, S.KomTeknologi XML (2010/2011) – Hari Setiaji, S.Kom