Alle tools draaien in je browser — je bestanden verlaten nooit je apparaat.
All tools154

Ontwikkelaar

XML-formatter

XML opmaken, controleren en comprimeren.

Wat het doet. Deze tool laat XML inspringen zodat het leesbaar wordt, controleert of het welgevormd is en kan het weer comprimeren. Alle verwerking gebeurt in je browser.
Draait in je browserNiets wordt geüploadGeen accountWerkt offline

Hoe je dit gebruikt XML-formatter

  1. Plak je XML.
  2. Kies opmaken of comprimeren.
  3. Kopieer het resultaat.

Welgevormd en geldig zijn twee dingen

Dit onderscheid veroorzaakt de meeste verwarring rond XML.

Een document is welgevormd als het de syntactische regels van XML volgt: precies één hoofdelement, correct genest en gesloten, attribuutwaarden tussen aanhalingstekens en speciale tekens gecodeerd.

Het is geldig als het bovendien voldoet aan een schema — een XSD of DTD — dat voorschrijft welke elementen in welke volgorde en met welke gegevenstypen mogen voorkomen.

Deze tool controleert de welgevormdheid. Voor een schemacontrole heb je het schema zelf nodig.

Het praktische verschil: een welgevormd document kun je inlezen; een geldig document bevat bovendien wat de ontvangende partij verwacht.

In Nederland is dat heel concreet: elektronisch factureren aan de overheid loopt via een netwerk waarin facturen als gestructureerde XML worden uitgewisseld, met een vaste specificatie voor de Nederlandse situatie. Een welgevormd bestand dat niet aan het schema voldoet wordt automatisch geweigerd.

Ook uitwisseling in de zorg en in de logistiek leunt zwaar op gestandaardiseerde XML-berichten, om dezelfde reden: de structuur moet jarenlang stabiel en controleerbaar blijven.

Veelvoorkomende fouten

Vrijwel alle XML-problemen vallen in een paar categorieën.

Niet-gecodeerde tekens: een losse & in de tekst is de klassieker, net als een < in tekstinhoud. Die moeten als & en < geschreven worden.

Codering: staat er UTF-8 in de declaratie terwijl het bestand anders is opgeslagen, dan breken de accenttekens als eerste.

De bytevolgordemarkering aan het begin van het bestand: onzichtbaar in je editor, maar veel parsers struikelen erover omdat de XML-declaratie niet meer op positie nul staat.

Naamruimten: er wordt een voorvoegsel gebruikt dat niet gedeclareerd is, of de standaarddeclaratie gaat verloren bij het samenstellen van fragmenten uit verschillende bronnen.

En witruimte: binnen de inhoud van een element is die in XML in beginsel betekenisvol. Een formatter die inspringt verandert dus technisch de inhoud — zonder gevolgen bij pure gegevensformaten, wel bij gemengde inhoud.

Wanneer XML en wanneer iets anders

Een praktische indeling, want de vraag komt vaak op.

XML is sterk waar de structuur strikt vastligt en automatisch controleerbaar moet zijn. Daarom houdt het stand in overheids- en factuurverkeer, waar formaten jarenlang stabiel en bindend moeten zijn.

JSON is compacter en is de standaard in webkoppelingen, maar heeft geen even ingeburgerde schemavalidatie in het dagelijks gebruik, en kent geen attributen, naamruimten of commentaar.

YAML is leesbaarder voor configuratiebestanden, maar gevoelig voor inspringfouten.

Zet je XML om naar JSON, houd dan rekening met wat verloren gaat: attributen en elementen worden gelijk behandeld, naamruimten verdwijnen, en de volgorde van broer-elementen is in een JSON-object niet gegarandeerd.

Alles hier draait lokaal in je browser, ook voor bestanden die je apparaat niet mogen verlaten.

Veelgestelde vragen

Wat is het verschil tussen welgevormd en geldig?

Welgevormd is syntactisch correct; geldig is bovendien conform een schema.

Waarom breken mijn accenttekens?

Omdat de gedeclareerde codering niet overeenkomt met die van het bestand.

Wat is de bytevolgordemarkering?

Een onzichtbaar teken aan het begin waar veel parsers op stuklopen.

Waarom XML voor facturen?

Omdat de structuur automatisch controleerbaar moet zijn tegen een verplicht schema.

Gaat er iets verloren bij omzetten naar JSON?

Ja: naamruimten, het onderscheid attribuut/element, en de volgorde.

Worden mijn gegevens verstuurd?

Nee.