XML ( Extensible Markup Language )
Extensible Markup Language (XML) adalah meta-language yang
menerangkan tentang isi dari suatu document (self describing data).
Java = Portable Program
XML = Portable Data
XML tidak menerangkan tag-set atau gramar dari XML itu sendiri. Menggunakan
DTD ( Document Type Definition ) untuk menerangkan data. XML bukan pengganti
HTML.
Mengapa tidak menggunakan HTML, karena HTML tidak memberikan
“informasi” tentang isi dari sebuah halaman page, tampilan tidak bisa diparsing, dan
tidak bisa digunakan kembali. Terbatas hanya untuk melakukan format tampilan
pada web browser.
Aplikasi XML
· Konfigurasi File :
- Arsitektur J2EE
· Media untuk pertukaran data
· B2B transaksi
- Electronics Bussines Order (ebXML)
- Financial Exchange (IFX)
- Messaging Exchange (SOAP)
Element XML
Menggunakan building block yang sama seperti HTML : Element, Attribute dan
Value. Sebuah element mengandung tag pembuka dan tag penutup:
Contoh : <animal>Lion</animal>
<animal class=“mammals”>Lion</animal>,
Maka : animal adalah element, class adalah attribute dan mammals adalah nilai dari
attribute.
Aturan XML
Dokumen XML harus “well-formed” yang artinya harus memenuhi aturan-aturan
sebagai berikut :
- Harus mempunyai sebuah root element yang berisikan element-element
lainnya.
- Semua elemen harus diakhiri dengan tag penutup, Contoh:
<picturefile=“test.jpg”/>
<name>Lion</name>
- Element tidak boleh overlaping
- XML bersifatcase sensitive
- Untuk nilai harus berada dalam kutip satu (‘) atau kutip dua (“)
- Simbol-simbol special harus dideklarasikan pada DTD
Pendeklarasian file sebagai sebuah file XML :
<?xml version=“1.0”?>
Penulisan komentarpada file xml :
<!--Iniadalahkomentar-->
DTD
DTD berfungsi untuk menjelaskan spesifikasi dan aturan terhadap elementelement
dan atrributes yang harus dimiliki oleh sebuah xml dokument. Kumpulan
dari aturan-aturan tersebut disebut dengan SCHEMA.
SCHEMA tidak wajib dimiliki, tetapi diperlukan untuk memastikan
konsistensi dokumen. Mendefinisikan element pada DTD :
- <!ELEMENT animal (lion)>: element animal hanya boleh memiliki satu
elemenlion.
- <!ELEMENT picture EMPTY>: element picture tidak mempunyai elemen lain.
- <!ELEMENT animal ANY>: element animal dapat berisikan element lainnya.
Mendefinisikan element yang berisikan text
<!ELEMENT name(#PCDATA)>
Mendefinisikan element yang mempunyai beberapa element
<!ELEMENT animal(name, weight)>
Berdasarkan aturan diatas maka element harus mempunyai element nama dan
weight:
<animal>
<name>lion</name>
<weight>350 pounds</weight>
</animal>
Mendefinisikan element dengan beberapa pilihan element
<!ELEMENT animal ((name, weight) | (picture)>
Berdasarkan aturan diatas maka element animal harus mempunyai elemen name dan
weight atau hanya punya element picture.
Pendefinisian Unit pada element :
<!ELEMENT animal (name+, weight?, picture, subspecies*)
Artinya:
- name harus tampil setidaknya satu kali
- weight dapat tampil sekali atau tidak tampil sama sekali
- picture hanya harus tampil sekali
- subspecies dapat tampil beberapa kali pun atau tidak tampil sama sekali
Attribute
Terkadang penggunaan attribute dapat lebih berarti daripada memecah
element menjadi sub-sub element. Kedua element ini berarti sama :
–<population animal=“lion”>80</population>
–<population><animal>lion</animal><quantity>80</quantity></population>
Attribute harus dideklarasikan juga pada DTD untuk dapat dipergunakan
–<!ELEMENT population (#PCDATA)>
<!ATTLIST population year CDATA #IMPLIED>
· Mendefinisikan Attribute wajib (Required Attribute) :
<!ELEMENT population (#PCDATA)>
<!ATTLIST population year (2000 | 2001) #REQUIRED>
Berarti: element populasi harus mempunyai attribute year yang bernilai 2000 atau
2001
<population year=“2000”>80</population>
· Mendefinisikan Attribute default (Default Attribute) :
<!ELEMENT population (#PCDATA)>
<!ATTLIST population year CDATA “2000”>
· Mendefinisikan Attribute default (Default Attribute) :
<!ELEMENT population (#PCDATA)>
<!ATTLIST population year CDATA #FIXED “2000”>
Invalid : <population year=“2001”>80</population>
Valid : <population year=“2000”>80</population>
Valid : <population>80</population>
· Mendefinisikan Unique Attribute :
<!ELEMENT animal (name)>
<!ATTLIST animal code ID #REQUIRED>