Dit document is een Nederlandse vertaling van een Engelstalig document (http://www.w3.org/TR/xhtml1/).

Deze vertaling werd gemaakt door Andy Camps, vervolgens nagelezen door Ruud Steltenpool en gecorrigeerd door Andy Camps, maar kan nog enkele fouten bevatten. In geval van twijfel verwijzen wij naar de officiële Engelstalige versie.

Engelse versie:
http://www.w3.org/TR/xhtml1/
Deze versie:
http://www.playgarden.com/w3c/TR/xhtml1/overview.html
(zip archief van HTML)
Vertaler:
Andy Camps <andy.camps@playgarden.com>
Auteursrecht:
Copyright © 1999 W3C ( MIT, INRIA, Keio). Alle rechten voorbehouden. W3C-regels betreffende aansprakelijkheid, handelsmerk, documentgebruik en softwarelicentiëring zijn van toepassing.

W3C

XHTML 1.0: De Extensible HyperText Markup Language

Een herformulering van HTML 4 in XML 1.0

W3C Aanbeveling 26 Januari 2000

Deze versie:
http://www.w3.org/TR/2000/REC-xhtml1-20000126
(ZIP archief)
Laatste versie:
http://www.w3.org/TR/xhtml1
Vorige versie:
http://www.w3.org/TR/1999/PR-xhtml1-19991210
Auteurs:
Zie erkenning.
Vertaling:
Andy Camps, http://www.playgarden.com/

Samenvatting

Deze specificatie definieert XHTML 1.0, een herformulering van HTML 4 als een XML 1.0 toepassing en drie DTD's overeenkomstig met degene die gedefinieerd worden door HTML 4. De semantiek van de elementen en hun attributen zijn gedefinieerd in de W3C Aanbeveling voor HTML 4. Deze semantiek biedt de basis voor toekomstige uitbreidbaarheid van XHTML. Compatibiliteit met bestaande HTML User Agents is mogelijk door het volgen van een kleine set van richtlijnen.

Status van dit document

Deze sectie omschrijft de status van dit document op het ogenblik van publicatie. Andere documenten kunnen dit document opvolgen. De laatste status van deze documentreeks wordt onderhouden door het W3C.

Dit document werd nagekeken door W3C Leden en andere geïntereseerde partijen en is bekrachtigd door de Directeur als een W3C Aanbeveling. Het is een stabiek document en kan gebruikt worden als referentiemateriaal of geciteeerd als een normatieve referentie vanuit een ander document. W3C's rol in het maken van de Aanbeveling is de aandacht vestigen op de specificatie en de verspreiding ervan promoten. Dit verbetert de functionaliteit en interoperabiliteit van het Web.

Dit document is gemaakt als deel van de W3C HTML Activity. De doelen van de HTML Working Group (enkel leden) worden besproken in het HTML Working Group charter (enkel leden ).

Een lijst van de huidige W3C Aanbevelingen en andere technische documenten kan gevonden worden op http://www.w3.org/TR.

Publieke discussie over HTML eigenschappen vindt plaats op de mailing list www-html@w3.org (archief).

Meldt fouten in de vertaling van dit document aan andy.camps@playgarden.com.

De lijst met bekende fouten van de originele Engelstalige specificatie is beschikbaar op http://www.w3.org/2000/01/REC-xhtml1-20000126-errata.

Inhoud

1. Wat is XHTML?

XHTML is een familie van huidige en toekomstige document types en modules die een subset zijn van HTML 4 [HTML] en tegelijk HTML 4 uitbreiden en reproduceren. XHTML familie document types zijn gebaseerd op XML en zijn uiteindelijk ontworpen om te werken in samenwerking met XML-gebaseerde User Agents. De details van deze familie en de evolutie ervan worden meer gedetailleerd besproken in de sectie over Toekomstige Richtlijnen.

XHTML 1.0 (deze specificatie) is het eerste document type in de XHTML familie. Het is een herformulering van de drie HTML 4 document types als toepassingen van XML 1.0 [XML]. Het is bedoeld om te gebruiken als taal voor inhoud die tegelijk XML-conforming is en als sommige eenvoudige richtlijnen gevolgd worden, werkt in HTML 4 conforming User Agents. Ontwikkelaars die hun inhoud migreren naar XHTML 1.0 zullen de volgende voordelen ondervinden:

De XHTML familie is de volgende stap in de evolutie van het Internet. Door vandaag te migreren naar XHTML kunnen inhoudontwikkelaars de XML wereld binnengaan met alle bedoelde voordelen terwijl ze er zeker van kunnen zijn dat hun inhoud terugwaarts compatibel is en in de toekomst ook compatibel zal zijn.

1.1 Wat is HTML 4?

HTML 4 [HTML] is een SGML (Standard Generalized Markup Language) toepassing conform de Internationale Standaard ISO 8879, en wordt overal gezien als de standaard publicatietaal van het World Wide Web.

SGML is een taal voor het omschrijven van opmaaktalen, in het bijzonder de talen die gebruikt worden in electronische document uitwisseling, document management en documentpublicatie. HTML is een voorbeeld van een taal gedefinieerd in SGML.

SGML bestaat sinds midden jaren 80 en is redelijk stabiel gebleven. Veel van deze stabiliteit komt van het feit dat de taal zowel rijk aan eigenschappen als flexibel is. Deze flexibiliteit gaat echter gepaard met een prijs en deze prijs is een niveau van complexiteit die eigen is aan de aanpassing aan een verscheidenheid van omgevingen, inclusief het World Wide Web.

HTML, zoals origineel gemaakt, was bedoeld als taal voor de uitwisseling van wetenschappelijke en andere technische documenten, geschikt voor gebruik door niet-document specialisten. HTML addresseert het probleem van SGML complexiteit door het specifieren van een kleine set van structurele en semantische tags geschikt voor het schrijven van relatief eenvoudige documenten. Aanvullend op de vereenvoudiging van de document structuur, gaf HTML bijkomende ondersteuning voor hypertext. Multimedia mogelijkheden zijn later toegevoegd.

In een redelijk korte tijd werd HTML zeer populair en groeide snel buiten het originele doel. Sinds de creatie van HTML werden snel nieuwe elementen uitgevonden voor gebruik in HTML (als een standaard) en voor aanpassing van HTML aan verticale, sterk gespecialiseerde markten. Deze waslijst van nieuwe elementen heeft geleid tot compatibiliteitsproblemen voor documenten over verschillende platforms.

Aangezien de heterogeniteit van zowel software als platforms snel wijzigt, is het duidelijk dat de geschiktheid van 'klassieke' HTML 4 voor gebruik op deze platforms eerder beperkt is.

1.2 Wat is XML?

XML is de afkorting voor Extensible Markup Language en is een acronym van Extensible Markup Language [XML].

XML is ontwikkeld met als bedoeling het terugwinnen van de kracht en de flexibiliteit van SGML zonder het grootste deel van de complexiteit. Alhoewel het een gelimiteerde vorm van SGML is, behoudt XML het grootste deel van de SGML kracht en rijkheid en behoudt bovendien alle van de algemeen gebruikte eigenschappen van SGML.

Terwijl de meest waardevolle eigenschappen behouden blijven verwijdert XML veel van de complexe eigenschappen van SGML die het schrijven en ontwerp van geschikte software zowel moeilijk als duur maken.

1.3 Waarom is XHTML nodig?

De voordelen van migreren naar XHTML 1.0 worden hierboven beschreven. Een aantal algemene voordelen van migreren naar XHTML zijn:

2. Definities

2.1 Terminologie

De volgende termen worden gebruikt in deze specificatie. Deze termen vullen de definities in [RFC2119] aan gebaseerd op gelijkaardige definities in ISO/IEC 9945-1:1990 [POSIX.1]:

Implementatie-gedefinieerd (Implementation-defined)
Een waarde of gedrag is implementatie-gedefinieerd wanneer het aan de implementatie overgelaten wordt om de overeenstemmende vereisten voor correcte document constructie te definiëren [en documenteren].
Mag (May)
Handelend over implementaties moet het woord "mag (may)" geïntepreteerd worden als een optionele eigenschap die niet vereist is in deze specificatie maar die voorzien kan worden. Handelend over Document Conformiteit betekent het woord "mag" dat de optionele eigenschap niet gebruikt moet worden. De term "optioneel" heeft dezelfde defnitie als "mag".
Moet (Must)
In deze specificatie moet het woord "moet (must)" geïnterpreteerd worden als een absolute vereiste op de implementatie of op Strikt Conforme XHTML Documenten, afhankelijk van de context. De term "zal (shall)" heeft dezelfde definitie als "moet".
Gereserveerd (Reserved)
Een waarde is niet gespecificeerd, maar het is niet toegestaan om gebruikt te worden door Conforme Documenten noch mag de waarde ondersteunt worden door Conforme User Agents.
Zou (Should)
Handelend over implementaties moet het woord "zou (should)" geïnterpreteerd worden als een implementatie aanbeveling, maar niet een vereiste. Handelend over documenten, moet het woord "zou" geïnterpreteerd worden als aanbevolen programmeerpraktijk voor documenten en een vereiste voor Strikt Conforme XHTML Documenten.
Ondersteund (Supported)
Bepaalde faciliteiten in deze specificatie zijn optioneel. Als een faciliteit ondersteund wordt, gedraagt deze zich zoals gespecificeerd door deze specificatie.
Niet-ondersteund (Unspecified)
Wanneer een waarde of gedrag niet gespecificeerd is, definieert de specificatie geen nodige vereisten voor een faciliteit op een implementatie. Zelfs wanneer een document gebruikt wordt dat deze faciliteit gebruikt. Een document dat specifiek gedrag vereist in zo'n geval zal, eerder dan eender welk gedrag tolereren wanneer de faciliteit gebruikt wordt, geen Strikt Gelijkvormig XHTML Document zijn.

2.2 Algemene Termen

Attribuut
Een attribuut is een parameter van een element gedeclareerd in de DTD. Het type en het waardebereik van een type, inclusief een mogelijke standaard waarde, worden gedefinieerd in de DTD.
DTD
Een DTD, of document type definitie, is een collectie van XML declaraties die, als een collectie, de geldige structuur, elementen, en attributen definieert die beschikbaar zijn voor gebruik in een document dat voldoet aan de DTD.
Document
Een document is een datastroom die gestructureerd is zodat het informatie bevat die omvat worden in elementen die georganiseerd zijn als gedefinieerd in de geassocieerde DTD. Een datastroom wordt een datastroom genoemd als deze gecombineerd is met alle andere streams die erin gerefereerd worden. Zie Document Conformiteit voor meer informatie.
Element
Een element is een document structurings eenheid gedeclareerd in de DTD. Het element inhoudsmodel is gedefinieerd in de DTD en aanvullende semantiek kan gedefnieerd worden in de eigenlijke omschrijving van het element.
Faciliteiten
Functionaliteit omvat elementen, attributen en de semantiek geassocieerd met deze elementen en attributen. Een implementatie die deze functionaliteit ondersteund is verondersteld om de noodzakelijke faciliteiten te voorzien.
Implementatie
Een implementatie is een systeem dat een collectie van faciliteiten en services voorziet die deze specificatie ondersteund. Zie Gebruikrsagent Conformiteit voor meer informatie.
Parsing
Parsing is de actie waarbij ean document gescanned wordt en de informatie omvat in het document gefilterd wordt in de context van de elementen waarin de informatie gestructureerd is.
Rendering
Rendering is de actie waarbij de informatie in een document gepresenteerd wordt. Deze presentatie wordt gedaan op de meest gepaste vorm voor de omgeving waar gepresenteerd wordt (zoals spraak, visueel, afgedrukt).
User Agent (User Agent)
Een User Agent is een implementatie die XHTML documenten binnenhaalt en verwerkt. Zie User Agent Conformiteit voor meer informatie.
Validatie
Validatie is een proces waarbij documenten geverifieerd worden ten opzichte van de geassocieerde DTD, verzekerend dat de structuur, het gebruik van elementen en het gebruik van attributen consistent gebeurd met de definities in de DTD.
Correct-geformuleerd (Well-formed)
Een document is correct-geformuleerd (well-formed) wanneer het gestructureerd is volgens de regels gedefinieerd in Sectie 2.1 van de XML 1.0 Aanbeveling [XML]. Deze definitie definieert dat elementen, afgesloten door hun start en eind tags, correct in elkaar genest worden.

3. Normatieve Definitie van XHTML 1.0

3.1 Document Conformiteit

Deze versie van XHTML biedt een definitie van strikt Conforme XHTML documenten, welke beperkt worden door tags en attributen van de XHTML namespace. Zie Sectie 3.1.2 voor informatie over het gebruik van XHTML met andere namespaces, bijvoorbeeld om metadata op te nemen die uitgedrukt wordt in RDF binnen XHTML documenten.

3.1.1 Strikt Conforme Documenten

Een Strikt Gelijkvormig XHTML Document is een document dat enkel faciliteiten nodig heeft die omschreven worden als vereist in deze specificatie. Zulk een document moet voldoen aan elk van de volgende criteria:

  1. Het moet gevalideerd zijn tegenover één van de drie DTD's die gevonden kunnen worden in Appendix A.

  2. Het root element van het document moet <html> zijn.

  3. Het root element van het document moet toegewezen zijn aan de XHTML namespace door gebruik van het xmlns attribuut [XMLNAMES]. De namespace voor XHTML wordt gedefinieerd als http://www.w3.org/1999/xhtml.

  4. Er moet een DOCTYPE declaratie in het document staan voor het root element. De public identifier die opgenomen wordt in de DOCTYPE declaratie moet refereren naar één van de drie DTD's in Appendix A gebruik makend van de Formal Public Identifier. De system identifier mag gewijzigd worden om te voldoen aan de lokale systeem conventies.

    <!DOCTYPE html 
         PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
         "DTD/xhtml1-strict.dtd">
    
    <!DOCTYPE html 
         PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
         "DTD/xhtml1-transitional.dtd">
    
    <!DOCTYPE html 
         PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN"
         "DTD/xhtml1-frameset.dtd">
    

Hier volgt een voorbeeld van een minimaal XHTML document.

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html 
     PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
    "DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
  <head>
    <title>Virtuele Biblitheek</title>
  </head>
  <body>
    <p>Verplaatst naar <a href="http://vlib.org/">vlib.org</a>.</p>
  </body>
</html>

Merk op dat dit in voorbeeld de XML declaratie mee opgenomen is. Een XML declaratie zoals degene hierboven is niet vereist in alle XML documenten. XHTML document autheurs worden sterk aanbevolen om XML declaraties in al hun documenten te gebruiken. Zo'n declaratie is vereist wanneer de karakter encodering van het document niet de standaard UTF-8 or UTF-16 is.

3.1.2 XHTML gebruiken met andere namespaces

De XHTML namespace kan gebruikt worden met andere XML namespaces zoals blijkt uit [XMLNAMES], hoewel zulke documenten geen strikt Conforme XHTML 1.0 documenten zijn zoals hierboven gedefinieerd. Toekomstig werk bij W3C zal de specificatie van Conformiteit aanpakken voor documenten met meerdere namespaces.

Het volgende voorbeeld toont een manier waarop XHTML 1.0 gebruikt kan worden in samenwerking met de MathML Aanbeveling:

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="nl" lang="nl">
  <head>
    <title>Een Math Voorbeeld</title>
  </head>
  <body>
    <p>Het volgende is MathML markup:</p>
    <math xmlns="http://www.w3.org/1998/Math/MathML">
      <apply> <log/>
        <logbase>
          <cn> 3 </cn>
        </logbase>
        <ci> x </ci>
      </apply>
    </math>
  </body>
</html>

Het volgende voorbeeld toont een manier waarop XHTML 1.0 opmaak opgenomen kan worden in een andere XML namespace:

<?xml version="1.0" encoding="UTF-8"?>
<!-- de standaard namespace is initieel "books" -->
<book xmlns='urn:loc.gov:books'
    xmlns:isbn='urn:ISBN:0-395-36341-6' xml:lang="nl" lang="nl">
  <title>Goedkoper per Dozijn</title>
  <isbn:number>1568491379</isbn:number>
  <notes>
    <!-- maak HTML de standaard namespace voor een hypertext commentaar -->
    <p xmlns='http://www.w3.org/1999/xhtml'>
        Dit is ook beschikbaar <a href="http://www.w3.org/">online</a>.
    </p>
  </notes>
</book>

3.2 User Agent Conformiteit

Een Conforme User Agent moet voldoen aan alle van de volgende criteria:

  1. Om consistent te zijn met de XML 1.0 Aanbeveling [XML] moet de User Agent een XHTML document parsen en evalueren voor correct-geformuleerdheid. Als de User Agent beweert een validerende User Agent te zijn, moet de User Agent ook documenten valideren tegenover hun refererende DTD's volgens [XML].
  2. Wanneer de User Agent beweert faciliteiten te ondersteunen die gedefinieerd worden in deze specificatie of vereist zijn door normatieve referentie door deze specificatie, moet dit consistent gebeuren met de definitie van de faciliteiten.
  3. Wanneer een User Agent een XHTML document verwerkt als algemene XML, zal de User Agent enkel attributen van het type ID (zoals het id attribuut op de meeste XHTML elementen) als fragment identifiers herkennen.
  4. Als een User Agent een element tegenkomt dat niet herkend wordt moet de inhoud van het element weergegeven worden.
  5. Als een User Agent een attribuut tegenkomt dat niet herkend wordt moet de gehele attribuut specificatie (het attribuut en de waarde) genegeerd worden .
  6. Als een User Agent een attribuutwaarde tegenkomt die niet herkend wordt moet de standaard attribuutwaarde gebruikt worden.
  7. Als er een entiteitreferentie tegengekomen wordt (andere dan degene van de vooraf gedefinieerde entiteiten) waarvoor de User Agent geen declaratie verwerkt heeft (welke kan voorkomen wanneer de declaratie een externe subset is welke de User Agent niet gelezen heeft), zou de entiteitsreferentie weergegeven moeten worden als de karakters (startend met de ampersand en eindigend met de punt-komma) die de entiteitsreferentie vormen.
  8. User Agents die karakters of karakter entiteitsreferenties tegenkomen die herkend, maar niet weergegeven kunnen worden, zouden het document moeten weergeven op zo'n manier dat het duidelijk is voor de gebruiker dat de weergave geen normale weergave is.
  9. De volgende karakters zijn gedefinieerd in [XML] als witruimtetekens (whitespace characters):

    De XML verwerker normaliseert lijn-einde-codes van verschillende systemen in één enkel line-feed karakter, dat doorgegeven wordt naar de toepassing. De XHTML User Agent moet aanvullend de volgende karakters als witruimtetekens aanvaarden:

    In elementen waar het 'xml:space' attribuut op 'preserve' gezet is moet de User Agent alle witruimtetekens intact laten (met als uitzondering van voorafgaande en afsluitende witruimtetekens welke verwijderd zouden moeten worden). Witruimte wordt verder behandeld volgens de volgende regels:

    Witruimte in attribuutwaarde wordt verwerkt volgens [XML].

4. Verschillen met HTML 4

Omdat XHTML een XML toepassing is moeten bepaalde praktijken die perfect legaal waren in SGML-gebaseerde HTML 4 [HTML] gewijzigd worden.

4.1 Documenten moeten correct-geformuleerd zijn

Correct-geformuleerdheid is een nieuw concept geïntroduceerd door [XML]. Essentieel betekent dit dat alle elementen ofwel eindtags moeten hebben ofwel geschreven moeten worden op een speciale manier (zoals beneden omschreven) en dat alle elementen moeten genest worden.

Hoewel overlapping illegaal is in SGML werd het algemeen getolereerd in bestaande browsers.

CORRECT: geneste elementen.

<p>hier is een benadrukte <em>paragraaf</em>.</p>

INCORRECT: overlappende elementen

<p>hier is een benadrukte <em>paragraaf.</p></em>

4.2 Element en attribuutnamen moeten kleine letters (lower case) zijn

XHTML documenten moeten kleine letters zijn voor alle HTML element en attribuutnamen. Dit verschil is nodig omdat XML hoofdlettergevoelig (case-sensitive) is: <li> en <LI> zijn bijvoorbeeld verschillende tags.

4.3 Voor niet lege elementen zijn eind tags vereist

In SGML-gebaseerde HTML 4 is het toegstaan dat bepaalde elementen geen eind tag hebben; met de elementen die afsluiting veronderstellen. Deze weglating is niet toegestaan in XML-gebased XHTML. Alle elementen behalve deze gedeclareerd in de DTD als EMPTY moeten een eind tag hebben.

CORRECT: afgesloten elementen

<p>hier is een paragraaf.</p><p>hier is een volgende paragraaf.</p>

INCORRECT: niet afgesloten elementen

<p>hier is een paragraaf.<p>hier is een volgende paragraaf.

4.4 Attribuutwaarden moeten steeds tussen aanhalingstekens

Alle attribuutwaarden moeten tussen aanhalingstekens, zelfs degene die numeriek lijken te zijn.

CORRECT: attribuutwaarden tussen aanhalingstekens

<table rows="3">

INCORRECT: attribuutwaarden niet tussen aanhalingstekens

<table rows=3>

4.5 Attribuutminimalisatie

XML ondersteund geen attribuutminimalisatie. Attribuutwaardeparen moeten voluit geschreven worden. Attribuutnamen zoals compact en checked kunnen niet voorkomen in elementen zonder dat hun waarde gespecificeerd is.

CORRECT: niet geminimaliseerde attributen

<dl compact="compact">

INCORRECT: geminimaliseerde attributen

<dl compact>

4.6 Lege Elementen

Lege elementen moeten ofwel een eind tag hebben ofwel moet de start tag eindigen met />. Bijvoorbeeld <br/> of <hr></hr>. Zie HTML Compatibiliteitsrichtlijnen voor informatie over manieren die deze terugwaartse compatibiliteit met HTML 4 User Agents verzekeren.

CORRECT: afgesloten lege tags

<br/><hr/>

INCORRECT: niet-afgesloten lege tags

<br><hr>

4.7 Afhandeling van witruimte in attribuutwaarden

In attribuutwaarden zullen User Agents de voorafgaande en afsluitende witruimten van attribuutwaarden en map sequenties van één of meer witruimtekarakters (inclusief lijnafbrekingen) afstrippen tot één enkele inter-word spatie (een ASCII spatie karakter voor westerse scripts). Zie Sectie 3.3.3 van [XML].

4.8 Script en Style elementen

In XHTML worden de script en style elementen gedeclareerd met #PCDATA inhoud. Het gevolg is dat < en & behandeld zullen worden als de start van de markup en entiteiten zoals &lt; en &amp; zullen herkend worden als entiteitreferenties bij de XML verwerker tot < respectievelijk &. De inhoud van het script of style element wrappen binnen een CDATA gemarkeerde sectie vermijdt de uitbreiding van deze entiteiten.

<script>
 <![CDATA[
 ... unescaped script inhoud ...
 ]]>
 </script>

CDATA secties worden herkend door de XML verwerker en verschijnen als nodes in het Document Object Model, Zie Sectie 1.3 van de DOM Level 1 Aanbeveling [DOM].

Een alternatief is het gebruik van externe scripts en style documenten.

4.9 SGML exclusies

SGML geeft de schrijver van een DTD de mogelijkheid om specifieke elementen uit te sluiten van gebruik binnen een element. Zulke beperkingen ("exclusies (exclusions)" genoemd) zijn niet mogelijk in XML.

De HTML 4 Strikt DTD verbiedt bijvoorbeeld het nesten van een 'a' element binnen een ander 'a' element. Het is niet mogelijk om zulke beperkingen te formuleren in XML. Hoewel deze beperkingen niet gedefinieerd kunnen worden in de DTD, zouden sommige elementen niet genest mogen worden. Een samenvatting van zulke elementen en de elementen die er niet in genest zouden mogen worden wordt gevonden in de normatieve Appendix B.

4.10 De elementen met 'id' en 'name' attributen

HTML 4 definieerde het name attribuut voor de elementen a, applet, form, frame, iframe, img en map. HTML 4 introduceerde ook het id attribuut. Beide attributen zijn geschikt om te gebruiken als fragment identifiers.

In XML zijn fragment identifiers van het type ID en kan er slechts één enkel attribuut van het type ID per element zijn. Daarom is in XHTML 1.0 het id attribuut gedefinieerd van het type ID. Om te verzekeren dat XHTML 1.0 documenten correct-gestructureerde XML documents, XHTML 1.0 documenten zijn MOET het id attribuut gebruikt worden wanneer fragment identifiers gedefinieerd worden, zelfs op elementen die historisch gezien steeds een name attribuut gehad hebben. Zie de HTML Compatibiliteitsrichtlijnen voor informatie over het verzekeren van zulke ankers als terugwaartscompatibel wanneer XHTML documenten geboden worden met media type text/html.

Merk op dat in XHTML 1.0 het name attribuut van deze elementen formeel afgeraden wordt en verwijderd zal worden in een opvolgende versie van XHTML.

5. Compatibiliteitsbelangen

Hoewel het niet vereist is dat XHTML 1.0 documenten compatibel zijn met bestaande User Agents, is het in praktijk gemakkelijk om dit te doen. Richtlijnen voor het maken van compatibele documenten kunnen gevonden worden in Appendix C.

5.1 Internet Media Type

op het ogenblik van publicatie van deze aanbeveling is de algemeen aanbevolen MIME labeling voor XML-gebaseerde toepassingen nog niet opgelost.

Hoewel XHTML Documenten die de richtlijnen volgen die vooropgesteld worden in Appendix C, "HTML Compatibiliteitsrichtlijnen" kunnen ze gelabeld worden met het Internet Media Type "text/html", aangezien ze compatibel zijn met de meeste HTML browsers. Dit document geeft geen aanbeveling over MIME labeling van andere XHTML documenten.

6. Toekomstige Richtlijnen

XHTML 1.0 biedt de basis voor een familie van document types die XHTML zullen uitbreiden en subsetten om een zo breed mogelijk bereik van toestellen en toepassingen te ondersteunen, door definitie van modules en specificatie van een mechanisme voor combinatie van deze modules. Dit mechanisme zal de uitbreiding en de sub-setting van XHTML 1.0 activeren op een uniforme manier door de definitie van nieuwe modules.

6.1 Modulariserende HTML

Wanneer het gebruik van XHTML evolueert van de traditionele desktop User Agents naar andere platforms, is het duidelijk dat niet alle XHTML elementen vereist zullen zijn op alle platforms. Een palmtop of een draagbare telefoon kunnen bijvoorbeeld alleen ondersteuning bieden voor een subset van XHTML elementen.

Het proces van modularisatie breekt XHTML op in een serie van kleinere element sets. Deze elementen kunnen dan opnieuw gecombineerd worden om te voldoen aan de noden van verschillende gemeenschappen.

Deze modules zullen in een later W3C document gedefinieerd worden.

6.2 Subsets en Uitbreidbaarheid

Modularisatie heeft een aantal voordelen:

6.3 Document Profielen

Een document profiel specificeert de syntax en semantiek van een set van documenten. Conformiteit van een document profiel biedt een basis voor interoperabiliteitsgaranties. Het document profiel specificeert de faciliteiten die nodig zijn om documenten van dat type te verwerken, zoals welke figuurformaten gebruikt kunnen worden, levels van scripting, style sheet ondersteuning en zo voort.

Voor product ontwerpers activeert dit verscheidene groepen die hun eigen standaard profiel definiëren.

Voor auteurs zal dit de noodzaak om verschillende versies van documenten te schrijven voor verschillende clients overbodig maken.

Voor speciale groepen zoals chemici, doktoren of wiskundigen laat dit toe om een speciaal profiel te bouwen dat gebruik maakt van standaard HTML elementen en een groep van elementen gecreëerd voor de noden van de specialist.

Appendix A. DTD's

Deze appendix is normatief.

Deze DTD's en entiteitsets vormen een normatief deel van deze specificatie. De complete set van DTD files samen met een XML declaratie en SGML Open Catalog is opgenomen in het zip bestand voor deze specificatie.

A.1 Document Type Definities

Deze DTD's benaderen de HTML 4 DTD's. Het is zeer waarschijnlijk dat wanneer de DTD's gemodulariseerd zijn, een methode van DTD constructie zal in werking treden die minder overeenstemt met HTML 4.

A.2 Entiteitsets

De XHTML entiteitsets zijn dezelfde als voor HTML 4, maar zijn aangepast om geldige XML 1.0 entiteit declaraties te zijn. Merk op dat de entiteit voor het Euro valutateken (&euro; of &#8364; of &#x20AC;) gedefinieerd is als onderdeel van de speciale karakters.

Appendix B. Element Beperkingen

Deze appendix is normatief.

De volgende elementen hebben beperkingen op de elementen die ze kunnen bevatten (zie Sectie 4.9). Deze beperking geldt op alle dieptes van nesting, dit wil zeggen dat het alle afstammende elementen bevat.

a
kan geen andere a elementen bevatten.
pre
kan de img, object, big, small, sub of sup elementen niet bevatten.
button
kan de input, select, textarea, label, button, form, fieldset, iframe of isindex elementen niet bevatten.
label
kan geen andere label elementen bevatten.
form
kan geen andere form elementen bevatten.

Appendix C. HTML Compatibiliteit Richtlijnen

Deze appendix is informatief.

Deze appendix vat ontwerprichtlijnen samen voor auteurs die hun XHTML documenten willen weergeven in bestaande HTML User Agents.

C.1 Verwerkingsinstructies

Wees bewust dat verwerkingsinstructies op sommige User Agents weergegeven worden. Merk echter ook op dat wanneer de XML declaratie niet opgenomen is in een document, het document enkel de standaard karakter coderingen UTF-8 of UTF-16 kan gebruiken.

C.2 Lege Elementen

Neem een spatie op voor de afsluitende / en > van lege elementen, zoals <br />, <hr /> en <img src="karen.jpg" alt="Karen" />. Gebruik ook de geminimaliseerde tag syntax voor lege elementen, zoals <br />, omdat de alternatieve syntax <br></br> toegestaan door XML onzekere resultaten kan geven in veel bestaande User Agents.

C.3 Element Minimalisatie en Inhoud van Lege Elementen

Wanneer een leeg geval van een element waarvan het inhoudsmodel niet EMPTY is (bijvoorbeeld een lege titel of paragraaf) gebruikt wordt gebruik dan geen geminimaliseerde vorm (gebruik dus <p> </p> en niet <p />).

C.4 Opgenomen Style Sheets en Scripts

Gebruik externe style sheets als jouw style sheet < of & of ]]> of -- gebruikt. Gebruik externe scripts als jouw script < of & of ]]> of -- gebruikt. Merk op dat het aan XML parsers toegstaan wordt om ongemerkt de inhoud van de opmerkingen te verwijderen. Daarom zal de historische praktijk van "verbergen" van scripts en style sheets binnen opmerkingen om documenten terugwaarts compatibel te maken waarschijnlijk niet werken zoals verwacht in XML-gebaseerde implementaties.

