• Tidak ada hasil yang ditemukan

Praktikum XML

N/A
N/A
Protected

Academic year: 2021

Membagikan "Praktikum XML"

Copied!
189
0
0

Teks penuh

(1)

Praktikum

Pemrograman EXtensible Markup Languange

XML

POLITEKNIK TELKOM BANDUNG

(2)

Penyusun dan Editor Hendra Kusmayadi

Eko Darwiyanto

Dilarang menerbitkan kembali, menyebarluaskan atau menyimpan baik sebagian maupun seluruh isi buku dalam bentuk dan dengan cara apapun tanpa izin tertulis dari Politeknik Telkom.

Hak cipta dilindungi undang-undang @ Politeknik Telkom 2009 No part of this document may be copied, reproduced, printed, distributed, modified, removed and amended in any form by any means without prior written authorization of Telkom Polytechnic.

(3)

Kata Pengantar

Assalamu’alaikum Wr. Wb

Segala puji bagi Allah SWT karena dengan karunia-Nya courseware ini dapat diselesaikan.

Atas nama Politeknik Telkom, kami sangat menghargai dan ingin menyampaikan terima kasih kepada penulis, penerjemah dan penyunting yang telah memberikan tenaga, pikiran, dan waktu sehingga courseware ini dapat tersusun.

Tak ada gading yang tak retak, di dunia ini tidak ada yang sempurna, oleh karena itu kami harapkan para pengguna buku ini dapat memberikan masukan perbaikan demi pengembangan selanjutnya. Semoga courseware ini dapat memberikan manfaat dan membantu seluruh Sivitas Akademika Politeknik Telkom dalam memahami dan mengikuti materi perkuliahan di Politeknik Telkom.

Amin.

Wassalamu’alaikum Wr. Wb. Bandung, Mei 2009

Christanto Triwibisono Wakil Direktur I

(4)

iv

Daftar Isi

Kata Pengantar...iii Daftar Isi ... iv 1 Pengenalan XML ... 1 Hubungan XML Dengan HTML ... 2 Cara Kerja XML ... 5 2 XML Fundamentals ... 8

Dokumen XML dan File XML ... 9

Elemen, Tag, dan Data karakter ... 9

Atribut ... 12

Entity References ... 13

CDATA Sections ... 14

Komentar ... 15

Deklarasi XML ... 17

Checking Documents for Well-Formedness ... 17

3 Document Type Definitions (DTD) ...23

Validation ... 24

Deklarasi Elemen ... 25

Deklarasi Atribut ... 34

General Entity Declarations... 35

External Parsed General Entities ... 36

External Unparsed Entities and Notations ... 36

Parameter Entity ... 37 Conditional Inclusion ... 37 Contoh Two DTD ... 38 Standar Penempatan DTD ... 39 4 Namespaces ...41 Kebutuhan Namespace ... 42 Sintaks Namespace ... 42 Namespaces dan DTD ... 44 5 XML pada Web...46 XHTML... 47

Direct Display pada browser... 49

Authoring Compound Documents with Modular XHTML ... 50

Prospects for Improved Web-Search Methods ... 50

6 XSL Transformations (XSLT) ...52

Contoh Dokumen XML... 53

xsl:stylesheet ... 53

(5)

Templates and Template Rules ... 54

Elemen with xsl:value-of ... 56

Element xsl:apply-templates ... 56

Built-in Pada Template Rule ... 59

Mode ... 60

Template untuk nilai Attribute ... 60

XSLT dan Namespace ... 63

Elemen XSLT ... 64

7 XPath ...66

Struktur Dokumen XML ... 67

Location Paths ... 67

Menggabungkan Location Part ... 75

Predikat ... 75

Unabbreviated Location Paths ... 76

General XPath Expressions ... 76

Fungsi XPath ... 78 8 XLinks ...80 Simple Links ... 81 Link Behavior ... 82 Link Semantics ... 85 Extended Links ... 86 DTD untuk XLink ... 86 9 XPointer...89

XPointers pada URL ... 90

Child Sequences ... 93 Namespace ... 94 Points ... 94 Ranges ... 95 10 XML Schemas ...97 Overview ... 98 Skema Dasar ... 98

Bekerja dengan Namespace ... 103

Elemen Kosong ... 103

Tipe kompleks ... 104

Mixed Content... 105

Controlling Type Derivation ... 105

11 PRAKTIKUM DOM ...108

11.1 Menampilkan data XML ... 109

11.2 Insert Data ... 111

(6)

vi

11.4 Update Data ... 117

11.5 Delete Data ... 121

12 PRAKTIKUM DOM (2)...126

12.1 Validasi dokumen XML dengan DTD ... 127

12.2 Validasi dokumen XML dengan XSD ... 132

12.3 Menampilkan XML dengan XSL ... 137

13 PRAKTIKUM SAX ...145

13.1 Menampilkan data XML ... 146

13.2 Tampilkan Data XML tanpa tag ... 151

13.3 Perhitungan terhadap data XML ... 154

14 PRAKTIKUM WSDL ...158

14.1 Membuat WSDL dengan wscompile Java ... 159

15 PRAKTIKUM WEB SERVICE(1) ...169

15.1 Persiapan ... 170

15.2 Kode Web Service dengan Java ... 172

15.3 Install Web Service di Web Server... 173

a. Cara Instan. ... 173

- ganti file .java menjadi file .jws (java web service)... 173

- copy file.jws file ke direktori webapp ... 173

- Jadi!! ... 173

Axis menangani kompilasi, pembuatan WSDL dsb. ... 173

b. Cara Custom ... 173

15.4 Memanggil Web Service ... 173

Tahap 2: Buat stubs... 174

Gunakan WSDL2Java untuk membuat client stubs/bindings ... 174

java org.apache.axis.wsdl.WSDL2Java Calculator.wsdl membuat: ... 174

- Calculator.java (interface) ... 174

- CalculatorService.java (service interface) ... 174

- CalculatorServiceLocator.java ... 174

(service factory, implements CalculatorService.java) ... 174

- CalculatorServiceSoapBindingStub.java ... 174

(stub for invoking service using SOAP, implements Calculator.java) ... 174

12 PRAKTIKUM WEB-SERVICE (2) ...178

Web Service di ASP.NET ...179

12.1.1 Contoh ... 179

12.1.2Penjelasan... 180

12.2 ASP.NET mengotomatisasikan proses ... 181 Daftar Pustaka

(7)

1

Pengenalan XML

Overview

EXtensible Markup Language (XML) merupakan sebuah bahasa markup

yang digunakan untuk menandai suatu dokumen data. Markup language merupakan suatu bahasa pemprograman untuk menandai suatu dokumen. Penandaan dilakukan menggunakan dua buah string tertentu yang mengapit data yang ditandai. String tersebut disebut dengan tag. Tujuan penandaan adalah agar dokumen tersebut lebih mudah dibaca, dipahami serta menarik.

Hal ini dapat kita ibaratkan dengan buku pelajaran yang berisi berbagai macam tulisan dalam bentuk teks. Saat kita membacanya tentulah hal tersebut membosankan dan kurang menarik. Pada saat kita kuliah, dosen akan menerangkan hal-hal yang penting yang ada pada buku tersebut. Sehingga kita terinisiatif untuk menandai tulisan tersebut pada bagian yang kita anggap penting dengan menggunakan stabilo. Dengan demikian, apabila ujuan telah dekat maka yang kita lakukan adalah membaca bagian yang kita telah tandai tersebut. Penandaan inilah kita sebut dengan markup.

Tujuan 1. Mahasiswa dapat memahami struktur dokumen HTML

(8)

2 Pengenalan XML Hubungan XML Dengan HTML

HTML merupakan bahasa markup yang menjadi standar penulisan yang dapat menjelaskan arti tiap bagian yang ditandai dengan tag. Tag-tag yang digunakan telah didefinisikan, sehingga kita harus menggunakannya sesuai dengan yang didefinisikan. HTML digunakan sebagai standar pertukarang data melalui internet. Misalnya kita memiliki sebuah data yang akan kita berikan kepada orang lain melalui internet, agar orang lain dapat mengerti dengan jelas maksud dari data kita, maka data tersebut haruslah ditulis menggunakan HTML dengan format-format tertentu agar web browser dapat membukanya dan menampilkannya dengan baik. Tampilan data yang akan ditampilkan oleh web browser sesuai dengan informasi dari masing-masing bagian yang ditandai. Misalnya pada bagian-bagian tertentu kita tampilkan tulisan dengan tabel, dapat pula tulisannya ditampilkan dengan cetak tebal, dalam baris yang berbeda dan lain sebagainya sesuai dengan keinginan kita.

Sebagai contoh, kita akan memberikan data mahasiswa sebagai berikut :

