Cek XML Anda
Tag yang tidak cocok, entity yang tidak didefinisikan, namespace yang rusak — ditemukan dan ditunjukkan lokasinya dengan tepat oleh parser XML milik browser sendiri. Tidak ada yang disimpan.
- Tidak pernah disimpan
- Tanpa antre, tanpa menunggu
- Tanpa daftar, tanpa watermark
Tempel XML dan XML langsung diperiksa saat Anda mengetik.
Cara kerjanya
Tempel XML Anda
Atau letakkan file-nya. Tidak ada yang dikirim ke mana pun.
Baca hasilnya
Well-formed, dengan ringkasan isinya. Atau baris dan kolom persis dari masalah pertama.
Perbaiki dan cek ulang
Edit langsung di tempat; hasilnya diperbarui saat Anda mengetik.
Dua standar yang berbeda, dan mana yang diperiksa di sini
XML menetapkan dua tingkat kebenaran, dan keduanya sering tertukar. Well-formed berarti dokumen mematuhi sintaksis XML itu sendiri: satu elemen root, setiap tag ditutup, susunan yang benar, karakter yang sah, ampersand dan kurung sudut yang di-escape dengan benar, nilai atribut dalam tanda kutip, dan nama atribut yang unik dalam satu elemen. Valid berarti sesuatu yang lebih ketat — bahwa dokumen juga sesuai dengan skema tertentu, dengan elemen yang tepat dalam urutan yang tepat dan berisi jenis nilai yang tepat. Halaman ini memeriksa yang pertama. Setiap parser XML menolak dokumen yang gagal di tahap ini, jadi inilah pemeriksaan yang menentukan apakah sebuah file bisa dibaca sama sekali.
Kesalahannya bisa ditebak. & yang tidak di-escape adalah yang paling umum, jauh di atas yang lain — karakter ini mengawali referensi entity, jadi URL dengan query string yang ditempel langsung ke dalam elemen akan merusak dokumen. < telanjang di dalam teks juga begitu. Lalu ada tag yang tidak cocok atau tidak ditutup, elemen yang ditutup dengan urutan salah, dua elemen root, dan karakter kontrol nyasar yang sama sekali tidak diizinkan XML meskipun tidak terlihat di dalam file.
DTD atau skema sengaja tidak pernah diambil, dan itu adalah fitur keamanan, bukan fitur yang kurang. Dokumen XML bisa menyebut external entity, dan parser yang menguraikannya akan mengambil apa pun yang ditunjuknya — file di disk, alamat di jaringan internal. Itulah kerentanan XML External Entity, salah satu jenis bug yang paling sering dieksploitasi, dan satu-satunya pertahanan yang tuntas adalah tidak menguraikannya. Jadi tidak ada apa pun di sini yang menghubungi apa pun, dan konsekuensinya validasi terhadap skema berada di luar cakupan.
Yang Anda dapatkan adalah baris dan kolom persis tempat penguraian berhenti. Seperti parser mana pun, itu adalah tempat dokumen berhenti masuk akal, bukan tempat kesalahannya berada: tag yang tidak ditutup biasanya dilaporkan di tag penutup tak terduga yang muncul sesudahnya, terkadang ratusan baris kemudian. Posisi yang dilaporkan adalah titik awal untuk mencari ke atas, bukan tempat yang harus diedit.
Jika Anda butuh hal lain
Untuk memvalidasi terhadap skema, xmllint adalah alat acuannya: xmllint --noout --schema schema.xsd file.xml untuk XSD, --relaxng untuk RELAX NG, dan --noout --valid untuk DTD. Alat ini melaporkan setiap pelanggaran, tidak berhenti di yang pertama, dan itulah yang Anda perlukan ketika sebuah dokumen memang salah, bukan sekadar rusak.
Untuk apa pun yang melibatkan input yang tidak tepercaya, konfigurasi parser lebih penting daripada validator. Matikan penguraian external entity dan pemrosesan DTD secara eksplisit di bahasa apa pun yang Anda pakai — defusedxml di Python, LIBXML_NONET di PHP, secure processing di Java — karena beberapa parser populer masih menguraikan entity secara default, dan di default itulah kerentanannya berada.
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 arti “well-formed”?
Artinya dokumen mematuhi aturan XML itu sendiri: setiap tag ditutup, tag tersusun dalam urutan yang benar, tepat satu elemen root, atribut dalam tanda kutip, dan setiap & dan < di-escape atau menjadi bagian dari entity yang valid. Ini adalah yang pertama dari dua pertanyaan yang bisa Anda ajukan tentang XML. Yang kedua — apakah dokumen sesuai dengan skema tertentu — adalah hal terpisah, dan halaman ini tidak menjawabnya.
Apakah alat ini memvalidasi terhadap skema DTD atau XSD?
Tidak. Alat ini memeriksa bahwa dokumen adalah XML yang well-formed, dan itulah kegagalan yang sebenarnya dihadapi kebanyakan orang. Validasi skema membutuhkan file skema Anda dan parser yang bisa memvalidasi, dan tidak ada browser yang menyediakannya; mengklaim bisa melakukannya di sini berarti mengirim dokumen Anda ke server atau diam-diam tidak memeriksanya. Perbedaan ini perlu diketahui: sebuah dokumen bisa well-formed sempurna namun tetap salah menurut skemanya.
Apa saja error XML yang paling umum?
Ampersand telanjang adalah yang paling sering — & harus ditulis &, bahkan di dalam URL, jadi query string yang ditempel langsung ke dalam elemen akan merusak dokumen. Setelah itu: tag yang ditutup dengan urutan salah, dua elemen root, entity yang tidak didefinisikan seperti (yang didefinisikan di HTML tetapi tidak di XML), dan prefix namespace yang dipakai tanpa dideklarasikan. Masing-masing dilaporkan dengan namanya beserta posisinya.
Apakah HTML termasuk XML yang valid?
Biasanya tidak, dan itu wajar, bukan kesalahan. HTML mengizinkan tag yang tidak ditutup seperti <br> dan <li>, atribut tanpa tanda kutip, dan ampersand telanjang; XML tidak mengizinkan satu pun. Jika Anda membutuhkan HTML yang juga merupakan XML valid, itulah XHTML, dan setiap tag-nya harus ditutup.
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: Memeriksa well-formedness, bukan validasi skema. Tag yang seimbang, susunan yang benar, dan karakter yang sah diperiksa, dan Anda mendapatkan baris dan kolom persis dari masalah pertama. Memvalidasi terhadap DTD atau XSD berarti harus mengambil file tersebut, dan itu adalah permintaan jaringan yang sengaja tidak pernah dilakukan halaman ini.
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.