C.5 Lijnafbrekingen (Line Breaks) binnen Attribuutwaarden

Vermijdt lijnafbrekingen en meerdere witruimtekarakters binnen attribuutwaarden. Deze worden niet consistent behandeld door User Agents.

C.6 Isindex

Neem niet meer dan één isindex element op in de head van het document. Het isindex element wordt afgeraden ten opzichte van het input element.

C.7 De lang en xml:lang Attributen

Gebruik zowel de lang en xml:lang attributen wanneer de taal van een element gespecificeerd wordt. De waarde van het xml:lang attribuut heeft voorrang.

C.8 Fragment Identifiers

In XML verwijzen URI's [RFC2396] die eindigen met de fragment identifiers in de vorm "#foo" niet naar elementen met een attribuut name="foo"; maar naar elementen met een attribuut gedefinieerd van het type ID, zoals het id attribuut in HTML 4. Veel bestaande HTML clients ondersteunen het gebruik van ID-type attributen op deze manier niet zodat identieke waarden voorzien kunnen worden voor beide van deze attributen om de maximale voorwaartse en terugwaartse compatibiliteit te verzekeren (zoals, <a id="foo" name="foo">...</a>).

Aangezien de set van legale waarden voor attributen van het type ID veel kleiner is dan deze van het type CDATA, is het type van het name attribuut gewijzigd in NMTOKEN. Dit attribuut is zodanig beperkt dat het enkel dezelfde waarden kan hebben als het type ID of als de Name productie in XML 1.0 Sectie 2.5, productie 5. Jammer genoeg kan deze beperking niet uitgedrukt worden in de XHTML 1.0 DTD's. Omwille van deze wijziging moet de omzetting van bestaande HTML documenten met de nodige zorg gebeuren. De waarden van deze attributen moet uniek zijn binnen het document, geldig en iedere referentie naar deze fragment identifiers (zowel intern als extern) moet geupdate worden wanneer de waarden wijzigen tijdens de conversie.

