XHTML eller HTML?
Hvert element i et markup språk har en relasjon til andre elementer i samme språk.
Relasjonen mellom elementene definerer strukturen av data. En dokument type definisjon
(Document Type Definition, DTD) gir en formell definisjon av elementer og tilhørende attributter for
dokumentets struktur. En DOCTYPE (dokumenttype) er en angivelse som bør stå øverst i alle
dine dokumenter og skal identifisere hvilken DTD du bruker.
W3C har definert en rekke DTD'er som
kan brukes for å publisere dokumenter på internett. To av de mest vanlige er HTML og XHTML
og om disse skal være såkalt Strict eller Transitional.
HTML 4.01 er den nyeste versjonen av HTML definert av W3C. Det vil trolig ikke komme noen
nyere versjon av HTML ettersom XHTML tar over. HTML er fremdeles en gyldig standard og siden
det finnes millioner av dokumenter på nettet som er av typen HTML så vil denne standarden
være gyldig i mange år fremover.
På grunn av den dårlige støtten for XHTML i de siste versjonene av Internet Explorer (den mest brukte
nettleseren i verden), så er HTML 4.01 fremdeles et godt velg for de som lager websider.
XHTML har den fordelen at koden må være korrekt formet og den kan lastes inn i en XML-parser som igjen
kan manipulere dataene med alle fordelene XML har med seg. Men finnes det noen god grunn til å bruke
XHTML hvis du ikke skal dra nytte av noen XML-verktøy. Overgangen fra HTML til XHTML er rett og slett
en måte å få dokumentene til å inneholde korrekt kode (markup). Kort oppsummert er det ingen fordeler ved
å bruke XHTML slik internett er i dag.
Det ser ut til å være en utbredt misforståelse at XHTML Transitional DOCTYPE er laget
for å gjøre at utviklere konverterer fra HTML til XHTML. Det er tull, siden HTML 4.01 DTD
og XHTML 1.0 DTD er veldig like. Den eneste forskjellen er at XHTML dokumenter MÅ være korrekt kodet
slik XML krever uansett om man bruker Transitional eller Strict. Så hvilken DOCTYPE skal jeg velge?
HTML 4.01 Strict DOCTYPE er nok for de fleste et bedre valg enn XHTML Transitional, fordi XHTML ikke godtar
elementer som font og presentajonsattributter som align. XHTML Transitional hjelper deg bare med å sørge for
at dokumentet ditt er korrekt kodet.
Når det er sagt så er fakta at veldig mange sider som produseres i dag bruker
XHTML Transitional DOCTYPE. I følge W3C er XHTML Transitional en gyldig standard og
de skulle vel vite hva de prater om. Poenget er at XHTML egentlig er et XML-format og bør
dermed sendes som XML vha mime-typen application/xhtml+xml. Men det er her det stopper
for mange nettlesere. Derfor har W3C gått ut med noen anbefalinger om hvordan man skal forholde seg
til dette.
Media types summary for serving XHTML documents
| Media type |
HTML 4 |
XHTML 1.0 (HTML compatible) |
XHTML 1.0 (other) |
XHTML Basic / 1.1 |
XHTML+MathML |
| text/html |
SHOULD |
MAY |
SHOULD NOT |
SHOULD NOT |
SHOULD NOT |
| application/xhtml+xml |
MUST NOT |
SHOULD |
SHOULD |
SHOULD |
SHOULD |
| application/xml |
MUST NOT |
MAY |
MAY |
MAY |
MAY |
| text/xml |
MUST NOT |
MAY |
MAY |
MAY |
MAY |
Anbefalingene fra W3 sier helt klart at man kan servere XHTML dokumenter som text/html i noen tilfeller, men
de bruker ordet may, mens de skriver at man should servere xhtml som application/xhtml+xml.
Tanken om å bruke XHTML som det foretrukne dokumenttypen er god. HTML ble laget for å presentere
data mens XML er designet til å beskrive data. Med kombinasjonen XHTML og CSS vil man kunne skille
helt mellom data og presentasjon. Et annet argument er som nevnt tidligere muligheten
til å behandle disse dokumentene som xml-filer og dermed dra nytte av de funksjonene xml har. Dette vil
man bl.a. få nytte av dersom man ønsker å presentere sine dokumenter på andre enheter enn pc.
Siden det er gyldig å servere XHTML dokumenter som text/html så er det ingenting i veien for å faktisk gjøre det.
Konklusjonen må vel være at det egentlig ikke spiller så veldig stor rolle. Dersom du vet hva du driver
med så er det egentlig bare å bruke den dokumenttypen du foretrekker. Dersom du ikke aner hva mime-type
og doctype er, så er nok HTML 4.01 løsningen for deg.
De ulike doctype's
-
HTML 4.01 Transitional
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-
HTML 4.01 Frameset
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">
-
HTML 4.01 Strict
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
-
XHTML 1.0 Transitional
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-
XHTML 1.0 Frameset
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">
-
XHTML 1.0 Strict
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-
XHTML 1.1
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
-
XHTML Basic 1.0
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML Basic 1.0//EN" "http://www.w3.org/TR/xhtml-basic/xhtml-basic10.dtd">
-
XHTML Basic 1.1
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML Basic 1.1//EN" "http://www.w3.org/TR/xhtml-basic/xhtml-basic11.dtd">
En bedre spesifisert list finner du her