Walidator XSD
Dokument XML poprawny składniowo może wciąż być błędny: brakować w nim wymaganego elementu, używać złego typu danych dla atrybutu albo mieć elementy w złej kolejności. XSD (XML Schema Definition) opisuje dokładnie, jak dokument powinien wyglądać. Ten walidator łączy Twój XML z jego XSD, uruchamia walidator W3C XML Schema i wypisuje każde naruszenie z wierszem, elementem i konkretnym ograniczeniem, które zostało złamane.
Jak zwalidować XML wobec XSD
-
1
Wklej oba pliki
XML po jednej stronie, schemat XSD po drugiej. Wiele schematów można wkleić razem.
-
2
Uruchom walidację
Parser dopasowuje elementy, atrybuty i typy do deklaracji schematu.
-
3
Przejrzyj błędy
Każde naruszenie pokazuje ścieżkę elementu, oczekiwane ograniczenie i faktyczną wartość.
-
4
Popraw i zwaliduj ponownie
Edytuj w miejscu i uruchom ponownie bez przeładowania.
Co sprawdza XSD
- Nazwy elementów i krotność: wymagane, opcjonalne, min./maks. wystąpień.
- Kolejność elementów: sequence, choice, all.
- Obecność i typ atrybutu: wymagany kontra opcjonalny, wartości domyślne, wartości stałe.
- Typy danych:
xs:string,xs:integer,xs:decimal,xs:dateTime,xs:boolean,xs:anyURI, niestandardowe. - Ograniczenia: min./maks. długość, wyliczenia, wzorce regex, min./maks. wartości.
- Integralność referencyjna:
xs:key,xs:keyref,xs:uniquedla ograniczeń międzyelementowych.
Typowe błędy
| Błąd | Ograniczenie XSD |
|---|---|
Brak wymaganego elementu <email> |
minOccurs="1" |
Zbyt wiele elementów <phone> |
Przekroczono maxOccurs="2" |
| Wartość „abc” nie jest prawidłową liczbą całkowitą | type="xs:integer" |
| Wartość „[email protected]” nie pasuje do wzorca | xs:pattern na xs:string |
| Elementy w złej kolejności | xs:sequence |
Nieznany element <foo> |
Niezadeklarowany w schemacie |
| Powielony klucz | Naruszenie xs:unique |
Wybór między XSD a alternatywami
- XSD: standard W3C, rozwlekły, potężny, szeroko obsługiwany. Pierwszy wybór dla firmowego XML.
- RELAX NG: prostsza składnia, równie wyrazista. Popularna w formatach dokumentacji (DocBook, TEI).
- Schematron: oparty na regułach, uruchamia asercje XPath wobec dokumentu. Dobry do reguł biznesowych wykraczających poza strukturę.
- DTD: starszy, znacznie mniej wyrazisty. Wciąż używany dla historycznej zgodności z HTML.
Wiele projektów używa XSD do struktury i Schematron do złożonych reguł międzypolowych.
Częste pułapki
- Przestrzenie nazw muszą się zgadzać. Jeśli XSD deklaruje
targetNamespace="http://example.com", ale XML nie używa tej przestrzeni nazw, walidacja kończy się błędem „nie znaleziono deklaracji”. - xs:anyType nie jest magiczną furtką. Pasuje do wszystkiego, ale nie daje żadnej walidacji.
- Wartości domyślne obowiązują tylko, gdy atrybut jest nieobecny. Jawnie pusta wartość (
attr="") nie otrzymuje wartości domyślnej. - Obsługa białych znaków różni się w zależności od typu.
xs:stringje zachowuje,xs:tokenje zwija,xs:normalizedStringzastępuje tabulatory/znaki nowej linii spacjami.
Schemat debugowania
- Najpierw zwaliduj bez schematu (sprawdzenie poprawności składniowej). Popraw wszelkie błędy parsowania.
- Potem zwaliduj wobec schematu.
- Skup się na pierwszym błędzie. Walidatory XSD czasem kaskadują błędy; pierwszy zwykle daje najwięcej do działania.
- Użyj XPath, by zlokalizować problematyczny element w dużych dokumentach.
Najczęściej zadawane pytania
Nie. Wklej je osobno albo odwołaj się do schematu przez xsi:schemaLocation w XML. Większość narzędzi obsługuje oba podejścia.
Tak. Gdy pojawiają się elementy z różnych przestrzeni nazw, każda potrzebuje własnego schematu. Wklej wszystkie; walidator ładuje je wszystkie.
XSD 1.0. Silnik libxml, na którym opiera się walidator, nie implementuje XSD 1.1, więc funkcje charakterystyczne dla wersji 1.1, takie jak asercje, typy warunkowe i otwarta treść, nie są egzekwowane.
Nie. Twój XML i schemat są wysyłane na serwer wyłącznie po to, aby wykonać walidację dla tego jednego żądania; nie są potem przechowywane ani rejestrowane.
Powiązane narzędzia
Tabela ASCII
Pełna tabela ASCII od 0 do 127 z zapisem dziesiętnym, szesnastkowym, ósemkowym i binarnym oraz notacją numerycznych odwołań HTML, w tym kodami sterującymi NUL, LF i DEL.
Referencja znaków HTML
Przeszukiwalna lista encji HTML wraz z ich kodami nazwanymi i liczbowymi oraz kopiowaniem jednym kliknięciem specjalnych znaków i symboli.
Podgląd Markdown
Pisz w Markdown i obserwuj, jak wyrenderowany HTML aktualizuje się na żywo. Składnia w stylu GitHub z tabelami, listami zadań, ogrodzonymi blokami kodu i automatycznymi odnośnikami.
Narzędzie odstępów w kodzie Python
Ujednolić wcięcia oraz proste odstępy przy przecinkach i operatorach. To lekka obróbka tekstu, a nie Black, Ruff ani parser Pythona.
Formater JavaScript
Formatuj JavaScript, JSX, TypeScript i JSON z konfigurowalnym wcięciem, stylem cudzysłowów, średnikami i przecinkami końcowymi.
Generator fikcyjnych numerów telefonu
Generuj do 50 fikcyjnych numerów z oficjalnie zastrzeżonych zakresów w pięciu krajach.
Narzędzie jest dostępne w innych językach
- XSD-Validator [DE]
- Validador XSD [PT]
- Bộ xác thực XSD [VI]
- XSD-validerare [SV]
- เครื่องตรวจสอบความถูกต้องของ XSD (XSD Validator) [TH]
- Validator XSD [ID]
- XSD 검증기 [KO]
- Validador XSD [ES]
- XSDバリデーター [JA]
- مُحقق تنسيق XSD [AR]
- Validateur XSD [FR]
- XSD-validator [NL]
- Validator XSD [IT]
- Валидатор XSD [RU]
- XSD Doğrulayıcı [TR]
- XSD 校验工具 [ZH]
- XSD Validator [EN]