Merk tenslotte op dat XHTML 1.0 het name attribuut van de a, applet, form, frame, iframe, img en map elementen afraadt en dat het verwijderd zal worden in opvolgende versies van XHTML.

C.9 Karaktercodering

Gebruik om karaktercodering te specifiëren in het document zowel de encoderende attribuutspecificatie van de xml declaratie (zoals <?xml version="1.0" encoding="EUC-JP"?>) en een meta http-equiv statement (zoals <meta http-equiv="Content-type" content='text/html; charset="EUC-JP"' />). De waarde van het encoderend attribuut van de xml verwerkingsinstructie heeft voorrang.

C.10 Boolean Attributen

Sommige HTML User Agents zijn niet in staat om booleaanse attributen te interpreteren wanneer deze voorkomen in hun volledige (niet-geminimaliseerde) vorm, zoals vereist door XML 1.0. Merk op dat dit probleem geen invloed heeft op User Agents die overeenstemmen met HTML 4. De volgende attributen zijn betrokken: compact, nowrap, ismap, declare, noshade, checked, disabled, readonly, multiple, selected, noresize, defer.

C.11 Document Object Model en XHTML

De Document Object Model level 1 Aanbeveling [DOM] definieert document object model interfaces voor XML en HTML 4. Het HTML 4 document object model specifieerd dat HTML element en attribuutnamen in hoofdletters teruggegeven worden. Het XML document object model specifieerd dat element en attribuutnamen teruggegeven worden op de manier waarop ze gespecificeerd zijn. In XHTML 1.0 zijn elementen en attributen gespecificeerd in kleine letters (lower-case). Dit ogenschijnlijk verschil kan geadresseerd worden op manieren:

  1. Toepassingen die XHTML documents benaderen die geserveerd worden met als Internet media type text/html via het DOM kunnen het HTML DOM gebruiken en vertrouwen op element en attribuutnamen teruggezonden in hoofdletters.
  2. Toepassingen die XHTML documents benaderen die geserveerd worden met als Internet media types text/xml of application/xml kunnen ook gebruik maken van de XML DOM. Elementen en attributen zullen teruggezonden worden in kleine letters (lower-case). Sommige XHTML elementen zullen mogelijk wel of niet verschijnen in de object tree omdat ze optioneel zijn in het inhoudsmodel (zoals het tbody element binnen table). Dit komt voor omdat in HTML 4 sommige elementen toegestaan werden die zodanig geminimaliseerd mochten worden dan de start en eind tags beide weggelaten konden worden (een SGML eigenschap). Dit is niet mogelijk in XML. In plaats van te vereisen dat document auteurs extra elementen moeten invoegen, heeft XHTML de elementen optioneel gemaakt. Toepassingen moeten zich overeenstemmend hieraan aanpassen.

