Thursday 24 September 2015

XML Fundamentals

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 yandilakukan adalah <br />, <hr />, <input /> bukan dengan <br>,
<hr> <input> Namun   penulisa tersebut   sam 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>

</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 :

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  dengaspasi  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
</person>
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  adala &lt;

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

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

Jika  kita menjalankan  kode  diatamaka  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 -->”.

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  diatamaka  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.

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-formedIni  berarti  harus  sesuai  dengan aturan yang ada misalnya :

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

<mahasiswa>Johan Sabima</Mahasiswa>

Jika dijalankan maka akan tampak seperti berikut :


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>

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
</mahasiswa>

Jika dijalankan maka akan tampak seperti berikut :
6.     Tidak ada unescaped < atau & atau tanda-tanda lainnya

<mahasiswa>Johan < Sabima</mahasiswa>

Jika dijalankan maka akan tampak seperti berikut :