How to use
Use this validator for quick, local checks.
- Paste your XML into the XML box.
- Paste your XSD into the XSD box.
- Click Validate to see a compact report.
- If the output says the schema features are unsupported, run a full validator (e.g., xmllint, Saxon, Xerces) for authoritative results.
FAQ
Does this fully validate XML against XSD in the browser?
No. Browsers don’t provide a complete XSD validator API, so this tool implements a fast subset (sequence, min/maxOccurs, required attributes, simple enumerations) plus well-formed checks.
Is my XML/XSD uploaded anywhere?
No. Validation runs locally in your browser with no network requests.
What XSD features are supported here?
Common basics: global elements, inline/named complexType with sequence, required attributes, and simpleType enumerations for elements/attributes.
Why does it say my root element isn’t declared?
The tool looks for a matching global xs:element name. If your schema uses advanced patterns (e.g., substitutions/imports), use a full validator.
How are namespaces handled?
Checks mostly match by local names (ignoring prefixes). If your validation depends heavily on namespaces, results may be incomplete.
Can it validate XSD 1.1 assertions and other advanced rules?
No. Assertions, key/keyref, complex choices, wildcards, and many other features are not fully implemented in this client-side subset.
What should I use for authoritative XSD validation?
Use a dedicated validator like xmllint/libxml2, Xerces, Saxon, or your CI pipeline’s XML tooling.