Introduction to XML

Download Report

Transcript Introduction to XML

• XML adalah singkatan dari eXtensible
Markup Language
• XML adalah sejenis bahasa markup, yakni
bahasa yang berisikan kode-kode berupa
tanda tertentu (biasanya ‘<’ dan ‘>’)
dengan aturan tertentu untuk tujuan
memformat dokumen
• XML dikembangkan mulai tahun 1996 dan
mendapatkan pengakuan dari W3C pada
Februari 1998.
• Teknologi yang digunakan XML merupakan
turunan dari SGML
• XML mengadopsi bagian paling penting pada
SGML dan dengan berpedoman pada
pengembangan HTML menghasilkan markup
language yang tidak kalah hebatnya dengan
SGML
• XML dapat mendefinisikan kumpulan tag
yang tak terbatas sesuai dengan keinginan
• XML dapat bekerja dengan cros-platform
<time-o-gram pri="important">
<to>Sarah</to>
<subject>Reminder</subject>
<message>Don't forget to recharge K-9
<emphasis>twice a day</emphasis>.
I have a date with
some <villain>Daleks</villain>...
</message>
<from>The Doctor</from>
</time-o-gram>
• Dokumen XML ditulis menggunakan
elemen yang ditandai dengan tag
pembuka, tag penutup dan atribut
elemen.
• XML mengijinkan kita untuk menamai atau
mendefinisikan tag sesuai dengan
keinginan kita, tidak seperti HTML, yang
dibatasi penggunaan nama tag.
XML memisahkan data dari HTML.
• Memudahkan dalam mendisplay data yang
dinamis karena tidak perlu mengedit HTML
setiap kali data berubah
• Dengan XML, data disimpan pada file yang
berbeda sehingga HTML hanya untuk layout
dan desain
• Dengan sedikit JavaScript, kita bisa membaca
file XML dan mengupdate isi data di HTML
XML memudahkan pembagian data.
• Komputer dan database bisa saja lintas
platform dengan format yang berbedabeda
• XML disimpan dalam bentuk plain-text,
yang tidak bergantung pada software dan
hardware
• Hal ini mempermudah membagi data pada
aplikasi yang berbeda
Dengan alasan yang sama:
• XML memudahkan pengiriman data
• XML memudahkan pergantian platform
• XML menjadikan data kita more available
XML digunakan untuk membuat bahasa
internet baru:
• XHTML, versi terbaru dari HTML
• WSDL, digunakan dalam web service
• WAP dan WML, markup language untuk
perangkat wireless
• RSS, bahasa untuk news feeds
• RDF, mendeskripsikan web resources
• SMIL, mendeskripsikan konten multimedia
untuk web
XML:
• XML didesain untuk
mengirim dan
menyimpan data
• Fokus pada “what data
is”
• Tag pada XML dapat
didefinisikan sendiri
• Tag pada XML
mendeskripsikan konten
dari data
HTML:
• HTML didesain untuk
menampilkan data
• Fokus pada “how data
looks”
• Tag pada HTML telah
didefinisikan sebelumnya
• Tag pada HTML
mendeskripsikan cara
suatu data ditampilkan
• Dokumen XML digunakan untuk mendeskripsikan
sendiri dokumen tersebut dengan sintaks yang
sederhana
• Contoh:
<?xml version="1.0" encoding="ISO-8859-1"?>
<note>
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
</note>
• Bagian pertama adalah tag <xml> yang
mendefinisikan versi xml dan encoding yang
digunakan
• Bagian <note> adalah elemen root dalam
dokumen.
• Bagian <to>, <from>, <heading>, dan <body>
mendeskripsikan child elements dari elemen
<note>
• Semua tag xml harus memiliki tag penutup
<p>paragraph pertama</p>
<p>paragraph kedua</p>
• Tag tunggal hanya diperbolehkan untuk
elemen kosong. Contoh penulisannya sebagai
berikut:
<anggota nama=”erick”/>
• Biasakanlah setiap membuat dokumen XML
diawali dengan heading standard XML.
Formatnya adalah sebagai berikut:
<?xml version=”1.0” encoding=”iso-8859-1”?>
• Heading berfungsi untuk: mendefinisikan
versi, definisi entitas, tipe encoding, dan
DOCTYPE
• Wajib menyertakan nomor versi
• Tag XML adalah case sensitive (membedakan
antara huruf besar dan kecil)
• Contoh berikut adalah contoh yang salah:
<buku>
<judul>Program Keahlian 1</Judul>
<pengarang>Erick Kurnia</pengarang>
<BUKU>
• Semua tag XML harus tersarang dengan benar
dan tidak terbalik-balik.
• Contoh:
<b><i>Text is bold and italic-wrong</b></i>
<b><i>Text is bold and italic-right</i></b>
• Semua dokumen XML harus memiliki elemen root.
• Elemen root adalah elemen teratas yang harus
memiliki tag penutup
• Contoh:
<orangtua>
<anak>
<namaanak>.....</namaanak>
</anak>
</orangtua>
• Dalam contoh di atas elemen <orangtua> adalah
elemen root.
• Nilai atribut harus diapit dalam tanda petik
ganda (quote)
• Contoh:
<?xml version="1.0" encoding="ISO-8859-1"?>
<note date="12/11/2002">
<to>Tove</to>
</note>
• Dalam XML karakter white space (spasi)
dibaca sebagai karakter spasi
• Dalam HTML lebih dari satu karakter white
space dihilangkan sehingga
“Hello <spasi> <spasi> my name is Tove” akan
menjadi “Hello my name is Tove”
• Namun dalam XML karakter white space tetap
dibaca sebagai karakter white space
• Komentar adalah kalimat/baris yang tidak
dieksekusi oleh compiler, browser atau parser.
• Penulisan komentar di XML menggunakan
tanda
<!-- komentar -->
• Dalam XML, karakter ‘<’ dan ‘>’ adalah illegal.
• Contoh di bawah ini akan menghasilkan error
kalau dieksekusi oleh browser
<syarat>jika jumlah < 1000 maka</syarat>
• Agar benar, maka harus dilakukan hal sebagai
berikut:
<syarat>jika jumlah &lt; 1000 maka</syarat>
• Penulisan di atas disebut Entity References
• Entity komponen dari content.
• Penulisan Entity dengan cara diawali
dengan ”&” dan diakhiri dengan “;”
• Misalnya kita ingin menulis “<form>”, agar
<form> itu tidak dikenali sebagai tag XML,
maka penulisannya menjadi
“&lt;form&gt;”
• Dokumen XML membentuk struktur
pohon, dimulai dari akar, cabang, sampai
daun
• Menggunakan syntax yang sederhana dan
self-describing
<?xml version="1.0"?>
<note>
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don't forget me this
weekend!</body>
</note>
• Baris pertama merupakan deklarasi XML.
Menjelaskan bahwa dokumen XML tersebut
versi (1.0).
• Baris kedua mendeskripsikan root element
dari dokumen.
• 4 baris setelahnya merupakan child
element dari root (to, from, heading, dan
body).
• Baris terakhir merupakan penutup root
element.
Struktur pohon dokumen XML:
• XML harus mengandung satu root
element, yang menjadi orang tua dari
elemen-elemen lainnya
• Semua elemen dapat memiliki sub elemen
(child element)
• Semua elemen dapat mempunyai isi dan
atribut (seperti pada HTML)
<root atribut=“…”>
<child>
<subchild>isi …</subchild>
</child>
</root>
<bookstore>
<book category="COOKING">
<title lang="en">Everyday Italian</title>
<author>Giada De Laurentiis</author>
<year>2005</year>
<price>30.00</price>
</book>
</bookstore>
• Sebuah dokumen XML terdiri dari bagian bagian
yang disebut dengan node
• Node-node itu adalah:
 Root node: yaitu node yang melingkupi
