Laatst bijgewerkt: 21 mei 2025

Titel - Wat is XML: Een uitgebreide gids

Wat is XML?

XML (Extensible Markup Language) is een opmaaktaal en bestandsformaat dat wordt gebruikt voor het opslaan, verzenden en reconstrueren van gegevens. Het biedt een gestructureerde benadering voor het coderen van informatie, waardoor het zowel menselijk leesbaar als machinaal leesbaar is.

Belangrijkste kenmerken van XML

1. Gedefinieerd door open standaarden

  • Opgericht door het World Wide Web Consortium (W3C) in 1998 onder de XML 1.0 Specificatie.
  • Volgt strikte regels om ervoor te zorgen dat gegevens gestructureerd en gemakkelijk te interpreteren zijn.

2. Ontwerpdoelen

  • XML is ontworpen met eenvoud, algemeenheid en bruikbaarheid over verschillende platformen.
  • Maakt gebruik van een tekstgebaseerd formaat, waardoor het gemakkelijk te lezen en te bewerken is.

3. Unicode-ondersteuning

  • XML ondersteunt Unicode, waardoor het tekst in meerdere talen kan opslaan en verwerken.

4. Veelzijdigheid

  • Oorspronkelijk gemaakt voor documenten, wordt XML nu breed gebruikt voor gegevensrepresentatie in verschillende domeinen, waaronder webservices, API’s en configuratiebestanden.

5. Schema en API’s

  • XML-structuren kunnen worden gedefinieerd met behulp van Document Type Definition (DTD), XML Schema (XSD) of Relax NG.
  • Diverse API’s, zoals DOM (Document Object Model) en SAX (Simple API for XML), maken XML-verwerking mogelijk.

6. Veelvoorkomende toepassingen van XML

  • Gegevensuitwisseling tussen verschillende systemen (bijv. webservices, API’s).
  • Configuratiebestanden in softwaretoepassingen.
  • Opslaan van gestructureerde informatie (bijv. RSS-feeds, SVG-graphics, documentformaten zoals DOCX).
  • Webontwikkeling (bijv. XHTML, SOAP, AJAX-gebaseerde toepassingen).

Nu je weet wat XML is, leer hoe je XML-bestanden kunt lezen en bewerken met deze beginnersvriendelijke gids.

Overzicht van XML

1. Hoofddoel van XML: Serialisatie

Serialisatie in XML betekent:

  • Gegevens opslaan in een gestructureerd formaat.
  • Gegevens verzenden tussen verschillende systemen.
  • Gegevens reconstrueren in een bruikbare vorm.

Wanneer twee systemen informatie moeten uitwisselen, biedt XML een gestandaardiseerd bestandsformaat voor interoperabiliteit. Het fungeert als een “lingua franca” voor gestructureerde gegevensuitwisseling.

2. XML als opmaaktaal

XML is een opmaaktaal, wat betekent dat het:

  • Labelt gegevens met tags voor een duidelijke structuur.
  • Organiseert informatie hiërarchisch.
  • Categoriseert gegevens met metadata.

Voorbeeld:

<book>
    <title>XML Basics</title>
    <author>John Doe</author>
</book>

Hier, <book>, <title> en <author> zijn tags die data‑elementen definiëren.

3. XML-schema (XSD) en validatie

Een XML-schema (XSD) definieert structurele regels voor XML-documenten.

XML-documenten kunnen:

  • Goed gevormd → Volgt basis syntaxisregels (correcte nesting, juiste sluitings‑tags).
  • Geldig → Voldoet aan schemaregels (verplichte elementen, juiste datatypes).

Voorbeeld van een XSD‑regel:

<xs:element name="title" type="xs:string"/>

Dit zorgt ervoor dat <title> een string‑waarde moet bevatten.

4. XML-mediatypes (RFC 7303)

De IETF RFC 7303 definieert XML-mediatypes voor gegevensoverdracht:

  • application/xml → Standaard XML‑gegevens.
  • application/xml-external-parsed-entity → Geparseerde XML‑entiteiten.
  • application/xml-dtd → XML DTD‑documenten.

Voor XML‑gebaseerde formaten wordt het +xml‑achtervoegsel gebruikt (bijv. image/svg+xml voor SVG‑afbeeldingen).

5. XML in netwerktoepassingen (RFC 3470 / IETF BCP 70)

De IETF BCP 70 (RFC 3470) beschrijft best practices voor het gebruik van XML in netwerkgebaseerde toepassingen, waardoor naadloze gegevensinteroperabiliteit tussen systemen wordt gegarandeerd.


Om programmatically met XML te werken, verken de beste XML-parsers voor Python, Java en JavaScript.

1. Toepassingen van XML

XML is een flexibele opmaaktaal ontworpen voor gegevensuitwisseling via het internet. De syntaxis heeft talloze documentformaten en communicatieprotocollen beïnvloed, waardoor het een fundamentele technologie is in vele sectoren.

Veelvoorkomende XML-gebaseerde formaten:

  • Webfeeds: RSS, Atom
  • Kantoordocumenten: Office Open XML, OpenDocument
  • Grafische en 3D-modellen: SVG, COLLADA
  • Webtechnologieën: XHTML
  • Gegevensuitwisselingsprotocollen: SOAP, XMPP
  • AJAX: Gebruikt XML voor asynchrone gegevensuitwisseling

