Skip to content
XSLT Checker
XSLT Checker / XML validator

XML validator and pretty printer

Find the exact line and column where your XML or XSL stops being well-formed, then tidy the file with one click.

Last updated: ยท What changed: Added an accuracy table, coverage statement and Chrome 158 sourcing, and a new operator section on the About page.

    What it checks

    • Every tag is closed and nested in the right order, and there is one root element.
    • Attribute values are quoted, unique on their element and free of a raw <.
    • Ampersands are written as entities. A bare & or an HTML entity like &nbsp; is an error in XML.
    • Namespace prefixes such as xsl: are declared.
    • The XML declaration, comments and CDATA sections are written correctly.

    Well-formed is not the same as valid

    This tool checks well-formedness, the rules every XML parser enforces. It does not compare your file with a DTD or an XML Schema. A sitemap can be well-formed and still list a URL a search engine rejects, which is a different kind of check.

    If you came here with a stylesheet, the converter shows the same errors and then runs it: XSLT to HTML converter.

    Questions

    What does well-formed XML mean?

    It means the file follows the basic XML syntax rules: one root element, properly nested and closed tags, quoted attributes and escaped special characters. Browsers and feed readers stop at the first violation.

    Why does a bare ampersand break my file?

    In XML an ampersand starts an entity such as &amp;. A raw one, for example in a URL with two query parameters, must be written as &amp;. This is the most common reason a feed stops loading.

    Why is an HTML entity like nbsp an error?

    XML defines only five named entities: lt, gt, amp, quot and apos. Write a no-break space as &#160; instead.

    Is my XML uploaded anywhere?

    No. The converter, the validator and the CSS generator run in your browser and nothing you paste or upload is sent to our server. Only the URL checker contacts a server, and only to fetch the public address you typed.

    Does it validate against a schema?

    No. It checks syntax only. It does not compare the file with a DTD or XML Schema.