2026-09-12 · 6 min read · Rahul Chitturi
- xml
- whitespace
- interoperability
Pretty-printing XML can insert indentation between elements. In a configuration tree that whitespace may be harmless, but in mixed content such as a paragraph with inline emphasis, added or removed text nodes can change the rendered sentence.
A parser cannot label every whitespace-only node ignorable without grammar information. xml:space, a DTD or schema content model, and the consuming application all influence significance.
Identify mixed-content boundaries
Inspect the sequence of text, element, comment, and entity-derived nodes around the changed output. Compare parsed trees and serialized bytes instead of judging only the indented display.
- Treat text around inline elements as potentially significant.
- Check inherited xml:space values.
- Record whether a validating parser loaded a content model.
- Do not trim every text node globally.
Separate inspection from canonical output
Use pretty printing as a human view, not an automatic round-trip guarantee. If exact content matters, preserve the source or serialize with a policy designed for that document vocabulary.
XML canonicalization solves a defined serialization problem for supported node sets; it does not authorize arbitrary whitespace cleanup inside text content. Apply signature and canonicalization rules with maintained XML libraries.
Test safe document fixtures
Use the XML formatter on synthetic samples, diff before and after serialization, HTML entities tool for public character references, and regex only to inspect known text patterns rather than parse XML.
Test element-only and mixed content, empty elements, xml:space preserve and default, CDATA, entities, comments, namespaces, line-ending normalization, schema validation, signatures, and every parser and serializer in the pipeline.