XML Pemformat & Minifier
Tempel XML untuk memformat, mempercantik, atau memperkecilnya secara instan.
Cara penggunaan
- Tempel XML Anda di area input.
- Klik Format untuk mempercantik atau Minify untuk mengompres.
- Salin atau unduh hasilnya.
Pertanyaan yang sering diajukan
Apa yang terjadi jika XML saya berisi kesalahan?
Alat memvalidasi XML Anda menggunakan DOMParser bawaan peramban. Kesalahan sintaks ditampilkan dalam kotak merah di atas output.
Apakah mendukung bagian CDATA, komentar, dan instruksi pemrosesan?
Ya. Pemformat mempertahankan semua jenis node XML, termasuk bagian CDATA, komentar, dan instruksi pemrosesan.
Apakah ada batas ukuran?
Tidak ada batas ketat · tergantung pada memori peramban Anda. Berkas XML beberapa MB biasanya diformat secara instan.
Tur Praktis XML
XML 1.0 menjadi Rekomendasi W3C pada 10 Februari 1998, diedit oleh Tim Bray, Jean Paoli, dan C. M. Sperberg-McQueen, dengan kelompok kerja yang diketuai oleh Jon Bosak dari Sun. Kutipan peluncuran Tim Bray merangkum maksud desainnya: «XML bersifat extensible, terinternasionalisasi, robust, sederhana, dan dibangun untuk Web.» Versi kanonik saat ini adalah Edisi Kelima, diterbitkan 26 November 2008, diedit oleh Bray, Paoli, Sperberg-McQueen, Eve Maler, dan François Yergeau. XML diturunkan langsung dari SGML (ISO 8879:1986), format dokumen yang jauh lebih besar dan lebih sulit diimplementasikan, di mana XML membuang sebagian besar bagian yang jarang digunakan sambil mempertahankan model dokumennya.
Di Mana XML Masih Digunakan pada 2026
JSON telah mendominasi payload API REST selama lebih dari satu dekade, tetapi XML tetap tertanam di mana pun ketelitian skema, semantik dokumen, atau standar yang sudah ditetapkan menguncinya. Mengetahui di mana Anda akan menemuinya pada hari tertentu adalah setengah dari nilai formatter yang baik:
- Format dokumen Office:
.docx/.xlsx/.pptxMicrosoft adalah arsip zip yang penuh bagian XML, distandarisasi sebagai ECMA-376 dan ISO/IEC 29500..odt/.ods/.odpOpenDocument (ISO/IEC 26300) mengikuti pola yang sama. E-book EPUB juga dikemas dalam XML. - Kosakata web: SVG (grafik vektor), MathML (notasi matematika), feed Atom, RSS 2.0, dan protokol
sitemap.xmlyang diurai Google dan Bing untuk penjadwalan crawl. - SOAP dan pesan enterprise: back-end perbankan, telekomunikasi, asuransi, dan pemerintah masih mengekspos endpoint SOAP, sering di balik fasad REST. Standar industri di atas XML meliputi FpML untuk derivatif, XBRL untuk arsip SEC, ACORD untuk asuransi, dan ISO 20022 untuk pesan pembayaran.
- File build dan konfigurasi:
pom.xmlMaven, Spring beans lama, setiap resource Android (AndroidManifest.xml,res/values/strings.xml,res/layout/*.xml), danInfo.plistApple dalam variannya yang XML. - Pertukaran domain vertikal: KML untuk Google Earth, GPX untuk jejak GPS, MusicXML untuk not musik (4.0 diterbitkan 2021), XLIFF untuk lokalisasi (2.1 distandarisasi sebagai ISO 21720 pada Juli 2024), HL7 v3 / CDA untuk dokumen klinis.
Terbentuk Baik vs Valid: Keduanya Bukan Hal yang Sama
XML menggunakan dua tingkat kesesuaian yang berbeda dan keduanya mudah membingungkan:
- Terbentuk baik berarti dokumen mematuhi tata bahasa XML, tepat satu elemen root, semua tag seimbang dan tersusun dengan benar, nilai atribut dikutip, referensi entitas ditutup dengan titik koma, tidak ada
<atau&yang tidak di-escape dalam konten teks. - Valid berarti dokumen yang terbentuk baik juga sesuai dengan DTD yang dideklarasikan, XSD (XML Schema 1.1), RELAX NG, atau skema Schematron, elemen yang tepat di tempat yang tepat, dengan nilai atribut dari tipe yang tepat, dalam kardinalitas yang tepat.
Formatter ini hanya memeriksa keterbentukan. DOMParser bawaan browser melaporkan error parse pertama yang ditemuinya melalui elemen parsererror, yang ditampilkan alat dalam kotak error merah. Validasi terhadap skema memerlukan alat yang berbeda (Saxon untuk XSD, libxml2 dengan xmllint --schema, layanan validator W3C, dll.).
Lima Referensi Entitas yang Telah Ditentukan
Per W3C XML 1.0 §4.6, «dokumen yang terbentuk baik tidak perlu mendeklarasikan entitas berikut mana pun»: amp, lt, gt, apos, quot. Tanda titik koma akhir bersifat wajib, XML, tidak seperti beberapa penggunaan HTML, tidak akan pernah menerima & tanpa ; penutup.
| Entitas | Karakter | Wajib digunakan |
|---|---|---|
< | < | Selalu dalam konten elemen (jika tidak akan memulai sebuah tag) |
& | & | Selalu (jika tidak akan memulai referensi entitas) |
> | > | Wajib di dalam urutan ]]> dalam konten; direkomendasikan di tempat lain demi simetri |
' | ' | Di dalam nilai atribut yang dibatasi dengan tanda kutip tunggal |
" | " | Di dalam nilai atribut yang dibatasi dengan tanda kutip ganda |
Bagian CDATA, Komentar, dan Instruksi Pemrosesan
Tiga fitur sintaksis khusus yang akhirnya ditemui siapa pun saat memformat XML:
- Bagian CDATA: blok
<![CDATA[ … ]]>memungkinkan Anda menyematkan teks sembarang tanpa meng-escape<dan&. Satu-satunya urutan yang tidak dapat Anda masukkan di dalam CDATA adalah pembatas penutup literal]]>. Berguna untuk menyematkan sampel kode, pola regex, atau fragmen HTML di dalam dokumentasi XML. - Komentar:
<!-- … -->. String--ilegal di dalam komentar. - Instruksi pemrosesan:
<?target …?>. Deklarasi XML sendiri secara teknis bukan PI, tetapi sebagian besar tooling memperlakukannya sama:<?xml version="1.0" encoding="UTF-8"?>adalah baris pertama yang direkomendasikan.
Namespace
Mekanisme namespace XML memungkinkan beberapa kosakata hidup berdampingan dalam satu dokumen, Atom ditambah ekstensi kustom, SOAP ditambah header WS-Security, bagian dokumen utama OOXML yang mereferensikan hubungan, gambar, dan grafik dari namespace saudara. Sintaksisnya adalah xmlns="…" untuk namespace default dan xmlns:prefix="…" untuk namespace berprefiks, dan formatter mempertahankan keduanya tanpa perubahan. URI namespace adalah pengidentifikasi, bukan URL, tidak harus merujuk ke apa pun.
Dua Celah Keamanan XML yang Terkenal
Serangan Billion Laughs. File XML kecil dengan entitas yang berkembang secara rekursif dapat membengkak menjadi miliaran karakter dalam memori parser:
<!ENTITY lol "lol">
<!ENTITY lol2 "&lol;&lol;&lol;&lol;&lol;&lol;&lol;&lol;&lol;&lol;">
<!ENTITY lol3 "&lol2;&lol2;&lol2;&lol2;&lol2;&lol2;&lol2;&lol2;&lol2;&lol2;">
<!-- … nine more layers later, the document expands to 10^9 lols -->
Parser modern membatasi ekspansi entitas untuk mengatasinya. Serangan XXE (XML External Entity) mengeksploitasi parser yang me-resolve entitas eksternal untuk membaca file lokal (<!ENTITY xxe SYSTEM "file:///etc/passwd">) atau memicu permintaan SSRF dari server. Lembar contekan pencegahan XXE OWASP tidak ambigu: «cara paling aman untuk mencegah XXE adalah selalu menonaktifkan DTD (Entitas Eksternal) sepenuhnya.» Itulah tepatnya yang dilakukan DOMParser browser, ia mengabaikan deklarasi entitas DOCTYPE sepenuhnya, itulah mengapa formatter sisi klien ini juga aman untuk memberi makan XML yang tidak tepercaya.
Pemformatan vs Minifikasi
- Format / Percantik membuat indentasi elemen bersarang, menempatkan tag pembuka dan penutup pada barisnya sendiri, dan menghasilkan output yang jauh lebih mudah dibaca tetapi biasanya 30-50% lebih besar dari padanan yang diminifikasi. Gunakan ini saat debugging, meninjau diff, atau mempelajari skema yang tidak familiar.
- Minifikasi menghapus semua spasi di antara elemen sambil mempertahankan spasi di dalam konten teks (XML mendefinisikan spasi di dalam konten elemen sebagai signifikan secara default kecuali diganti dengan
xml:space="default"). Gunakan ini untuk payload produksi dan untuk kasus apa pun di mana byte-on-the-wire penting.
Atribut xml:space adalah jalan keluar Anda ketika spasi benar-benar penting, misalnya kode sumber verbatim yang disematkan dalam dokumentasi. Setel xml:space="preserve" pada elemen leluhur dan prosesor yang sesuai akan mempertahankan setiap spasi dan baris baru dalam turunan byte-demi-byte.
Kesalahan XML Umum yang Ditangkap Formatter
&yang tidak di-escape dalam konten teks. Ampersand telanjang selalu tidak valid; gunakan&.- Tag yang tidak cocok atau tidak ditutup. Error parse paling umum. Setiap
<tag>membutuhkan</tag>yang sesuai (atau gunakan bentuk self-closing<tag/>). - Beberapa elemen root. Dokumen XML harus memiliki tepat satu elemen paling luar. Jika Anda memiliki dua saudara di tingkat atas, bungkus dalam elemen induk.
- Ketidakcocokan enkoding. Deklarasi
<?xml version="1.0" encoding="UTF-8"?>harus cocok dengan enkoding byte aktual file. BOM UTF-16 dengan deklarasi UTF-8 adalah versi klasik bug ini. - Karakter yang dicadangkan dalam nilai atribut.
<tag attr="a<b">tidak valid meskipun<terlihat tidak berbahaya di dalam tanda kutip. - BOM asing di depan deklarasi XML. Beberapa editor teks secara diam-diam menyisipkan BOM UTF-8 yang membingungkan parser yang ketat.
- Pemisah baris campuran di dalam area
xml:space="preserve". CR / LF / CRLF yang tidak konsisten dapat menghasilkan artefak spasi yang terlihat saat round-tripping melalui platform berbeda.
Pertanyaan yang Lebih Sering Diajukan
Mengapa format XML saya tidak menghasilkan output?
Paling sering karena input tidak terbentuk baik. Kotak error di atas output menampilkan error parse pertama yang ditemuinya DOMParser, biasanya tag yang hilang atau tidak cocok, & yang tidak di-escape, atau elemen root yang hilang. Perbaiki errornya dan jalankan ulang.
Apakah XML saya diunggah ke server?
Tidak. Pemformatan dan minifikasi keduanya berjalan di dalam DOMParser bawaan browser dan serializer JavaScript kecil. XML Anda tidak pernah meninggalkan halaman, yang penting untuk payload SOAP, file konfigurasi, dan apa pun yang mungkin mengandung kredensial, URL internal, atau data pelanggan sensitif.
Bisakah alat memvalidasi terhadap skema XSD atau DTD?
Tidak. Validasi skema memerlukan pemuatan file skema dan penyelesaian referensinya, yang merupakan masalah berbeda dari pemeriksaan keterbentukan yang dilakukan browser. Untuk validasi XSD, gunakan Saxon atau xmllint --schema di baris perintah, atau layanan validator XML Schema W3C.
Apakah XML masih relevan pada 2026, atau haruskah saya hanya menggunakan JSON?
Tergantung apa yang Anda lakukan. Untuk API REST baru, JSON hampir selalu menjadi pilihan yang tepat. Tetapi XML masih menjadi standar untuk dokumen Office (.docx, .xlsx), pesan enterprise (SOAP, standar keuangan), resource Android, EPUB, RSS / Atom, SVG, dan sebagian besar pertukaran industri yang diatur. Mengetahui cara membaca, memformat, dan memvalidasi XML masih merupakan keterampilan dasar; hanya saja bukan alat pertama setiap hari seperti JSON.
Apa yang dimaksud «pertahankan semua tipe node» untuk formatter?
Bagian CDATA, komentar, dan instruksi pemrosesan semuanya disimpan persis seperti yang muncul dalam input, formatter hanya mengubah spasi di antara elemen. Jadi blok <![CDATA[ if (a < b) { … } ]]> di-round-trip byte-demi-byte bahkan jika kontennya mengandung karakter < yang jika tidak harus di-escape.