XSD-validator
Een goed gevormd XML-document kan toch fout zijn: een vereist element ontbreekt, een attribuut gebruikt een onjuist datatype, of de elementen staan in de verkeerde volgorde. XSD (XML Schema Definition) beschrijft precies hoe het document eruit moet zien. Deze validator vergelijkt uw XML met het bijbehorende XSD, voert de W3C XML Schema-validator uit en noemt alle overtredingen op, inclusief de betreffende regel, het element en de specifieke beperking die is geschonden.
Hoe XML tegen XSD te valideren
-
1
Plak beide bestanden
XML aan de ene kant, XSD-schema aan de andere. Meerdere schema's kunnen samen worden geplakt.
-
2
Voer validatie uit
De parser vergelijkt elementen, attributen en typen met de schema-declaraties.
-
3
Controleer fouten
Elke overtreding toont het elementpad, de verwachte beperking en de werkelijke waarde.
-
4
Corrigeer en valideer opnieuw
Wijzig direct en voer de validatie opnieuw uit zonder opnieuw te laden.
Wat XSD controleert
- Elementnamen en kardinaliteit: verplicht, optioneel; minimale en maximale aantal voorkomsten.
- Elementorde: volgorde, keuze, allemaal.
- Aanwezigheid en type van attributen: verplicht versus optioneel, standaardwaarden, vaste waarden.
- Datatypen:
xs:string,xs:integer,xs:decimal,xs:dateTime,xs:boolean,xs:anyURI, aangepast. - Beperkingen: minimale en maximale lengte, enumeraties, reguliere expressies en minimale en maximale waarden.
- Referentiële integriteit:
xs:key,xs:keyrefenxs:uniquevoor beperkingen tussen elementen.
Typische fouten
| Fout | XSD-beperking |
|---|---|
Ontbrekend vereist element <email> |
minOccurs="1" |
Te veel <phone>-elementen |
maxOccurs="2" overschreden |
| De waarde “abc” is geen geldig geheel getal | type="xs:integer" |
| De waarde “[email protected]” komt niet overeen met het patroon | xs:pattern op xs:string |
| Elementen in verkeerde volgorde | xs:sequence |
Onbekend element <foo> |
Niet gedefinieerd in het schema |
| Dubbele sleutel | Overtreding van xs:unique |
Kiezen tussen XSD en alternatieven
- XSD: W3C-standard, gedetailleerd, krachtig en wijdverspreid ondersteund. De eerste keuze voor bedrijfsgebruik van XML.
- RELAX NG: eenvoudigere syntaxis, even uitdrukkingsrijk. Populair in documentatieformaten (DocBook, TEI).
- Schematron: regelgebaseerd systeem dat XPath-verificaties uitvoert op het document. Uitstekend geschikt voor bedrijfsregels die verder gaan dan alleen de structuur van het document.
- DTD: een oudere, veel minder uitdrukkingsrijke definitie. Verder gebruikt voor historische compatibiliteit van HTML.
Veel projecten gebruiken XSD voor de structuur en Schematron voor complexe regels die verschillende domeinen omvatten.
Veelvoorkomende fouten
- De naamruimten moeten overeenkomen. Als de XSD
targetNamespace="http://example.com"declareert, maar het XML die naamruimte niet gebruikt, mislukt de validatie met de melding ‘geen declaratie gevonden’. - xs:anyType is geen magische uitweg: het past bij alles, maar biedt u totaal geen validatie.
- Standaardwaarden zijn alleen van toepassing wanneer het attribuut ontbreekt. Een expliciete lege waarde (
attr="") krijgt geen standaardwaarde. - De behandeling van lege ruimte verschilt per type:
xs:stringbehoudt deze,xs:tokensamenvoegt deze, enxs:normalizedStringvervangt tab-schakels of nieuwe regels door lege ruimtes.
Debuggingswerkstroom
- Valideer eerst zonder schema (controle op correcte vormgeving). corrigeer eventuele analysefouten.
- Valideer vervolgens tegen het schema.
- Richt uw aandacht op de eerste fout. XSD validators genereren soms een reeks fouten; de eerste fout is meestal de meest acteerbare.
- Gebruik XPath om het betreffende element te lokaliseren in grote documenten.
Veelgestelde vragen
Nee. Plak ze apart of verwijst naar het schema via xsi:schemaLocation in het XML. De meeste tools ondersteunen beide methoden.
Ja. Wanneer elementen uit verschillende naamruimten voorkomen, heeft elk een eigen schema nodig. Plak alle schema’s; de validator laadt ze allemaal.
XSD 1.0. De onderliggende libxml-engine implementeert XSD 1.1 niet, dus 1.1-specifieke functies zoals asserties, conditionele typen en open content worden niet afgedwongen.
Nee. Uw XML en schema worden alleen naar de server gestuurd om de validatie voor die ene aanvraag uit te voeren; ze worden daarna niet opgeslagen of gelogd.
Gerelateerde tools
JSON naar PHP-array
Zet JSON om naar een PHP-array-literal met korte syntaxis, associatieve/geïndexeerde arrays en geneste structuren, klaar om in een .php-bestand te plakken.
Luhn-algoritme-checker
Controleer de creditcardnummer, IMEI, SIN en andere door Luhn beschermden nummers. Geef een resultaat terug (goed of fout) en toon elke stap van het verdubbelen en het berekenen van de controlesom aan.
ASCII-tabelreferentie
Volledige ASCII-tabel van 0 tot 127 met decimale, hexadecimale, octale en binaire waarden en HTML-numerieke referentienotatie, inclusief control codes zoals NUL, LF en DEL.
Telefoonnummers controleren
Controleer de structuur van telefoonnummers per land en bekijk regio, type en E.164-, internationale, nationale en RFC 3966-notatie.
Sneltoetsenoverzicht
Zoek gedocumenteerde standaardsneltoetsen voor VS Code, Chrome en Bash met GNU Readline op macOS, Windows en Linux.
ASCII naar binair-converter
Converteer elke ASCII-string naar zijn binaire representatie. Elk teken wordt acht bits, gescheiden door spaties, klaar voor protocoltrace of huiswerk.
Tool beschikbaar in andere talen
- XSD 검증기 [KO]
- Bộ xác thực XSD [VI]
- XSD-validerare [SV]
- Walidator XSD [PL]
- XSD-Validator [DE]
- เครื่องตรวจสอบความถูกต้องของ XSD (XSD Validator) [TH]
- Validador XSD [ES]
- Validator XSD [ID]
- مُحقق تنسيق XSD [AR]
- Validateur XSD [FR]
- Validador XSD [PT]
- XSDバリデーター [JA]
- XSD Validator [EN]
- Validator XSD [IT]
- Валидатор XSD [RU]
- XSD Doğrulayıcı [TR]
- XSD 校验工具 [ZH]