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 < 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
“<form>”
• 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)