nim : 30100005 nama : Susanto nim : 30200010 nama : Susilo nim : 30201011 nama : Susilawati

Jika data tersebut kita tulis hanya seperti itu saja, maka data tersebut akan tampak seperti berikut :

(9)

Tentunya jika kita membacanya sangatlah bingung. Tetapi apabila data tersebut ditulis dengan format penulisan HTML, yaitu :

<html> <head> <title>Contoh pertama</title> </head> <body> <table border='1'> <tr><th>Nim</th><th>Nama</th></tr> <tr><td>30100005</td><td>Susanto</td></tr> <tr><td>30200010</td><td>Susilo</td></tr> <tr><td>30201011</td><td>Susilawati</td></tr> </table> </body> </html>

simpan file tersebut dengan nama contih1.html. Dengan demikian, maka tampilan yang akan kita lihat akan lebih jelas dan mudah difahami. Tampilannya adalah sebagai berikut :

(10)

4 Pengenalan XML Lalu apa hubungan antara HTML dan XML...?. HTML dan XML adalah sama-sama dikembangkan dari SGML (Standard Generalized Markup Language). Namun, perbedaan antara keduanya adalah jika HTML tag-tag yang digunakan sangat terbatas dan tag-tag tersebut digunakan untuk mengatur penampilan data, sedangkan XML tag-tag yang digunakan kita dapat definisikan sendiri dan tag-tag tersebut hanya digunakan untuk penanda bagian dokumen yang mengandung informasi-informasi dan arti tertentu.

Jika kita menuliskan tekks diatas dan menyimpannya kedalam format XML (simpan dengan nama contoh1.html), maka browser akan menampilkan sebagai berikut (dengan menggunakan browser Mozilla Firefox) :

(11)

Namun, jika dibuka menggunakan browser Internet Explorer 6 tampilannya adalah sebagai berikut :

dengan demikian, dapatlah kita lihat perbedaan antara HTML dan XML. Yaitu HTML menyatukan data dan interface, sedangkan XML hanya berkonsentrasi pada data saja tanpa mementingkan interface.

Cara Kerja XML

Seperti yang dijelaskan di atas, tentang perbedaan antara HTML dan XML. Yaitu HTML yang memerintahkan web browser bagaimana menampilkan informasi yang ada, sedangkan XML hanya menandai informasi secara terstruktur sehingga memudahkan aplikasi lain untuk menggunakan dokumen tersebut. Seperti halnya HTML, XML juga menggunakan tag-tag. Jika tag-tag pada HTML bersifat baku, tag-tag XML dapat dibuat sendiri, sesuai dengan kebutuhan. Untuk memudahkan aplikasi membaca tag-tag apa saja yang memuat informasi serta struktur hirarkinya.

(12)

6 Pengenalan XML Buatlah sebuah contoh dokumen XML seperti pada contoh dibawah ini dan simpan kedalam file contoh2.xml :

<?xml version="1.0"?> <product barcode="2394287410"> <manufacturer>Verbatim</manufacturer> <name>DataLife MF 2HD</name> <quantity>10</quantity> <size>3.5"</size> <color>black</color> <description>floppy disks</description> </product>

jika dokumen tersebut kita buka menggunakan web browser, maka tampak seperti gambar dibawah ni :

Dokumen diatas menjelaskan sebuah data produk yang ada pada suatu supermarket. Produk tersebut memiliki kode barcode= 2394287410, manufacturer=Verbatim, name=DataLife MF 2HD, quantity=10, size=3.5", color=black, description=floppy disks.

(13)

Rangkuman

1. EXtensible Markup Language (XML), merupakan sebuah standar

W3C-endorsed untuk Markup language

2. Markup language merupakan suatu bahasa pemprograman untuk menandai suatu dokumen yang disebut dengan tag agar dokumen tersebut lebih mudah dibaca, dipahami serta menarik

3. XML memungkinkan penggunaan data secara cross-platform, long-term data format.

4. XML merupakan keturunan dari SGML yaitu Standard Generalized Markup Language. SGML diciptakan oleh Charles F. Goldfarb, Ed Mosher, dan Ray Lorie di IBM pada tahun 1970an dan dikembangkan oleh banyak orang sehingga akhirnya dijadikan sebagai standart ISO 8879 pada tahun 1986.

5. XML memungkinkan kita untuk mengumpulkan informasi dan menggunakannya kembali dengan berbagai cara.

Latihan 1. Buatlah sebuah dokumen HTML yang dapat menampilkan data pegawai

suatu perusahaan yang teridiri dari NIP, Nama dan golongan seperti terlihat pada gambar dibawah ini :

keterangan : tag <b> : untuk menebalkan tulisan tag <i> : untuk tulisan miring tag <u> : untuk tulisan garis bawah

(14)

8 XML Fundamentals

2

XML Fundamentals

Overview

Pada bab berikut kita akan belajar bagaimana cara menuliskan dokumen XML. Kita akan melihat bagaimana penulisan dokumen yang disusun dengan konten markup dengan text tag seperti halnya pada dokumen HTML. Namun seperti yang telah dijelaskan sebelumnya, dokumen HTML memiliki tag yang terbatas yang dapat menjelaskan format halaman web. Sedangkan dengan menggunakan XML, kita dapat menentukan tag sesuai dengan keinginan kita dimana tag tersebut akan menjelaskan konten lebih banyak. Meskipun penulisan tag dalam XML lebih bebas daripada HTML, XML tetap saja memiliki aturan-aturan dalam penulisannya. Semua dokumen XML harus well-formed. Well-formed merupakan aturan penulisan yang sesuai, Dalam hal ini, penulisan masing-masing tag harus berada dalam posisi nested yang sama. Misalnya penulisan setiap tag awal harus memiliki tag akhir yang sesuai, nilai atribut harus didalam tanda petik.

Tujuan 1. Mahasiswa dapat membuat dokumen XML dan file XML yang

well-formed

2. Mahasiswa dapat membedakan antara tag, elemen, atribut, Cdata, emtity serta penggunaannya

(15)

Dokumen XML dan File XML

Dokumen XML mengandung data text bukan data binary. Sehingga dokumen tersebut dapat dibuka atau diubah menggunakan aplikasi text editor seperti motepad, wordpad, notepad++, dreamweaver atau kita dapat langsung mengunakan aplikasi XML editor. Contoh penulisan sederhana dari dokumen adalah :

<person>

Alan Turing </person>

File dokumen XML dapat disimpan degang extensi *.xml, atau apapun asalkan file tersebut digunakan sebagai file XML atau isinya adalah file XML. Contoh penulisan sederhana telah kita bahas pada bab 1.

Elemen, Tag, dan Data karakter

Dokumen XML tersusun atas elemen-elemen yang membentuk hirarki tree / pohon dimana isi dari elemen dapat berisi elemen lain atau sebuah karakter data. Spasi termasuk juga bagian dari elemen konten, meskipun pada kebanyakan aplikasi mengabaikan hail ini.

Sintaks Tag

tag terdiri dari dua baian yaitu tag pembuka dan tag penutup. tag pembuka diawali dengan “<” dan diakhiri dengan “>”. Sedangkan tag penutup diawali dengan “</” dan diakhiri dengan “>”. Sedangkan diantara keduanya merupakan nama elemen dan penulisan nama elemen pada tag pembuka dan penutup harus sama baik dari segi case sekalipun. Nama elemen kita dapat tuliskan sesuai dengan keinginan kita, yang penting nama tersebut dapat mendeskripsikan isi dari elemen. Misalnya suatu elemen menjelaskan seseorang, maka tag-nya dapat kita tulis dengan <person></person>

atau <orang></orang>, untuk menjelaskan sebuah alamat dapat menggunakan tag <address></address> atau

<alamat></alamat>. Elemen Kosong

untuk elemen kosong adalah sebuah elemenyang tidak memiliki isi atau konten, XML juga menyediakan tag khusus, dimana penulisannya dimulai dengan tag “<” dan diakhiri dengan “/>”. misalnya pada HTML penulisan yang

(16)

10 XML Fundamentals dilakukan adalah <br />, <hr />, <input /> bukan dengan <br>,

<hr>, <input>. Namun penulisan tersebut sama artinya dengan

<br></br>, <hr></hr>, <input></input>. Elemen root

Dokumen XML haruslah memiliki sebuah elemen root dan tidak boleh ada elemen lain yang sejajar dengannya. Elemen root merupakan suatu elemen yang terletak paling luar dan tidak memiliki parrent dan elemen ini merupakan elemen pertama dalam suatu dokumen.

Mixed Conten

Maksud Mixed Conten adalah dimana pada dalam elemen mengandung elemen dan data text. Misalnya contoh dibawah ini :

