What changes in this tool
Indent simple well-formed XML with visible nesting. Indentation and line breaks expose structure while preserving the supported input tokens. The XML formatter shows the depth of a simple element tree and requires a matching end tag for every nonempty start tag. It preserves text values while re-laying out element-only children. A declaration, DTD, CDATA section or comment requires another tool.
Know the format
XML requires one root element, matching closing tags, quoted attributes and correctly escaped special characters. Unlike forgiving HTML parsing, malformed XML should be rejected. This local tool handles a simple element tree; declarations, document type definitions, comments and CDATA are outside its supported subset. It keeps non-empty text values unchanged and formats or compacts whitespace between element-only children. That whitespace may still matter to an XML consumer configured to preserve it, so the compact result needs testing against the receiving system. Namespaces are retained as names but not resolved semantically here. Use a namespace-aware parser for validation or canonicalization.
A dependable workflow
Formatting is most useful during review or debugging, when indentation can expose a missing nesting level or an unexpected sibling. Paste a complete, representative fragment and run the formatter once. Read the output from the outermost structure inward, paying attention to where each element, block or clause begins and ends. This page deliberately avoids pretending to be a compiler for every possible extension of the language. It may reject source whose meaning depends on advanced constructs. After copying the result, run the normal validator or test suite for the project in which it will be used. If you plan to commit the formatted text, inspect the diff so changes in layout do not hide an accidental change in a literal or data value.
Check the result
Keep the original next to the output and test a small known example before handling a large document. Compare meaningful content, not only file size or the number of lines. Check names, quoted strings, non-ASCII characters, line endings and any repeated fields after the transformation. A syntactically readable result does not validate a schema, prove that code executes, or establish that data is safe to publish. This site processes the entered text in the browser and displays the result as text, but the copy you paste into another application will follow that application’s rules. If the tool rejects an input, do not remove unexplained characters merely to get an output: identify which construct is outside the supported subset and use a dedicated parser when necessary.