XHTML-grammatiikka

XHTML-koodin kirjoittaminen vaatii puhdasta HTML-syntaksia.

Lisää XHTML:n syntax rules:

  • Ominaisuuden nimi täytyy olla pienillä kirjaimilla
  • Ominaisuuden arvon täytyy olla lainausmerkeissä
  • Ominaisuudet eivät voi olla lyhennettyjä
  • Käytä Id-ominaisuutta name-ominaisuuksien sijaan
  • XHTML DTD määrittää pakollisesti käytettävät HTML-elementit

Ominaisuuden nimi täytyy olla pienillä kirjaimilla

Tämä on väärin:

<table WIDTH="100%">

Tämä on oikein:

<table width="100%">

Ominaisuuden arvon täytyy olla lainausmerkeissä

Tämä on väärin:

<table width=100%>

Tämä on oikein:

<table width="100%">

Ominaisuudet eivät voi olla lyhennettyjä

Tämä on väärin:

<input checked>
<input readonly>
<input disabled>
<option selected>
<frame noresize>

Tämä on oikein:

<input checked="checked" />
<input readonly="readonly" />
<input disabled="disabled" />
<option selected="selected" />
<frame noresize="noresize" />

Alla on esimerkki HTML:n lyhennetyistä ominaisuuksista ja niiden muuntamisesta XHTML:ssä:

HTML XHTML
compact compact="compact"
checked checked="checked"
declare declare="declare"
readonly readonly="readonly"
disabled disabled="disabled"
selected selected="selected"
defer defer="defer"
ismap ismap="ismap"
nohref nohref="nohref"
noshade noshade="noshade"
nowrap nowrap="nowrap"
multiple multiple="multiple"
noresize noresize="noresize"

Käytä id-ominaisuutta name-ominaisuuden sijaan

HTML 4.01 määrittää name-ominaisuuden seuraaville elementeille: a, applet, frame, iframe, img ja map.

XHTML:ssä ei suositella name-ominaisuuden käyttöä, sen sijaan tulisi käyttää id.

Tämä on väärin:

<img src="kuva.gif" name="kuva1" />

Tämä on oikein:

<img src="kuva.gif" id="kuva1" />

Tärkeä yhteensopivuusvinkki:

Tulisi lisätä ylimääräinen tyhjä avaruus "/"-merkin eteen, jotta XHTML on yhteensopiva nykyisten selaimien kanssa.

Kieliominaisuus (lang)

Lang-ominaisuus sovelletaan lähes kaikkiin XHTML-elementteihin. Se määrittää elementin sisällä olevan sisällön käytetyn kielen tyyppin.

Jos jossain elementissä käytetään lang-ominaisuutta, täytyy lisätä lisä xml:lang, kuten näin:

<div lang="fi" xml:lang="fi">Hei Suomi!</div>

Vakiona käytettävät XHTML-elementit

Kaikki XHTML-dokumentit täytyy ilmoittaa tiedostotyyppi (DOCTYPE-deklarointi). XHTML-dokumentissa täytyy olla html, head, body-elementit, ja title-elementti täytyy olla head-elementissä.

Tässä on minimoidun XHTML-tiedoston malli:

<!DOCTYPE Dokumentityyppi menee täällä>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Titeli menee täällä</title>
</head>
<body>
</body>
</html>

Vinkki:Tiedostotyyppitieto ei ole osa XHTML-dokumenttia itsessään. Se ei ole XHTML-elementti eikä sillä ole sulkemistunnusta.

Vinkki:XHTML:ssa <html>-tagin sisällä oleva xmlns-ominaisuus on välttämätön. Vaikka XSS-dokumentissa ei ole tätä ominaisuutta, w3.org:n validointityökalut eivät näytä virheilmoituksia. Tämä johtuu siitä, että "xmlns=http://www.w3.org/1999/xhtml" on vakioarvo, joka lisätään <html>-tagiin, vaikka et sisällytä sitä koodiin.

Opit seuraavassa luvussa lisää XHTML-dokumenttityyppitietojen osalta.