Apa itu pemformatan XML?
XML (Extensible Markup Language) adalah format teks terstandarisasi W3C untuk dokumen terstruktur dan pertukaran data. Pemformatan — juga disebut pretty-printing atau beautifying — mengambil sumber XML yang well-formed dan mengindentasinya ulang agar setiap elemen, atribut, komentar, processing instruction, dan bagian CDATA mudah dipindai. Pohon dokumen yang telah diparsing dipertahankan persis; hanya spasi di antara elemen yang berubah.
Bagaimana pemformatan XML bekerja?
Masukan Anda diproses sepenuhnya di browser menggunakan API DOMParser dan XMLSerializer bawaan ditambah indenter rekursif khusus. Langkah-langkah utamanya:
- Masukan Anda dibaca apa adanya dari textarea — setiap byte yang Anda tempel disimpan di memori lokal.
- Browser memparsinya dengan
new DOMParser().parseFromString(text, 'application/xml'). Jika masukan tidak well-formed, parser menyisipkan simpul<parsererror>yang payload teksnya membawa petunjuk baris dan kolom dari engine — petunjuk itu ditampilkan apa adanya di strip kesalahan. - Pada parsing yang berhasil, indenter khusus menelusuri pohon DOM secara depth-first, memancarkan setiap elemen, set atribut, bagian CDATA, komentar, dan processing instruction pada baris tersendiri di kedalaman saat ini. Tag void menutup-diri dihormati ketika opsi aktif.
- Mode minify membalikkan pipeline:
XMLSerializer().serializeToString(doc)memancarkan bentuk satu baris, lalu regex yang dijaga menghapus spasi antar elemen tanpa menyentuh teks di dalam blok CDATA atau node teks yang bukan spasi. - Keluaran ditulis ke textarea hanya-baca, strip kesalahan dibersihkan, dan tombol Unduh mengemas hasilnya sebagai berkas
.xmlyang dapat Anda kirim atau lampirkan ke tiket.
Mengapa pretty-print XML dengan alat ini?
- Privasi: setiap proses parsing, format, dan minify terjadi di browser Anda. XML tidak pernah mencapai server kami — tidak ada unggahan, telemetri, atau akun.
- Kesalahan presisi: ketika masukan rusak, parser menampilkan baris dan kolom persis seperti yang dilaporkan engine browser sendiri, bukan tebakan sintetis — angka yang sama dengan yang Anda lihat di DevTools.
- Round-trip setia: format lalu minify dan Anda mendapatkan kembali byte-equivalent dokumen asli (modulo opsi deklarasi XML) — pemformatan tidak meng-re-canonicalise namespace atau menyusun ulang atribut.
- Cepat: DOMParser murni plus indenter ~60 baris menangani envelope SOAP dan potongan OOXML berukuran multi-megabyte secara instan, tanpa pustaka eksternal yang perlu dimuat.
Apa saja aplikasi umum pemformatan XML?
Pretty-printing XML muncul di seluruh penerbitan web, integrasi perusahaan, dan arsip data:
- Inspeksi feed RSS / Atom: tempel body podcast atau feed berita untuk mengonfirmasi metadata channel, urutan item, dan prefix namespace sebelum publikasi.
- Debug SOAP: format envelope yang disalin dari Wireshark atau log client SOAP supaya bagian Header, Body, dan Fault terlihat sekilas.
- Audit sitemap: indentasi ulang sitemap.xml yang diambil dari pesaing atau site staging Anda untuk menghitung entri dan memverifikasi alternatif hreflang per URL.
Seperti apa contoh pemformatan XML?
Menempelkan <feed><entry><title>Hello</title></entry></feed> yang terdiri dari tiga elemen dan menekan Format dengan opsi indentasi 2 spasi menghasilkan dokumen empat baris dengan tiap elemen di barisnya sendiri, diindentasi sesuai kedalaman. Beralih ke Minify pada masukan yang sama mengembalikannya ke string byte asli. Round-trip tanpa kehilangan untuk dokumen well-formed mana pun.
Apakah ini berjalan luring?
Ya. Pipeline format dan minify adalah DOMParser + XMLSerializer murni plus indenter rekursif kecil, semuanya berjalan di tab browser. Tidak ada yang diunggah, tidak ada service worker yang memproksi masukan Anda, dan halaman tidak melakukan permintaan jaringan untuk langkah format itu sendiri. Satu-satunya lalu lintas keluar adalah aset pemuatan halaman standar (CSS, font, analitik) — XML Anda tidak pernah mencapai Ultim8Soft.
Apakah pemformatan mengubah dokumen?
Tidak ada perubahan semantik. Pemformatan hanya menulis ulang spasi di antara elemen. Nama elemen, nilai atribut, konten teks, payload CDATA, komentar, dan processing instruction dipertahankan byte demi byte. Deklarasi namespace dan prefix dijaga persis seperti yang ditulis masukan — formatter tidak meng-re-canonicalise atau menyusun ulang atribut. Keluaran terurai menjadi pohon DOM yang sama dengan masukan, modulo toggle deklarasi XML opsional.
Bagaimana CDATA / komentar / processing instruction ditangani?
Masing-masing dipancarkan apa adanya pada baris tersendiri di kedalaman indentasi saat ini. Payload CDATA dibungkus dalam <![CDATA[…]]> tanpa indentasi ulang di dalam — spek mengatakan konten CDATA bersifat opaque, sehingga formatter tidak pernah menyentuhnya. Komentar memakai <!-- … -->; processing instruction memakai <?target data?>. Ketiganya bertahan dalam round-trip format → minify → format dengan konten utuh.
Apa beda pemformatan dan minifikasi XML?
Pemformatan memperluas spasi agar manusia dapat membaca pohon dokumen; minifikasi menghapusnya kembali untuk transport dan penyimpanan. Keduanya beroperasi pada DOM yang sudah diparsing, bukan pada string byte mentah, sehingga round-trip format → minify pada dokumen well-formed menghasilkan byte-equivalent dari bentuk minified asli. Gunakan arah format ketika Anda perlu membaca atau diff payload XML, dan arah minify ketika Anda ingin mengirimnya melalui API gateway berbayar atau menyematkannya di dalam dokumen lain.
Formatter XML ini menggunakan parser yang sama dengan yang dipakai browser Anda untuk respons AJAX XHR dan dokumen SVG, jadi setiap XML well-formed — RSS, Atom, SOAP, sitemap, OOXML, SVG — round-trip dengan bersih. Tempel XML apa pun di atas, salin keluarannya, atau unduh sebagai .xml.