XHTML

XHTML (eXtensible HyperText Markup Language – „išplečiama hiperteksto žymėjimo kalba“) yra žymėjimo kalba, kuri turi panašias į HTML žymėjimo taisykles, tik jos sintaksė yra griežtesnė. HTML yra pagrįsta SGML, taigi yra mažiau suvaržyta (galima praleisti kai kuriuos žymenis, pavyzdžiui, neužbaigti paragrafo), tuo tarpu XHTML remiasi XML, todėl XHTML dokumentas turi būti struktūriškai tvarkingas (angl. well - formed).
XHTML buvo sukurtas W3C ir yra tapęs šio konsorciumo oficialia rekomendacija.

Savybės

Labiau sintaksiškai suvaržytos HTML versijos poreikis atsirado padidėjus naudojamų mobiliųjų įrenginių skaičiui. Kadangi šie įrenginiai yra maži, jie neturi daug resursų, kuriuos būtų galima panaudoti struktūriškai sudėtingam HTML kodui.
Dauguma naujesnių žiniatinklio naršyklių gali dirbti su XHTML kodu, bet senesnės naršyklės XHTML kodą supranta kaip HTML. Taip pat beveik visos naršyklės, suderinamos su XHTML, gali naudoti HTML kodą. Yra nuomonių, kad šis faktas stabdo XHTML plėtrą. Nepaisant to, kad Microsoft yra pilnateisė W3C narė, šios kompanijos naršyklė Internet Explorer nėra suderinama su kai kuriomis XHTML rekomendacijomis.
Ypač naudinga XHTML savybė yra ta, kad šia žymėjimo kalba parašytame dokumente galima naudoti kitų iš XML kilusių kalbų (pvz., MathML, SVG) elementus. Vis dėlto, šią savybę galima panaudoti tik tada, kai XHTML dokumentas yra siunčiamas kaip XML (nurodant application/xhtml+xml MIME tipą).

XHTML 1.1

Naujausia W3C XHTML rekomendacija yra XHTML 1.1: Module - based XHTML. Ši versija yra pagrįsta XHTML 1.0 Strict. XHTML 1.1 nebėra nė vieno prezentacinio (nustatančio išvaizdą) elemento ar rėmelių. Dokumento išvaizdą privaloma nustatinėti naudojant CSS. XHTML 1.1 taip pat turi specialų ruby markup palaikymą, reikalingą kai kurių Rytų Azijos rašmenų palaikymui.
XHTML moduliarizacija taip pat leidžia nedidelius XHTML kodo gabalėlius panaudoti kitose XML pagrįstose aplikacijose tam tikru būdu. Tai taip pat leidžia išplėsti XHTML specialiems tikslams, pvz., pridėti savo matematinių formulių užrašymo ar rėmelių (angl. frameset) modulį. Tokie XHTML dokumentai jau nebeatitiks XHTML 1.1 standarto.

Suderinamumas

Dauguma XHTML 1.0 dokumentų yra suderinami su HTML, t. y. juos gali apdoroti naršyklė, skirta HTML dokumentams. Tokie dokumentai turi būti perduoti su MIME tipu text/html. Naršyklė tokį dokumentą apdoros kaip „žymų sriubą“ (angl. tag soup). XHTML dokumentą perduodant su MIME tipu application/xhtml+xml (nurodant šį tipą ir turėtų būti perduodami XHTML dokumentai) daugumai senesnių naršyklių iškils problemų su XHTML dokumento apdorojimu.
XHTML 1.1 moduliacinės savybės daro jį nesuderinamą su XHTML 1.0 ir HTML. Atitinkamai XHTML 2.0 yra nesuderinamas su savo „protėviais“. Dėl šių ir kitų savybių XHTML susilaukė kritikos (anglų kalba).

Pavyzdys

Šis pavyzdys parašytas XHTML 1.0 Strict dialektu.
<?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" lang="lt" xml:lang="lt">

<head>
  <title>XHTML 1.0 Strict pavyzdys</title>
  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
</head>

<body>
  <p>
    Tai yra XHTML 1.0 Strict pavyzdys.
  </p>
</body>

</html>