Wat is XML-formattering?
XML (Extensible Markup Language) is een W3C-gestandaardiseerd tekstformaat voor gestructureerde documenten en data-uitwisseling. Formatteren — ook wel pretty-printing of beautifying genoemd — neemt een welgevormde XML-bron en springt deze opnieuw in zodat elk element, attribuut, commentaar, processing instruction en CDATA-sectie makkelijk te scannen is. De geparste documentboom blijft exact behouden; alleen de witruimte tussen elementen verandert.
Hoe werkt XML-formattering?
Je invoer wordt volledig in je browser verwerkt met de native API's DOMParser en XMLSerializer plus een aangepaste recursieve inspring-routine. De belangrijkste stappen zijn:
- Je invoer wordt letterlijk uit het tekstvak gelezen — elke byte die je plakt blijft lokaal in het geheugen.
- De browser parseert deze met
new DOMParser().parseFromString(text, 'application/xml'). Als de invoer niet welgevormd is, sluit de parser een<parsererror>-knoop in waarvan de tekstinhoud de regel- en kolomhints van de engine draagt — deze worden letterlijk in de foutstrip getoond. - Bij een succesvolle parse loopt een aangepaste inspring-routine de DOM-boom diepte-eerst af en emitteert elk element, attribuut-set, CDATA-sectie, commentaar en processing instruction op de eigen regel op de huidige diepte. Zelf-sluitende lege tags worden gerespecteerd wanneer de optie aan staat.
- De minify-modus draait de pijplijn om:
XMLSerializer().serializeToString(doc)emitteert een eenregelige vorm, vervolgens verwijdert een beschermde regex witruimte tussen elementen zonder tekst binnen CDATA-blokken of niet-witruimte tekstknopen aan te raken. - De uitvoer wordt naar het alleen-lezen tekstvak geschreven, de foutstrip wordt gewist en de Download-knop pakt het resultaat in als
.xml-bestand dat je kunt versturen of als ticketbijlage kunt meesturen.
Waarom XML pretty-printen met deze tool?
- Privacy: elke parse-, formatteer- en minify-stap gebeurt in je browser. De XML bereikt onze servers nooit — geen upload, geen telemetrie, geen account.
- Nauwkeurige fouten: wanneer de invoer misvormd is, toont de parser de exacte regel en kolom die de browserengine zelf rapporteert, geen synthetische gok — dezelfde nummers die je in DevTools zou zien.
- Trouwe round-trip: formatteer en minify daarna en je krijgt het byte-equivalent van je originele document terug (modulo de XML-declaratie-optie) — formatteren her-canonicaliseert namespaces nooit en herschrijft attribuutvolgorde niet.
- Snel: pure DOMParser plus een ~60-regel inspring-routine verwerken multi-megabyte SOAP-enveloppen en OOXML-stukken direct, zonder een externe library te downloaden.
Wat zijn veelvoorkomende toepassingen van XML-formattering?
XML pretty-print duikt op in webpublicaties, enterprise-integratie en data-archivering:
- RSS / Atom-feedinspectie: plak een podcast- of nieuwsfeed-body om kanaalmetadata, item-volgorde en namespace-prefixen te bevestigen vóór publicatie.
- SOAP-debuggen: formatteer een envelop gekopieerd uit Wireshark of een SOAP-client-log zodat de Header-, Body- en Fault-secties in één oogopslag zichtbaar zijn.
- Sitemap-auditing: spring een sitemap.xml opnieuw in die opgehaald is bij een concurrent of je eigen staging-site om entries te tellen en hreflang-alternatieven per URL te bevestigen.
Hoe ziet een XML-formatteringsvoorbeeld eruit?
Een drie-element <feed><entry><title>Hello</title></entry></feed> plakken en Formatteren drukken met de optie 2-spatie inspringing levert een vierregelig document op waarin elk element op zijn eigen regel staat, ingesprongen volgens diepte. Overschakelen naar Minify op dezelfde invoer plooit het terug naar de oorspronkelijke byte-string. Round-trippen is verliesvrij voor elk welgevormd document.
Draait dit offline?
Ja. De formatteer- en minify-pijplijn is pure DOMParser + XMLSerializer plus een kleine recursieve inspring-routine, alles draait binnen het browsertabblad. Niets wordt geüpload, geen service worker proxiet je invoer en de pagina maakt nul netwerkverzoeken voor de formatteer-stap zelf. Het enige uitgaande verkeer zijn de standaard pagina-laad-assets (CSS, fonts, analytics) — je XML bereikt Ultim8Soft nooit.
Verandert formatteren het document?
Geen semantische verandering. Formatteren herschrijft alleen de witruimte tussen elementen. Elementnamen, attribuutwaarden, tekstinhoud, CDATA-payloads, commentaren en processing instructions blijven byte-voor-byte behouden. Namespace-declaraties en prefixen blijven precies zoals de invoer ze geschreven heeft — de formatter her-canonicaliseert geen attributen en herordent ze niet. De uitvoer parseert tot dezelfde DOM-boom als de invoer, modulo de optionele XML-declaratie-toggle.
Hoe worden CDATA / commentaren / processing instructions afgehandeld?
Elk wordt letterlijk emitteerd op zijn eigen regel op de huidige inspringdiepte. CDATA-payloads worden zonder her-inspringen binnenin gewikkeld in <![CDATA[…]]> — de spec zegt dat CDATA-inhoud ondoorzichtig is, dus de formatter raakt deze nooit aan. Commentaren gebruiken <!-- … -->; processing instructions gebruiken <?target data?>. Alle drie overleven een formatteer → minify → formatteer round-trip met hun inhoud intact.
Wat is het verschil tussen XML formatteren en minifyen?
Formatteren expandeert witruimte zodat mensen de documentboom kunnen lezen; minifyen strippt het er weer uit voor transport en opslag. Beide werken op de geparste DOM, niet op de ruwe byte-string, dus een round-trip formatteren → minifyen op een welgevormd document levert het byte-equivalent van de oorspronkelijke geminifieerde vorm. Gebruik de formatteer-richting wanneer je een XML-payload moet lezen of diffen, en de minify-richting wanneer je deze over een gemeten API-gateway wilt versturen of in een ander document wilt insluiten.
Deze XML Formatter gebruikt dezelfde parser die je browser gebruikt voor AJAX XHR-antwoorden en SVG-documenten, dus elke welgevormde XML — RSS, Atom, SOAP, sitemap, OOXML, SVG — round-tript schoon. Plak hierboven een XML, kopieer de uitvoer of download deze als .xml.