Validator XSD
Dokumen XML yang well-formed tetap bisa salah: kehilangan elemen wajib, memakai tipe data salah untuk sebuah atribut, atau elemen berada dalam urutan yang keliru. XSD (XML Schema Definition) menjelaskan persis seperti apa dokumen seharusnya. Validator ini memasangkan XML Anda dengan XSD-nya, menjalankan validator W3C XML Schema, dan mendaftar setiap pelanggaran beserta baris, elemen, dan batasan spesifik yang dilanggar.
Cara memvalidasi XML terhadap XSD
-
1
Tempel kedua file
XML di satu sisi, skema XSD di sisi lain. Beberapa skema bisa ditempel bersamaan.
-
2
Jalankan validasi
Parser mencocokkan elemen, atribut, dan tipe terhadap deklarasi skema.
-
3
Tinjau kesalahan
Setiap pelanggaran menampilkan jalur elemen, batasan yang diharapkan, dan nilai aktual.
-
4
Perbaiki dan validasi ulang
Edit di tempat dan jalankan ulang tanpa memuat ulang.
Apa yang dicek XSD
- Nama elemen dan kardinalitas: wajib, opsional, kemunculan min/maks.
- Urutan elemen: sequence, choice, all.
- Keberadaan dan tipe atribut: wajib vs opsional, nilai default, nilai tetap.
- Tipe data:
xs:string,xs:integer,xs:decimal,xs:dateTime,xs:boolean,xs:anyURI, kustom. - Batasan: panjang min/maks, enumerasi, pola regex, nilai min/maks.
- Integritas referensial:
xs:key,xs:keyref,xs:uniqueuntuk batasan antar-elemen.
Kesalahan tipikal
| Kesalahan | Batasan XSD |
|---|---|
Elemen wajib <email> hilang |
minOccurs="1" |
Terlalu banyak elemen <phone> |
maxOccurs="2" terlampaui |
| Nilai “abc” bukan integer valid | type="xs:integer" |
| Nilai “[email protected]” tidak cocok pola | xs:pattern pada xs:string |
| Elemen tidak berurutan | xs:sequence |
Elemen tidak dikenal <foo> |
Tidak dideklarasikan dalam skema |
| Key ganda | Pelanggaran xs:unique |
Memilih antara XSD dan alternatif
- XSD: standar W3C, bertele-tele, kuat, didukung luas. Pilihan utama untuk XML enterprise.
- RELAX NG: sintaks lebih sederhana, sama ekspresifnya. Populer dalam format dokumentasi (DocBook, TEI).
- Schematron: berbasis aturan, menjalankan asersi XPath terhadap dokumen. Bagus untuk aturan bisnis di luar struktur.
- DTD: lebih tua, jauh kurang ekspresif. Masih dipakai untuk kompatibilitas historis HTML.
Banyak proyek memakai XSD untuk struktur dan Schematron untuk aturan antar-bidang yang kompleks.
Jebakan umum
- Namespace harus cocok. Jika XSD mendeklarasikan
targetNamespace="http://example.com"tetapi XML tidak memakai namespace itu, validasi gagal dengan “no declaration found”. - xs:anyType bukan jalan pintas ajaib. Ia cocok dengan apa saja tetapi tidak memberi validasi sama sekali.
- Nilai default berlaku hanya saat atribut tidak ada. Nilai kosong eksplisit (
attr="") tidak mendapat default. - Penanganan whitespace bervariasi menurut tipe.
xs:stringmempertahankannya,xs:tokenmemadatkannya,xs:normalizedStringmengganti tab/newline dengan spasi.
Alur debugging
- Validasi tanpa skema dulu (cek well-formedness). Perbaiki kesalahan parse apa pun.
- Lalu validasi terhadap skema.
- Fokus pada kesalahan pertama. Validator XSD kadang menghasilkan kesalahan berantai; yang pertama biasanya paling bisa ditindaklanjuti.
- Gunakan XPath untuk menemukan elemen yang bermasalah dalam dokumen besar.
Pertanyaan yang Sering Diajukan
Tidak. Tempel secara terpisah, atau rujuk skema melalui xsi:schemaLocation dalam XML. Sebagian besar tool mendukung kedua pendekatan.
Ya. Saat elemen dari namespace berbeda muncul, masing-masing butuh skema sendiri. Tempel semuanya; validator memuat semuanya.
XSD 1.0. Mesin libxml yang mendasarinya tidak mengimplementasikan XSD 1.1, sehingga fitur khusus 1.1 seperti asersi, tipe kondisional, dan open content tidak diberlakukan.
Tidak. XML dan skema Anda dikirim ke server hanya untuk menjalankan validasi pada permintaan tunggal itu; keduanya tidak disimpan atau dicatat setelahnya.
Alat Terkait
Referensi Tabel ASCII
Tabel ASCII lengkap dari 0 sampai 127 dengan desimal, heksadesimal, oktal, biner, dan referensi karakter numerik HTML untuk setiap karakter, termasuk kode kontrol seperti NUL, LF, dan DEL.
Referensi Karakter HTML
Daftar entitas HTML yang dapat dicari, beserta kode bernama dan kode numeriknya, serta fitur salin dengan satu klik untuk karakter khusus dan simbol.
Generator Konfigurasi Nginx
Buat server block Nginx dengan TLS, HTTP/2, gzip, cache browser, dan aturan reverse proxy hanya dari sebuah formulir sederhana.
JSON ke YAML
Konversi JSON ke YAML dengan penjelajaran yang tepat, penutupan string yang aman, skalar blok berbaris ganda, serta kunci yang tersortir untuk konfigurasi yang lebih rapi.
Penghasil Meta Tag
Buat fragmen lengkap `<head>` dengan judul, deskripsi, tag Open Graph, Twitter Card, canonical, dan robots dari formulir sederhana.
Generator Tabel Markdown
Buat tabel Markdown secara visual atau tempelkan file berformat CSV/TSV. Atur penjajaran kolom, pengisian ruang kosong (padding), dan baris kepala; kemudian salin hasil tampilan Markdown yang telah diatur tersebut.
Alat ini tersedia dalam bahasa lain
- XSDバリデーター [JA]
- XSD-validator [NL]
- Validador XSD [ES]
- Bộ xác thực XSD [VI]
- مُحقق تنسيق XSD [AR]
- XSD 검증기 [KO]
- เครื่องตรวจสอบความถูกต้องของ XSD (XSD Validator) [TH]
- XSD-validerare [SV]
- Validateur XSD [FR]
- XSD-Validator [DE]
- Walidator XSD [PL]
- Validador XSD [PT]
- XSD Validator [EN]
- Validator XSD [IT]
- Валидатор XSD [RU]
- XSD Doğrulayıcı [TR]
- XSD 校验工具 [ZH]