Validate XML up to 1 GB against XSD, DTD, RelaxNG and Schematron

A streaming validator built for engineers. Your file is checked right in the browser without being uploaded, and every error comes with its exact line and column. E-invoices also get their business rules: EN 16931, Peppol, XRechnung and the national rules of France, Italy, Croatia, Romania and more.

invoice.xml · invoice.xsd · in your browser valid · 312 ms
1
2
3
4
5
6
7
8
9
<?xml version="1.0" encoding="UTF-8"?>
<invoice xmlns="urn:billing:v1" id="INV-2026-0413">
<issuer vatId="GB123456789">Acme Ltd.</issuer>
<items>
<item sku="A-001" qty="2">Annual license</item>
<item sku="B-014" qty="1">Onboarding session</item>
</items>
<total currency="EUR">4820.00</total>
</invoice>
max file size
1 GB
schema languages
4
official schemas
177
uploaded
0 bytes
per GB
~10 s
Capabilities

Built for production-scale XML

Three things matter when validating real-world XML: file size, privacy and the quality of the error messages. We don't compromise on any of them.

Streaming, up to 1 GB

Documents are read in chunks and validated as the stream advances, so memory stays flat: about 20 MB whether the file is 1 KB or 1 GB.

engineRust · libxml2

Private by design

The validator runs inside your browser as WebAssembly. Files you open or paste are never uploaded. Useful when the XML holds payments, invoices or patient data.

uploaded0 bytes

Precise diagnostics

Every problem comes with its exact line and column, a severity level and the parser's explanation. All errors are counted, not just the first one.

outputline:col · level · msg
How it works

From file to diagnostics in three steps

  1. 01

    Open your documents

    Drop a file, paste XML or fetch it by URL, or open a folder or .zip of up to 1,000 documents. Files up to 50 MB without an account, up to 1 GB with a free one.

  2. 02

    Pick a schema

    Upload an XSD, DTD or RelaxNG schema with its includes, choose one of 177 official schemas from the catalog (e-invoice profiles add their Schematron business rules), or skip it to check that the document is well-formed.

  3. 03

    Read the diagnostics

    Progress updates as the file streams through. Click an error to jump to its line; the common ones link to an explanation of how to fix them.

Beyond the browser

Keep XML valid after it leaves your desk

The same engine also runs on our servers, for scripts, pipelines and documents that change on their own. Those validations run on our machines, so they count towards your plan.

API · CLI · CI

The same checks in your pipeline

A REST API with an OpenAPI description and SDKs for PHP, Python and TypeScript, a command-line client and a GitHub Action that marks failing lines in pull requests. 100 API validations a month on Free, 10,000 to 100,000 on Pro.

CI and the command line →
Pro

URL monitors

Validate a published feed, sitemap or partner export every hour or every day, and get an email and a webhook when it stops passing, and again when it recovers.

See Pro →
Reference

Errors, explained

What 90 common validation messages mean (from a tag mismatch to “This element is not expected”), in libxml2's wording and as Java and .NET report them, why they happen and how to fix them, each with an example.

XML error messages →

Validate your first document

No account required. Your XML stays in your browser.

Open validator