document.xml — 4 tools ● LIVE
Input · raw XML 0 CHARS
NETWORK PAYLOAD: 0 BYTES · PROCESSING: LOCAL
Output · processed 0 CHARS
READ-ONLY · UPDATES ON EVERY KEYSTROKE
Characters in0RAW XML
Characters out0PRETTY-PRINTED
Indent2 SPSET IN THE DECK
Errors found00 MEANS CLEAN

Developer Tools · Group 02 of 19

XML Tools.

Paste markup once and run it through four machines on one bench — re-indent it with the formatter, alphabetize every tag's attributes with the beautifier, squeeze it to a single line with the minifier, and let the validator hunt down every unclosed tag with line-and-column precision. Comments, CDATA sections and self-closing tags all survive the trip. Nothing is uploaded, nothing is stored.

  • Tools04
  • Parsinglive
  • Uploads0
  • Backendnone
  • Costfree
In order, 01 → 04

Four machines, one parser, zero servers.

( 01 )

Parses the document with the browser's native XML engine and re-emits it with consistent indentation — 2-space, 4-space or tab, your pick from the deck. The rewriter is structure-aware: tags that hold only text stay on one line, empty tags self-close, and comments, CDATA sections and processing instructions keep their places. Attribute order is preserved exactly as written. If the input doesn't parse, the output pane prints the error with its line and column instead of guessing.

Example

<book><title>Dune</title><author>Frank Herbert</author><year>1965</year></book>

<book> <title>Dune</title> <author>Frank Herbert</author> <year>1965</year> </book>

Use it for config filessitemapsSOAP payloadsSVG source

The formatter's opinionated sibling. On top of the indentation choice, it can sort every tag's attributes alphabetically — recursively, on every element in the tree — so repeated runs produce byte-identical output. That turns noisy diffs into signal: when the file changes, you know the markup changed, not the attribute order. Flip the toggle in the deck and watch every tag snap into A→Z order live.

Example

<item qty="2" sku="A-1" lang="en"/>

<item lang="en" qty="2" sku="A-1"/> — attributes sorted A→Z on every tag, all the way down.

Use it for deterministic diffsstyle guidescode reviewdocumentation

Collapses the whole document to a single line by removing whitespace-only text between tags — the indentation and newlines that exist for human eyes, not for parsers. The stat strip reports bytes in, bytes out, bytes saved and the reduction percentage. Real content is never touched: meaningful text, CDATA sections, comments and attribute values survive byte-for-byte, and re-parsing the minified output yields the same tree as the original.

Example

<book> <title>Dune</title> <year>1965</year> </book>

<book><title>Dune</title><year>1965</year></book> — 58 → 44 bytes · 24% smaller.

Use it for API payloadsSVG optimizationembedded databandwidth budgets

Answers one question — is it well-formed? — and then over-delivers either way. On success you get a full census of the document: root tag, element and attribute counts, text nodes, comments, CDATA sections, processing instructions and maximum depth, plus parse time in milliseconds. On failure you get the engine's error message, a caret dropped under the exact line and column, and fix hints for the usual suspects: mismatched closing tags, unquoted attributes, bare ampersands, duplicate attributes, unclosed tags and multiple roots.

Example

<order><total>41.75</order>

✕ NOT WELL-FORMED — opening and ending tag mismatch: total / order hint: a closing tag doesn't match its opening tag — check line 1.

Use it for pre-deploy checksfeed debuggingsitemap QASVG sanity

Parsing rules · all four tools share one parser — well-formedness is decided once, by the browser's native XML engine · the validator checks syntax only — DTD and XSD schema validation are out of scope · whitespace-only text between tags is layout, and the formatter is free to re-flow it · meaningful text, CDATA sections, comments and processing instructions survive every conversion byte-for-byte · attribute sorting applies to every tag, recursively · the minifier never touches text content — only the whitespace around it · XML demands exactly one root element, quoted attributes and escaped & characters — the validator enforces all three · ⇄ Output → Input feeds any result straight back for another pass

The privacy promise

Paste anything. We couldn't read it even if we wanted to.

This page has no backend and no database. Every tag re-indented, every attribute sorted and every byte counted just now was computed by JavaScript inside your own browser tab — your XML never traveled a single centimeter of cable. Close the page and it's gone for good.

✕ SERVER · DATABASE · LOGS · ANALYTICS
  • Databasenull
  • Backendnone
  • XML uploads0
  • Session logs0
Questions

Asked often, answered plainly.

( 02 )
Does the validator check my DTD or XSD schema?

No — it checks well-formedness: the syntax rules every XML document must follow, enforced by the browser's native parser. That covers unclosed tags, mismatched tag names, unquoted attributes, bare ampersands, duplicate attributes, multiple root elements and premature endings — which is where the vast majority of real-world XML breaks. Validation against a DTD or XSD schema requires server-side tooling and is out of scope for a page with no backend.

What's the difference between the Formatter and the Beautifier?

Same engine, more knobs. The Formatter is the one-button standard: parse and re-emit with your chosen indentation, attribute order preserved exactly as written. The Beautifier adds alphabetical attribute sorting on every tag, applied recursively through the whole tree, which makes output deterministic and diffs meaningful.

Will minifying change my data?

No. Only whitespace-only text between tags is removed — that whitespace is layout, not content. Meaningful text, CDATA sections, comments, attributes and processing instructions survive byte-for-byte, and re-parsing the minified output yields the same tree as parsing the original. What changes is the byte count, nothing else.

Why does a bare & break my XML?

Because & starts an entity reference in XML, so the parser immediately tries to read one and fails when no valid entity follows. Escape it as &amp; — and < inside text as &lt;. If a whole block of text is full of special characters, wrap it in a CDATA section instead; the formatter, beautifier and minifier all preserve CDATA untouched.

Is my XML saved anywhere?

No. IrisTool has no backend and no database. Parsing happens inside your browser tab and the data disappears the moment you close or refresh the page. There is nothing to leak, because nothing is ever collected.