How it works
How the XML Validator checks your XML in your browser
The XML Validator is a privacy-first tool. Every check, from import through validation, runs locally in your browser. There is no backend that receives your XML, DTD, or XSD content and no database that stores it.
1. Choose a validation mode
Pick one of three modes. Well-formed onlychecks that the XML follows basic XML syntax rules using the browser's native parser. DTD validates the XML against a Document Type Definition you provide, using a built-in pure-JavaScript DTD validator. XSD validates the XML against a W3C XML Schema you provide, using libxml2 (the same engine behind xmllint) compiled to WebAssembly, which is loaded only when you select that mode and click Validate.
2. Import your XML
Drag and drop an XML file, browse for one, paste XML text, or load a small sample. The content is read in-memory by JavaScript in your browser tab. The file size is checked against a conservative limit to avoid exhausting the memory available to the in-browser validator.
3. Add a schema (DTD or XSD mode)
In DTD or XSD mode, add the schema file the same way: drag and drop, browse, or paste. For XSD files that import or include other XSD files, upload those dependencies alongside the main schema so the validator can resolve them without making any network requests.
If your XML already references an external schema (a
<!DOCTYPE ... SYSTEM "url">orxsi:schemaLocation), the tool detects the URL and shows it with copy and open actions. Browsers cannot fetch cross-origin schemas automatically, so open the link, save the file, then drop it into the importer.4. Validate and read the result
Click Validate. If the XML is valid, you see a clear success message and an optional pretty-printed view. If there are errors, each one lists the file, line number, and a message describing the problem. You can jump to the line in the inline editor and inspect the raw validator output. Start over clears locally held data from the application state.
What never happens
- Your XML, DTD, or XSD content is never transmitted to a backend.
- No file content is written to local storage by default.
- No third-party tracking, advertising, or session recording runs on the page.
- The validator engine makes no network requests to fetch schema dependencies; you provide them.
Read the full privacy page or try the validator.