Pengertian XML
XML adalah singkatan dari Extensible Markup Language. XML menjadi Rekomendasi W3C pada tahun 1998 dan mendeskripsikan data dengan tag yang Anda beri nama sendiri – itulah arti “extensible” (dapat diperluas). Berbeda dengan HTML, XML tidak memiliki tag bawaan: katalog bisa menggunakan <product> dan <price>, sedangkan faktur menggunakan <item> dan <total>.
Dokumen XML yang sangat sederhana terlihat seperti ini: <book id="1"><title>XML Basics</title><year>2026</year></book>. XML berupa teks biasa, sehingga bisa dibaca manusia dan diproses oleh semua bahasa pemrograman. XML hanya menyimpan dan menyusun data – XML tidak melakukan apa pun dengan sendirinya. Programlah yang menentukan arti data tersebut dan cara menampilkannya.
Aturan sintaks XML
Setiap dokumen XML harus mengikuti beberapa aturan ketat. Dokumen yang mematuhinya disebut well-formed:
- Ada tepat satu elemen root yang memuat semua elemen lainnya.
- Setiap elemen ditutup:
<name>…</name>, atau menutup sendiri seperti<br/>. - Elemen bersarang dengan benar:
<b><i>…</i></b>, bukan<b><i>…</b></i>. - Nama bersifat case-sensitive:
<Item>dan<item>adalah elemen yang berbeda. - Nilai atribut selalu diapit tanda kutip tunggal atau ganda.
&dan<di dalam teks di-escape menjadi&dan<.- Deklarasi opsional
<?xml version="1.0" encoding="UTF-8"?>harus berada di paling awal.
Komentar ditulis sebagai <!-- … -->. XML validator memeriksa semua aturan ini dalam hitungan detik dan menunjukkan baris tempat error terjadi.
Elemen dan atribut
Elemen terdiri dari tag pembuka, isinya, dan tag penutup: <price>19.90</price>. Elemen dapat berisi teks, elemen lain, atau keduanya. Atribut adalah pasangan nama–nilai di dalam tag pembuka: <price currency="EUR">.
| Elemen | Atribut | |
|---|---|---|
| Contoh | <color>red</color> | color="red" |
| Bisa berulang | Ya | Tidak, sekali per elemen |
| Bisa memuat elemen anak | Ya | Tidak, hanya teks |
| Urutan berpengaruh | Ya | Tidak |
Konvensi yang umum: gunakan elemen untuk data itu sendiri dan untuk segala hal yang bisa berulang atau memiliki struktur, dan gunakan atribut untuk metadata seperti ID, satuan, atau tipe.
XML well-formed vs. XML valid
XML well-formed mengikuti aturan sintaks; parser menolak apa pun selain itu. XML valid adalah XML yang well-formed dan juga sesuai dengan skema yang menentukan elemen dan atribut apa saja yang diizinkan, dalam urutan apa, dan dengan tipe data apa.
- DTD (Document Type Definition) adalah bahasa skema asli yang sudah tertanam di XML 1.0. DTD juga dapat mendeklarasikan entitas seperti
. - XSD (XML Schema Definition) ditulis dalam XML dan mendukung tipe data seperti tanggal dan desimal. Format faktur elektronik seperti CFDI, NF-e, dan UBL menerbitkan skema XSD.
Namespace XML
Karena siapa pun bisa membuat nama tag, dua kosakata bisa memakai nama yang sama – <title> untuk judul buku dan <title> untuk gelar seseorang. Namespace memisahkan keduanya dengan mengaitkan nama ke sebuah URI. xmlns:cfdi="http://www.sat.gob.mx/cfd/4" mendeklarasikan prefiks cfdi, sehingga <cfdi:Comprobante> termasuk dalam kosakata CFDI 4.0 Meksiko. Namespace default, xmlns="…" tanpa prefiks, berlaku untuk setiap elemen tanpa prefiks di dalamnya. URI tersebut hanya berfungsi sebagai pengenal; tidak ada yang diunduh darinya.
XML vs. JSON vs. HTML
| XML | JSON | HTML | |
|---|---|---|---|
| Tujuan | Menyimpan dan bertukar data terstruktur serta dokumen | Bertukar data, terutama di web API | Menampilkan halaman web |
| Nama tag atau key | Ditentukan sendiri | Ditentukan sendiri | Ditetapkan oleh standar HTML |
| Tipe data | Teks, kecuali skema mendefinisikan tipe | String, number, boolean, null, array, object | Teks |
| Atribut | Ya | Tidak | Ya |
| Komentar | Ya | Tidak | Ya |
| Skema | DTD, XSD | JSON Schema | – |
| Error sintaks | Ditolak parser | Ditolak parser | Diperbaiki browser |
JSON lebih ringkas dan langsung dipetakan ke objek di JavaScript, itulah sebabnya sebagian besar web API beralih ke JSON. XML tetap unggul ketika dokumen mencampur teks dan markup, membutuhkan namespace, atau harus divalidasi secara ketat terhadap skema – itulah sebabnya otoritas pajak, penerbit, dan format perkantoran masih mengandalkannya.
Apa itu file .xml? Cara membuka file XML
File .xml adalah file teks biasa yang berisi dokumen XML, biasanya dengan encoding UTF-8. Karena berupa teks, file ini bisa dibuka dengan editor teks apa pun – Notepad di Windows, TextEdit di Mac, atau code editor seperti VS Code. Chrome dan Firefox menampilkan file XML dalam bentuk tree saat Anda menyeretnya ke jendela browser, dan Excel dapat mengimpor data XML ke dalam spreadsheet.
Banyak file menggunakan XML tanpa ekstensi .xml: gambar .svg, feed .rss, skema .xsd, stylesheet .xsl, file .config di .NET, dan file .plist di macOS, yang dapat disimpan sebagai XML. File Word, Excel, dan PowerPoint (.docx, .xlsx, .pptx) adalah arsip ZIP yang berisi banyak file XML.
Di mana saja XML digunakan
- Sitemap:
sitemap.xmlmemberi tahu mesin pencari halaman apa saja yang dimiliki sebuah situs web. - Feed RSS dan Atom: situs berita, blog, dan podcast menerbitkan pembaruan mereka dalam format XML.
- SVG: grafik vektor di web adalah dokumen XML.
- File Office: Office Open XML (DOCX, XLSX, PPTX) dan OpenDocument (ODT, ODS) adalah paket ZIP berisi XML.
- Faktur elektronik: CFDI di Meksiko dan NF-e di Brasil adalah file XML yang harus ditandatangani secara digital dan diotorisasi sebelum sah secara hukum; UBL adalah format XML di balik e-invoicing Peppol di Eropa dan negara lain.
- Web service SOAP: bank, penyedia pembayaran, dan sistem pemerintah bertukar pesan XML yang dideskripsikan oleh file WSDL.
- Aplikasi Android: layout, resource string, dan
AndroidManifest.xmlditulis dalam XML. - Konfigurasi:
pom.xmlmilik Maven,web.configdi .NET, dan banyak pengaturan build dan server lainnya.
Pertanyaan yang sering diajukan
XML singkatan dari apa?
Extensible Markup Language. “Extensible” berarti Anda mendefinisikan tag sendiri, dan “markup” berarti struktur ditulis sebagai tag yang mengapit data.
Apakah XML termasuk bahasa pemrograman?
Bukan. XML adalah format data: XML mendeskripsikan dan menyusun informasi, tetapi tidak dapat melakukan komputasi. Teknologi terkait seperti XPath dan XSLT digunakan untuk melakukan query dan transformasi pada XML.
Apakah XML masih digunakan saat ini?
Ya. JSON telah menggantikan XML di banyak web API, tetapi XML tetap menjadi standar untuk sitemap, feed RSS, SVG, dokumen perkantoran, layout Android, layanan SOAP, dan faktur elektronik di banyak negara.
Terakhir diperbarui: