Wat is XML en hoe gebruik je dit formaat?
Auteur: Redactie Domeny.ForSale Gepubliceerd
Kort samengevat: XML is een tekstformaat voor het opslaan en uitwisselen van gegevens. Tags beschrijven de betekenis en structuur van de informatie. Het wordt onder meer gebruikt voor systeemintegraties, configuratiebestanden en sitemaps. Je kunt een XML-bestand lezen in een teksteditor, maar om het correct te gebruiken moet je weten welke regels het betreffende systeem hanteert.
Hoe XML werkt en waar de naam voor staat
XML staat voor Extensible Markup Language, oftewel uitbreidbare opmaaktaal. Een tag is een label tussen punthaken, bijvoorbeeld <prijs>. Daarmee geef je aan wat de waarde tussen de tags betekent.
‘Uitbreidbaar’ betekent dat XML geen vaste lijst met tagnamen voorschrijft. De ontwerper van een formaat kan elementen definiëren zoals <product>, <bestelling> of <klant>. Systemen die gegevens uitwisselen moeten wel afspraken maken over de namen en structuur. Alleen het gebruik van XML zorgt er niet voor dat elk programma het bestand begrijpt.
XML beschrijft vooral gegevens, niet hun weergave. Een bestand met een productprijs en productnaam bepaalt niet automatisch hoe die op de website van een winkel worden weergegeven. Daarvoor zorgt de applicatie, eventueel met aanvullende verwerkingsregels.
Een XML-bestand lezen: een eenvoudig voorbeeld
Zo kan de beschrijving van één product eruitzien:
<?xml version="1.0" encoding="UTF-8"?>
<product id="123">
<naam>Keramische mok</naam>
<prijs valuta="PLN">39.90</prijs>
<beschikbaar>true</beschikbaar>
</product>
De eerste regel is een optionele XML-declaratie. Die geeft de taalversie en de tekencodering aan: de manier waarop letters en andere tekens in het bestand zijn opgeslagen. Als de declaratie UTF-8 vermeldt, moet de daadwerkelijke tekencodering van het bestand daarmee overeenkomen.
<product> is het hoofdelement, dat alle andere elementen omvat. <naam>, <prijs> en <beschikbaar> bevatten waarden. id="123" en valuta="PLN" zijn attributen: aanvullende informatie in de openingstag.
De namen van de elementen geven een aanwijzing over de betekenis van de gegevens, maar leggen niet alle regels vast. XML bepaalt zelf niet of een prijs twee decimalen moet hebben of dat true betekent dat het product op voorraad is. Zulke regels staan in de documentatie van het formaat of in het gegevensschema.
Aan welke regels moet correcte XML voldoen?
Een document met een correcte syntaxis wordt well-formed genoemd. Het moet één hoofdelement hebben en de elementen moeten correct worden gesloten en genest. <product><naam>Mok</product></naam> is onjuist, omdat de sluitingstags in de verkeerde volgorde staan.
Bij het lezen of aanpassen van een bestand zijn de volgende regels het belangrijkst:
- Hoofdletters en kleine letters maken verschil:
<Prijs>en<prijs>zijn verschillende namen. - Attribuutwaarden moeten tussen enkele of dubbele aanhalingstekens staan.
- Een leeg element kun je schrijven als
<opmerkingen/>in plaats van<opmerkingen></opmerkingen>. - Sommige tekens in de inhoud vereisen een speciale notatie:
&als&en<als<.
Een correcte syntaxis betekent nog niet dat het bestand aan de eisen van de ontvanger voldoet. Om de structuur te controleren kun je een XSD-schema gebruiken: een document dat de toegestane elementen, hun volgorde en de typen waarden beschrijft. Een bestand kan correcte XML bevatten en toch door een applicatie worden afgewezen, bijvoorbeeld omdat een bestelnummer ontbreekt.
Uitgebreidere documenten gebruiken ook naamruimten. Daarmee kun je elementen met dezelfde naam onderscheiden wanneer ze uit verschillende formaten komen. Verwijder daarom voorvoegsels zoals abc: en declaraties zoals xmlns niet alleen omdat ze overbodig lijken.
Waar XML wordt gebruikt en hoe het verschilt van HTML en JSON
Je komt XML tegen bij de gegevensuitwisseling tussen winkels en groothandels, bij integraties van bedrijfssystemen en bij sommige webdiensten. Het wordt ook gebruikt in RSS, een formaat voor het delen van inhoudsupdates, en in SVG, een formaat voor vectorafbeeldingen. XML-bestanden bevinden zich ook in DOCX- en XLSX-documenten.
Een XML-sitemap bevat adressen van webpagina’s en kan zoekmachines aanvullende informatie over die pagina’s geven. Zo’n sitemap garandeert echter niet dat pagina’s worden geïndexeerd of een bepaalde positie in de zoekresultaten krijgen.
HTML beschrijft de structuur van webpagina’s met vaste elementen, zoals koppen en alinea’s. Met XML kun je eigen elementnamen maken om gegevens vast te leggen. JSON is een ander tekstformaat voor gegevensuitwisseling, dat voornamelijk is gebaseerd op naam-waardeparen en lijsten.
Voor eenvoudige integraties van webapplicaties is JSON vaak handiger en compacter. XML kan een geschikte keuze zijn als de ontvanger of een bestaande standaard dat vereist. Als een groothandel bijvoorbeeld een catalogus in XML aanbiedt, heeft de winkel een importfunctie nodig die de specifieke structuur van die catalogus ondersteunt. Het is niet voldoende dat de importfunctie willekeurige bestanden met de extensie .xml kan verwerken.
XML openen en veilig gebruiken
Om een bestand te bekijken is een teksteditor voldoende. Een code-editor markeert daarnaast de tags en helpt je fouten te vinden. Ook een webbrowser kan de XML-structuur tonen of een melding over onjuiste syntaxis geven. Dat vervangt echter niet de controle of het bestand aan de eisen van de applicatie voldoet.
Maak vóór het importeren een kopie van het bestand, controleer het vereiste formaat in de documentatie van de ontvanger en test een kleine hoeveelheid gegevens. Upload bestanden met klantgegevens, wachtwoorden of bedrijfsinformatie niet naar willekeurige online validatietools.
Als je een applicatie bouwt die XML uit een onbekende bron leest, zorg dan voor een veilige configuratie van de parser: het programma dat het document analyseert. Beperk de verwerking van externe entiteiten en het ophalen van externe bronnen, zodat het bestand geen ongewenste toegang tot bestanden of het netwerk kan afdwingen.
Een praktische eerste stap: open het XML-bestand in een editor, zoek het hoofdelement en vergelijk de structuur met de documentatie van het systeem waarin je de gegevens wilt invoeren.
Zie ook: Wat is 2FA?