keseluruhan dokumen. Dalam satu dokumen XML
hanya ada satu root node. Node-node yang
lainnya berada di dalam root node.
 Element node: yaitu bagian dari dokumen XML
yang ditandai dengan tag pembuka dan tag
penutup, atau bisa juga sebuah tag tunggal
elemen kosong seperti <anggota nama=”erick” />
 Attribute node: berupa elemen tambahan dari elemen
utama
 Text node: adalah text yang merupakan isi dari sebuah
elemen, ditulis diantara tag pembuka dan tag penutup
 Comment node: adalah baris yang tidak dieksekusi oleh
parser
 Processing Instruction node: adalah perintah pengolahan
dalam dokumen XML. Node ini ditandai dengan karakter <?
Dan diakhiri dengan ?>. Tapi perlu diingat bahwa header
standard XML
<?xml version=”1.0” encoding=”iso-8859-1”?>
bukanlah processing instruction node
 NameSpace Node: node ini mewakili deklarasi namespace
• Sebuah elemen XML adalah semua kata dari tag
pembuka elemen sampai tag penutup elemen
termasuk tag itu sendiri
• Sebuah elemen dapat memiliki :
 Element content: mengandung elemen lain
 Mixed content: berisi teks dan elemen lain
 Simple content: mengandung hanya teks saja
 Empty content: tidak mengandung teks atau
