---
title: "XML-bestand: wat is XML en hoe open je het?"
description: "XML (Extensible Markup Language) is een opmaaktaal om gegevens gestructureerd op te slaan en uit te wisselen tussen systemen."
canonical: https://www.keurigonline.nl/begrippenlijst/xml
last_modified: 2025-12-18
---

[Terug naar begrippenlijst](https://www.keurigonline.nl/begrippenlijst)

# XML

XML (Extensible Markup Language) is een opmaaktaal om gegevens gestructureerd op te slaan en uit te wisselen tussen systemen.

Actueel: [WordPress backup maken: 3 manieren + terugzettest \| KeurigOnline](https://www.keurigonline.nl/blog/wordpress-backup-maken)

XML (Extensible Markup Language) is een tekstformaat waarmee je gegevens gestructureerd opslaat, zodat zowel mensen als computers ze kunnen lezen. Een XML-bestand is gewone tekst met de extensie .xml, dus je opent het in elke browser of teksteditor.

Net als HTML werkt XML met tags tussen punthaken, maar de namen van die tags bedenk je zelf. Een klant kan er zo uitzien: <klant><naam>Jan</naam><plaats>Groningen</plaats></klant>. De elementen zitten in elkaar genest als een boom, met één hoofdelement bovenaan. XML is daarbij streng: vergeet je één afsluitende tag, dan weigert een XML-parser het hele bestand.

Bij websites kom je XML vooral tegen als sitemap.xml, het bestand dat zoekmachines vertelt welke pagina's je site heeft. Eén sitemap mag maximaal 50.000 URL's bevatten en moet in UTF-8 zijn opgeslagen. Ook RSS-feeds zijn XML, terwijl veel moderne web-API's tegenwoordig het compactere JSON gebruiken.

WordPress maakt sinds versie 5.5 zelf een sitemap op jouwdomein.nl/wp-sitemap.xml. Gebruik je een SEO-plugin zoals Yoast, dan vervangt die hem vaak door een eigen sitemap op een ander adres. Open het adres eerst in je browser en dien in Google Search Console alleen de sitemap in die je site echt toont.

## Geschiedenis

XML is een vereenvoudigde afgeleide van [SGML](https://en.wikipedia.org/wiki/Standard_Generalized_Markup_Language), een ISO-standaard uit 1986 voor gestructureerde documenten. Medio 1996 zette Jon Bosak van Sun Microsystems bij het W3C een werkgroep op om een lichtere variant voor het web te maken. Tim Bray, Jean Paoli en C. M. Sperberg-McQueen schreven de specificatie.

Belangrijke mijlpalen:

- **1986:** SGML wordt standaard als ISO 8879
- **1998:** [XML 1.0](https://www.w3.org/TR/1998/REC-xml-19980210) wordt op 10 februari een W3C Recommendation
- **2004:** XML 1.1 verschijnt (4 februari), met ruimere regels voor tekens in namen
- **2008:** [XML 1.0 Fifth Edition](https://www.w3.org/TR/xml/) (26 november), de versie die nog steeds geldt

Zie ook de [geschiedenis van XML op Wikipedia](https://en.wikipedia.org/wiki/XML).

## Bronnen

1. **W3C (2008)** - [Extensible Markup Language (XML) 1.0 (Fifth Edition)](https://www.w3.org/TR/xml/)
2. **MDN Web Docs** - [XML introduction](https://developer.mozilla.org/en-US/docs/Web/XML/Guides/XML_introduction)
3. **Sitemaps.org** - [Sitemaps XML format](https://www.sitemaps.org/protocol.html)
4. **WordPress (2020)** - [New XML Sitemaps Functionality in WordPress 5.5](https://make.wordpress.org/core/2020/07/22/new-xml-sitemaps-functionality-in-wordpress-5-5/)
5. **Wikipedia** - [XML](https://en.wikipedia.org/wiki/XML)

## Gerelateerde artikelen

WordPress 29 okt 2026

[WordPress backup maken: 3 manieren + terugzettest \| KeurigOnline](https://www.keurigonline.nl/blog/wordpress-backup-maken)

De database bevat alles wat je in wp-admin typt of instelt: berichten, pagina's, reacties, menu's, gebruikers, plugin-instellingen en bij een webshop ook de bestellingen en klantgegevens. Zonder database heb je een leeg WordPress met je afbeeldingen erbij.

**Let op: een XML-export is geen back-up**

- Via Extra > Exporteren krijg je alleen je inhoud: berichten, pagina's en reacties.
- Thema's, plugins, instellingen, widgets en je mediabestanden zelf zitten er niet in.

SEO 7 jul 2026

[Schema markup toevoegen aan WordPress zonder plugin (JSON-LD)](https://www.keurigonline.nl/blog/wordpress-seo-plugin-vervangen-door-schema-org-markup)

De meeste handleidingen laten je de FAQ-schema handmatig overtypen naast de zichtbare vraag en antwoord op de pagina, met als gevolg dat de twee na een tekstwijziging uit elkaar gaan lopen (precies de mismatch waar Google op afrekent, zie hierna). Slimmer: lees de FAQ-items rechtstreeks uit de gerenderde content, met `DOMDocument`, zodat schema en zichtbare tekst per definitie gelijk zijn en je nooit iets dubbel onderhoudt. Deze builder zoekt naar dezelfde `.ai-faq-item`-structuur die dit artikel voor zijn eigen FAQ-sectie gebruikt.

```php
add_filter( 'ko_schema_graph', 'ko_schema_faq_from_content' );
function ko_schema_faq_from_content( $graph ) {
    if ( ! is_single() ) {
        return $graph;
    }

    $content = get_the_content();
    if ( false === strpos( $content, 'ai-faq-item' ) ) {
        return $graph; // geen FAQ-blok op deze pagina
    }

    $dom = new DOMDocument();
    lib<mark>xml</mark>_use_internal_errors( true ); // negeer HTML5-warnings van DOMDocument
    $dom->loadHTML( '<?<mark>xml</mark> encoding="utf-8" ?>' . apply_filters( 'the_content', $content ) );
    lib<mark>xml</mark>_clear_errors();

    $xpath = new DOMXPath( $dom );
    $items = $xpath->query( "//div[contains(@class,'ai-faq-item')]" );
    $questions = array();

    foreach ( $items as $item ) {
        $q = $xpath->query( './/h3', $item )->item( 0 );
        $a = $xpath->query( ".//p[contains(@class,'with-margin')]", $item )->item( 0 );

        if ( ! $q || ! $a ) {
            continue;
        }

        $questions[] = array(
            '@type' => 'Question',
            'name' => trim( $q->textContent ),
            'acceptedAnswer' => array(
                '@type' => 'Answer',
                'text' => trim( $a->textContent ),
            ),
        );
    }

    if ( empty( $questions ) ) {
        return $graph;
    }

    $graph[] = array(
        '@type' => 'FAQPage',
        'mainEntity' => $questions,
    );

    return $graph;
}

```

## Dubbele schema voorkomen (plugin en handmatig samen)

Laat je Yoast of Rank Math actief draaien voor andere taken, en voeg je zelf ook JSON-LD toe, dan ontstaat al snel dubbele of conflicterende schema: twee `Organization`-blokken, of een `Article` vanuit de plugin naast jouw eigen versie[\[12\]](https://digihold.me/wordpress-schema-markup/). Google negeert dat niet automatisch; het kan de parser in verwarring brengen en rich results juist blokkeren in plaats van opleveren.

SEO 4 jul 2026

[Hreflang instellen in WordPress (Yoast, WPML, Polylang) 2026](https://www.keurigonline.nl/blog/wordpress-inhoud-lokaliseren-voor-seo-hreflang-instellen)

**Samenvatting: hreflang instellen in WordPress**

Hreflang is een signaal dat Google vertelt welke taal of regiovariant van een pagina bij welke bezoeker hoort. Het is geen rankingfactor, maar voorkomt dat de verkeerde taalversie in de zoekresultaten verschijnt. Je stelt het in via HTML head tags, een XML sitemap of een HTTP header, waarbij je er een kiest en nooit mixt. WPML, Polylang en TranslatePress automatiseren dit in WordPress. Toch heeft 75% van meertalige sites minstens een kritieke hreflang fout[\[1\]](https://empirium.io/nl/blog/hreflang-implementation-guide), dus test na implementatie altijd in Google Search Console.

Hreflang instellen is onmisbaar zodra je WordPress-site content in meerdere talen aanbiedt. Nederland heeft de hoogste WordPress-dichtheid ter wereld: 33,3 WordPress-sites per 1.000 inwoners, samen zo'n 591.000 sites[\[2\]](https://start24.nl/hosting-feiten-cijfers/). Veel van die sites groeien op enig moment internationaal en gaan content in meerdere talen aanbieden. Zonder hreflang loopt dat mis: Google toont een Duitse bezoeker soms de Nederlandse pagina, of behandelt je Belgische en Nederlandse variant als dubbele content. In dit artikel lees je wat hreflang instellen precies inhoudt, hoe je het doet met of zonder plugin, welke fouten het vaakst voorkomen en hoe je het test. Ook leggen we uit waarom dit onderwerp met de opkomst van AI-zoekmachines (nog) relevanter is geworden.
