PENGANTAR XML Sebelum mulai mempelajari teknik membangun web service, ada baiknya kita memahami konsep dasar XML. Pemahaman tentang XML akan membantu kita untuk lebih mudah memahami apa yang terjadi dibalik web service. Bagi pembaca yang telah memahami konsep dasar XML, dapat melewati bahasan pada bab ini. Apakah XML Itu ? XML terletak pada inti web service, yang digunakan untuk mendeskripsikan data. Fungsi utama dari XML adalah komunikasi antar aplikasi, integrasi data, dan komunikasi aplikasi eksternal dengan partner luaran. Dengan standarisasi XML, aplikasi-aplikasi yang berbeda dapat dengan mudah berkomunikasi antar satu dengan yang lain. XML adalah singkatan dari eXtensible Markup Language. Bahasa markup adalah sekumpulan aturan-aturan yang mendefinisikan suatu sintaks yang digunakan untuk menjelaskan, dan mendeskripsikan teks atau data dalam sebuah dokumen melalui penggunaan tag. Bahasa markup lain yang populer seperti HTML, menggambarkan kepada browser web tentang bagaimana menampilkan format teks, data, dan grafik ke layar komputer ketika sedang mengunjungi sebuah situs web. XML adalah sebuah bahasa markup yang digunakan untuk mengolah meta data (informasi tentang data) yang menggambarkan struktur dan maksud/tujuan data yang terdapat dalam dokumen XML, namun bukan menggambarkan format tampilan data tersebut. XML adalah sebuah standar sederhana yang digunakan untuk medeskrippsikan data teks dengan cara selfdescribing (deskripsi diri). XML juga dapat digunakan untuk mendefinisikan domain tertentu lainnya, seperti musik, matematika, keuangan dan lain-lain yang menggunakan bahasa markup terstruktur. Berikut ini adalah contoh sebuah dokumen XML untuk informasi contact person: <?xml version="1.0" encoding="ISO-8859-1"?><contact> <contact> <name>Yadi Utama</name> <company>PT. Gamatechno Indonesia</company> <address>Jl. Cik Di Tiro No.34</address> <city>Yogyakarta</city> <state>Indonesia</state> <zip>55284</zip> <phone>081328462499</phone> <email>[email protected]</email> </contact> Perhatikan bagaimana mudahnya untuk mengerti tentang makna informasi dan strukturnya pada dokumen XML di atas, sehingga juga akan mudah bagi komputer untuk mengerti dokumen XML ini. Seperti halnya HTML, XML juga menggunakan elemen yang ditandai dengan tag pembuka (diawali dengan ‘<’ dan diakhiri dengan ‘>’), tag penutup(diawali dengan ‘</ ‘diakhiri ‘>’) dan atribut elemen(parameter yang dinyatakan dalam tag pembuka misal <form name=”isidata”>). Hanya bedanya, HTML medefinisikan dari awal tag dan atribut yang dipakai didalamnya, sedangkan pada XML kita bisa menggunakan tag dan atribut sesuai kehendak kita. Berikut ini adalah tampilan dokumen XML di atas apabila dijalankan pada sebuah browser: Gambar: Tampilan dokumen XML pada browser Struktur Penulisan Dokumen XML Berikut ini adalah contoh sebuah struktur dokumen XML: <?xml version="1.0" encoding="ISO-8859-1"?> Standard Header <email> Elemen root <to>Andi </to> <from>Yadi Utama</from> <subject>Hallo</subject> <message>Selamat Pagi…</message> </email> Elemen child Baris pertama pada dokumen XML di atas adalah deklarasi standar header yang mendefinisikan versi XML dan karakter encoding yang digunakan dalam dokumen XML. Dalam dokumen ini, XML mengacu pada versi 1.0 dan menggunakan standar encoding karakter set ISO-8859-1 (Latin-1/West European). Baris selanjutnya menggambarkan elemen induk (root) dokumen “<email>..</email>”, sebagaimana kita menyebut bahwa “Dokumen ini adalah sebuah Email”. Kemudian baris ke 3-6 menggambarkan elemen anak (child) dari elemen induk dokumen. Tag pada dokumen XML bersifat case sensitif di mana tag pembuka dan tag penutup harus ekivalen. Seperti contoh tag pembuka “<email>” harus ditutup dengan tag “</email>”. Berikut ini adalah contoh penulisan dokumen XML yang tidak benar: “<email>….</Email>” “<email>….</EMAIL>” “<Email>….</email>” Berikut ini adalah contoh penulisan dokumen XML yang benar: “<email>….</email>” “<EMAIL>….</EMAIL>” “<Email>….</Email>” Apa yang Menarik Pada XML? Karena XML bersifat mudah untuk dibaca dan ditulis baik oleh manusia maupun komputer, maka XML merupakan sebuah format yang dapat digunakan untuk pertukaran data (interchange) antar aplikasi dan platform yang berbeda (platform independent). Metode deskripsi data XML (self-describing) membuatnya menjadi pilihan efektif untuk bisnis ke bisnis, solusi antar jaringan, e-business, dan aplikasi terdistribusi. XML juga bersifat dapat diperluas (extensible), dapat digunakan pada semua bahasa pemrograman, dan datanya dapat ditransfer dengan mudah melalui protokol standar internet seperti HTTP tanpa dibatasi oleh firewall. Bagaimana XML Dapat Digunakan? Pada penjelasan sebelumnya, diberikan contoh sebuah dokumen XML yang berisi data contact person yang terdiri dari elemen “name”, “company”, “address”, “city”, “state”, “zip”, “phone”, dan “email”. Tidak seperti HTML, data-data dalam dokumen XML tidak dapat ditampilkan dalam format tampilan tertentu yang kita inginkan dalam browser web. Namun XML dapat dimanipulasi sebagai “pulau data” untuk ditampilkan pada browser web melalui HTML sesuai dengan format tampilan yang diinginkan: <xml id="contact-person"> <contact> <name>Yadi Utama</name> <company>PT. Gamatechno Indonesia</company> <address>Jl. Cik Di Tiro No.34</address> <city>Yogyakarta</city> <state>Indonesia</state> <zip>55284</zip> <phone>081328462499</phone> <email>[email protected]</email> </contact> </xml> Dokumen XML ini dapat digabungkan dengan HTML untuk ditampilkan dalam sebuah browser web dengan membangun sebuah tabel dalam kode HTML dan mengasosiasikan nilai pada kolom-kolomnyaa dengan data dari elemen-elemen XML tersebut: <html> <body> <xml id="contact-person"> <contact> <name>Yadi Utama</name> <company>PT. Gamatechno Indonesia</company> <address>Jl. Cik Di Tiro No.34</address> <city>Yogyakarta</city> <state>Indonesia</state> <zip>55284</zip> <phone>081328462499</phone> <email>[email protected]</email> </contact> </xml> <table border="1" datasrc="#contact-person"> <tr><th>Name</th> <td><span datafld="name"></span></td></tr> <tr><th>Company</th> <td><span datafld="company"></span></td></tr> <tr><th>Address</th> <td><span datafld="address"></span></td></tr> <tr><th>City</th> <td><span datafld="city"></span></td></tr> <tr><th>State</th> <td><span datafld="state"></span></td></tr> <tr><th>ZIP</th> <td><span datafld="zip"></span></td></tr> <tr><th>Phone</th> <td><span datafld="phone"></span></td></tr> <tr><th>Email</th> <td><span datafld="email"></span></td></tr> </table> </body> </html> Ketika ditampilkan melalui browser web, Anda akan melihat tampilannya sepeti ini: Gambar Dokumen XML yang digabung dalam HTML Tidak hanya itu, jika ada aplikasi URL dikembangkan mulai tahun 1996 dan mendapatkan pengakuan dari W3C pada bulan Februari 1998. Teknologi yang digunakan pada XML sebenarnya bukan teknologi baru, tapi merupakan turunan dari SGML yang telah dikembangkan pada awal 80-an dan telah banyak digunakan pada dokumentasi teknis proyek-proyek berskala besar. Ketika HTML dikembangkan pada tahun 1990, para penggagas XML mengadopsi bagian paling penting pada SGML dan dengan berpedoman pada pengembangan HTML menghasilkan markup language yang tidak kalah hebatnya dengan SGML. Seperti halnya HTML, XML juga menggunakan elemen yang ditandai dengan tag pembuka (diawali dengan ‘<’ dan diakhiri dengan ‘>’), tag penutup(diawali dengan ‘</ ‘diakhiri ‘>’) dan atribut elemen(parameter yang dinyatakan dalam tag pembuka misal <form name=”isidata”>). Hanya bedanya, HTML medefinisikan dari awal tag dan atribut yang dipakai didalamnya, sedangkan pada XML kita bisa menggunakan tag dan atribut sesuai kehendak kita. Untuk lebih jelasnya lihat contah dibawah: <pesan> <dari>MIS Manager</dari> <buat>HRD Manager</buat> <buat>Bagian rekrut</buat> <buat>Computer Suport team</buat> <subyek>Permohonan Tenaga kerja baru</subyek> <isi>Mohon diberikan tenaga kerja baru untuk mengisi lowongan di Departemen MIS</isi> </pesan> Pada contoh diatas <pesan>, <dari> <buat>,dan <isi> bukanlah tag standard yang telah di tetapkan dalam XML. Tag-tag itu kita buat sendiri sesuai keinginan kita. Sampai di sini XML tidak melakukan apapun. Yang ada hanyalah informasi yang di kemas dengan tag-tag XML. Kita harus membuat software lagi untuk mengirim, menerima atau menampilkan informasi di dalamnya. Gambar: Tampilan dokumen XML pada browser Kenapa Harus Menggunakan XML? XML untuk saat ini bukan merupakan pengganti HTML. Masing-masing dikembangkan untuk tujuan yang berbeda. Kalau HTML digunakan untuk menampilkan informasi dan berfokus pada bagaimana informasi terlihat, XML mendeskripsikan susunan informasi dan berfokus pada informasi itu sendiri. XML terutama dibutuhkan untuk menyusun dan menyajikan informasi dengan format yang tidak mengandung format standard layaknya heading, paragraph, table dan lain sebagainya. Sama dengan HTML, File XML berbentuk teks sehingga bila diperlukan kita bisa membacanya tanpa memerlukan bantuan software khusus. Hal ini memudahkan pengembang aplikasi yang menggunakan XML untuk mendebug programnya. XML lebih fleksible dibanding HTML dalam hal kemampuannya menyimpan informasi dan data. Pada XML kita bisa menyimpan data baik dalam atribut maupun sebagai isi elemen yang diletakkan diantara tag pembuka dan tag penutup. Kelebihan lain yang dimiliki XML adalah bahwa informasi bisa di pertukarkan dari satu system ke system lain yang berbeda platform. Misalnya dari Windows ke Unix, atau dari PC ke Machintosh bahkan dari internet ke handphone dengan teknologi WAP. Bagian-Bagian dari Dokumen XML 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=”budi”/> . Root node biasa juga disebut root element Attribute note termasuk nama dan nilai atribut ditulis pada tag awal sebuah elemen atau pada tag tunggal. 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 awali dengan karakter <? Dan diakhiri dengan ?>. Tapi perlu diingat bahwa header standard XML <?xml version=”1.0” encoding=”iso-88591”?> bukanlah processing instruction node. Header standard bukanlah bagian dari hirarki pohon dokumen XML. NameSpace Node, node ini mewakili deklarasi namespace Standard Header <?xml version=”1.0” encoding=”iso-8859-1”?> <!--Dokumen ini menjelaskan tentang isi buku--> <Buku Judul=”Teknik Membangun Web Service Dengan Menggunakan SOAP dan WSDL” Penulis=”Yadi Utama”> <pengantar/> <Bab No=”1”>Pengantar XML</Bab> <Bab No=”2”>Web Service</Bab> <Bab No=”3”>SOAP</Bab> . . . </Buku> Attribute Elemen kosong Root Node Comment Sintaks XML Dibandingkan dengan HTML, XML lebih cerewet. Kalau kita menulis sebuah dokumen HTML, beberapa kesalahan penulisan masih ditolerir. Misalnya kita menempatkan tag bersilangan seperti <p><b>Huruf Tebal</p></b> meskipun tidak dianjurkan, HTML masih bisa bekerja dan menampilkan hasil seperti yang kita inginkan. Tidak demikian dengan XML. Lebih jelasnya kita akan bahas di bawah ini tentang bagaimana membuat dokumen XML yang baik.