XHTML, wie gebruikt het niet tegenwoordig? In de broncodes van veel websites ziet men immers XHTML in de DOCTYPE staan. Zo nu en dan is de pagina zelfs geldig. Maar is dit allemaal wel XML?
Dat lijkt een domme vraag, immers XHTML is per definitie XML. Die definitie is echter niet helemaal waar. Het komt allemaal neer op het MIME-type, oftewel de inhoud van de HTTP-header genaamd Content-Type. De specificatie van XHTML 1.0 stelt namelijk dat het MIME-type text/html mag zijn, terwijl de XML-specificatie juist zegt dat dit iets in de richting van application/xml moet zijn. In het geval van XHTML is het echte MIME-type hierdoor application/xhtml+xml.
Wat er gebeurt is nu eenvoudig uit te leggen. Browsers gebruiken een XML-parser bij application/xhtml+xml en een HTML-parser bij text/html. Nette XHTML-pagina's wordt met het verkeerde MIME-type dus gewoon als tag soup mishandeld. Validators zoals die van het W3C vormen de enige uitzondering.
Deze mishandeling heb ik beƫindigd door op deze website het MIME-type aan te passen. Er waren hierbij twee grote obstakels:
document.write. Google AdSense maakt hiervan gebruik om advertenties te tonen. Na veel speuren op het Internet en vier uur programmeren heb ik dit opgelost door zelf een slordig HTML-parsertje in JavaScript te schrijven dat als vervanging van de beruchte methode kon dienen.Accept. Deze header wordt gelezeen door mijn PHP-script en hiermee wordt gekozen in welk formaat het document wordt verzonden.Nu is deze site dus pas echt XHTML en kunnen browsers toestemming krijgen om hun XML-parser te gebruiken. Ik heb dit ook genoemd op de pagina over webstandaarden; u kunt zelfs zien of uw eigen browser geen Internet Explorer heet XHTML echt ondersteunt.
Tot slot dan nog maar wat andere nieuwtjes. Zoals reeds zichtbaar is dit blogsysteem keurig tweetalig gemaakt. In mijn profiel heb ik een recentere foto geplaatst. Ook staat daar nu dat ik geslaagd ben voor mijn propedeuse. De recente blogitems staan nu ook in mijn profiel vermeld.