C.12 Gebruik van Ampersands in Attribuutwaarden

Wanneer een attribuutwaarde een ampersand bevat moet het uitgedrukt worden als een karakter entiteit referentie (zoals "&amp;"). Wanneer bijvoorbeeld het href attribuut van het a element verwijst naar een CGI script dat parameters nodig heeft, moet het uitgedrukt worden als http://mijn.site.dom/cgi-bin/mijnscript.pl?class=guest&amp;name=user in plaats van http://mijn.site.dom/cgi-bin/mijnscript.pl?class=guest&name=user.

C.13 Cascading Style Sheets (CSS) en XHTML

De Cascading Style Sheets level 2 Aanbeveling [CSS2] definieert style eigenschappen welke toegepast worden in de parse tree van het HTML of XML document. Verschillen in parsing zullen verschillende visuele of aurale resultaten produceren afhankelijk van de gebruikte selectors. De volgende hints zullen dit effect beperken voor documenten welke geserveerd worden zonder aanpassing aan beide media types:

  1. CSS style sheets voor XHTML zouden kleine letters voor element en attribuutnamen moeten gebruiken.
  2. In tabelen zal het tbody element genegeerd worden door de parser van een HTML User Agent, maar niet door de parser van een XML User Agent. Daarom zou je altijd expliciet een tbody element moeten toevoegen als er naar verwezen wordt in een CSS selector.
  3. Binnen de XHTML name space, worden User Agents verondersteld om het "id" attribuut te herkennen als een attribuut van type ID. Daarom zouden style sheets nog in staat moeten om de korte "#" selector syntax te blijven gebruiken, zelfs wanneer de User Agent de DTD niet leest.
  4. Binnen de XHTML name space, worden User Agents verondersteld om het "class" attribuut te herkennen. Daarom zouden style sheets nog in staat moeten zijn om de korte "." selector syntax te blijven gebruiken.
  5. CSS definieert verschillende Conformiteitsregels voor HTML en XML documenten; wees er bewust van dat de HTML regels gelden voor XHTML documenten geleverd als HTML en de XML regels gelden voor XHTML documenten geleverd als XML.

