Validate XML against an XSD (basic)

Check that an XML document follows the basic structure declared in an XSD schema: required elements, minimum/maximum occurrences and mandatory attributes. This validation covers common cases but is deliberately simplified (see the limitations below).

Example:

How it works

A web browser has no complete, native XSD validator built in (unlike a JSON Schema parser, which is simple to reimplement). This tool reads your XSD and extracts a simplified structure from it — root element, sequence of child elements with their minOccurs/maxOccurs, and attributes marked use="required" — then checks that your XML document follows that structure.

What are the limitations of this validation?

This tool does not replace an XSD validator that complies with the W3C specification. It does not check precise data types (an xs:integer containing text is not detected), and does not handle schemas with external imports/includes (xs:import, xs:include), complex types by inheritance (extension/restriction), reusable named groups, or validation patterns (xs:pattern, xs:restriction with enumerations). It only checks: the name of the root element, the presence and number of occurrences of child elements declared in a direct sequence, and the presence of attributes marked as required. For strict validation in production, use a server-side XSD validator (libxml2, Xerces, etc.).

Why not just say it can't be done?

A full XSD validation really can't be done cleanly in the browser without a dedicated library, but the vast majority of real-world XSD schemas used to validate a configuration export or a simple data feed boil down to sequences of elements with occurrences and a few required attributes — exactly what this tool checks, while being honest about what it doesn't cover.

100% local processing: the XSD and XML are parsed entirely in your browser — your documents never leave your device.