How to use this XML Formatter
Paste XML into the input box, format it for readability, validate the structure,
and then copy or download the result.
- Paste your XML into the input area.
- Click Format XML to beautify the structure.
- Click Validate XML to check whether the XML is valid.
- Copy the output or download the formatted XML file.
Example formatted XML
<root>
<user>
<name>John</name>
<role>developer</role>
</user>
</root>
Common use cases
- API XML payload inspection
- Configuration file cleanup
- RSS and XML feed review
- SOAP request debugging
- Data exchange validation
Well-formed is not the same as valid
An XML formatter can only re-indent XML that it can parse, which means it checks
well-formedness: every tag is closed, elements nest without overlapping,
there is exactly one root element, attribute values are quoted, and the reserved characters
are escaped. That is a genuine and useful check — most "why won't this parse" problems are
well-formedness errors.
It is not the same as validity. A valid XML document also conforms to a
schema — a DTD or XSD — that dictates which elements may appear, in what order, and with
which attributes. A formatter does not enforce that. XML can be perfectly well-formed,
indent beautifully here, and still be rejected by the service that expects it because it
violates the schema. If you need schema conformance, that is a separate validation step.
Why pretty-printing XML can change its meaning
Unlike JSON, XML whitespace is not always insignificant, so adding indentation is not always
safe. In mixed content — text and elements together, as in
<p>Hello <b>world</b></p> — the spaces around the child
element are part of the text. A formatter that inserts line breaks and indentation between
Hello and <b> alters the actual character content of that
paragraph.
This is why the XML standard defines the xml:space="preserve" attribute:
elements marked with it must keep their whitespace exactly. Two other constructs must also
be left untouched — the contents of a <![CDATA[ ... ]]> section, which
deliberately hold raw unescaped text, and any element carrying significant leading or
trailing spaces. For data-only XML (records and fields with no mixed content),
pretty-printing is safe; for document-style XML, treat reformatting as something that can
change the data.
The errors that stop XML parsing
When XML refuses to format, it is almost always one of a handful of well-formedness
violations. The most common is an unescaped ampersand: a raw & in text is
illegal and must be written &, and the same applies to <
(as <). Others include a tag that is never closed, tags that overlap
instead of nesting (<b><i>x</b></i>), an attribute value
without quotes, or more than one top-level element — XML permits exactly one root.
A parser reports the line and column where it gave up, which for a missing close tag is
typically the point where a different tag closed unexpectedly, so the real fix is
often above where the error points.
Namespaces, attributes, and encoding
A few details survive formatting but often confuse people. Namespaces
attach a prefix and a xmlns declaration to elements
(<ns:item>); the prefix is just a local alias for a URI, so two documents
using different prefixes for the same namespace are equivalent even though the text differs.
Attribute order is not significant in XML, so a formatter is free to keep
or reorder attributes without changing meaning, whereas element order is
significant and is always preserved. Finally, the encoding named in the XML
declaration must match how the file is actually saved; a document that claims
UTF-8 but was written in another encoding will fail on the first non-ASCII
character.
Frequently Asked Questions
Does this tool check my XML against a schema?
No. It checks well-formedness — closed tags, correct nesting, a single root, escaped
characters — which is what parsing requires. It does not verify a DTD or XSD, so
well-formed XML can still be rejected by a service that enforces a schema.
Can indenting XML change its content?
Yes, for document-style XML. In mixed content like
<p>Hello <b>x</b></p>, whitespace around the child
element is part of the text, so added indentation alters it. Elements marked
xml:space="preserve" and CDATA sections should never be reflowed.
Why won't my XML format at all?
Most often a raw & or < in text that should be
& or <, an unclosed or overlapping tag, an
unquoted attribute, or more than one root element. Any of these makes the document not
well-formed, and the parser stops.
Does the formatter reorder my attributes?
It may, and that is harmless — attribute order carries no meaning in XML. Element order,
by contrast, is significant and is always preserved, so the sequence of your data is
never changed.
What are the <ns:...> prefixes in my XML?
Namespace prefixes. A prefix like ns: is a local alias for a namespace URI
declared with xmlns, used to avoid element-name clashes between vocabularies.
The prefix itself is arbitrary — what identifies the namespace is the URI it maps to.
Is it safe to format XML from an untrusted source here?
In the browser, yes — it parses without resolving external entities. The XML External
Entity (XXE) risk that lets a document read local files or make requests applies to
server-side parsers with DTD processing enabled, not to this page.