Introduktion

Varför ska jag använda XHTML när HTML fungerar så bra?

XHTML är ett markeringsspråk, som ska underlätta övergången från HTML, som inte kommer att vidareutvecklas mer, till XML som är på stark tillväxt och efterfrågas allt mer.

I XHTML tillämpas en strikt tolkning av markeringsspråket varför alla taggar måste följas av en matchande avslutningstagg. XHTML är således ett rent språk i motsats till HTML, som bläddrare tillåter vara extremt slarvigt.

T.ex.
 

<TABLE BORDER=1><TR><TD> Cellinneh&aring;ll<TD>F&aring;nge </TR></TABLE><P>F&aring;ngvakten sover <BR>


Accepteras av bläddrare med varierande resultat. Trots att båda tabellcellerna saknar sluttagg lyckas bläddraren visa två celler i en tabell med en rad och den efterföljande texten i en egen paragraf, såsom:
 

Cellinnehåll Fånge

Fångvakten sover


Om samma resultat skulle visas med XHTML måste alla taggar skrivas med gemener, båda <TD> taggar avslutas med en </TD> tagg, även <P> taggen ska avslutas med en </P> tagg. Taggen <BR> måste bytas ut mot <BR/>, ett s.k. tomt element som är både start-tagg och slut-tagg i ett.

T.ex.
 

<table border=1>
    <tr>
        <td>
            Cellinneh&aring;ll
        </td>
        <td>
            Faring;nge
        </td>
    </tr>
</table>
<p>
    F&aring;ngvakten sover
</p>
<br/>

DTD

Att HTML tillåts vara så dåligt utformat är en av huvudorsakerna till att webbsidorna visas på olika sätt av de bläddrare som finns. Detta beror på att tolkningen av HTML är hårdkodad i själva bläddraren medan XHTML tolkas i enlighet med en uppsättning regler för formuleringen och grammatiken som finns i språkets DTD fil (Document Type Declaration).

Att regler för hur ett språk ska tolkas finns i en DTD-fil standardiserades redan på 80-talet då SGML skapades (Standard Generalised Markup Language). Det finns således DTD-filer för HTML versioner 1 t.o.m. 4 men dessa har inte använts av bläddrare. Även XML använder sig av en DTD-fil vilket innebär att tolkning av XML inte är beroende av vilken bläddrare man använder.

Entities

Att jag använt en "Entity" i exemplet ovan (&aring; istället för å) har sin förklaring i att särskilda tecken kan ratas av vissa XML tolkar. Det är uppenbart att "<" och ">" måste ersättas med &lt; och &gt; då dessa tecken definierar var taggar finns. Andra tecken som ställer till det är enkla och dubbla citat samt "&". Ett annat plus med Entities är att dessa inte är beroende av vilken teckenuppsättning mjukvaran som ska tolkar sidorna använder och visas således lika på olika plattformar och under olika operativ.

Dokumentanalys

När en bläddrare ska tolka ett dokument måste det analyseras med avseende på dess struktur och därmed vad som ska visas. Går det inte att analysera dokumentet så kan det inte visas.

Följande tre regler måste uppfyllas för att analysen ska lyckas:

  1. Alla starttaggar måste följas av en matchande sluttagg.
  2. En av ett elements taggar får inte omslutas av ett annat elements taggar.
  3. Vissa element får inte förekomma inom andra element.

Skillnader HTML kontra XHTML:

De viktigaste skillnaderna mellan HTML version 4 och XHTML version 1 är:

  1. Det särskilda XHTML-huvudet före sidbeskrivning.
  2. Alla element skrivs i gemener.
  3. Sluttaggar är ett krav.
  4. Kombinerade start- och sluttaggar (tomma element).
  5. Elementen head och title är obligatoriska.
  6. Attributvärden måste omges med citattecken.

XHTML-huvud

Huvudet talar om att dokumentet är ett XML-dokument, vilken typ av XML-dokument det är (version av XHTML) och var dess DTD finns. Dessutom anges var dokumentets namespace element finns.

T.ex:
 

<?xml version="1.0"?>
<!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" charset="iso-8859-1">


Orden "Strict" och "strict" i huvudet ovan kan bytas mot "Transitional" och "transitional" om sidan innehåller element som ska tas bort för att bli äkta XHTML såsom "center" m.m. även orden "Frameset" och "frameset" kan användas för en sida med ramar (frames) som inte heller är förenligt med XHTML.

Namespace

Namespace filen är ett lexikon över de taggar och attribut som får förkomma i XML dokumentet.

Filändelse eller typ

När du ska spara dina XHTML dokument kan du använda filtypen XML eller HTM/HTML. Ska dina filer tolkas av en vanlig browser måste det vara HTM/HTML medan en XML-processor eller XML känslig applikation förväntar sig XML-typen.

Det kan tänkas vara omständigt att använda XHTML när det ändå sparas som en HTML-fil och läses av en bläddrare. Hela vinsten är att medan bläddraren tror sig läsa HTML kommer dina filer att vara kompatibla med utvecklingen. Med andra ord är det inget som hindrar en XML känslig applikation att läsa dina filer och analysera dem korrekt.

Övningen

När du ska skriva dina övningsfiler kan du använda valfri redigerare förutsatt att den kan spara i rent textformat. Som brukligt är din första övning att skapa ett XHTML dokument som när det öppnas i din browser visar texten "Hallå världen!". Ett förslag till utformning återfinns här. Om du vill öva utan att vara ansluten till Internet kan du hämta hem DTD och namespace filerna innan. Gör då de nödvändiga ändringarna i XHTML huvudet.

När din XHTML-fil ger önskat resultat kan du kontrollera om din kod är äkta XML genom att spara den med filändelse XML och sedan öppna med browsern.