XHTML Introductie

Wat is XHTML

XHTML (Extensible Hypertext Markup Language) is een opmaaktaal, vooral voor websites, die de functionaliteit heeft van HTML, maar een met striktere syntaxis.
Dit omdat HTML gebaseerd is op het flexibele SGML (Standard Generalized Markup Language), waar XHTML gebaseerd is op XML (Extensible Markup Language), een striktere subset van SGML.
Door de striktere syntaxis van XML-documenten kunnen deze makkelijker verwerkt worden door een XML-parser (computerprogramma, dat de grammaticale structuur van een invoer volgens een vastgelegde grammatica ontleedt), terwijl SGML-documenten een veel complexere parser nodig hebben.

XHTML 1.0 werd een W3C-standaard op 26 januari 2000.

Verschillen tussen HTML en XHTML

De verschillen tussen HTML en XHTML zijn klein. Omdat de regels van XHTML gebaseerd zijn op die van XML, geldt dezelfde bijzondere striktheid in het hanteren van die regels als bij XML. Hier volgen de belangrijkste verschillen.

  • XHTML documenten moeten starten met een XHTML DocType declaratie.
  • Alle elementen moeten afgesloten worden: ook de elementen die volgens de HTML 4.01-specificatie optioneel zijn om af te sluiten.
    Elementen als <br> en <img> waarvoor geen eindtag bestaat, moeten worden afgesloten met een / (schuine streep); dus <br /> en <img />.
  • Alle markup moet onderkast (lowercase, kleine letters) worden geschreven.
  • Alle attribuutwaarden moeten omsloten worden door aanhalingstekens (double quotes).
  • Elementen moeten correct genest worden.

Enkele voorbeelden

  • Alle elementen moeten gesloten worden
    • Fout: <p>Dit is een paragraaf.<p>Dit is nog een paragraaf.
    • Juist: <p>Dit is een paragraaf.</p><p>Dit is nog een paragraaf.</p>
  • Ook lege elementen moeten gesloten worden
    • Fout: <hr>
    • Juist: <hr />
  • Elementen moeten correct genest worden
    • Fout: <em><strong>Tekst wordt met nadruk weergegeven.</em></strong>
    • Juist: <em><strong>Tekst wordt met nadruk weergegeven.</strong></em>
  • Attribuutwaarden moeten tussen aanhalingstekens
    • Fout: <style type=text/css>
    • Juist: <style type="text/css">
  • Alle elementen en attributen moeten met kleine letters geschreven worden
    • Fout: <BODY><H1 CLASS="naam">html-totaal</H1></BODY>
    • Juist: <body><h1 class="naam">html-totaal</h1></body>
  • Attributen mogen niet geminimaliseerd worden
    • Fout: <option disabled>Alleen lezen</option>
    • Juist: <option disabled="disabled">Alleen lezen</option>
  • style- en script-elementen zijn #PCDATA en zullen dus geparset worden.
    Speciale karakters, zoals <, moeten gecodeerd worden als entiteit of binnen een CDATA blok geplaatst worden
    • Fout: <script type="application/x-javascript">if (i < j) document.write("kleiner");</script>
    • Juist: <script type="application/x-javascript"><![CDATA[if (i < j) document.write("kleiner");]]></script>

XHTML 1.0 heeft, net als HTML 4.01, drie varianten: Strict, Transitional en Frameset.

XHTML 1.1 heeft deze driedeling niet, het gebruik van XHTML 1.1 voor websites wordt echter niet aangeraden vanwege de strikte kenmerken van deze standaard en de problemen met ondersteuning door webbrowsers.

Voordelen van XHTML

Het gebruik van goede, structurele markup volgens de regels van HTML 4.01 is al een hele opgave voor webontwikkelaars. Het gebruik van markup volgens de regels van XHTML gaat nog een paar stappen verder. Om tot een afgewogen keuze te komen tussen het gebruik van HTML of XHTML, volgen hier enkele voordelen van XHTML.

Voordelen

  • XHTML biedt, mits goed gebruikt, enkele voordelen boven HTML. Doordat XML-documenten well-formed moeten zijn, kunnen ze makkelijker geïnterpreteerd worden door useragents. Een correcte XML-parser moet namelijk een fatale error geven als een XML-document niet volledig correct is, terwijl bij SGML-parsers complexe error-correcties worden gedaan. Doordat voor het verwerken van XHTML minder rekenkracht nodig is kan deze ook beter verwerkt worden door useragents met minder rekenkracht, zoals mobiele telefoons en pda's.
  • Door de modularisatie van XHTML kan XHTML makkelijk uitgebreid worden met nieuwe elementen en attributen. Ook worden hiermee de compatibiliteitsproblemen opgelost die ontstonden door onofficiële uitbreidingen van de HTML-standaard die niet door alle browsers werden ondersteund.
  • In XHTML kunnen verschillende XML-namespaces gebruikt worden, zo kunnen MathML en Scalable Vector Graphics in een XHTML-document verweven worden.

Bovengenoemde voordelen zijn grotendeels theoretisch en in enkele gevallen praktisch van aard (bijvoorbeeld bij het verwerken aan de server-side van XHTML naar andere formaten of het testen van de markup op validiteit).

naar boven naar boven naar andere versies
naar boven naar andere versies