elemen apapun
• Elemen XML dapat memiliki atribut seperti
pada tag HTML
• Atribut biasanya menyediakan informasi
ekstra dari elemen
• Dalam contoh di bawah ini file type tidak
relevan dengan data, tetapi penting untuk
software yang ingin memanipulasi elemen
tersebut. Contoh:
<file type="gif">computer.gif</file>
• Beberapa hal yang harus diperhatikan dalam penggunaan
atribut:
 Atribut tidak dapat mengandung banyak nilai tetapi elemen
child bisa
 Atribut tidak mudah diubah untuk pengembangan masa
yang akan datang
 Atribut tidak dapat mendeskripsikan strukturnya tetapi
elemen child bisa
 Atribut lebih sulit di-parsing oleh program penerjemah XML
 Nilai atribut tidak mudah untuk ditangani oleh DTD yang
digunakan untuk mendefinisikan validasi dan legalitas
elemen dokumen XML
• Semua teks dalam dokumen XML, yang disebut PCDATA (Parsed
Character Data), akan diparse oleh XML Parser
• Hanya teks yang berada dalam bagian CDATA (Character Data) saja
yang akan dilewati oleh XML Parser
• CDATA tidak boleh berisi string "]]>", CDATA tidak boleh bersarang,
dan tidak boleh ada spasi atau enter didalam string "]]>“
• Dengan menggunakan CData karakter dipanggil secara alami, tanpa
harus menggunakan entity.
• Penggunaan CData harus didefinisikan di awal dokumen
<pages>
<![CDATA[
<comment>This is a Comment</comment>
]]>
</pages>
• Tag-tag pada XML tidak didefinisikan secara
baku tetapi kita buat sendiri sesuai keinginan
kita
• Karena itu akan sering terjadi konflik pada dua
dokumen yang menggunakan nama tag yang
sama tetapi mewakili dua hal yang berbeda
• Bila ada dokumen yang mendiskripsikan tentang kebutuhan
material pembuatan gardu jaga dari “bambu”:
<bambu>
<jenis>Jawa</jenis>
<panjang>2</panjang>
</bambu>
• Sedangkan jika terdapat dokumen yang mendiskripsikan
“bambu” sebagai merk produk:
<bambu>
<jumlah>246</jumlah>
<hargasatuan>200</hargasatuan>
</bambu>
• Untuk mengatasi hal ini, Namespace menyediakan metode
dengan menggunakan prefiks yang berbeda untuk
dokumen pertama:
<a:bambu>
<a:jenis>Jawa</a:jenis>
<a:panjang>2</a:panjang>
</a:bambu>
• Sedangkan untuk dokumen kedua menjadi seperti berikut:
<b:bambu>
<b:jumlah>246</b:jumlah>
<b:hargasatuan>200</b:hargasatuan>
<b:/bambu>
• Aturan penggunaan namespace adalah sebagai berikut:
<a:bambu xmlns:a=”http:/www.somewhere.com/gardu”>
• a adalah prefix yang dipakai, sedangkan atribut namespace
di tambahkan pada tag.
• Syntax untuk atribut namespace adalah sebagai berikut:
xmlns:a=”namespace”
• Pada contoh di atas namespace-nya menggunakan
• alamat internet
• W3C namespace spesification menyatakan bahwa
namespace haruslah merupakan Uniform Resource
Identifier (URI)