<biography> <name>

<first_name>Alan</first_name> <last_name>Turing</last_name> </name>

was one of the first people to truly deserve the name

…... </biography>

sekarang mari kita mencoba membuat sebuah dokumen XML yang mencakup apa yang telah dibahas sebelumnya. Tulislah kode dibawah ini dan simpan kedalam sebuah file contoh2_2.xml.

<orang> <mahasiswa>Joni Saputra</mahasiswa> <mahasiswa> <nim>30200011</nim> <nama>Andriani Sapitri</nama> </mahasiswa> <mahasiswa></mahasiswa> <mahasiswa> <nim>30200123</nim> <nama> <nama_depan>Budi</nama_depan> <nama_belakang>Susanto</nama_belakang>

(17)

</nama> </mahasiswa> <mahasiswa /> <mahasiswa> <nim>30101043</nim> <nama>Andana Sari</nama> <kamut>

Jadilah seorang yang baik dan

<sifat>jujur</sifat> serta bewibawa </kamut> </mahasiswa> <mahasiswa> <nim>30101043</nim> <nama>Andana Sari</nama> <teman>Andriani Sapitri</teman> </mahasiswa> </orang>

pada contoh diatas jika kita menjalankannya dengan browser, maka tampilan seperti yang kita lihat dibawah ini :

(18)

12 XML Fundamentals Atribut

Atribut adalah suatu sifat atau ciri dari suatu elemen. Atribut merupakan pasangan name-value yang menempel pada elemen tag pembuka. Penggunaan atritribut tidaklah mutlak. Kita dapat menggunakannya jika kita menginginkannya, namun jika tidak, maka penulisan atribut tidaklah dianggap perlu. Penulisan nama atribut dipisahkan dengan spasi dan nilainya diapit dengan petik satu atau petik dua. Sebagai contoh person memiliki atribut born dan memiliki nilai 1912-06-23, maka penulisannya :

<person born="1912-06-23" died="1954-06-07"> Alan Turing

(19)

Atau penulisannya dapat juga dengan pengapit petik satu (').

<person died = '1954-06-07' born = '1912-06-23' > Alan Turing

</person>

Sebagai contoh, buatlah dokumen yang menyatakan data seperti dibawah ini dan disimpan pada file dengan nama contoh2_2.xml:

<orang>

<nama depan="Ani" belakang="Anindiya"/> <teman nama="Citra Sari"/>

<teman nama="Permata Indah"/> <teman nama="Intan Purnama"/> <teman nama="Mawar Indah"/> </orang>

Jika dokumen tersebut kita jalankan, maka akan tampak seperti berikut :

Entity References

Dalam penulisan karakter data kita tidak boleh menggunakan tanda “<” atau “>”. Namun jika karakter sebut adalah penting untuk kita tulis, ada cara untuk kita dapat menuliskannya yaitu dengan cara menuliskan entitasnya. Jika kita ingin menuliskan string “<” maka sebagai penulisannya adalah &lt;

(20)

14 XML Fundamentals sedangkan “>” dapat kita tuliskan dengan &gt;. Sebagai contoh, misalnya kita ingin menuliskan data tutorial XML :

<tutorial>

<judul>Menuliskan Elemen Sedrhana</judul> <penulis>Hendra Kusmayadi</penulis>

<isi>

Berikut adalah contoh penulisan elemen sederhana &lt;mahasiswa&gt;Joni Suraya&lt;/mahasiswa&gt; </isi>

</tutorial>

Jika dokumen tersebut dijalankan, maka tampilan tersebut akan terlihat seperti gambar dibawah ini :

CDATA Sections

Pada bahasan sebelumnya kita telah membahas apa yang namannya entity references dimana jika kita akan menuliskan string “<” maka yang kita tuliskan adalah entitasnya yaitu “&lt”. Namun, dengan menggunakan CDATA kita dapat menuliskan string atau karakter tersebut tanpa harus menggunakan entitas. Cara penulisannya adalah dengan diawali string “<![CDATA[” dan diakhiri dengan “]]>”.

Sebagai contoh, buatlah kode berikut yang menerapkan CDATA dan simpan file tersebut dengan nama contoh2_4.xml.

<tutorial>

<judul>Menuliskan Elemen Sedrhana</judul> <penulis>Hendra Kusmayadi</ penulis > <isi>

(21)

Berikut adalah contoh penulisan elemen sederhana <![CDATA[ <mahasiswa>Joni Suraya</mahasiswa> ]]> </isi> </tutorial>

Jika kita menjalankan kode diatas maka akan terlihat tampilannya seperti berikut :

Namun ada string tententu yang tidak boleh digunakan pada CDATA, yaitu “]]>”, karena nantinya string tersebut akan dianggap sebagai sebuah penutup komentar.

Komentar

Komentar merupakan kode atau string yang ditulis tetapi kode tersebut tidak akan dieksekusi. Pada kebanyakan bahasa pemprograman, komentar biasanya ditulis untuk menjelaskan kode yang ditulis agar untuk kemudian hari jika kita ingin melihat kembali kode kita, kita akan dimudahkan dengan melihat komentar yang kita tulis. Penulisan komentar pada XML sama seperti pada HTML yaitu dengan diawali dengan “<!--” dan diakhiri dengan “-->”.

(22)

16 XML Fundamentals Sebagai contoh, buatlah kode berikut yang mengandung komentar dan simpan file tersebut dengan nama contoh2_5.xml.

<tutorial>

<!-- judul tutorial -->

<judul>Menuliskan Elemen Sedrhana</judul> <!-- penulis isi tutorial -->

<penulis>Hendra Kusmayadi</penulis> <isi><!-- isi tutorial -->

Berikut adalah contoh penulisan elemen sederhana <![CDATA[

<mahasiswa>Joni Suraya</mahasiswa> ]]>

</isi> </tutorial>

Jika kita menjalankan kode diatas maka akan terlihat tampilannya seperti berikut :

Namun ada string tententu yang tidak boleh digunakan pada komentar, yaitu “--”, karena nantinya string tersebut akan dianggap sebagai sebuah penutup komentar.

(23)

Deklarasi XML

Sebuah dokumen XML boleh dideklarasikan boleh juga tidak. Pendeklarasian XML mengandung name dan version, standalone, dan encoding

atribut.

Sebagai contoh buatlah dokumen XML dengan kode dibawah ini dan simpanlah dengan nama contoh2_6.xml :

<?xml version="1.0" encoding="ASCII" standalone="yes"?>

<mahasiswa> Johan Sabima </mahasiswa>

pendeklarasian tidak perlu ditulis pada dokumen XML. Namun, jika pada dokumen ada pendeklarasian maka deklarasi harus berada paling atas, tidak boleh didahului sintaks apapun seperti komentar, spasi, dll.

Checking Documents for Well-Formedness

Setiap dokumen XML harus well-formed. Ini berarti harus sesuai dengan aturan yang ada misalnya :

1. Setiap awal tag harus diakhiri dengan tag yang sama.

<mahasiswa>Johan Sabima</Mahasiswa>

(24)

18 XML Fundamentals 2. Elemen boleh bersarang, tetapi tidak boleh saling tumpang tindih

<mahasiswa>

<nama>Johan Sabima</mahasiswa> </nama>

Jika dijalankan maka akan tampak seperti berikut :

3. Harus memiliki tepat satu elemen root.

<mahasiswa>Johan Sabima</mahasiswa> <siswa>Adit Pramana</siswa>

(25)

Jika dijalankan maka akan tampak seperti berikut :

4. Nilai atribut harus diapit oleh tanda petik.

<mahasiswa nim=30100123>Johan Sabima</mahasiswa>

Jika dijalankan maka akan tampak seperti berikut :

5. Satu elemen tidak boleh memiliki dua atribut yang sama

<mahasiswa nim='30100123' nim='30100132'> Johan Sabima

(26)

20 XML Fundamentals Jika dijalankan maka akan tampak seperti berikut :

6. Tidak ada unescaped “<” atau “&” atau tanda-tanda lainnya

<mahasiswa>Johan < Sabima</mahasiswa>

(27)

Rangkuman

1. Dokumen XML dapat disimpan dengan extensi XML ataupun yang lainnya asal didalam file tersebut merupakan dokumen XML

2. Penulisan XML name harus mengandung karakter yang sering diunakan seperti a-z, A-Z, 0-9, -, _.

3. CData digunakan untuk membolehkan kita untuk menuliskan karakter yang merupakan karakter entity.

(28)

22 XML Fundamentals Latihan 1. Buatlah dokumen mahasiswa yang terdiri dari nama, kelas, hobi dan

nim merupakan atribut dari mahasiswa tersebut. Sehingga tampilannya seperti berikut :

