Pada awal kemunculannya di penghujung 1990-an, XML (Extensible Markup Languange) kerap dianggap sebagai bahasa markup pengganti HTML (Hypertext Markup Languange). Mungkin karena sama-sama turunan dari SGML (Standard Generalized Markup Languange). Padahal, XML dibuat untuk menjembatani interoperabilitas antar software dari platform yang berbeda.

Sebelum membahas lebih jauh apa itu XML dan bagaimana fungsinya, ada baiknya kita memahami betul istilah markup language. Awalnya markup language digunakan oleh para penulis, editor, dan awak percetakan dalam dunia penerbitan, untuk menandai sebuah naskah dipresentasikan.

Editor menandai bagian-bagian naskah yang perlu diperbaiki oleh penulis, dengan tanda-tanda khusus. Editor juga melakukan hal yang sama pada naskah yang akan di-layout oleh desainer (dahulunya merupakan bagian dari awak percetakan), bagian mana yang dicetak miring, tebal, dan lain-lain.

Dengan kata lain, markup language adalah gabungan antara naskah dengan informasi tambahan tentang naskah itu sendiri. Contoh markup language yang paling lazim kita temukan saat ini di internet adalah HTML.

Sejarah XML XML didesain oleh sebuah kelompok kerja yang terdiri dari sebelas orang. Mereka mendapat dukungan dari 150 orang di luar kelompok tersebut.
Pemimpin bidang teknis tim sebelas, James Clark, menyumbangkan elemen empty ā€œā€, dan nama XML itu sendiri. Nama-nama lain yang sempat diusulkan antara lain MAGMA (Minimal Architecture for Generalized Markup Applications), SLIM (Structured Language for Internet Markup), dan MGML ( Minimal Generalized Markup Language).

Pada 10 Februari 1998, XML 1.0 direkomendasikan secara resmi oleh W3C.
XML 1.0 merupakan pencapaian tim sebelas dalam mendesain markup language untuk tujuan penggunaan di Internet, yang serba guna, dan kompetibel dengan SGML. Selain itu, XML 1.0 juga mendukung pengembangan software yang memprosesnya, meminimalisasi fitur-fitur opsional, terbaca oleh manusia, singkat, padat, dan mudah untuk ditulis.
Sampai artikel ini ditulis, telah dilakukan kali ketiga perbaikan minor pada XML 1.0 perbaikan kedua menghasilkan XML 1.1, yang kini telah menjalani satu kali perbaikan. Pada 16 Agustus 2006 yang lalu, XML 1.0 Fourth Edition, dan XML 1.1 Second Edition dipublikasikan. Keduanya dianggap sebagai versi terakhir XML yang ada sekarang.

Kegunaan XML didesain sebagai solusi interoperabilitas antarsoftware dari platform yang berbeda. Misalnya software A berjalan diatas platform Java, ingin berbagi informasi dengan software yang berjalan di atas platform .NET. software A akan membaca request dari software B dalam format XML.

Atau bisa jadi software A menyediakan informasi yang sudah dikemas dalam fomat XML, yang dapat dimanfaatkan oleh software B, C, D, dan seterusnya. Untuk mengakses informasi dalam format XML ini, digunakan tool yang bersifat web service. Contoh yang paling sederhana dari interoprabilitas menggunakan XML ini adalah RSS feed dan aggregator. Saat ini banyak website berita dan blog yang menyediakan informasi yang dikemas dalam format XML, atau dikenal dengan nama RSS feed. Website lain atau aplikasi desktop yang disebut dengan aggregator dapat memanfaatkan informasi ini melalui web service, yakni HTTP, untuk membaca file XML, dan menampilkannya.

Bagaimana XML, dan web service bekerja sama menciptakan layanan baru yang disebut dengan interoprabilitas ini? Seperti yang dijelaskan di atas, XML merupakan markup langage. Namn, berbeda dengan HTML yang memerintahkan web browser bagaimana menampilkan informasi, XML menandai informasi secara terstruktur sehingga memudahkan aplikasi lain mengekstrak, dan menggunakannya.

Seperti halnya HTML, XML juga menggunakan tag-tag. Jika tag-tag pada HTML bersifat baku, tag-tag XML dapat dibuat sendiri, sesuai dengan kebutuhan. Untuk memudahkan aplikasi membaca tag-tag apa saja yang memuat informasi serta struktur hirarkinnya, XML 1.0 dilengkapi dengan DTD ( Document Type Definition) yang terletak pada bagian header file. Untuk menutup kekurangan pada DTD, XML 1.1 mengganti DTD dengan XSD (XML Schema Definition) yang lebih powerful dalam menggambarkan struktur file XML.
Perlu digarisbawahi, walaupun sama-saman turunan SGML, tedak berarti XML dan HTML memiliki sifat yang sama. Seperti yang kita ketahui, HTML memiliki sifat pemaaf.

Jika Anda membuat kesalahan coding pada HTML, web browser akan berusaha tetap menampilkannya sebaik mungkin, dengan menduga apa kira-kira maksud Anda, atau paling tidak web browser mengabaikan tag yang salah. Namun tidak demikian dengan XML. Aplikasi yang menggunakannya akan berhenti dengan tiba-tiba saat menemukan tag yang salah, dan mengatakan bahwa ada yang salah dalam file XML Anda!