Format XML
Ubah XML yang menumpuk jadi mudah dibaca, atau padatkan kembali. Komentar, bagian CDATA, dan namespace tetap utuh. Tidak ada yang disimpan.
- Tidak pernah disimpan
- Tanpa antre, tanpa menunggu
- Tanpa daftar, tanpa watermark
XML yang sudah diformat muncul di sini.
Cara kerjanya
Tempel XML Anda
Atau letakkan file .xml, .svg, .rss, atau .xsd. File tidak pernah disimpan.
Pilih indentasi
Dua spasi, empat, tab, atau di-minify menjadi satu baris.
Salin atau unduh
Jika XML-nya rusak, Anda mendapatkan baris dan kolomnya, bukan hasil.
Mengapa merapikan indentasi XML lebih berisiko daripada kelihatannya
Secara default, spasi di XML itu bermakna, dan inilah yang sering menjebak orang. Berbeda dengan JSON, yang formatnya bebas diubah, parser XML wajib melaporkan spasi dan baris baru di antara elemen sebagai isi teks — skemalah, jika ada, yang menyatakan bahwa semua itu boleh diabaikan. Jadi merapikan indentasi sebuah dokumen benar-benar mengubahnya. Untuk sebagian besar file konfigurasi dan data, hal ini tidak berpengaruh apa-apa, tetapi untuk dokumen dengan mixed content — teks dan elemen berdampingan, seperti di XHTML atau DocBook — hal ini bisa mengubah isi dokumen.
Karena itu, format di sini tidak menyentuh bagian yang memang harus dibiarkan. Elemen yang memiliki xml:space="preserve" mempertahankan isinya persis seperti yang tertulis, karena atribut itu memang ada untuk menyatakan hal tersebut. Bagian CDATA diteruskan tanpa diubah; bagian ini ada untuk menampung teks yang tidak boleh ditafsirkan, dan memformat ulang isinya akan merusaknya. Referensi entity tetap berupa referensi, tidak diurai menjadi karakter yang diwakilinya.
Namespace dipertahankan persis seperti yang tertulis — prefix, deklarasi, dan elemen yang terikat padanya. Kedengarannya sepele, padahal tidak: formatter yang menormalkan prefix, atau memindahkan deklarasi ke tempat yang dianggapnya tepat, menghasilkan dokumen yang secara teknis setara tetapi gagal di alat yang mencocokkan prefix secara harfiah. Urutan atribut juga dipertahankan, meskipun XML menganggapnya tidak bermakna, dengan alasan yang sama — karena diff terhadap versi sebelumnya lebih berharga daripada kerapian.
Yang diperiksa saat memformat adalah well-formedness: setiap tag ditutup, susunannya benar, satu elemen root, karakter yang sah, serta ampersand dan kurung sudut yang di-escape dengan benar. Itulah yang lebih rendah dari dua standar XML. Sebuah dokumen bisa well-formed sempurna namun tetap tidak valid terhadap DTD atau skema yang mengaturnya, dan hal itu tidak akan terungkap seberapa pun dokumennya diformat.
Jika Anda butuh hal lain
xmllint --format in.xml melakukan pekerjaan yang sama di command line dan sudah terpasang di sebagian besar sistem Unix; xmlstarlet fo --indent-tab memberi kendali lebih atas indentasinya. Keduanya menangani file yang jauh lebih besar daripada yang bisa ditampung sebuah halaman di memori.
Jika dokumen perlu dibandingkan, ditandatangani, atau disimpan secara kanonis, memformat sama sekali bukan operasi yang tepat. Canonical XML — xmllint --c14n — menghasilkan satu bentuk ternormalisasi yang sama untuk dua dokumen yang setara, dan itulah yang diandalkan tanda tangan digital pada XML. Merapikan dokumen yang sudah ditandatangani akan merusak tanda tangannya, dan itu cara paling mahal untuk mempelajari hal ini.
Pertanyaan yang sering diajukan
Apakah XML saya disimpan di suatu tempat?
Tidak. Tidak ada panggilan ke server dan tidak ada pencatatan log, dan tidak ada yang disimpan. Anda bisa memutus koneksi internet setelah halaman dimuat dan alat ini tetap berfungsi. Hal ini lebih penting daripada kelihatannya: yang biasa ditempel orang ke formatter online adalah respons API, file konfigurasi, dan payload error, dan semua itu sering membawa token, data pelanggan, dan hostname internal.
Apa saja yang tetap utuh setelah diformat?
Komentar, bagian CDATA, processing instruction, deklarasi XML, dan semua prefix namespace. Urutan atribut dipertahankan seperti yang tertulis. Elemen yang hanya berisi teks tetap di satu baris, karena memecah <title>Hello</title> menjadi tiga baris tidak membuatnya lebih rapi — dan di dokumen mixed content, hal itu akan mengubah isi teksnya.
Apakah indentasi akan mengubah makna XML saya?
Di elemen yang hanya berisi elemen lain, tidak. Tetapi XML tidak punya aturan umum bahwa spasi tidak bermakna — di mixed content, tempat teks dan elemen berdampingan, spasi yang ditambahkan MENJADI bagian dari teks. Itulah sebabnya elemen yang hanya berisi teks dibiarkan di satu baris di sini, tidak dipecah. Jika dokumen Anda benar-benar memiliki mixed content dan spasinya penting, minify adalah operasi yang lebih aman.
Apakah bisa dipakai untuk HTML?
Hanya jika HTML-nya merupakan XML yang well-formed — dan sebagian besar HTML di dunia nyata tidak begitu. Tag <br>, <img>, dan <li> yang tidak ditutup, atribut tanpa tanda kutip, dan ampersand telanjang semuanya sah di HTML dan semuanya tidak valid di XML. Parser di sini adalah parser XML yang ketat, jadi semua itu akan dilaporkan sebagai error, bukan ditebak. XHTML dan SVG bisa diformat dengan sempurna.
Bagaimana dengan SVG?
Bisa — SVG adalah XML, dan ini cara yang baik untuk membaca SVG yang sudah di-minify. Path, gradien, dan style yang disematkan semuanya tetap tidak berubah; hanya spasi di antara elemen yang berpindah.
Apakah ada batas ukuran?
Hanya memori yang tersedia, bukan batas yang kami tetapkan. Dokumen berukuran beberapa megabyte langsung terformat; dokumen yang sangat besar dibatasi oleh seberapa banyak yang bisa ditampung sekaligus, bukan oleh apa pun di pihak kami.
Perlu diketahui: Hanya memeriksa well-formedness. Dokumen diperiksa apakah tag-nya seimbang, susunannya benar, dan karakternya sah, lalu indentasinya dirapikan — tetapi DTD atau XSD tidak diambil maupun diterapkan, jadi sebuah file bisa terformat rapi namun tetap tidak valid terhadap skemanya. Namespace dipertahankan persis seperti yang tertulis.
Pasang alat ini di situs Anda
Gratis untuk blog, halaman kelas, atau artikel bantuan apa pun. Tempel satu potong kode dan pengunjung Anda bisa langsung memakainya di halaman Anda.