XHTML -
EXtensible HyperText Markup Language
XHTML este compatibil cu
HTML 4.01.
Toate browserele noi au support pentru
XHTML.
XHTML este un limbaj care foloseste markere si are aceeasi putere de expresie ca si
HTML dar mai are in plus un avantaj, acela de a respecta sintaxa
XML.
Pe cand
HTML este o aplicatie de tip SGML (Standard Generalized Markup Language), care este un limbaj foarte flexibil,
XHTML este o aplicatie a
XML care este un subset mult mai restrictiv al SGML.
Documentele
XHTML trebuie sa fie bine formate, de aceea ele permit ca procesarea automata sa fie facuta cu unelte standard
XML, spre deosebire de
HTML care necesita un parser destul de complex, tolerant si personalizat.
XHTML poate fi gandit ca intersectia
HTML cu
XML, pentru ca chiar a fost gandit ca o reformulare a
HTML in
XML.
XHTML a devenit o recomandare a
W3C (
World Wide Web Consortium) pe 26 ianuarie 2000. Versiunea
XHTML 1.1 a devenit recomandare a
W3C pe 31 mai 2001.
XHTML poate fi considerat a fi succesorul
HTML.
Nevoia de reformulare a versiunii
HTML a fost simtita datorita faptului ca informatiile World Wide Web trebuiau furnizate mai multor tipuri de dispozitive mobile (telefoane mobile, PDA-uri etc) diferite de cele traditionale desktop, unde nu puteau fi dezvoltate resursele suplimentare de care
HTML avea nevoie. In practica totusi browserele care suportau
HTML pentru astfel de dipozitive s-au dezvoltat mai repede decat suportul de
XHTML pentru browserele traditionale de desktop.
Un alt motiv care facea atractiva noua tehnologie a
XHTML era faptul ca se reducea cererea de parsere si agenti de utilizare. Cu
HTML, agentii de utilizare (motoarele de cautare gen
Google :
) si restul) aveau sarcina dificila de a corecta erorile documentelor publicate. Aici
XML aducea un suflu nou pentru ca cerea agentilor de utilizare sa dea o eroare fatala la intalnirea unui document
XML gresit formatat. Aceasta inseamna ca un browser
XHTML poate teoretic sa omita codul de recuperare din eroare, chiar daca are nevoie de mai multe verificari de detectie a erorilor. Recomandarea ca browserele sa posteze o eroare mai degraba decat sa incerce sa repare un continut gresit formatat ar trebui sa ajute la eliminarea greselilor din aceste documente. Chiar si atunci cand autorii nu isi valideaza codul, la un simplu test intr-un browser
XML, erorile critice ale documentului vor fi scoase la iveala si astfel vor fi mai usor de corectat.
O caracteristica speciala a
XHTML mostenita din
XML sunt namespace-urile. Cu ajutorul acestor namespace-uri, autorii si comunitatile isi pot defini propriile elemente
XML, atribute si modele de continut pe care le pot insera in documentele
XHTML. Acest lucru este similar cu flexibilitatea semantica a atributului "class" intr-un element
HTML, dar cu mai putine restrictii. Anumite namespace-uri/scheme
W3C XML care pot fi incluse in
XHTML, includ
MathML pentru marcarea semanticii matematice,
Scalable Vector Graphics pentru marcarea vectorilor grafici si
RDFa pentru includerea datelor
RDF.
Schimbarile de la
HTML la
XHTML versiunea 1.0 sunt foarte mici si sunt in principal facute pentru a asigura compatibilitatea cu
XML. Cea mai importanta schimbare este aceea ca documentele sa fie bine formate si ca toate elementele sa fie inchise in mod explicit asa cum cere standardul
XML. In
XML toate numele de elemente si atribute sunt case-sensitive, astfle incat
XHTML a abordat aceasta problema prin a defini toate numele tagurilor ca fiind lowercase.
In
XHTML toate valorile atributelor trebuie inchise intre apostrofuri sau ghilimele in contrast cu
HTML unde numai valorile de tip string trebuiau inchise cu ghilimele, valorile numerice sau booleene erau scrise pur si simplu, fara ghilimele.
In
XHTML toate elementele trebuie sa fie inchise in mod explicit, inclusiv elementele goale cum ar fi img sau br: <img> si <br>.
XHTML 1.1 - este cea mai recenta recomandare
W3C. Prezentarea este controlata numai de
Cascading Style Sheets (
CSS). Aceasta versiune a
XHTML permite deasemenea folosirea de caractere de marcare ruby pentru limbile est-asiatice.
Modularizarea
XHTML permite refolosirea unor mici chunkuri de
XHTML de catre alte aplicatii
XML intr-o maniera bine definita si permite extinderea
XHTML in scopuri specializate.
XHTML 1.1 adauga conceptul de stricta conformitate a documentelor: astfel ca un document nu poate angaja anumite caracteristici, trebuie sa fie un document complet care contine numai elementele definite in modulele cerute de
XHTML 1.1.
XHTML 2.0 in 2007 este inca in lucru dar este deja controversat pentru ca se desprinde de compatibilitatea backward cu versiunile anterioare.
XHTML 2.0 poate fi parsat in acelasi fel in care un agent utilizator ar parsa
XHTML 1.1, folosind un parser
XML si un document
CSS conform cu specificatiile versiunii noi 2.0.
Noile add-uri aduse de
XHTML 2.0 sunt:
- formele HTML vor fi inlocuite cu XForms, o specificatie de informatie introdusa de utilizator de tip XML care permite afisarea corecta de diferite dispozitive de interpretarea a informatiei
- HTML frames vor fi inlocuite cu XFrames
- DOM Events vor fi inlocuite de XML Events care foloseste Document Object Model
- un nou element de tip lista, tipul nl, va fi inclus pentru a proiecta o lista ca lista de navigatie, lucru care poate fi folosite in crearea meniurior imbricate
- orice element va fi capabil sa se comporte ca un hyperlink similar cu XLink, de exemplu <li href="articles.html">Articles</li>
- orice element va fi capabil sa refere o media alternativa cu atributul src, de exemplu: <src="tree.jpg" type="image/jpeg">Oak</p> este acelasi obiect ca si <object src="tree.jpg" type="iamge/jpeg"><p>Oak</p></object>
- atributul alt al unui element img a fost inlaturat: un text alterntiv poate fi dat in continutul unui element img, asemanator cu elementul object, de exemplu: <img src="abc_abecedar.jpg">ABC <em>Abecedar</em></img>.
- un singur element head (h) va fi adaugat. Nivelul acestor headinguri va fi indicat de elementele sectiunilor imbricate, fiecare avand propriul sau heading h
- elementele i, b, tt vor fi si ele inlaturate din versiunea 2.0, numai elementele de subprezentare de tipul sup si sub (adica superscript si subscript) pentru ca ele sunt necesare in anumite limbaje. Toate celelalte taguri se intentioneaza sa fie semantice (de exemplu <strong> pentru text strong si boldat), in timp ce permite agentilor utilizatori sa controleze prezentarea cu elemente CSS.
- adaugarea RDF triplu cu proprietatea si atributele care usureaza conversia de la XHTML la RDF/XML.
Cativa membrii ai familiei XHTML:
- XHTML Basic: o versiune light a XHTML pentru dispozitive care nu suporta dialectele XHTML mai mari si mai complexe folosita pentru handheld-uri si telefoane mobile (este o inlocuire a WML si C-HTML).
- XHTML Mobile Profile: bazat pe XHTML Basic, acest OMA (Open Mobile Alliance) efort tinteste in special catre telefoanele de mana adaugand elemente specifice telefoanelor mobile la XHTML Basic.
- XHTML+Voice: XHTML combinat cu Voice XML pentru a suporta interactiuni audio video.