XHTML
Wikipedia
XHTML | |
---|---|
Filändelse: | .xhtml, .xht, .html, .htm |
MIME-typ: | application/xhtml+xml |
Utvecklad av: | W3C |
Typ av format: | Märkspråk |
Utökad från: | XML, HTML |
Standard: | 1.0, 1.1 |
XHTML (Extensible HyperText Markup Language) är ett märkspråk och en vidareutveckling av HTML. XHTML är till skillnad från HTML, som är baserat på det flexiblare SGML, baserat på det striktare XML, som utvecklas av organisationen W3C. Tanken är att man med XHTML (liksom med HTML) ska kunna bygga och länka samman dokument som kan visas över webben. XHTML 1.0 blev en W3C-rekommendation 26 januari 2000. XHTML 1.1 blev en W3C-rekommendation 31 maj 2001.
Eftersom XHTML började som en omformulering av HTML i XML anses den av många vara den senaste versionen av HTML. Men XHTML är ett separat märkspråk.
W3C själva rekommenderar både aktuella versioner av XHTML och HTML parallellt - även om XHTML 1.0 tycks framhållas som det föredragna alternativet med tanke på att http://www.w3.org/TR/html/ leder till rekommendationen för XHTML 1.0 och inte rekommendationen för HTML 4.01 eller XHTML 1.1.
Innehåll |
[redigera] Anledning
I mindre mobila enheter som mobiltelefoner är det viktigt att inte slösa på resurser för onödiga uppgifter. En av dessa uppgifter var att tolka den komplexa HTML-syntaxen. För att göra all informationen på internet tillgängligare till flera mottagare krävdes därför ett nytt och striktare språk. Därför skapades XHTML som tack vare den striktare syntaxen inte krävde lika mycket arbete från tolken.
Eftersom HTML "tillät" fel så kämpade tolkarna oftast med att korrigera de fel som koden innehöll. Detta drog massa extra kraft och bidrog till att felaktig kod inte upptäcktes lika lätt. Med XHTML så är det rekommenderat att tolken endast visar ett felmeddelande för användaren när den stöter på ett fel, själva sidan kan inte visas om den innehåller fel. På så sätt krävs det inte lika mycket arbete av en XHTML-tolk som en HTML-tolk.
[redigera] Skillnader mot HTML
Skillnaderna mellan HTML och XHTML 1.0 syftar till största del att skapa XML-kompatibilitet. Detta kräver att dokumentet ska vara välformaterat. Med detta menas bland annat att alla element alltid måste stängas och inte får nästlas så att de överlappar varandra. Även tomma elementtyper måste stängas. XML är även skiftlägeskänsligt och därför kräver XHTML, per definition, att alla element- och attributnamn skrivs med gemener. Attributnamn måste dessutom inneslutas inom citationstecken (enkel ' eller dubbel ") och får inte förkortas. <INPUT checked>
är därför felaktigt, <input checked="checked" />
är av samma anledning korrekt.
XHTML är utbyggbart (eXtensible) i den meningen att man med hjälp av namnrymder kan använda element och attribut som egentligen inte tillhör XHTML-standarden. Det är en klar skillnad och förbättring från den tidigare HTML-standarden som bara tillät ett fixerat antal element. Exempel på namnrymder som kan blandas med XHTML är SVG, för att märka upp vektorgrafik, och MathML, för att beskriva matematiska uttryck. På så sätt kan dessa tolkas direkt i en webbläsare och man hoppas genom detta slippa webbläsarspecifika tillägg till XHTML-standarden.
[redigera] Övergången
Likheten mellan XHTML och HTML gjorde att många webbutvecklare tidigt gick över till det nya formatet.[1] Många webbläsare som skrivits för vanlig HTML kan nämligen presentera XHTML-dokument om det uppfyller vissa krav. Det innebär att dokument skrivna med XHTML är tillgängliga för alla, även med äldre läsare. Om detta ska vara möjligt kan man inte använda några XHTML-specifika egenskaper och därför skapade W3C Appendix C med punkter som måste följas. Om dessa följs så kan en gammal läsare tolka XHTML-dokumentet som ett vanligt HTML-dokument.
[redigera] Olika versioner
[redigera] XHTML 1.0
XHTML 1.0 är egentligen bara en omformulering av HTML 4.01 som XML. Denna version definieras alltså på samma sätt som HTML 4.01 av tre olika dokumentmallar.
- XHTML 1.0 Strict är samma sak som HTML 4.01 Strict fast med XML-syntax.
- XHTML 1.0 Transitional är samma sak som HTML 4.01 Transitional fast med XML-syntax, dvs där tillåts även några utgångna element, till exempel
font
,center
ochu
. - XHTML 1.0 Framesets är samma sak som HTML 4.01 Frameset fast med XML-syntax, dvs med den dokumentmallen kan man enbart definiera sidor som håller samman ramar och innehåller ett alternativinnehåll.
[redigera] XHTML Modularization
XHTML Modularization är ingen XHTML-version i sig, utan består av ett antal moduler som kan sammanfogas till olika dokumenttyper. Exempel på dolumenttyper som bygger på XHTML Modularization är XHTML 1.1, XHTML Basic och XHTML 2.0
[redigera] XHTML 1.1
XHTML 1.1 är en version av XHTML som i grunden är moduluppdelad. Nästan alla element som beskriver utseende samt ramar har tagits bort ur denna version och ersatts av stilmallar (Cascading Style Sheets). Samtidigt har även möjligheten att leverera XHTML 1.1 med MIME-typen text/html
("som HTML") tagits bort.
Eftersom XHTML 1.1 inte får levereras "som HTML" utan bara som "äkta XHTML" — det vill säga XHTML levererad med MIME-typen application/xhtml+xml
— kan korrekt kodade och levererade sidor skrivna i XHTML 1.1 för närvarande (våren 2007) till exempel inte tolkas av webbläsaren Internet Explorer 7, på grund av att den webbläsaren helt saknar stöd för "äkta XHTML" — det vill säga application/xhtml+xml
.[2]
[redigera] XHTML Basic och XHTML Mobile Profile
När "den mobila webben" uppdaterades från "WAP 1" till "WAP 2.0", byttes rekommenderat märkspråk ut från WML till XHTML. Tyvärr kunde man till en början inte enas. W3C tog fram XHTML Basic för ändamålet, samtidigt som WAP Forum tog fram XHTML Mobile Profile. Skillnaderna mellan de två har aldrig varit speciellt stora, men en viss prestige har kunnat skönjas om vem som egentligen definierar märkspråket för "WAP 2.0"
Efter flera års konkurrens har man till slut enats om en enda "mobil version" av XHTML och den benämns "XHTML Mobile Profile 1.3".
Stora mobiltelefontillverkare som Nokia och Ericsson rekommenderar att man använder XHTML Mobile Profile när man producerar webbsidor specifikt för den mobila webben, och vill man driva en webbplats under toppdomänen ".mobi" är det ett uttryckligt krav att ens webbplats använder XHTML Mobile Profile som märkspråk.
[redigera] XHTML och framtiden
[redigera] XHTML 2.0-projektet
Arbetet med XHTML 2.0 påbörjades 2002, och pågår fortfarande.[3] Denna nya version bryter den tidigare trenden att vara bakåtkompatibelt och kan därför snarare betraktas som ett nytt märkspråk.
Några nya egenskaper med XHTML 2.0:
- HTML-formulär ersätts av XForms, en XML-baserad specifikation som tillåter formulär att visas korrekt på olika medium.
- HTML-ramar ersätts av XFrames.
- DOM Events ersätts av XML Events.
- En ny nivålös rubrik-tagg
<h>
läggs till. Nivån på rubriken bestäms sedan av vilken nästlad<section>
den ligger i. - Alla element kommer kunna ha attributen
href
ochsrc
. - Ytterligare ett par presentationella element kommer tas bort, bland annat
b
,i
ochtt
.
[redigera] (X)HTML5-projektet
Arbetet med det som numera kallas (X)HTML5 påbörjades 2004 av en fristående grupp webbutvecklare med namnet "Web Hypertext Application Technology Working Group" (WHATWG).[4]
Web Applications 1.0 som (X)HTML5 också kallas är tänkt att ersätta både HTML 4 och XHTML 1 samtidigt som gruppen avser att specificera en ny och enhetlig DOM som skall fungera både för XML-baserade och HTML-baserade serialiseringar av (X)HTML5. En av grundtankarna i (X)HTML5 är alltså att en författare skall kunna välja om denne vill använda HTML- eller XML-syntax för sina webbsidor och att sidorna skall kunna hanteras i princip likvärdigt av skript när dessa är inlästa i en webbläsares internminne oavsett vilket serialiseringsformat som valts.
[redigera] W3C:s arbetsgrupp för utveckling av HTML
W3C startade i mars 2007 även en arbetsgrupp för vidareutveckling av HTML.[5] Denna grupp innehåller, förutom representanter för samtliga större webbläsarleverantörer (Microsoft, Opera, Mozilla och Apple), också flera av de drivande krafterna bakom WHATWG och sannolikheten att gruppens arbete även kommer att påverka den vidare utvecklingen av XHTML är därför förmodligen ganska stor.
[redigera] Korrekta XHTML-dokument
Ett XHTML dokument som följer XHTML-specifikationerna sägs validera. Tyvärr är inte alla webbläsare standardiserade så att ett dokument garanterat visas likadant överallt. Ett validerat dokument är ändå ett steg närmare ett konsekvent utseende. Validera kan du göra hos W3Cs valideringsservice.
[redigera] Dokumentmall
För att validera ett XHTML-dokument måste det finnas en dokumentmall som kan följas. Dokumenmallenn ska definieras före rotelementet i XHTML-dokumentet, antingen internt eller länkas in. XHTML-dokument måste ha exakt ett rotelement.
Några av de vanligaste dokumentmallarna för XHTML länkas in så här:
- 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.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.1
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
Fler rekommenderade dokumentmallar finns på W3Cs lista.
[redigera] XML-namnrymder
Förutom en dokumentmall krävs det att alla element är i den korrekta namnrymden. Detta kan man göra genom att ställa in namnrymd på rotelementet med xmlns="namnrymd"
.
För XHTML 1.0 och 1.1 ser detta ut såhär:
<html xmlns="http://www.w3.org/1999/xhtml">
XHTML 2.0 kräver utöver namnrymden även att man specificerar ett schema.
[redigera] Teckenkodning
Man bör alltid tala om vilken teckenkodning som används. Detta kan göras med en XML-deklaration i början i dokumentet, till exempel: <?xml version="1.0" encoding="iso-8859-1"?>
. Hur som helst har fortfarande charset
-delen av HTTP-huvudet Content-Type
högre prioritet än XML-deklarationen, så om värden skiljer sig åt ska Content-Type
-värdet användas. Om ingen teckenkodning är angiven ska tolkaren utgå ifrån att kodningen är UTF-8 eller UTF-16, som enligt standarden alla XML-tolkar måste kunna hantera.
[redigera] Exempel på ett simpelt XHTML-dokument
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="sv" lang="sv"> <head> <title>Sidan har flyttats</title> <head> <body> <p>Denna sida har flyttats till <a href="http://example.org">example.org</a>.</p> </body> </html>
[redigera] Referenser
- ^ Better Living Through XHTML
- ^ The <?xml> prolog, strict mode, and XHTML in IE
- ^ XHTML2 Working Group Home Page
- ^ Web Hypertext Application Technology Working Group.
- ^ W3Cs arbetsgrupp för utveckling av HTML.