Siirry sivun sisältöön Avut CSS HTML JavaScript Kotisivu

HTML:n ja XHTML:n väliset erot

Tässä dokumentissa käsitellään HTML:n ja XHTML:n välisiä eroja käytännön tasolla, XHTML 1.0 -dokumenttien laatijoiden kannalta.

Sisällysluettelo

  1. XML-ilmoitus ja merkkien koodaus
  2. Elementit ja attribuutit merkitään pienaakkosilla
  3. Elementit on eksplisiittisesti merkattava
  4. Elementtien päättyminen on eksplisiittisesti merkattava
  5. Attribuutit on ilmoitettava maksimoituina
  6. Attribuuttien arvot on lainattava
  7. Poikkeukselliset attribuutti-ilmoitukset
  8. Kontrollimerkit
  9. Lisätietoja englanniksi

XML-ilmoitus ja merkkien koodaus

Käytännössä XML-ilmoitus on aina pakollinen, jollei käytetä UTF-8 tai UTF-16 -koodausta. Kätevintä on sisällyttää XML-ilmoitus valmiiksi mallidokumenttiin, välittömästi dokumentin ensimmäiseksi tiedoksi:

<?xml version="1.0" encoding="ISO-8859-1"?>

Jossa, XML-version lisäksi, ilmoitetaan käytettävän hyvin tuettua latinalaisaakkosto 1 -merkistöä, joka on suunniteltu kattamaan länsi- ja pohjoiseurooppalaiset kielet.

XML-ilmoituksen lisäksi merkistö kannattaa yhteensopivuussyistä ilmoittaa myös META-elementillä:

<meta
 http-equiv="Content-Type"
 content="text/html; charset=iso-8859-1" />

Lisätietoja XHTML 1.0 -spesifikaatiosta:

Yleisiä lisätietoja merkeistä, merkistöistä, niiden koodauksesta ja problematiikasta löytyy Datatekniikka ja viestintä -sivuston Merkit ja koodaukset -osasta, osoitteesta: http://www.cs.tut.fi/~jkorpela/merkit/index.html

Elementit ja attribuutit merkitään pienaakkosilla

XML-dokumenteissa isot- ja pienaakkoset ovat eri merkkejä, joten esim. <HTML> ja <html> ovat kaksi eri elementtiä ja vain jälkimmäinen kuuluu XHTML 1:een. Myös kaikki attribuutit ja niiden arvot, sekä yleensäkin kaikki mikä HTML:ssä voidaan merkitä merkistöriippumattomasti (isoilla, pienillä, sekalaisilla) merkitään XHTML:ssä pienaakkosilla.

Elementit on eksplisiittisesti merkattava

HTML-dokumenteissa HTML-, HEAD- ja BODY-elementit voitiin jättää merkkaamatta. XHTML:ssä näiden merkkaamatta jättäminen ei ole sallittua. HTML-dokumenttien taulukoissa myös TBODY-elementti oli implisiittisesti mukana, vaikkei sitä olisi merkattukaan. XHTML:ssä taas TBODY on valinnainen elementti, eli se on mukana taulukon rakenteessa ainoastaan merkattuna.

Elementtien päättyminen on eksplisiittisesti merkattava

XML-syntaksisääntöjen vuoksi kaikki elementit on merkattava päättyviksi. Konteinereiden kohdalla (esim. P, LI, TD) lopputagia ei saa jättää pois. Myös tyhjät elementit (ei-konteinerit) on päätettävä. Yhteensopivuussyistä tämä kannattaa tehdä " />" -notaatiolla (esim. <hr />, <br />) erottaen elementin nimen ja kauttaviivan välilyönnillä.

Attribuutit on ilmoitettava maksimoituina

Attribuuttien minimointi ei ole sallittua. Esim. HTML:n minimoitu <input checked ... on maksimoitava muotoon:

<input checked="checked" ...

Attribuuttien arvot on lainattava

Kaikki attribuuttien arvot tulevat lainausmerkkien sisälle. Yhdenmukaisuus- ja yhteensopivuussyistä kannattaa käyttää kaksihipsuisia lainausmerkkejä, sekä välttää turhaa tyhjää tilaa arvojen sisällä.

Poikkeukselliset attribuutti-ilmoitukset

Kielimääritykset

Elementtien kielimerkinnät ilmoitetaan, sekä HTML:n LANG-, että XML:n XML:LANG -attribuuteilla, esim.:

<span title="Englanninkielinen esimerkki">
<i lang="en" xml:lang="en">English example</i></span>

Tunnisteet

XML-sääntöjen mukaan elementteihin viitataan ID-tunnisteattribuutilla, mutta yhteensopivuussyistä myös HTML:n NAME-attribuutti on edelleen sallittu. Käytä viittauksissasi kumpaakin, esim.:

<form name="lomake1" id="lomake1" ...>

Tyhjän tilan hallinta

PRE- SCRIPT- ja STYLE-elementteihin voidaan yhdistää preserve-arvolla varustettu XML:SPACE-attribuutti pyytämään XML-sovelluksia säilyttämään elementtien sisällön tyhjä tila, kuten rivinvaihdot ja muut tekstimuotoilut. Kts. esimerkkiä alempana SCRIPT-elementin yhteydessä.

Kontrollimerkit

Pienempi kuin -merkki (<) ja et-merkki (&) tulkitaan aina merkkauksen aluksi, joten ne eivät saa esiintyä sellaisenaan dokumentin merkkidatana. Nämä merkit eivät myöskään ole sallittuja upotetuissa scripteissä ja tyyleissä (SCRIPT- ja STYLE-elementtien sisältönä). Muualla kuin merkkauksessa esiintyvät kontrollimerkit tulee merkata kirjain- tai numeromerkkiviittauksilla. Dokumenttiin upotetut skriptit ja tyylit taas voidaan merkitä CDATA-notaatiolla, esim. seuraavasti:

<script type="text/javascript" xml:space="preserve">
//<![CDATA[ 

/* koodi tulee scriptitulkilta kommentoitujen
   CDATA-merkintöjen väliin */

//]]>
</script>

Toinen ja kaikenkaikkiaan parempikin vaihtoehto on ulkoistaa scriptit ja tyyliohjeet erillisiksi tiedostoiksi. Lisätietoja koodin tuonnista SCRIPT-elementillä ja tyylien yhdistämisestä dokumenttiin.

Lisätietoja englanniksi

Lisätietoja englanniksi XHTML 1.0 spesifikaatiosta: Differences with HTML 4 ja HTML Compatibility Guidelines, sekä yleisemmällä tasolla HTML and XHTML Frequently Answered Questions.

Viimeinen sisältöpäivitys: 2007-02-03
Osmo Saarikumpu

yksi taso ylös