Industrienormen die XML gebruiken:

  • Gezondheidszorg: HL7 (Health Level 7)
  • Reisindustrie: OpenTravel Alliance
  • Financiën: FpML (Financial products Markup Language)
  • Vastgoed & Hypotheken: MISMO
  • Overheidsgegevensuitwisseling: National Information Exchange Model

XML in de wetenschap:

In de meteorologie wordt XML gebruikt voor operationele weergave van weergegevens volgens de IWXXM-standaarden. Evenzo is Darwin Information Typing Architecture (DITA) een XML-standaard die veel wordt gebruikt in de uitgeverswereld.


Voor praktische implementatie, bekijk onze tutorial over hoe XML kunt lezen en bewerken in Python, Java en JavaScript.

2. Belangrijke terminologie in XML

Het begrijpen van de kernterminologie in XML is cruciaal om effectief met XML-documenten te werken.

Teken

Een XML-document is een reeks Unicode-tekens. XML 1.1 staat bijna alle Unicode-tekens toe, behalve het nullteken (U+0000), dat strikt verboden is.

Processor en applicatie

  • De XML-processor (of parser) leest en analyseert de XML-markup.
  • De applicatie ontvangt gestructureerde gegevens van de processor en handelt erop.

Markup en inhoud

XML verdeelt tekens in markup en inhoud:

  • Markup: Bevat elementen, attributen en entiteiten (bijv. <tag> en &amp;).
  • Inhoud: De feitelijke gegevens binnen elementen.
  • CDATA-secties: Sta tekst toe die niet als markup moet worden geparseerd, ingesloten in <![CDATA[ ... ]]>.

Tags en elementen

  • Tags: Markup-constructies ingesloten in < >.
    • <section> (Start-tag)
    • </section> (Eind-tag)
    • <line-break /> (Lege-element tag)
  • Elementen: Logische componenten gedefinieerd door tags.
    • Voorbeeld: <greeting>Hello, world!</greeting>

Attributen

Attributen bieden metadata voor elementen met naam‑waardeparen. Voorbeeld:

<img src="image.jpg" alt="Description" />

3. Tekens en ontsnappen in XML

Geldige Unicode-tekens in XML

XML-documenten staan alleen specifieke Unicode-tekens toe om correcte parsing te garanderen.

Toegestane tekens in XML 1.0:

  • Controletekens:
    • U+0009 (Tab)
    • U+000A (Line Feed)
    • U+000D (Carriage Return)
  • Teksttekens:
    • U+0020–U+D7FF
    • U+E000–U+FFFD
    • U+10000–U+10FFFF

Verbeteringen in XML 1.1:

  • Staat alle U+0001–U+001F controletekens toe, maar vereist dat ze geescaped worden.
  • U+0000 (nullteken) blijft verboden.

4. Codering in XML

Veelvoorkomende XML-coderingen:

  • UTF-8 (Aanbevolen standaard)
  • UTF-16 (Moet worden ondersteund door alle XML-parsers)
  • ASCII, ISO-8859-X (Legacy-coderingen)

Coderingverklaring in XML:

De XML-header kan de codering specificeren:

<?xml version="1.0" encoding="UTF-8"?>
  • Als er geen codering is gespecificeerd, wordt UTF-8 verondersteld.
  • UTF-16 vereist een BOM (Byte Order Mark) voor correcte detectie.

5. Speciale tekens escapen in XML

Aangezien XML-syntaxis bepaalde tekens reserveert, moeten ze geescaped worden om conflicten te voorkomen.

Vooraf gedefinieerde XML-entiteiten:

TekenEscaped FormVoorbeeld
< (Less than)&lt;I &lt;3 XMLI <3 XML
> (Greater than)&gt;x &gt; yx > y
& (Ampersand)&amp;AT&amp;TAT&T
' (Single quote)&apos;"O&apos;Reilly"O’Reilly
" (Double quote)&quot;She said &quot;hello&quot;She said “hello”

Numerieke tekenreferenties:

Voor speciale tekens die niet getypt kunnen worden, gebruik numerieke referenties:

  • Decimaal:
    &#20013;  <!-- Chinese character "中" -->
    
  • Hexadecimaal:
    &#x4E2D;  <!-- Chinese character "中" -->
    
  • Voorbeeld:
    <message>I &lt;3 J&#xF6;rg</message>
    
    Wordt weergegeven als: I <3 Jörg

Binaire gegevens verwerken:

XML ondersteunt geen ruwe binaire gegevens. Gebruik in plaats daarvan Base64‑codering.

6. Commentaren in XML

XML-commentaarsyntaxis:

<!-- This is a valid XML comment -->

Regels voor XML-commentaren:

  • Kan niet vóór de XML-declaratie verschijnen.
  • Kan geen -- (dubbele koppelteken) bevatten binnen het commentaar.
  • Entiteit-referenties worden genegeerd in commentaren.

Voorbeeld:

<!-- This is a comment with < and & symbols -->

Conclusie

XML is een essentiële technologie voor gestructureerde gegevensuitwisseling, die webfeeds, kantoordocumenten, wetenschappelijke gegevens en industrienormen aandrijft. Het begrijpen van belangrijke XML-terminologie, coderingregels en ontsnappingsmechanismen zorgt voor goed gevormde XML-documenten die correct functioneren over verschillende systemen.

Door best practices te volgen in tekencodering en ontsnappen, kunnen ontwikkelaars parsingfouten vermijden en compatibiliteit waarborgen in XML‑gebaseerde toepassingen.