Appendix D. Erkenning

Deze appendix is informatief.

Deze specificatie is geschreven met de medewerking van de leden van de W3C HTML working group:

Steven Pemberton, CWI (HTML Working Group Chair)
Murray Altheim, Sun Microsystems
Daniel Austin, AskJeeves (CNET: The Computer Network tot Juli 1999)
Frank Boumphrey, HTML Writers Guild
John Burger, Mitre
Andrew W. Donoho, IBM
Sam Dooley, IBM
Klaus Hofrichter, GMD
Philipp Hoschka, W3C
Masayasu Ishikawa, W3C
Warner ten Kate, Philips Electronics
Peter King, Phone.com
Paula Klante, JetForm
Shin'ichi Matsui, Panasonic (W3C bezoekende ingenieur tot September 1999)
Shane McCarron, Applied Testing and Technology (The Open Group tot Augustus 1999)
Ann Navarro, HTML Writers Guild
Zach Nies, Quark
Dave Raggett, W3C/HP (W3C leiding voor HTML)
Patrick Schmitz, Microsoft
Sebastian Schnitzenbaumer, Stack Overflow
Peter Stark, Phone.com
Chris Wilson, Microsoft
Ted Wugofski, Gateway 2000
Dan Zigmond, WebTV Networks

Appendix E. Referenties