(29)

3

Document Type Definitions (DTD)

Overview

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. Aplikasi XML harus memastikan bahwa dokumen yang diberikan adalah benar-banar mematuhi aturan. Misalnya didalam XHTML, pada elemen li merupakan child dari elemen ol. Dalam hal ini, apakan li atau ul tersebut merupakan bagian dari tag XML ataukah elemen isi. Solusi untuk permasalahan seperti itu adalah dengan menggunakan 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. Sehingga kita tahu bahwa seperti apa struktur dokumen dan dapat membedakan yang mana tag dan yang mana elemen.

Tujuan 1. Mahasiswa mehamami apa yang dimaksud dengan DTD

2. Mahaiswa dapat menggunakan DTD untuk elemen dan atribut.

3. Mahasiswa dapat membuat dokumen XML berdasarkan DTD yang sudah ada.

(30)

24 Document Type Definitions Validation

Dokumen yang valid termasuk jenis dokumen mendeklarasikan DTD. DTD digunakan untuk mendeklarasikan semua elemen, atribut, dan entitas yang akan digunakan didalam dokumen. Semua dokumen yang akan ditulis harus dideklarasikan didalam DTD.

Sebagai contoh, buatlah dokumen XML beririkut yang menyertakan deklarasi DTD. Simpan file tersebut dengan nama contoh3_1.xml.

<?xml version=”1.0” encoding=”UTF-8” standalone=”yes” ?>

