Formatter & Validator XML
Tempel XML, format dengan indentasi yang tepat, atau validasi sintaks. Menangani atribut dan namespace. Tanpa unggah.
- Tempel XML Anda ke area teks kiri.
- Klik Format untuk round-trip melalui fast-xml-parser dan menghasilkan XML berindentasi.
- Klik Validasi untuk memeriksa well-formedness tanpa mengubah input.
- Kesalahan menunjuk ke posisi yang bermasalah dalam dokumen.
Apa fungsinya?
Memparse XML dengan fast-xml-parser dan mengeluarkannya kembali dengan indentasi konsisten. Urutan atribut dalam setiap elemen dipertahankan; sarang elemen dipertahankan persis. Konten campuran (teks + elemen anak) dan namespace (prefix:tag) tetap utuh. Output adalah XML well-formed — tetapi well-formed bukan sama dengan valid (validitas memerlukan schema atau DTD, yang tidak diperiksa alat ini).
Contoh
Input XML berantakan:
<root version="1"><name>Ada</name><tags>math</tags><tags>logic</tags></root> Output yang diformat:
<root version="1">
<name>Ada</name>
<tags>math</tags>
<tags>logic</tags>
</root> Kesalahan XML umum dan cara memperbaikinya
Aturan well-formedness XML lebih ketat daripada HTML. Pola di bawah mencakup sebagian besar kegagalan parser.
- Tag tidak ditutup. `<a><b></a>` tidak valid — `<b>` harus ditutup (`<b/>` atau `</b>` di suatu tempat). XML tidak memperbolehkan tag penutup opsional gaya HTML.
- Kasus huruf tidak cocok. XML peka huruf — `<Foo></foo>` adalah dua nama tag berbeda. Cocokkan kasus persis.
- Karakter khusus tidak di-escape. Sebuah `<`, `>`, `&`, atau kutip literal di dalam teks atau nilai atribut harus di-escape: `<`, `>`, `&`, `"`. Bungkus data dengan karakter ini dalam CDATA: `<![CDATA[...]]>`.
- Banyak root. XML memerlukan tepat satu elemen root. `<a/><b/>` di tingkat atas tidak valid — bungkus: `<root><a/><b/></root>`.
- Nama elemen tidak valid. Nama elemen tidak boleh dimulai dengan digit, mengandung spasi, atau menggunakan karakter dicadangkan (`< > & " \'`). Nama yang dimulai dengan `xml` (kasus apa pun) dicadangkan oleh spec.
- Kutip tidak cocok di sekitar atribut. `<a name="value\'>` mencampur kutip ganda dan tunggal. Pilih satu gaya konsisten per atribut. Salah satunya valid XML.
Pertanyaan yang sering diajukan
Apakah formatting mengubah data saya?
Hanya whitespace antar elemen. Urutan elemen, urutan atribut, nilai atribut, konten teks, dan kerangka CDATA dipertahankan. Bentuk self-closing (`<x/>`) dan bentuk eksplisit (`<x></x>`) bisa dinormalkan.
Apakah komentar XML dipertahankan?
fast-xml-parser membuang komentar secara default. Jika Anda butuh formatting yang mempertahankan komentar, gunakan alat berbeda (transformasi identitas XSLT, misalnya, atau `xmllint --format`).
Apakah ini memvalidasi terhadap schema?
Tidak. Ini hanya memeriksa well-formedness — bahwa dokumen di-parse sebagai XML yang valid secara sintaksis. Validasi schema (XSD, DTD, RelaxNG) adalah langkah terpisah yang membutuhkan schema sebagai input tambahan.
Bagaimana namespace ditangani?
Prefiks namespace dipertahankan sebagai bagian dari nama elemen (`x:foo`). Deklarasi namespace default dan binding prefiks dipertahankan sebagai atribut. Pemrosesan namespace-aware (resolusi URI) tidak dilakukan.
Apakah XML saya diunggah?
Tidak. Semua berjalan di browser Anda — input Anda di-parse dan diserialisasi ulang oleh JavaScript di halaman ini dan tidak pernah dikirim ke server.
Bisakah saya kustomisasi indentasi?
Saat ini tetap di 2 spasi per level. Untuk kustomisasi, jalankan fast-xml-parser di command line — pustaka yang sama — dan teruskan `{ indentBy: " " }` atau string lain.