Deze appendix is informatief.

[CSS2]
"Cascading Style Sheets, level 2 (CSS2) Specificatie", B. Bos, H. W. Lie, C. Lilley, I. Jacobs, 12 Mei 1998.
Laatste versie beschikbaar op: http://www.w3.org/TR/REC-CSS2
[DOM]
"Document Object Model (DOM) Level 1 Specificatie", Lauren Wood et al., 1 Oktober 1998.
Laatste versie abeschikbaar op: http://www.w3.org/TR/REC-DOM-Level-1
[HTML]
"HTML 4.01 Specificatie", D. Raggett, A. Le Hors, I. Jacobs, 24 December 1999.
Laatste versie beschikbaar op: http://www.w3.org/TR/html401
[POSIX.1]
"ISO/IEC 9945-1:1990 Information Technology - Portable Operating System Interface (POSIX) - Part 1: System Application Program Interface (API) [C Language]", Institute of Electrical and Electronics Engineers, Inc, 1990.
[RFC2046]
"RFC2046: Multipurpose Internet Mail Extensions (MIME) Part Two: Media Types", N. Freed and N. Borenstein, November 1996.
Beschikbaar op http://www.ietf.org/rfc/rfc2046.txt. Merk op dat deze RFC de RFC1521, RFC1522 en RFC1590 ongeldig maakt.
[RFC2119]
"RFC2119: Key words for use in RFCs to Indicate Requirement Levels", S. Bradner, Maart 1997.
Beschikbaar op: http://www.ietf.org/rfc/rfc2119.txt
[RFC2376]
"RFC2376: XML Media Types", E. Whitehead, M. Murata, Juli 1998.
Beschikbaar op: http://www.ietf.org/rfc/rfc2376.txt
[RFC2396]
"RFC2396: Uniform Resource Identifiers (URI): Generic Syntax", T. Berners-Lee, R. Fielding, L. Masinter, Augustus 1998.
Dit document updates RFC1738 en RFC1808.
Beschikbaar op: http://www.ietf.org/rfc/rfc2396.txt
[XML]
"Extensible Markup Language (XML) 1.0 Specificatie", T. Bray, J. Paoli, C. M. Sperberg-McQueen, 10 Februari 1998.
Laatste versie beschikbaar op: http://www.w3.org/TR/REC-xml
[XMLNAMES]
"Namespaces in XML", T. Bray, D. Hollander, A. Layman, 14 Januari 1999.
XML namespaces voorzien een eenvoudige methode om de kwaliteit van namen te bepalen die gebruikt worden in XML documenten door ze te associëren met namespaces geidentificeerd door URI.
Laatste versie beschikbaar op: http://www.w3.org/TR/REC-xml-names

Level Triple-A conformance icon, W3C-WAI Web Content Accessibility Guidelines 1.0