HTML, och på senare tid, XHTML, är båda två standarder som används för att skapa hemsidor. Men vad skiljer dem åt och varför finns det två snarlika standarder för att göra samma sak? Vilken standard bör man använda?
Barn av SGML
Både HTML och XHTML är så kallade märkspråk (markup language). Dessa baserar sig i grund och botten på det anpassningsbara märkspråket SGML och är för det otränade ögat ytterst snarlika. Skillnaden mellan de två är att HTML är en direkt tillämpning av SGML, medan XHTML baseras på XML, som i sin tur är en restriktiv tillämpning av utvalda delar av SGML. Båda märkspråken tillåter dig dock att åstadkomma exakt samma saker.
Det fina med XML och XHTML är att dokument som är byggda med dessa tekniker måste vara välforumlerade, dvs, de måste följa standarden till punkt och pricka. Om ett program som avkodar ett XHTML-dokument (eller vilket XML-dokument som helst för den delen) stöter på något som inte följer standarden, så har programmet rätt att helt sonika avbryta avkodningen och visa upp ett felmeddelande. Detta skiljer sig drastiskt från HTML-dokument, där HTML-parsern (avkodaren / webbläsaren) i regel är väldigt förlåtande gentemot felaktigt skrivna HTML-dokument.
Det finns således flera fördelar med XHTML och XML framför HTML. För det första är det betydligt enklare att skriva ett program som avkodar dessa typer av dokument då det inte krävs tillnärmelsevis lika mycket felhantering. Detta har gjort att stödet för XML blomstrar i olika typer av programmeringsspråk samt att mängder av dokumenttyper numera baserar sig på XML då det är så lättbearbetat (ett känt exempel är senaste versionen av Word som sparar sina filer i XML-formatet .docx samt ”konkurrenten” .odt som används av bland annat OpenOffice.org). Då XML-baserade dokument är enklare och smidigare att avkoda / traversera lämpar de sig dessutom bättre för resurssvaga enheter som exempelvis mobiler.
Vidare hjälper en strikt standard som XHTML hemsidesmakare att skriva korrekta dokument (även om det givetvis kan vara bekvämt med ett mer förlåtande märkspråk som HTML). Uppstår ett fel så bör webbläsaren helt sonika visa ett felmeddelande istället för att försöka reparera och visa den ”trasiga” hemsidan (i praktiken fungerar det dock sällan på detta viset). Till sist minskar dessutom risken att en hemsida ser olika ut i olika webbläsare – detta då det finns ett visst mått av godtycke när det gäller att hantera felaktigt skrivna HTML-dokument.
Är det alltså XHTML jag bör använda?
Svaret på denna fråga blir både ja och nej. Som du ser ovan finns det flera fördelar med XHTML gentemot HTML – kan du HTML är det dessutom en barnlek att gå över till XHTML.
Problemet idag är dock ett relativt sett dåligt stöd från många webbläsare och då primärt Internet Explorer som förvisso kan visa XHTML-sidor, men som kräver att de servas som ett HTML-dokument istället för som ett riktigt XML-dokument. Detta gör att många av fördelarna med XHTML, dvs snabbare avkodning och betydligt resurssnålare avkodare (webbläsare) ändå går förlorade. Dessutom pågår fortfarande utvecklingen av HTML, och W3C (organisationen bakom standarder som HTML, XHTML och CSS), rekommenderar i dagsläget både HTML och XHTML.
Vilken av dessa två standarder man väljer blir således mycket en smaksak*. Ett strikt men enkelt format att avkoda (XHTML) eller ett förlåtande men betydligt mer resurskrävande format (HTML).
* Ovanstående inlägg visar således, med all önskvärd tydlighet, författarens preferens. 😉
Märk att IE6 (7 också?) inte visar din hemsida utan vill ladda hem den om du faktiskt skickar XHTML (vilket nästan inga gör) 🙂
Ok, jag fattar, men jag fattar inte skillnaden xhtml -xml, och inte heller varför man inte skall använda xml om detta redan är en befintlig standard, som i sin tur xhtml baserar sig på .. ? Eller är det så simpelt att xhtml lämpar sig för webbsnickeri och xml är mera för programbygge ?
nu ska vi ju inte glömma att browsers i dagsläget parsar xhtml som html med lite undantag 🙂
dessutom är det inget problem att upprätthålla samma strikhet med html, så länge man validerar koden
sedan kan man undra vad som händer när html5 kommer.. har läst att browserutvecklare knappt ger xhtml(2) någon uppmärksamhet, utan all fokus läggs på html5, som i sin tur kommer med en bunt nya taggar och attribut/ändringar. ska då xhtml2 bara vara ett lager på detta?
för mig är meest xhtml en hipp fluga som kommer misslyckas, och jag tror framtiden ligger i html5
sedan är det ju precis som max säger 🙂
hur får man som att man kan få så andra kan kommentera på sin egna sida