Što je XHTML

XHTML (eXtensible HyperText Markup Language) nastao je sa ciljem da riješi probleme koje je HTML zajedno sa Web čitačima donio.XHTML je identičan sa HTML 4.01 i vraća HTML prvobitnoj namjeni a to je struktuiranje Web dokumenata. XHTML je definiran kao XML (eXtensible Markup Language) tj. svi elementi iz HTML 4.01 kombinovani sa snitaksom XML-a. XHTML 1.0 je oficijalna preporuka W3C od 26. siječnja 2000. god, te predstavlja standard za kreiranje Web dokumenata.

Osnova XHTML dokumenta

Svaki XHTML dokument započinje sa DOCTYPE deklaracijom, što predstavlja definiciju strukture dokumenta u vidu DTD-a( Document Type Definitions ).

<?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="en" lang="en">
<head>
<title>Virtual Library</title>
</head>
<body>
<!-- ovdje ide sadržaj -->
<p>Moved to <a href="http://example.org/">example.org</a>.</p>
</body>
</html>

Deklaracija

DOCTYPE deklaracija nije XHTML element i nema svoj završni tag. Deklaracija mora uvek da se nalazi u prvoj liniji XHTML dokumenta i nosi tip DTD-a tj. tip definicije dokumenta.

DTD specifira sintaksu web stranica u SGML-u, kao npr. HTML, gdje su navedena pravila o primjeni marker na određeni tip, uključujići set elemenata i deklaracije entiteta. Znači DTD definira strukturu dokumenta tj. sam XHTML i njegovo značenje. Primer DTD-a je HTML specifikacija koja definira značenje HTML elemenata koju Web čitači koriste kako bi prikazali WEB stranicu. Inače bi svaki Web čitač tumačio HTML na svoj način.

XHTML DTD omogućava sintaksu i grmatiku XHTML markera, a korsti se za validaciju samog dokumenta. Postoje tri deklaracije: Strict, Transitional, i Frameset. Najpopularniji je XHTML Transitional.

XHTML 1.0 Strict

Strict DTD uključuje definiciju elementa i atributa za strukturu HTML dokumenata bez elemenata i atributa formatiranje sadržaja a ne sadrži definiciju okvira ( framesets ):

<!DOCTYPE html
PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

Ova deklaracija se koristi kada imate čist kod i želite da izbjegnete greške a koristite CSS ( Cascading Style Sheets ).

XHTML 1.0 Transitional

Transitional DTD uključuje sve elemente i atribute, bez definicije okvira:

<!DOCTYPE html
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

Ova deklaracija se koristi kada koristite sve prednosti HTML-a i kada želite da podržite Web čitače koji ne raspoznaju CSS.

XHTML 1.0 Frameset

Frameset DTD uključuje sve što i prethodni plus okvire odnosno frame-ove:

<!DOCTYPE html
PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">

Ovu deklaraciju upotrebljavate kada koristite HTML okvire za djeljenje prozora Web čitača na dva ili više okvira.

Validacija XHTML sa DTD

Prethodno opisanim radnjama pretvorite vaš HTML u XHTML. Da bi se izvršila validacija XHTML dokumenta potrebno je referencirati odgovarajući DTD fajl. W3C validator se na nalzi na adresi http://validator.w3.org .

Pomoću progrma HTML TIDY možete automatski prebaciti iz HTML u XHTML. Dave Raggett's HTML TIDY je besplatni program za validaciju i čićenje HTML koda. Omogućava i čišćenje nepotrebnog koda kojeg unose razni HTML editori i razni drugi alati, npr. WORD. Program zamjenjuje složene atribute fontova stilovima i uvlači oznake radi bolje čitljivosti. Program je veličine 136 kilobajta koji se koristi iz komadne linije. Program možete preuzeti sa strane www.w3.org/people/raggett/tidy


Pogledajmo razlike između XHTML i HTML-a i neka osnovna pravila:


Dokument mora biti pravilno struktuiran

Svi XHTML elementi moraju biti unutar <html> tj. osnovnog elementa. Svi ostali elementi mogu da imjau svoje pod elemente (djecu). Elementi koji sadrže podelemente tj. djecu nazivaju se roditelji npr. <html> je roditelj za sve ostale elemente. Djeca moraju da budu u paru i pravilno ugnježđeni sa roditeljem.

Imena elementa u tagovima moraju biti pisani malim slovima


Zato što je XML case-sensitve tj. osetljiv je na znakove, ili pisete sve malim ili sve velikim. Pa je ispravno samo <html> dok <HtML> je neispravno, tj. tag <li> je različit od <LI>.

Svi elementi moraju imati svoj početni i završni tag


Pa je ispravno samo

<p>Ovo je pargraf</p>

dok

<p>Ovo je pargraf je neispravno

 

Prazni elementi moraju biti zatvoreni


Prazni elementi tj. elementi koji ne sadrže nikakav sadržaj moraju biti zatvoreni. Prazni elementi započinju sa početnim tagom i moraju da se završavaju sa />.
NAPOMENA: Da bi XHTML bi kompatibilan sa sadašnjim browserima potrebno je dodati i prazan prostor pre znaka "/" tj. kao u prethodnom primjeru <br />, i: <hr />.

Atributi u tagovima moraju biti pisani malim slovima


Zato što je XML case-sensitve tj. osjetljiv je na znakove. Pa je ispravno samo <table width="100%"> dok <table WIDTH="100%"> je neispravno

Vrijednosti atributa obavezno se pišu pod navodnicma


Pa je ispravno samo :

<h1 align="center">

dok:

<h1 align=center> je neispravno

 

Nije dozvoljena minimizacija atributa

Evo liste minimiziranih atributa u HTML-u i kako oni treba da se pišu u XHTML:

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

Normativa

Postoje elementi kojima je zabranjeno da sadrže pojedine elemente, tj.

  • a ne smije da sadrži druge a elemente
  • pre must not contain the img, object, big, small, sub, or sup elements.
  • button ne smije da sadrži druge input, select, textarea, label, button, form, fieldset, iframe ili isindex elemente
  • label ne smije da sadrži druge label elemente
  • form ne smije da sadrži druge form elemente

Script i Style elementi

Pošto unutar script i style elemenata se nalazi ne XML sadržaj pa bi se znak manje tretirao kao < i skript ne bi radio. Tada se takav ne XML sadržaj postavlja unutar CDATA elementa, kako se ne bi vršili data konverzija.

Atribut "id" zamjenjuje "name" atribut

U HTML 4.01 definiran je atribut name za elemente a, applet, frame, iframe, img, i map a u XHTML on je isključen i umesto njega koristi se id atribut.

Entiteti se refernciraju sa heksadecimalnim vrednsotima

SGML and XML both permit references to characters by using hexadecimal values. In SGML these references could be made using either &#Xnn; or &#xnn;. In XML documents, you must use the lower-case version (i.e. &#xnn;)

Lang atribut

Atribut lang primjenjuje se na skoro svaki XHTML element i navodi jezik sadržaja unatar elementa.