XML Pemformat & Minifier

Tempel XML untuk memformat, mempercantik, atau memperkecilnya secara instan.

Tidak ada data yang meninggalkan perangkat Anda

Cara penggunaan

  1. Tempel XML Anda di area input.
  2. Klik Format untuk mempercantik atau Minify untuk mengompres.
  3. 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:

Terbentuk Baik vs Valid: Keduanya Bukan Hal yang Sama

XML menggunakan dua tingkat kesesuaian yang berbeda dan keduanya mudah membingungkan:

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 &amp tanpa ; penutup.

EntitasKarakterWajib digunakan
&lt;<Selalu dalam konten elemen (jika tidak akan memulai sebuah tag)
&amp;&Selalu (jika tidak akan memulai referensi entitas)
&gt;>Wajib di dalam urutan ]]> dalam konten; direkomendasikan di tempat lain demi simetri
&apos;'Di dalam nilai atribut yang dibatasi dengan tanda kutip tunggal
&quot;"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:

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

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

  1. & yang tidak di-escape dalam konten teks. Ampersand telanjang selalu tidak valid; gunakan &amp;.
  2. Tag yang tidak cocok atau tidak ditutup. Error parse paling umum. Setiap <tag> membutuhkan </tag> yang sesuai (atau gunakan bentuk self-closing <tag/>).
  3. Beberapa elemen root. Dokumen XML harus memiliki tepat satu elemen paling luar. Jika Anda memiliki dua saudara di tingkat atas, bungkus dalam elemen induk.
  4. 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.
  5. Karakter yang dicadangkan dalam nilai atribut. <tag attr="a<b"> tidak valid meskipun < terlihat tidak berbahaya di dalam tanda kutip.
  6. BOM asing di depan deklarasi XML. Beberapa editor teks secara diam-diam menyisipkan BOM UTF-8 yang membingungkan parser yang ketat.
  7. 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.

Alat terkait

Pemformat & Validator JSON Gratis Online JSON ke YAML Konverter SQL Pemformat