XML (Extensible Markup Language) is een tekstformaat dat data opslaat in benoemde tags, zodat een bestand zowel de waarde bevat als een label voor wat die waarde betekent. Een stukje data als <prijs>49.95</prijs> vertelt je dat het getal een prijs is, zonder dat iemand hoeft te gokken.
Zie het als een pakketje met op elk item een paklijst. Alles erin is verpakt en gelabeld, dus wie de doos opent weet precies wat wat is. Door dat zelfbeschrijvende karakter bleef XML hangen voor facturen, overheidsfeeds en documentformaten: de structuur reist met de data mee. Tags kunnen ook in elkaar zitten, dus een order bevat een klant, die een adres bevat, dat een postcode bevat, allemaal in één nette boom. Het grootste nadeel is gewicht. XML herhaalt veel tagnamen, waardoor bestanden groter zijn en iets trager te lezen dan JSON. Bij een klein record maakt dat amper uit. Bij miljoenen regels telt het snel op.
Een heel XML-bestand lees je zelden met de hand. In plaats daarvan wijs je een tool naar precies het stukje dat je wilt met XPath, een querytaal om door de tag-boom te lopen. En omdat het formaat strikt is, kan een schema zoals XSD controleren of elk verplicht veld aanwezig is en het juiste type heeft. Dat is een vorm van datavalidatie nog voordat de data je systeem bereikt. Een foute factuur wordt zo aan de deur geweigerd, in plaats van drie stappen verderop je database te vervuilen.
Bij TopDevs werken we met XML zodra een klant koppelt met banken, de Belastingdienst of oudere partnersystemen die het nog spreken, en we zetten het netjes om naar het formaat dat de rest van hun stack prefereert.