The share link contains your schema — share it only where you'd share the schema itself.
About the XSD validator
An XSD — an XML Schema Definition — describes what a valid XML document looks like: which elements may appear, in what order, how many times, and what their values are allowed to be. This is an XML Schema validator: it compiles the XSD and checks a document against it, answering the question that follows — does this particular XML document actually obey that schema? Paste the schema on the left, the instance on the right, and every conformance failure comes back with the line it occurred on and a chip marking which of the two panes it came from, so a typo in the schema is never mistaken for a bad document.
The engine is libxml2 compiled to WebAssembly and running inside this page, so the schema and the document stay on your machine. That is also why the tool is careful about what it claims: if the schema imports a file that lives on your disk, it cannot be fetched, and a validator that ignores the missing piece can happily report "valid" for a document it never fully checked. Some online validators do exactly that. Here the result becomes cannot validate, naming the file that is missing, rather than a verdict that might be wrong.
Leaving the document pane empty is a supported use: the tool then compiles the schema on its own and reports whether the XSD itself is sound. If you only need to know that an XML or XSD file is well-formed — closed tags, correct nesting, valid entities — the XML Validator answers that faster.
XSD validation FAQ
How do I validate an XML document against an XSD schema?
Paste the XSD into the left pane and the XML instance into the right pane, then press Validate. The schema is compiled first, then the document is checked against it, and each conformance error is reported with the line it occurred on and a chip saying whether it came from the schema or the document. Leave the right pane empty and the tool checks the schema on its own instead. If you are not sure which of the two checks you need, the guide Well-Formed vs Valid XML explains the difference.
Which XSD version does this validator support?
XSD 1.0 only. The engine is libxml2 compiled to WebAssembly, which implements XML Schema 1.0. XSD 1.1 features such as xs:assert, xs:override and conditional type assignment are not supported; if the schema uses them the result says so plainly rather than reporting misleading conformance errors.
What happens if my schema uses xsd:import or xsd:include?
Only one schema file is loaded, so a reference to a file that lives on your disk cannot be fetched — nothing is uploaded and no network request is made for it. Rather than guess, the tool refuses the verdict for an unresolved xsd:import or xsd:include and names the file it could not read. An unresolved xsd:include also stops the schema compiling outright, and when that happens the compiler's own errors are shown underneath the refusal, so you see the missing file named and the exact reason compilation failed rather than a bare invalid-schema verdict. The one exception is the XML namespace schema (xml.xsd), which is bundled, so a schema importing it validates normally.
Does it follow xsi:schemaLocation in my XML document?
No — the schema in the left pane is the one used, and that is deliberate. libxml2 is invoked with your XSD explicitly, so an xsi:schemaLocation or xsi:noNamespaceSchemaLocation hint inside the XML document is ignored: it is never fetched, and no network request is made for it, which is part of what keeps the whole tool offline and private. The result is identical whether that attribute is present, absent, or points at a file that does not exist, so the verdict is the honest answer for the schema set you supplied rather than for whatever the hint names. If the hint points at a different schema from the one you pasted, paste that schema into the left pane and validate again.
Is my XML or XSD uploaded anywhere?
No. Both panes stay in your browser. The validator is WebAssembly running on this page, so the schema and the document are never transmitted, logged or stored anywhere — which is also why an imported file the tool cannot see is reported honestly instead of being fetched.