XML-formatter
Verfraai, minimaliseer en valideer XML in de browser — niets wordt geüpload. Springt rommelige XML opnieuw in, rapporteert welgevormdheidfouten met regel/kolom. Gratis, privé, geen aanmelding.
Wat is een XML Formatter en waarom zou je er een gebruiken?
XML (Extensible Markup Language) is een op tekst gebaseerd formaat voor gestructureerde data, overal gebruikt van webservices en configuratiebestanden tot RSS-feeds, SOAP-API's, kantoorbestanden (DOCX, XLSX), SVG-graphics en Android-layoutbestanden. In tegenstelling tot JSON ondersteunt XML commentaar, naamruimten, gemengde inhoud (tekst en elementen door elkaar) en document-type-declaraties — waardoor het het formaat bij uitstek is voor bedrijfsintegratie, documentuitwisseling en overal waar gestructureerde data naast leesbare opmaak moet bestaan.
XML in het wild is vaak slecht ingesprongen of volledig geminimaliseerd — API-responses komen op één regel aan, configuratiebestanden stapelen inconsistente inspringing op, en gegenereerde XML van serializers voegt helemaal geen witruimte toe. Een XML-formatter neemt die rommelige invoer en springt het opnieuw in tot een schone, hiërarchische structuur waar elk niveau van nesting visueel duidelijk is. Dit is essentieel voor code-review, debuggen, documentatie en het begrijpen van onbekende XML-schema's.
**Wat deze tool anders doet dan een gewone teksteditor:**
**1. Welgevormdheidvalidatie met nauwkeurige foutlocatie.** De formatter gebruikt de DOMParser van de browser (dezelfde engine die HTML en SVG verwerkt) om de XML te verwerken. Als het document niet welgevormd is — niet-overeenkomende tags, niet-gesloten elementen, niet-geschreven tekens of meerdere rootelementen — rapporteert de parser het exacte regel- en kolomnummer waar het mislukte. Dit is veel sneller dan het lezen van ruwe XML om te zoeken waar een tag per ongeluk openstond.
**2. Verliesvrij formatteren.** De formatter behoudt commentaar, verwerkingsinstructies, CDATA-secties, naamruimtedeclaraties, attribuutvolgorde en alle tekstinhoud exact. Hij past alleen de witruimte tussen elementtags aan. Je kunt veilig elke XML formatteren die je waardeert — niets betekenisvols zal veranderen.
**3. Minimalisatie voor productiegebruik.** De minifier verwijdert alle niet-significante inter-element witruimte en produceert de kleinste geldige XML-representatie. Dit is de juiste voorbewerkingsstap vóór het opslaan van XML in een databasekolom, het invoegen als string in JSON, of het verzenden via een bytetelbegrensd kanaal.
**4. 100% browsergebaseerde privacy.** Healthcare-XML (HL7, FHIR), financiële data, SOAP-payloads met inloggegevens en interne configuratiebestanden zijn allemaal gangbare XML-payloads die gevoelige data bevatten. Deze tool uploadt nooit iets — alle verwerking draait in de JavaScript-engine van je browser. Zie onze begeleidende tools als je wilt converteren in plaats van formatteren: XML naar JSON Omzetter voor het converteren van XML naar JSON, en JSON naar XML Omzetter voor de omgekeerde richting.
<!-- Minified XML input -->
<?xml version="1.0" encoding="UTF-8"?><catalog><product id="p01"><name>Wireless Headphones</name><price currency="USD">79.99</price></product></catalog>
<!-- After formatting with 2-space indent -->
<?xml version="1.0" encoding="UTF-8"?>
<catalog>
<product id="p01">
<name>Wireless Headphones</name>
<price currency="USD">79.99</price>
</product>
</catalog> Kernfuncties
Verfraaien met 2 of 4 spaties inspringing
Springt XML opnieuw in tot een schone, leesbare hiërarchie. Kies 2-spatie (meest gangbaar voor webservices, RSS en configuratiebestanden) of 4-spatie (gangbaar in bedrijfs-XML-schema's) inspringing vóór het formatteren.
Minimaliseren — verwijder niet-significante witruimte
Verwijdert alle witruimte tussen elementtags zonder de tekstinhoud aan te raken en produceert de kleinste geldige XML. Ideaal voor opslag, verzending of insluiting als string in JSON of andere formaten.
Welgevormdheidvalidatie met regel/kolom-fouten
Gebruikt de ingebouwde DOMParser van de browser om de XML-structuur te valideren. Rapporteert het exacte regelnummer en kolomnummer van de eerste welgevormdheidsfout — niet-overeenkomende tags, niet-gesloten elementen, niet-geschreven tekens — voor snel debuggen.
Verliesvrij: behoudt commentaar, naamruimten en attributen
Commentaar, verwerkingsinstructies, CDATA-secties, naamruimtedeclaraties en attribuutvolgorde worden allemaal exact bewaard. Alleen niet-significante witruimte tussen tags wordt gewijzigd — je inhoud wordt nooit veranderd.
100% browsergebaseerd — geen upload, geen server
Alle verwerking draait lokaal in je browser. XML-payloads met inloggegevens, medische data, financiële gegevens of interne configuraties worden nooit naar een server verzonden en nooit gelogd.
Werkt met SOAP, RSS, SVG, XHTML en Android XML
Verwerkt elke welgevormde XML-toepassing: SOAP-envelopes met WS-Security-headers, RSS/Atom-feeds, SVG-bestanden, XHTML-documenten, Android-layout XML's, Maven POM's en Maven/Ant build-bestanden.
Voorbeelden
Rommelige/geminimaliseerde XML
<?xml version="1.0" encoding="UTF-8"?><catalog><product id="p01" category="electronics"><name>Wireless Headphones</name><price currency="USD">79.99</price><stock>142</stock><tags><tag>audio</tag><tag>bluetooth</tag></tags></product><product id="p02" category="books"><name>Learning XML</name><price currency="USD">29.99</price><stock>55</stock></product></catalog>
Een compacte éénregelige XML-productcatalogus. Klik op Formatteren om het in te springen tot een leesbare boom met 2-spatie inspringing. De elementhiërarchie, attributen en tekstinhoud worden allemaal exact bewaard — de opmaak is puur cosmetisch.
RSS-feedfragment
<rss version="2.0"><channel><title>Go Tools Blog</title><link>https://go-tools.org/blog</link><description>Developer tools, tips and tutorials</description><item><title>Understanding XML Namespaces</title><link>https://go-tools.org/blog/xml-namespaces-guide</link><pubDate>Thu, 29 May 2026 00:00:00 GMT</pubDate><description>A deep dive into XML namespace declarations, prefixes, and scope rules with practical examples.</description></item><item><title>XML vs JSON: When to Use Each</title><link>https://go-tools.org/blog/xml-vs-json</link><pubDate>Mon, 25 May 2026 00:00:00 GMT</pubDate></item></channel></rss>
Een RSS 2.0-feed met twee items, samengeperst tot één regel. Na het formatteren zijn de kanaalmeta-data en elk item-element duidelijk ingesprongen, zodat je de feedstructuur eenvoudig kunt inspecteren, nieuwe items kunt toevoegen of kunt vergelijken met de vereisten van een feedvalidator.
SOAP-envelope
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><soap:Header><wsse:Security xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd"><wsse:UsernameToken><wsse:Username>api-client</wsse:Username><wsse:Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-ext-1.0.xsd#PasswordText">s3cr3t</wsse:Password></wsse:UsernameToken></wsse:Security></soap:Header><soap:Body><GetOrderRequest xmlns="http://example.com/orders"><OrderId>ORD-20260529-001</OrderId><IncludeLineItems>true</IncludeLineItems></GetOrderRequest></soap:Body></soap:Envelope>
Een SOAP 1.1-envelope met een WS-Security-header en een GetOrder-body, met drie naamruimteprefixen (soap:, wsse: en standaard). Door het formatteren worden de scheiding van header/body en de naamruimtedeclaraties direct duidelijk — essentieel voor het debuggen van SOAP-integraties en het lezen van WSDL-gegenereerde payloads.
Zo gebruik je het
- 1
Plak je XML
Voer je XML in of plak deze in het invoerveld hierboven. Je kunt ook op 'Voorbeeld laden' klikken om een voorbeeld te proberen (een geminimaliseerde product-catalogus XML die mooi opmaakt).
- 2
Kies een actie
Klik op Formatteren om te verfraaien met inspringing, op Minimaliseren om witruimte te verwijderen, of op Valideren om de welgevormdheid te controleren. Selecteer 2 of 4 spaties voor de inspringgrootte vóór het formatteren.
- 3
Kopieer de uitvoer
De verwerkte XML verschijnt in het uitvoerpaneel. Klik op Kopiëren om het naar je klembord te halen. Als Valideren fouten heeft gevonden, toont de foutmelding het exacte regel- en kolomnummer.
Veelvoorkomende XML-fouten
Niet-overeenkomende tags
XML-tagnamen zijn hoofdlettergevoelig en moeten exact overeenkomen.
<products>
<Item>
<name>Widget</name>
</item>
</products> <products>
<item>
<name>Widget</name>
</item>
</products> Niet-geschreven ampersand of kleiner-dan-teken
De tekens & en < zijn gereserveerd in XML en moeten buiten CDATA-secties worden geschreven. Een kale & veroorzaakt een verwerkingsfout, zelfs in attribuutwaarden. Gebruik & voor & en < voor <. Het groter-dan-teken > moet worden geschreven als > in tekstinhoud, hoewel parsers hier soepeler mee omgaan.
<query>price > 10 & stock > 0</query>
<query>price > 10 & stock > 0</query>
Attributen zonder aanhalingstekens of onjuist aangehaald
Alle XML-attribuutwaarden moeten worden omsloten door enkelvoudige of dubbele aanhalingstekens. Attribuutwaarden zonder aanhalingstekens zijn geldig in HTML5 maar zijn een welgevormdheidsfout in XML. Ook moet een waarde met een dubbel aanhalingsteken enkelvoudige aanhalingstekens als afgrenzers gebruiken (of het aanhalingsteken schrijven als ").
<product id=p01 label="It's a "widget"">
<product id="p01" label="It's a "widget"">
Meerdere rootelementen
Een XML-document moet precies één rootelement hebben dat alle andere elementen omsluit. Een veelgemaakte fout bij het samenvoegen van XML-fragmenten is het eindigen met twee of meer elementen op het hoogste niveau naast elkaar, wat geen geldige XML is (hoewel het gebruikelijk is in HTML). Wikkel alle nevengeschikte elementen in één enkel rootcontainer.
<user><name>Alice</name></user> <user><name>Bob</name></user>
<users> <user><name>Alice</name></user> <user><name>Bob</name></user> </users>
Ontbrekende XML-declaratie coderingsafwijking
Als je XML-bestand is opgeslagen in UTF-16 of een andere niet-UTF-8-codering maar de -declaratie zegt encoding="UTF-8" (of ontbreekt, wat standaard UTF-8 is), zullen sommige parsers het afwijzen of onzin produceren. Bij het plakken in een browsergebaseerde tool handelt de browser de codering automatisch af. Zorg voor bestanden op schijf dat het coderingsattribuut overeenkomt met de werkelijke bestandscodering.
<?xml version="1.0" encoding="UTF-8"?> <!-- File is actually saved as UTF-16 -->
<?xml version="1.0" encoding="UTF-16"?> <!-- File saved as UTF-16, declaration matches -->
CDATA-sectie niet correct gesloten
Een CDATA-sectie begint met . Als de afsluitende reeks ]]> ontbreekt of verkeerd is getypt, behandelt de parser alles daarna als onderdeel van de CDATA-sectie totdat hij een andere ]]> vindt of het einde van het document bereikt. Dit manifesteert zich typisch als 'onverwacht einde van document'-fouten.
<script><![CDATA[
if (a < b && b > c) { return true; }
<!-- ]]> is missing --> <script><![CDATA[
if (a < b && b > c) { return true; }
]]></script> Veelvoorkomende gebruiksscenario's
- Debuggen van SOAP / webservicepayloads
- SOAP-responses van bedrijfs-API's en oudere webservices komen aan als éénregelige XML-strings. Plak de ruwe payload in de formatter om direct de envelopestructuur, headers en body te zien — zodat je eenvoudig het veld kunt vinden dat je nodig hebt of een naamruimte-afwijking kunt opsporen. Zie ook: XML naar JSON Omzetter als je de payload verder wilt verwerken in JavaScript.
- Configuratiebestanden en deployment-descriptors valideren
- Maven POM-bestanden, Spring XML-toepassingscontexten, Tomcat server.xml, Android Manifest-bestanden en veel andere Java/bedrijfsconfiguraties zijn XML. Voer ze uit via Valideren vóór het committen om niet-overeenkomende tags of coderingsproblemen te vinden die anders pas bij de build of implementatie aan het licht komen.
- RSS- en Atom-feeduitvoer formatteren
- RSS 2.0- en Atom 1.0-feeds zijn XML. Bij het ontwikkelen van een feedgenerator of het debuggen van feedlezercompatibiliteitsproblemen, formatteer je de ruwe feed-XML om de kanaalmeta-data, itemstructuur en vereiste naamruimtedeclaraties naast elkaar te inspecteren.
- SVG-bestanden lezen en bewerken
- SVG-bestanden geëxporteerd uit Figma, Illustrator of Sketch zijn geldige XML maar zijn vaak geminimaliseerd of bevatten overmatige inspringing van de exporteur. Formatteer de SVG om een schone, navigeerbare elementenboom te krijgen voordat je handmatige bewerkingen maakt aan paden, groepen of stijlattributen.
- XML voorbereiden voor opslag of verzending
- Bij het opslaan van XML in een databasekolom, het verzenden als JSON-stringveld in een API-verzoek of het invoegen in een berichtenwachtrij, gebruik je eerst Minimaliseren om onnodige witruimte te verwijderen. Dit verkleint de payloadgrootte en voorkomt problemen met JSON-parsers die kunnen haperen bij niet-geschreven besturingstekens in grote ingesprongen XML-strings.
- XML omzetten naar JSON
- Als je je geformatteerde XML wilt omzetten naar JSON voor gebruik in een JavaScript-toepassing of REST API, gebruik dan onze XML naar JSON Omzetter. Voor de omgekeerde richting — XML opbouwen vanuit een JSON-structuur — gebruik de JSON naar XML Omzetter.
Technische details
- Browser DOMParser voor XML-verwerking
- XML-verwerking gebruikt de ingebouwde DOMParser van de browser met het MIME-type 'text/xml'. Dit is dezelfde engine die SVG en XHTML-rendering in de browser aanstuurt — hij is volledig XML 1.0-conform en rapporteert welgevormdheidfouten met regel- en kolominformatie. Wanneer het document niet welgevormd is, retourneert DOMParser een parsererror-document met het foutbericht en de positie, die deze tool uittrekt en weergeeft.
- DOM-boomserializatie voor formatteren
- Formatteren werkt door de XML te verwerken in een DOM-boom en vervolgens de boom recursief te doorlopen om ingesprongen uitvoer te produceren. Deze aanpak behoudt de semantische structuur van het document: elementnesting, tekstinhoud, attributen, CDATA-secties, verwerkingsinstructies en commentaar worden allemaal terug geserialiseerd exact zoals verwerkt. Alleen inter-element witruimte-tekstvelden worden verwijderd — tekstvelden die niet-witruimtetekens bevatten worden altijd bewaard.
- Minimalisatie via verwijdering van witruimte-tekstvelden
- Minimalisatie doorloopt dezelfde DOM-boom en verwijdert tekstvelden waarvan de inhoud volledig uit witruimte bestaat (spaties, tabs, regelafbrekingen). Tekstvelden met gemengde of niet-witruimteinhoud — de werkelijke data tussen tags — worden nooit verwijderd. Attributen en hun waarden worden geserialiseerd zonder toegevoegde witruimte. Het resultaat is de meest compacte welgevormde XML-representatie van het originele document.
- 100% browsergebaseerd — geen upload, geen server
- Alle verwerking draait in de JavaScript-engine van je browser. Er worden geen gegevens via het netwerk verzonden. Dit is vooral belangrijk voor XML-payloads die frequent gevoelige inhoud bevatten: SOAP WS-Security-tokens, HL7-patiëntdata, interne serviceconfiguratie en financiële berichtformaten (FIX, SWIFT ISO 20022). De tool is veilig te gebruiken met elke XML die je niet in een openbare dienst zou willen plakken.
Aanbevolen aanpak
- Valideer vóór het formatteren, formatteer vóór het committen
- Valideer je XML eerst om te bevestigen dat het welgevormd is voordat je het opnieuw formatteert — de formatter produceert stilzwijgend onjuiste uitvoer als de invoer geen geldige XML is. Eenmaal gevalideerd, formatteer en bekijk de ingesprongen uitvoer voordat je configuratiebestanden, feedsjablonen of WSDL-definities naar versiebeheer commit.
- Gebruik 2-spatie inspringing voor webformaten, 4-spatie voor bedrijfs-XML
- Twee-spatie inspringing is de conventie voor RSS/Atom-feeds, SVG, XHTML, Android XML en de meeste webgerichte XML. Vier-spatie inspringing is gangbaar in Java-bedrijfsomgevingen (Maven POM, Spring-contextbestanden, JBoss-deployment-descriptors). Pas de conventie aan van je bestaande bestanden en toolchain.
- Minimaliseer XML vóór insluiting in JSON
- Als je een XML-string moet insluiten als JSON-veldwaarde, minimaliseer het dan altijd eerst. Ingesprongen XML bevat regelafbrekingen en meerdere spaties die als JSON moeten worden geschreven (\n, meerdere \u0020), wat de payloadgrootte dramatisch vergroot. Geminimaliseerde XML triggert ook veel minder snel regellengtebeperkingen in tussenliggende proxy's of loggingsystemen.
- Schrijf speciale tekens in tekstinhoud, gebruik CDATA spaarzaam
- Gebruik voor korte tekstwaarden met & of < entiteitsreferenties (&, <) — ze zijn beter overdraagbaar dan CDATA-secties en werken ook in attribuutwaarden. Bewaar CDATA-secties () voor het insluiten van grote blokken code, SQL-query's of HTML-fragmenten waarbij het schrijven van elk speciaal teken de inhoud onleesbaar zou maken.
- Declareer naamruimten zo vroeg mogelijk
- Declareer XML-naamruimten (xmlns:prefix="URI") op het rootelement of het hoogste niveau-element dat het prefix gebruikt. Naamruimten diep in een documentboom declareren maakt de XML moeilijker leesbaar en kan problemen veroorzaken met op streams gebaseerde XML-parsers (SAX, StAX) die naamruimten incrementeel verwerken. Het bovenstaande SOAP-envelopevoorbeeld toont het aanbevolen patroon: alle naamruimtedeclaraties op het root Envelope-element.
Veelgestelde vragen
Wordt mijn XML-data naar een server verzonden wanneer ik deze tool gebruik?
Wat controleert de knop Valideren?
Valideert de tool tegen een XML Schema (XSD) of DTD?
Wat is het verschil tussen Formatteren (Verfraaien) en Minimaliseren?
Behoudt het formatteren XML-commentaar en attributen?
Hoe formatteer ik XML met 4-spatie inspringing in plaats van 2?
Welke XML-versie en codering ondersteunt deze tool?
Wat veroorzaakt een welgevormdheidsfout en hoe los ik die op?
Kan ik deze tool gebruiken om XHTML- of SVG-bestanden te formatteren?
Hoe gaat deze tool om met XML-naamruimten?
Is er een bestandsgroottelimiet voor XML-invoer?
Hoe zet ik XML om naar JSON of JSON naar XML?
Gerelateerde tools
Alle tools bekijken →Base64 decoderen en encoderen online
Encodering en formattering
Base64 decoderen en encoderen direct in je browser. Realtime conversie met volledige UTF-8- en emoji-ondersteuning. 100% privé — geen account nodig.
CSV naar JSON omzetter
Encodering en formattering
Zet CSV om naar JSON in uw browser. RFC 4180, type-afleiding, headerregel, big-int veilig. 100% privé, geen upload.
JSON Diff (Vergelijken)
Encodering en formattering
Vergelijk twee JSON-bestanden direct in je browser. Zij-aan-zij markering, RFC 6902 JSON Patch-uitvoer, negeer storende velden zoals tijdstempels en ID's. 100% privé, geen upload.
Online JSON-formatter & validator
Encodering en formattering
Formatteer en valideer JSON direct in je browser. Gratis online tool met syntaxvalidatie, foutdetectie, minificeren en kopiëren met één klik. 100% privé.
JSON Schema-validator
Encodering en formattering
Valideer JSON tegen elk JSON Schema direct in je browser. Ondersteunt Draft 2020-12, 2019-09 en Draft-07 met padnauwkeurige foutmeldingen. 100% privé — geen upload, geen account, gratis.
JSON naar CSV omzetter
Encodering en formattering
Zet JSON om naar CSV in je browser. RFC 4180-, Excel-EU-, TSV- en Pipe-presets. Geneste data afvlakken of als string. 100% privé, geen upload.