<!DOCTYPE orang [

<!ELEMENT orang (nama, profesi)>

<!ELEMENT nama (nama_depan, nama_belakang)> <!ELEMENT nama_depan (#PCDATA)>

<!ELEMENT nama_belakang (#PCDATA)> <!ELEMENT profesi (#PCDATA)>

]> <orang> <nama> <nama_depan>Hendra</nama_depan> <nama_belakang>Kusmayadi</nama_belakang> </nama> <profesi>Dosen</profesi> </orang>

Pada contoh diatas, jika kita menjalankan dokumen diatas, maka tampilan tidak akan berbeda dengan tidak menggunakan DTD. Tampilan yang ada dapat kita lihat seperti berikut :

(31)

Mengapa bisa demikian...? Seperti yang telah kita bahas sebelumnya, bahwa DTD tidak mempengaruhi ke well-formed-an suatu dokumen. Sehingga dokumen diatas dianggap dokumen yang well-formed. Namun, meski demikian, dokumen selain memiliki sifat well-formed, juga memiliki valid atau tidak. Dengan DTD ini kita akan mengetahui bahwa sebuah dokumen valid atau tidak. Untuk menyatakan suatu dokumen falid atau tidaknya, kita memerlukan alat bantu atau tools XML validation yang dapat didownload di http://msdn.microsoft.com/xml atau http://xmlsoftware.com atau disitus lainnya. Dalam hal ini penulis menggunakan software IEXMLTLS yang dapat digunakan pada browser Microsoft Internet Explorer. Atau sekarang kita sepakati saja bahwa kita menggunakan IEXMLTLS untuk validasi dokumen XML.

Instal file tesebt dan arahkan lokasi intalnya pada drive C. selanjutnya buka folder C:\IEXMLTLS dan klik kanan pada file msxmlval.inf kemudian pilih instal. Lakukan hal yang sama pada file msxmlvw.inf. Jika kita ingin memvalidasi dokumen, kita hanya dengan mengklik kanan pada space kosong pada IE dan pilih Validated XML (IEXMLTLS hanya bisa digunakan pada Microsoft Internet Explorer).

Deklarasi Elemen

Jika dokumen tersebut diatas dijalankan, dan kita memvalidasinya, maka tampak seperti gambar dibawah ini :

(32)

26 Document Type Definitions Sekarang kita akan melihat dokumen yang tidak valid dengan mengubah dokumen menjadi :

<?xml version=”1.0” encoding=”UTF-8” standalone=”yes” ?>

<!DOCTYPE orang [

<!ELEMENT orang (nama, profesi)>

<!ELEMENT nama (nama_depan, nama_belakang)> <!ELEMENT nama_depan (#PCDATA)>

<!ELEMENT nama_belakang (#PCDATA)> <!ELEMENT profesi (#PCDATA)>

]> <orang> <nama> <nama_depan>Hendra Kusmayadi</nama_depan> </nama> <profesi>Dosen</profesi> </orang>

(33)

Pada contoh diatas, validasi menjadi error karena pada DTDnya elemen nama harus berisi elemen nama_depan dan nama_belakang. Agar dokumen tersebut valid, maka pada DTDnya kita dapat dengan mengganti tanda koma (,) menjadi “|” sehingga kodenya menjadi :

<?xml version=”1.0” encoding=”UTF-8” standalone=”yes” ?>

<!DOCTYPE orang [

<!ELEMENT orang (nama, profesi)>

<!ELEMENT nama (nama_depan | nama_belakang)> <!ELEMENT nama_depan (#PCDATA)>

<!ELEMENT nama_belakang (#PCDATA)> <!ELEMENT profesi (#PCDATA)>

]> <orang> <nama> <nama_depan>Hendra Kusmayadi</nama_depan> </nama> <profesi>Dosen</profesi> </orang>

(34)

28 Document Type Definitions Jika dijalankan dokumen akan tampak seperti berikut :

Jika kita mengubah isi dokumen tersebut menjadi :

<?xml version=”1.0” encoding=”UTF-8” standalone=”yes” ?>

<!DOCTYPE orang [

<!ELEMENT orang (nama, profesi)>

<!ELEMENT nama (nama_depan | nama_belakang)> <!ELEMENT nama_depan (#PCDATA)>

<!ELEMENT nama_belakang (#PCDATA)> <!ELEMENT profesi (#PCDATA)>

]> <orang> <nama> <nama_depan>Hendra Kusmayadi</nama_depan> </nama> <profesi>Dosen</profesi> <profesi>Pedagang</profesi> </orang>

(35)

Maka jika kita validasi akan error, tampak seperti berikut :

Pada dokumen diatas yang membuat validasinya gagal adalah karena elemen profesi ditulis dua kali, sedangkan pada deklarasinya hanya sekali. Agar sebuah elemen dapat kita tulis berulang, maka kita dapat menambahkan karakter *, + atau ?.

Jika dokumen diatas diubah menjadi :

<?xml version=”1.0” encoding=”UTF-8” standalone=”yes” ?>

<!DOCTYPE orang [

<!ELEMENT orang (nama, profesi*)>

<!ELEMENT nama (nama_depan | nama_belakang)> <!ELEMENT nama_depan (#PCDATA)>

<!ELEMENT nama_belakang (#PCDATA)> <!ELEMENT profesi (#PCDATA)>

]> <orang>

(36)

30 Document Type Definitions <nama> <nama_depan>Hendra Kusmayadi</nama_depan> </nama> <profesi>Dosen</profesi> <profesi>Pedagang</profesi> </orang>

Maka jika kita jalankan hasilnya adalah :

Kita juga dapat membuat file DTD pada file yang terpisah dengan dokumen XML aslinya. Caranya denga penulisan DTDnya menjadi :

<!DOCTYPE nama_dokumen SYSTEM "lokasi_file_DTD">

Sekarang kita ubah lagi file contoh3_1.xml diatas menjadi :

<?xml version=”1.0” encoding=”UTF-8” standalone=”no” ?>

<!DOCTYPE orang SYSTEM “orang.dtd”> <orang>

<nama>

<nama_depan>Hendra Kusmayadi</nama_depan> </nama>

(37)

<profesi>Dosen</profesi> <profesi>Pedagang</profesi> </orang>

Dan membuat dokumen baru dengan nama orang.dtd yang isinya sebagai berikut :

<!ELEMENT orang (nama, profesi*)>

<!ELEMENT nama (nama_depan | nama_belakang)> <!ELEMENT nama_depan (#PCDATA)>

<!ELEMENT nama_belakang (#PCDATA)> <!ELEMENT profesi (#PCDATA)>

Jika kita jalankan dan kita validasi file contoh3_1.xml akan tampak seperti berikut :

Jika kita lihat pada dokumen diatas, ada beberapa bagian darideklarasi elemen adalah :

6. #PCDATA

Konten yang terkandung didalam elemen yang dimaksud adalah text. Meskipun data yang ada dielemen tersebut berupa angka, tetap dianggap sebagai text. Contohnya :

(38)

32 Document Type Definitions

<!ELEMENT phone_number (#PCDATA)>

7. Elemen anak

Penspesifikasi konten sederhana adalah salah satu elemen yang harus memiliki satu anak dari type yang sesuai. Pada kasus ini, nama anak ditulis didalam kurung. Contohnya :

<!ELEMENT fax (phone_number)>

Maksudnya adalah elemen phone_number merupakan anak dari elemen fax.

8. Sequence

Kita dapat menuliskan elemen anak lebih dari satu pada deklarasinya. Dengan penulisan ini dimaksudkan untuk menuliskan elemen anak lebih dari satu elemen. Misalnya :

<!ELEMENT name (first_name, last_name)>

9. Jumlah anak

Penulisan jumlah anak daru suatu elemen dapat kita tuliskan dengan cara menambahkan tanda berikut pada akhir nama elemen.

Karakter Arti

+ Muncul saatu kali atau lebih. Minimal muncul satu kali * Muncul 0 kali atau lebih

? Boleh tidak muncul, tapi jika muncul maksimal satu kali | Fungsi atau

Contoh penggunaannya adalah sebagai berikut :

<!ELEMENT people (phone_number*)>

artinya elemen people boleh memiliki satu atau lebih elemen

(39)

10. Pilihan

Terkadang pada kasus tertentu ada suatu elemen yang memiliki anak tetapi berbeda-beda. Cara pendeklarasiannya dapat dilakukan dengan :

<!ELEMENT methodResponse (params | fault)>

penulisannya tidak hanya dibatasi dua elemen saja, tetapi kita dapat menuliskan lebih dari itu.

Selain hal diatas, kita juga dapat mendeklarasikan elemen yang sesuai dengan : 11. Mixed Content

Dimana kita memungkinkan untuk menulsikan text dan elemen dalam suatu elemen. Contoh :

<definition>The <term>Turing Machine</term> is an abstract finite state automaton with infinite memory that can be proven equivalent to any any other finite state automaton with arbitrarily large memory. Thus what is true for a Turing machine is true for all equivalent machines no matter how implemented.

</definition>

dimana deklarasi elemen adalah :

<!ELEMENT definition (#PCDATA | term)*>

12. Elemen Kosong

Elemen kosong adalah sebuah tag yang tidak memiliki elemen nilai. Penulisannya dapat berupa :

<image source="bus.jpg" width="152" height="345" alt="Alan Turing standing in front of bus"/>

dengan deklarasi elemennya :

(40)

34 Document Type Definitions 13. ANY

Kita dapat mengijinkan apapun dapat berada pada suatu elemen. Penulisan deklarasinya adalah :

<!ELEMENT page ANY>

Deklarasi Atribut

Sama seprti elemen, dokumen dikatakan valid jika dapat menyatakan semua atribut elemen jika elemennya memiliki atribut. Sintaks penulisannya adalah dengan ATTLIST.

Sebagai contoh, mari kita buat sebuah file baru dengan nama contoh3_2.xml. Dan isinya adalah sebagai berikut :

<?xml version=”1.0” encoding=”UTF-8” standalone=”yes” ?>

<!DOCTYPE orang [

<!ELEMENT orang (nama, profesi*)> <!ELEMENT nama (#PCDATA)>

<!ATTLIST nama profesi CDATA #REQUIRED hobi CDATA “Olahraga”

umur CDATA #IMPLIED

jenis_kelamain CDATA #FIXED “Laki-laki” >

]> <orang>

<nama profesi=”Dosen”>Hendra Kusmayadi</nama> </orang>

(41)

Jika kita jalankan dokumen diatas akan tampak seperti gambar berikut :

General Entity Declarations

Kita juga dapat mendeklarasikan entidas sesuai dengan yang kita inginkan. Sebagai contoh, buatlah file dengan nama contoh3_3.xml dengan isi sebagai berikut :

<!DOCTYPE orang [

<!ELEMENT orang (nama, email)> <!ELEMENT nama (#PCDATA)> <!ELEMENT email (#PCDATA)>

<!ENTITY mail "admin@somethingweb.com"> ]>

<orang>

<nama>Hendra Kusmayadi</nama> <email>&mail;</email>

</orang>

(42)

36 Document Type Definitions External Parsed General Entities

Selain dengan cara diatas, kita juga dapat menggunakan halaman suatu web atau yang lainnya untuk penulsain entitas. Sebagai contoh, buatlah dile dengan nama contoh3_4.xml dengan isinya sebagai berikut :

<!DOCTYPE orang [

<!ELEMENT orang (nama, komentar)> <!ELEMENT nama (#PCDATA)>

<!ELEMENT komentar (#PCDATA)>

<!ENTITY cmd SYSTEM "komentar.txt"> ]>

<orang>

<nama>Hendra Kusmayadi</nama> <komentar>&cmd;</komentar> </orang>

sebelum kita menjalankan dokumen diatas, terlebihdahulu kita membuat sebuah file dengan nama komentar.txt dan simpan pada folder yang sama. Selanjutnya isi file tersebut tulisan terserah saja. Dan jika dokumen diatas dijalankan, maka hasilnya menjadi :

External Unparsed Entities and Notations

Selain itu, kita juga dapat menempatkan file bukan text dengan cara :

<!ENTITY nama_entitas SYSTEM

"Lokasi_file" NDATA tipe_file>

(43)

Parameter Entity

Parameter entiti digunakan sebagi shortcut untuk menuliskan entiti didalan DTD. Penulisan parameter entiti menggunakan persen (%) dan titik koma (;). format penulisan parameter entiti adalah sebagai berikut :

<!ENTITY % nama_parameter "teks yang ingin kita representasikan didalam entiti">

Contoh penulisannya adalah dengan :

<!ENTITY % pub "Editions Gallimard" > <!ENTITY rights "All rights reserved" >

<!ENTITY book "La Peste: Albert Camus, &#xA9; 1947 %pub;. &rights;">

Adapun maksud dari deklarasi diatas adalah string “%pub” akan diisi oleh “&#xc9;ditions Gallimard”, sehingga jika kita menuliskan &book pada dokumen XML, maka hasilnya adalah :

La Peste: Albert Camus, © 1947 Editions Gallimard.

Conditional Inclusion

XML memberikan IGNORE derektif untuk tujuan "commenting out" sebuah selection deklarasi. Misalnya parser akan mengabaikan deklarasi dari elemen

production_note :

<![IGNORE[

<!ELEMENT production_note (#PCDATA)> ]]>

Tujuan penulisan diatas adalah untuk menunjukan bahwa deklarasi yang diberikan benar-benar digunakan didalam DTD. Contoh :

<![INCLUDE[

<!ELEMENT production_note (#PCDATA)> ]]>

(44)

38 Document Type Definitions Contoh Two DTD

Disisilain kita dapat membuat atau menggabungkan dua dokumen XML yang berbeda. Caranya adalah seperti contoh penulisan DTD berikut :

<!ATTLIST biography xmlns:xlink CDATA #FIXED "http://www.w3.org/1999/xlink">

<!ELEMENT person (first_name, last_name)> <!ATTLIST person born CDATA #IMPLIED died CDATA #IMPLIED> <!ELEMENT date (month, day, year)> <!ELEMENT month (#PCDATA)>

<!ELEMENT day (#PCDATA)> <!ELEMENT year (#PCDATA)>

<!ATTLIST emphasize xlink:type (simple) #IMPLIED xlink:href CDATA #IMPLIED> <!ELEMENT profession (#PCDATA)>

<!ELEMENT footnote (#PCDATA)>

<!ATTLIST footnote source CDATA #REQUIRED> <!ELEMENT first_name (#PCDATA)>

<!ELEMENT last_name (#PCDATA)> <!ELEMENT image EMPTY>

<!ATTLIST image source CDATA #REQUIRED width NMTOKEN #REQUIRED height NMTOKEN #REQUIRED ALT CDATA #IMPLIED >

<!ENTITY % top_level "( #PCDATA | image | paragraph | definition | person | profession | emphasize | last_name | first_name | footnote | date )*">

<!ELEMENT paragraph %top_level; > <!ELEMENT definition %top_level; > <!ELEMENT emphasize %top_level; > <!ELEMENT biography %top_level; >

(45)

Standar Penempatan DTD

DTD dan validity merupakan hal yang sangat penting ketika kita hendak mengganti data dengan yang lainnya. Hal ini untuk memastikan kita apakah data yang kita kirim diterima dengan baik.

(46)

40 Document Type Definitions Rangkuman

1. Aplikasi XML harus memastikan bahwa dokumen yang diberikan adalah benar-banar mematuhi aturan

2. DTD digunakan untuk mendeklarasikan semua elemen dan atribut yang akan digunakan pada dokumen XML

3. DTD dibuat untuk memeriksa kevalid-ad sebuah dokumen XML, apakan dokumen XML yang dibuat sudah mengacu pada DTD yang ada.

(47)

4

Namespaces

Overview

Namespaces merupakan penambahan suatu string pada suatu elemen. Namespaces diimplementasikan dengan menempelkan awalan untuk setiap elemen dan atribut. Penulisannya dengan menambahkan string tertentu pada elemen/atribut yang kemudian dibatasi oleh titik dua ( : ) antara namespace nama elemen/atribut. Setiap awalan adalah dipetakan ke URI oleh atribut

xmlns:prefix. URI default juga dapat diberikan untuk elemen yang tidak memiliki prefix oleh atribut xmlns. Elemen dan atribut yang melekat pada URI yang sama merupakan berada pada namespace yang sama.

Tujuan namespaces adalah untuk membedakan antara nama elemen dan nama atribut yang sama namun memiliki arti yang berbeda dan untuk berbagai nama yang sama serta untuk semua grup terkait dengan elemen dan atribut dari satu aplikasi share XML sehingga perangkat lunak dapat dengan mudah mengenali mereka.

Tujuan 1. Mahasiswa dapat memahami maksud dan tujuan dari pembuatan

namespace

2. Mahasiswa dapat membedakan kapan harus menggunakan namespace dan kapan tidak

(48)

42 Namespaces Kebutuhan Namespace

Seperti telah kita ketahui bersama bahwa sebuah dokumen XML memiliki nama elemen dan atribut yang digunakan oleh aplikasi untuk memproses dokumen XML tersebut. Namun, seperti kita ketahui bersama bahwa penamaan tersebut dapat kita definisikan sendiri. Namun dengan demikian ada kemungkinan suatu nama elemen yang kita gunakan memiliki nama yang sama dengan elemen lain padahal maksudnya berbeda. Jika kita menggunakan dokumen untuk diri kita sendiri, itu tidak jadi masalah, karena kita dapat memberikan nama elemen tersebut berbeda. Namun jika dokumen kita digunakan oleh bayak orang atau kita yang menggunakan dokumen orang lain, maka ada kemungkinan hal tersebut terjadi. Dan aplikasi bisa saja salah dalam menampilkan dokumen sehingga hasil keluaran berbeda dengan yang kita harapkan. Jadi solusi untuk menghindari hal itu adalah dengan menambahkan namespace. Penggunaan Namespace dengan memberikan awalan tertentu sebagai pembeda dengan elemen lainnya dan dipisahkan tanda titik dua dengan nama elemen.

Sintaks Namespace

Untuk kasus penggunaan elemen adalah misalnya jika kita ingin menuliskan sebuah dokumen untuk menyimpan nama bambu, dimana bambu yang pertama merupakan data untuk menyatakan bahwa sebuah bambu akan digunakan untuk membuat pagar rumah dimana penulisan elemen tersebut adalah sebagai berikut :

<bambu>

<jenis>Jawa</jenis> <panjang>2</panjang> </bambu>

sedangkan ada dokumen yang keduamenyatakan bahwa bambu itu adalah sebuah merk produk dengan penulisan dokumen :

<bambu>

<jumlah>246</jumlah>

<hargasatuan>200</hargasatuan> </bambu>

(49)

Jika kita menggabungkan elemen tersebut dengan penulisan seperti berikut : <bambu> <jenis>Jawa</jenis> <panjang>2</panjang> </bambu> <bambu> <jumlah>246</jumlah> <hargasatuan>200</hargasatuan> </bambu>

maka dalam pemprosesannya akan ambigu antara elemen bambu, maka solisinya adalah dengan menggunakan namespace, sehingga penulisan dokumen tersebut adalah : <bahan> <n_pertama:bambu xmlns:n_pertama='Namespace1'> <n_pertama:jenis>Jawa</n_pertama:jenis> <n_pertama:panjang>3m</n_pertama:panjang> </n_pertama:bambu> <n_kedua:bambu xmlns:n_kedua='Namespace2'> <n_kedua:jumlah>100</n_kedua:jumlah> <n_kedua:hargasatuan>300</n_kedua:hargasatuan> </n_kedua:bambu> </bahan>

simpan file tersebut dengan nama contoh4_1.xml dan jalankan. Jika dokumen tersebut dijalankan maka hasilnya adalah sebagai berikut :

(50)

44 Namespaces Namespaces dan DTD

Namespace perludideklarasikan pada Document Type Definition (DTD) agar dokumen yang kita buat menjadi falid. Pendeklarasiannya dengan menuliskan :

<prefiks:nama_elemen xmlns:prefiks=”Namespace”> prefiks adalah awalan yang digunakan, nama_elemen merupakan nama elemen yang akan diberi namespace karena memiliki kesamaan nama dengan elemen lain namun berbeda maksud.

Sebagai contoh, buatlah file XML dengan nama filenya adalah contoh4_2.xml yang isinya adalah sebagai berikut :

<!DICTYPE barang [

<!ELEMENT barang (bambu+)> <n_pertama:bambu

xmlns:n_pertama=”http:/www.sesuatu.com/gardu”> <n_kedua:bambu

xmlns:n_kedua=”http:/www.sesuatu.com/merk”> ]>

(51)

Rangkuman

1. Namespaces dibuat dengan tujuan untuk membedakan nama elemen yang sama namun memiliki atri yang berbeda.

2. Namespaces diimplementasikan dengan menempelkan awalan untuk setiap elemen dan atribut.

(52)

46 XML pada Web

5

XML pada Web

Overview

XML berawal sebagai upaca untuk membawa semua kemampuan dan struktur SGML ke web dengan bentuk yang sederhana. Seperti apa yang dibayangkan para ahli, ternyata XML telah jauh melebihi apa yang dibayangkan. Sebenarnya banyak aplikasi selain XML yang digunakan di web, namun XML adalah bahasa yang masih sangat menarik untuk gunakan didalam halaman web. Karena dokumen XML harus well-formed dan parser akan menolaknya jika dokumen salah, halaman XML mungkin kurang kompatibel untuk cross-browser. Oleh karena dokumen XML sangat terstuktur, sehingga memudahkan untuk robots parsing. Karena tag XML dan nama atribut dapat mencerminkan sifat konten, sehingga search-engine spiders dapat dengan mudah menentukan makna dari konten.

Tujuan 1. Mahasiswa Dapat mengerti XHTML

2. Mahasiswa dapt membedakan antara XHTML dengan HTML

3. Mahasiswa dapat menuliskan XHTML dengan aturan-aturan yang telah ditetapkan

4. Mahasiswa memahamin cara kerja XHTML dalam menampilkan dokumen

(53)

XHTML

XHTML merupakan definisikan XML-compatible versi HTML, atau sebaliknya. XHTML dapat mengubah HTML sebagai aplikasi XML. XHTML merupakan standard dalam menyusun kode-kode HTML yang baik dan terstruktur. Sebagian besar pengubahan dokumen HTML menjadi dokumen XHTML adalah dengan membuat dokumen well-formed. Misalnya perubahan yang akan dilakukan :

14. Tambahkan missing end-tag seperti </p> dan </li> jika pada dokumen tidak ada end-tag-nya.

15. Tulis kembali dokumen yang yag-nya saling timpang tindih, misalnya

<b><i>apa</b></i> menjadi <b><i>apa</i></b>

16. Letakkan tanda petik pada nilai atribut jika kita sering menggunakan nilai atribut tanpa tanda petik. Misalnya <p align=center> menjadi <p align="center">.

17. Tambahkan nilai pada atribut yang memiliki nilai boolean dengan namanya sendiri. Misalnya <input type="checkbox" checked>

menjadi <input type="checkbox" checked="checked">.

18. Ganti karakter & atau < dalam data atau atribut dengan nilai-nilai &amp; and &lt;. Misalnya ubah A&P menjadi A&amp;P

19. Jadikan dokuen sebagai single root element html.

20. Ubah empty elemen. Misalnya <hr> menjadi <hr/> atau <hr></hr> 21. Tambahkan hyphens kedalam komentar. Misalnya <! this is a

comment> menjadi <!-- this is a comment -->

22. Encode kedalam UTF-8 atau UTF-16. XHTML dibagi menjadi tiga bagian, yaitu : 23. Strict

Merupakan puncaknya standard, ini digunakan apabila kita benar-benar menginginkan kode yang benar-benar terstruktur. Beberapa tag sudah dihilangkan disini seperti <iframe>. Kita harus mengkombinasikan antara XHTML dan CSS. Penulisannya adalah sebagai berikut :

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"

"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

(54)

48 XML pada Web 24. Transitional

Digunakan apabila kita tidak ingin ada file CSS yang terlibat. Penulisannya adalah sebagai berikut :

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"

"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" >

25. Frameset

hampir sama dengan Transitional namun Frameset mengijinkan elemen frame-related sebagai framset dan iframe. Contoh penulisannya adalah sebagai berikut :

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN"

"http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">

bagian diatas, dituliskan pada awal dokumen sebagai deklarasi dari dokumen XHTML. Contoh penulisan dokumen XHTML adalah sebagai berikut :

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html> <head>

<title>Judul Halaman Web</title> </head>

<body>

<p>Isi halaman Web</p> </body>

</html>

(55)

Direct Display pada browser

Dalam menampilkan sebuah dokumen pada browser, kita dapat mengambil pengaturan tampilannya dari file lain. Hal ini disebut dengan direct display. Contoh yang sering digunakan adalah CSS (Casecading Style Sheet). Sekarang mari kita coba membuat dokumen css dan simpan dengan nama “css.css”, dimana kodenya adalah sebagai berikut :

orang { color:#FF0000; font-family:Tahoma; font-weight:bold; text-decoration:underline; }

kemudian buatlah dokumen XML yang disimpan dengan nama “contoh5_1.xml” sebagai data yang akan ditampilkan seperti berikut :

<?xml version="1.0"?>

<?xml-stylesheet href="css.css" type="text/css"?> <orang>

Susilawati </orang>

(56)

50 XML pada Web Selanjutnya jalankan dokumen XML, maka dapat kita lihat tampilannya sebagai berikut :

Authoring Compound Documents with Modular XHTML Kita dapat menggabungkan dokumen XML yang telah kita buat kedalam aplikasi lainnya. Misalnya menggabungkan XHTML kedalam aplikasi, atau yang lainnya dan dapat pula aplikasi yang kita buat kita gabungkan dengan dokumen XHTML. Kita dapat menggunakan modul-modul yang telah ada sebelmnya. Prospects for Improved Web-Search Methods

Resource Description Framework (RDF) dapat diartikan sebagai XML encoding untuk model data sederhana yang partikular. Misalnya kita menuliskan sebuah dokumen yang menyatakan bahwa W. Scott Means dan

Elliotte Rusty Harold adalah penulis buku XML in a Nutshell.

<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">

<rdf:Description about="urn:isbn:0596002920"> <author>Elliotte Rusty Harold</author> <author>W. Scott Means</author>

</rdf:Description> </rdf:RDF>

Pada contoh diatas, nilai propertis author hanya teks saja.

Pada HTML, META tag robot memberitahukan kepada search engin dan robot yang lainnya apakan mereka dapat mengindeks halamannya. Penulisannya dapat dilihat pada kode berikut :

(57)

Rangkuman

1. XML merupakan bahasa yang masih sangat menarik untuk gunakan didalam halaman web

2. Penggunaan XML pada web berbentuk XHTML

3. Dokumen XHTML mendefinisikan kompetibeliti dar XML

4. Dokumen XHTML harus well-formed agar bisa ditampilkan pada halaman browser

(58)

52 XSL Transformation (XSLT)

6

XSL Transformations (XSLT)

Overview

XSLT merupakan bahasa pemrograman berdasar XML yang digunakan untuk transformasi dokumen XML menjadi dokumen XML atau format lainnya. Transformasi tidak mengubah dokumen asli, melainkan menghasilkan dokumen baru berdasarkan isi dokumen asli. XSLT sering digunakan untuk mengkonversi data dari satu XML schema ke schema lain, ke format XHTML, atau format XML yang dapat diubah menjadi dokumen PDF. Dokumen XSLT yaitu, sebuah XSLT stylesheet berisi template-rule. Setiap template memiliki aturan dan pola tersendiri. Sebuah XLS processor akan membaca dokumen XML dan template (dokumen XSLT). Berdasarkan instruksi yang ditemukan program pada XSLT, maka program akan menghasilkan dokumen XML yang baru.

Tujuan 1. Mahasiswa dapat memahami XSLT

2. Mahasiswa dapat menspesifikasikan XSLT pada dokumen XML 3. Mahasiswa dapat membuat XSLT pada dokumen XML

(59)

Contoh Dokumen XML <?xml version="1.0" ?> <orang> <mahasiswa> <nim>1112</nim> <nama>Sisanti</nama> </mahasiswa> <mahasiswa> <nim>1111</nim> <nama>susilo</nama> </mahasiswa> </orang>

Dokumen diatas disimpan kedalam file dengan nama orang.xml, dimana dokumen diatas akan kita gunakan untuk penerapan XSLT selanjutnya. XSLT dapat bekerja dengan dokumen yang valid maupun tidak valid asalkan well-formed. Dokumen ini juga tidak menggunakan namespace meskipun bisa juga dengan menggunakan namespace. XSLT hanya dapat berjalan dengan baik jika menggunakan namespace. Tidak seperti DTD, XSLT lebih memperhatikan namespace URIs dari pada prefiks.

xsl:stylesheet

XSLT stylesheet merupakan dokumen XML, dan umumnya harus meggunakan deklarasi XML atau paling tidak stylesheets. Root elemen dokumen ini adalah stylesheet atau transform. Selain itu kita juga dapat menggunakan stylesheet atau transform. Contoh minimal dokumen XSLT :

<?xml version="1.0"?>

<xsl:stylesheet version="1.0" xmlns:xsl= "http://www.w3.org/1999/XSL/Transform"> </xsl:stylesheet>

untuk memanggil dokumen XSL kedalam dokumen XML yang kita inginkan, kita dapat mengginakan seperti script sebagai berikut :

(60)

54 XSL Transformation (XSLT) <?xml-stylesheet type="text/xsl" href="xsl.xsl" ?> <orang> ... </orang>

Contoh Stylesheet Processors

XML dokumen yang ditampilkan ke web browser memiliki xml-stylesheet processing instruction. Contoh penggunaannya adalah sebagai berikut :

<?xml version="1.0"?> <?xml-stylesheet type="application/xml" href="orang.xsl"?> <orang> ... </orang>

pada contoh diatas, dokumen tersebut menggunakan pemprosesan intruksi pada aplikasi XML orang.xsl.

Templates and Template Rules

Untuk mengontrol hasil outputan, kita dapat menambahkan template rule kedalam XSLT stylesheet. Setiap template direpresentasikan dengan elemen

xsl:template. Elemen ini harus memiliki kesesuaian atribut dengan XPath pattern dan mengandung template yang di instansiasi dan output jika polanya cocok. Namun ada sedikit terminologi trik; elemen xsl:template merupakan template rule yang mengandung template. Elemen xsl:template bukan bukan template untuk dirinya sendiri.

Sebagai contoh, kita buat sebuah dokumen XSL dan simpan dengan nama file xsl.xsl untuk menampilkan dokumen diatas sehingga menjadi sesuai dengan yang diinginkan. Sintaks yang dituliskan adalah sebagai berukut :

<?xml version="1.0" encoding="UTF-8"?> <xsl:stylesheet version="1.0"

xmlns:xsl="http://www.w3.org/1999/XSL/Transform” xmlns="http://www.w3.org/1999/xhtml">

(61)

<xsl:template match="orang"> sebuah tulisan

</xsl:template> </xsl:stylesheet>

kemudian tambahkan sintaks untuk memanggil dokumen XSL tersebut pada dokumen XML asal sehingga dokumen XML diatas menjadi :

<?xml version="1.0" ?>

<?xml-stylesheet type="text/xsl" href="xsl.xsl" ?> <orang> <mahasiswa> <nim>1112</nim> <nama>Sisanti</nama> </mahasiswa> <mahasiswa> <nim>1111</nim> <nama>susilo</nama> </mahasiswa> </orang>

Jika dokumen XML diatas dijalankan maka tampak seperti gambar berikut :

Jika kita lihat, bahwa dokumen XSL diatas memiliki elemen template yang akan mencocokan dengan elemen orang akan dococokan dengan template sehingga semua isi dari elemen orang akan digantikan dengan template.

(62)

56 XSL Transformation (XSLT) Elemen with xsl:value-of

Elemen xsl:value-of digunakan untuk mengambil nilai dari elemen. Contoh penggunaannya adalah sebagai berikut :

buatlah dokumen XML dengan kode sederhana sebagai berikut :

<?xml version='1.0' ?> <orang>

<mahasiswa>Susilawati</mahasiswa> </orang>

sekarang buatlah sebuah dokumen XSL dengan kode sebagai berikut :

<?xml version="1.0"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:template match="orang"> <xsl:value-of select="mahasiswa"/> </xsl:template> </xsl:stylesheet>

Jika kita jalankan, maka hasil yang tampil adalah nilai dari elemen mahasiswa yaitu “Susilawati” seperti tampak pada gambar berikut :

Element xsl:apply-templates

Selanjutnya kita kan mencoba menggunakan elemen apply templates. apply -templates berfungsing untuk menempakan isi dari elemennya ke elemen dokumen XML yang sesuai. Sebagai conto, buat file XSL baru edit dokumen yang lama sehingga menjadi :

(63)

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns="http://www.w3.org/1999/xhtml"> <xsl:output method="html"/> <xsl:template match="/orang"> <html> <head>

<title>Testing XSL pada XML</title> </head> <body> <h3>Data Mahasiswa</h3> <table border="1"> <tr><th>NIM</th><th>Nama</th></tr> <xsl:apply-templates select="mahasiswa"> </xsl:apply-templates> </table> </body> </html> </xsl:template> <xsl:template match="mahasiswa"> <tr> <td> <xsl:value-of select="nim"/> </td> <td> <xsl:value-of select="nama"/> </td></tr> </xsl:template> </xsl:stylesheet>

jika kita perhatikan pada dokumen XSL diatas, ada sebuah elemen template yang isinya adalah dokumen HTML yang akan ditempatkan pada elemen root orang pada dokumen XML, yaitu : <xsl:template match="/orang"> ... </xsl:template>. Selanjutnya didalan template tersebut tedapat sebuah elemen apply- templates <xsl:apply-templates select="mahasiswa"> ... </xsl:apply-templates> yang akan dicocokan dengan setiap elemen mahasiswa pada dokumen XML. Pada bagian bawah, terdapat elemen <xsl:template

(64)

58 XSL Transformation (XSLT)

match="mahasiswa"> ... </xsl:template> yang akan dipasangkan dengan elemen mahasiswa pada elemen dokumen XSL yang diperoleh dari pencocokan oleh elemen template-apply sebelumnya. Sedangkan elemen value-of pada <xsl:value-of select="nim"/> yang ada pada template tersebut berfungsi untuk mengambil nilai dari elemen yang dimaksud, misanya select="nim",

maka nilai yang diambil adalah nilai dari elemen nama.

Jika pada bagian elemen apply-templates kita tambahkan sebuah sintak untuk mensorting data, maka data yang akan ditampilkan terlebih dahulu disorting. Ubah sintaksnya menjadi :

...

<xsl:apply-templates select="mahasiswa"> <xsl:sort select="nim" />

</xsl:apply-templates> ...

maka tada yang tampil telah tersorting menurut nim, dimana tampilannya dapat kita lihat sebagai berikut :

(65)

Built-in Pada Template Rule

Yang paling mendasar dari built-in template rule adalah menyalin nilai text dan atribut node kedalam dokumen output. Seperti pada contoh berikut :

<xsl:template match="text( )|@*"> <xsl:value-of select="."/> </xsl:template>

node text ( ) merupakan pencocokan untuk semua elemen. Sedangkan

@* merupakan pencocokan untuk semua atribut. Jika template diatas dituliskan dan, maka dokumen XMLnya jika dijalankan akan seperti pada gambar berikut :

Jika XSL yang digunakan seperti berikut :

<xsl:template match="*|/"> <xsl:apply-templates/> </xsl:template>

hal ini akan menjamin elemen child juga akan diproses. Meskipun hasilnya terlihat sama seperti pada gambar diatas.

Namun jika kita menggunakan XSL :

<xsl:template

match="processing-instruction()|comment( )"/>

(66)

60 XSL Transformation (XSLT) Mode

Terkadang suatu dokumen kita ingin ingin mengubahnya menjadi beberapa dokumen. Untuk itu kita dapat menggunakan mode. Cara kerjanya adalah, sebuah template menempati elemen yang cocok, namun pada template tersebut kita dapat menempatkan template lagi. Penggunaannya dapat menggunakan elemen xsl:apply-template, dimana kita menggunakan atribut select untuk mencocokan dengan template. Contohnya dapat dilihat pada kode dibawah ini :

<?xml version="1.0" encoding="UTF-8"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns="http://www.w3.org/1999/xhtml"> <xsl:output method="html"/> <xsl:template match="/orang"> <xsl:apply-templates select="mahasiswa" /> </xsl:template> <xsl:template match="mahasiswa"> Sesuatu teks </xsl:template> </xsl:stylesheet>

Jika kita jalankan, maka akan tampak seperti gambar berikut :

Template untuk nilai Attribute

Sebelumnya kita telah mengetahui apa yang dimaksud dengan atribut dan kapan kita harus menggunakannya. Dalam XSL kita juga dapat memilih atribut dan mengambil nilainya. Pada dasarnya, untuk pencocokan pada nilai atribut

(67)

sama halnya dengan elemen, tetapi kita tambahkan string “@” pada awal nama atribut tersebut. Misalnya pada contoh sebelumnya, ubahlah atau buat file baru yang isinya sebagai berikut :

<?xml version="1.0" ?>

<?xml-stylesheet type="text/xsl" href="xsl.xsl" ?> <orang>

<mahasiswa angkatan='2007' kelas=”XWS-01”> <nim>1112</nim>

<nama>Sisanti</nama> </mahasiswa>

<mahasiswa angkatan='2008' kelas=”XWS-02”> <nim>1111</nim>

<nama>susilo</nama> </mahasiswa>

</orang>

Selanjutnya kita akan menggunakan dokumen XSL untuk mengatur panampilannya. Buat dokumen XSL baru dengan nama xsl2.xsl. Yang isinya adalah sebagai berikut :

<?xml version="1.0" encoding="UTF-8"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns="http://www.w3.org/1999/xhtml"> <xsl:output method="html"/> <xsl:template match="/orang"> <html> <head>

<title>Testing XSL pada XML</title> </head> <body> <h3>Data Mahasiswa</h3> <table border="1"> <tr> <th>NIM</th> <th>Nama</th> <th>Kelas</th> </tr>

(68)

62 XSL Transformation (XSLT) <xsl:apply-templates select="mahasiswa"> </xsl:apply-templates> </table> </body> </html> </xsl:template> <xsl:template match="mahasiswa"> <tr> <td> <xsl:value-of select="nim"/> </td> <td> <xsl:value-of select="nama"/> </td> <td> <xsl:value-of select="@angkatan"/> <xsl:text> : </xsl:text> <xsl:value-of select="@kelas"/> </td></tr> </xsl:template> </xsl:stylesheet>

Jika dokumen XML diatas dijalankan, maka tampilannya akan seperti gambar berikut :

(69)

XSLT dan Namespace

Selanjutnya kita akan mecoba membuat XSL pada dokumen yang namespace XML. Sekarang kita buat sebuah dokumen XML yang mengandung namespace. Silahkan ketikan kode berikut ini dan simpan dengan extensi XML : <?xml version='1.0' ?> <bahan> <a:bambu xmlns:a="Namespace1"> <a:asal>Jawa</a:asal> <a:jenis>Besar</a:jenis> </a:bambu> <b:bambu xmlns:b="Namespace2"> <b:jenis>belah 4</b:jenis> <b:panjang>3</b:panjang> </b:bambu> </bahan>

selanjutnya mari kita buat dokumen XSLnya sebagai berikut :

<?xml version="1.0"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:b="Namespace2"> <xsl:template match="bahan"> <xsl:value-of select="b:bambu"/> </xsl:template> </xsl:stylesheet>

Gambar

Gambar 12.1 Web Service Toolkit memudahkan pekerjaan

Referensi

Dokumen terkait

Untuk mengurangi emisi polutan di sektor transportasi dipergunakan teknologi katalitik konverter pada kendaraan berbahan bakar bensin dan penggunaan mesin diesel yang

Model pembelajaran inkuiri menurut Joyce, Weil, dan Calhoun (2011) terdiri dari 4 fase yaitu: 1) fase pertama, siswa disajikan bidang penelitian berupa fenomena

Dokumentasi adalah suatu usaha yang dilakukan dalam penelitian untuk pengumpulan data dengan menggunakan dokumen perusahaan, buku yang berkaitan dengan majalah yang membahas

asetat, borneol, simen. Kina, damar, malam.. as. CI CINN NNAM AMOM OMI COR I CORTE TEX X..

*ormasi kepermukaan se&#34;ara alami. Apabila sumur tersebut sudah tidak memilik i kemampuan untuk mengalirkan Fuida reservoir kepermukaan, dengan kata lain.. sudah tidak

Program utama pengembangan agribisnis komoditas unggas sangat terkait dengan tujuan dan sasaran yang akan dicapai. Guna menjamin penyediaan pasokan d.o.c. ayam ras yang

Dalam simulasi ini, tiga variasi muatan LNG dalam tangki yang meliputi: kondisi muatan kosong yaitu muatan LNG 10% dari ketinggian tangki (h), kondisi muatan setengah penuh,

Guru memberikan tugas kelompok yang berupa soal yang dikemas dalam bentuk lembar kegiatan siswa (LKS). Guru berkeliling membantu siswa yang mengalami kesulitan menyelesaika tugas