Amíg a HTML (a HTML5-öt megelőzően) az Standard Generalized Markup Language-t, azaz egy rugalmas jelölőnyelv-keretrendszert felhasználóként volt definiálva, addig az XHTML alapja az XML, amely az SGML-nek egy jóval szigorúbb részhalmaza. Mivel az XHTML dokumentumoknak jól formázottnak kell lenniük, egy standard XML-értelmezővel is értelmezhetők, ellentétben a HTML-lel, amelynek megengedőbb HTML-értelmező szükséges.
Az XHTML 1.0 W3C-ajánlássá 2000. január 26-án vált a World Wide Web Consortium által. Az XHTML 1.1 2001. május 31-én lett W3C ajánlás. Az XHTML5 2009 szeptemberében a HTML5 specifikáció részeként fejlesztés alatt állt.
Áttekintés
Az XHTML 1.0 "a három HTML4 specifikáció újraalakítása az XML 1.0 felhasználásával".[1] A World Wide Web Consortium továbbra is aktívan fenntartja a HTML 4.01 ajánlást, és a HTML5 és az XHTML5 ajánlása aktív fejlesztés alatt áll. A 2002. augusztusában kiadott és felülvizsgált ajánlásban a W3C a következőket jegyezte meg: "Az XHTML-család az internet evolúciójának következő lépése. A mostani XHTML-re migrálással a fejlesztők beléphetnek az XML világába minden kísérő előnyével, míg magabiztosak maradhatnak tartalmuk jelenlegi és múltbeli kompatibilitásával kapcsolatban."[1]
Mindazonáltal 2004-ben a Web Hypertext Application Technology Working Group (WHATWG) megalakult a W3C-től függetlenül és a munkát a sima HTML-en folytatta az XHTML helyett. A WHATWG egy olyan standardon kezdett dolgozni, a HTML5-ön, amely mind az XML-t, mind a nem-XML-t támogatta. 2007-ben a W3C HTML-munkacsoportja hivatalosan is megszavazta a HTML5-öt, mint a következő HTML standardot.[2] 2009-ben a W3C hagyta az XHTML2 munkacsoportját feloszlani, elismerve, hogy a HTML5 lesz az egyedüli következő HTML standard, az XML és nem-XML típusú is.[3] A kettő közül a W3C ajánlása szerint a fejlesztők az XHTML-szintaxis helyett leginkább a HTML-t használják.[4]
Motiváció
Az XHTML kifejlesztésének oka a HTML kiterjeszthetőségének növelése és a más adatformátumokkal való átjárhatóság növelése volt.[5] A HTML4 látszólagosan az Standard Generalized Markup Language (SGML) felhasználása volt, ám az SGML specifikációja komplex és semelyik webböngésző és a HTML4 ajánlás sem voltak teljesen SGML-konformak.[6] Az 1998-ban elfogadott XML standard egy egyszerűbb adatformátumot biztosított, mely közelebb volt a HTML4 egyszerűségéhez.[7] Az XML-formátumra váltástól azt remélték, hogy a HTML a gyakori XML-eszközökkel kompatibilis lesz,[8] és, hogy a szerverek és a proxyk szükség szerint átalakíthassák a tartalmat a mobiltelefonokhoz hasonló kisebb képességű eszközökre.[9]
A névterek használatával az XHTML kiterjeszthetőséget kapott az egyéb XML-alapú jelölőnyelvekből, például a SVG-ből és MathML-ből való beilleszthetőséggel.[10] Végezetül a felújított munka a HTML újrafelhasználható elemekre való bontását (XHTML modularizáció) segíti elő és a nyelvet segít megtisztítani.[11]
Az XHTML verziói
Ez a szakasz egyelőre üres vagy erősen hiányos. Segíts te is a kibővítésében!
XHTML 1.0
1998-ban jött létre a W3C Working Draft publikációja Reformulating HTML in XML címmel (A HTML XML-beli újraformázása). Ez bevezette a Voyagert, egy új, HTML4-alapú jelölőnyelv kódnevét, ám az XML-hez kapcsolódó szigorúbb szintaxissal. 1999 februárjában a név megváltozott XHTML 1.0: The Extensible HyperText Markup Language-ra, majd 2000 januárjában hivatalos W3C ajánlássá lépett elő.[12] Három hivatalos DTD van az XHTML 1.0-hoz, amely a HTML4.01 három különböző változatához kapcsolódik:
XHTML 1.0 Strict a HTML4.01 Strict XML verziója, tartalmazza mindazon elemeket és attribútumokat, amelyeket a HTML4.01 nem jelölt elavultnak. A 2011. május 25-ei verzió alapján az XHTML 1.0 Strict a World Wide Web Consortium weboldalához használt DTD.
XHTML 1.0 Transitional a HTML 4.01 Transitional XML verziója, tartalmazza mindazon kinézeti elemeket (úgy mint a center, font és strike), amelyeket a szigorú verzióból kihagytak.
XHTML 1.0 Frameset a HTML 4.01 Frameset XML verziója, amely megengedi a frameset dokumentumok definiálását, amely az 1990-es évek végén gyakran használt Webes szolgáltatás volt.
Az XHTML1.0 második változata 2002 augusztusában lett W3C ajánlás.[13]
Az XHTML modularizációja
A modularizáció komponensek olyan gyűjteménye, amelyen keresztül az XHTML kibővíthető vagy épp részekre bontható. Ennek a szolgáltatásnak a célja az XHTML újonnan való platformokra való megjelenésének elősegítése, mint például a mobileszközök és webbel rendelkező televíziók. Az XHTML modularizáció kezdeti vázlata 1999 áprilisában vált elérhetővé, míg az ajánlás státuszt 2011 áprilisában érte el.[14]
Az első moduláris XHTML-variánsok az XHTML 1.1 és az XHTML Basic 1.0 voltak.
2008 októberében az XHTML modularizációt helyettesítette az XHTML Modularization 1.1, amely egy XML Schema implementációt ad hozzá. Ezt 2010 júliusában váltotta fel egy második változata.[15]
XHTML 1.1: Modulalapú XHTML
Az XHTML 1.1 az XHTML modularizációjáról szóló specifikációt körülvevő munka során fejlődött ki. A W3C az első kezdeti vázlatot 1999 szeptemberében adta ki, míg az ajánlás státuszt 2001 májusában szerezte meg.[16] Az XHTML 1.1-be kombinált modulok hatékonyan felfrissítik az XHTML 1.0-t. A name attribútumot eltávolították az a és a map elemekből, továbbá az első változatban a lang attribútumot is eltávolították, melyet az xml:lang helyettesített.
Habár az XHTML1.1 nagyrészt kompatibilis volt a HTML4-gyel, 2002 augusztusában a munkacsoport formális jegyzetet készített, melyben azt javasolta, hogy az XHTML1.1 ne a html médiatípussal legyen továbbítva.[17] Az alternatív application/xhtml+xml típus limitált támogatása miatt az XHTML 1.1-nek nem sikerült széleskörűen elterjednie. 2009 januárjában a dokumentum második verzióját (XHTML Media Types – Second Edition) kibocsátották, amely megkönnyíti eme megkötöttséget és megengedi az XHTML1.1 text/html-ként való továbbítását.[18]
Az XHTML 1.1 második változatát 2010. november 23-án bocsátották ki.[19] (Először 2009 májusában adták ki, mint "Proposed Edited Recommendation", azaz "Javasolt Szerkesztett Ajánlás")[20]
XHTML5
A HTML5 a W3C-től függetlenül, böngészőkészítők és más cégek csoportján, a WHATWG-n (Web Hypertext Application Technology Working Group) keresztül fejlődött. Célja a dinamikus webalkalmazások létrehozása – az XHTML 2.0-t túl dokumentumcentrikusnak, fórumok vagy webshopok számára nem megfelelőnek látták.[21]
A HTML5 rendelkezik text/html és XML-szerializációval is, ez utóbbi az XHTML5.[22] E nyelv a HTML4-nél és az XHTML 1.x-szel kompatibilisebb, mint az XHTML 2.0 a meglévő HTML-formaelemek és -eseménymodell megtartása céljából. Azonban sok, az XHTML 1.x-ben nem található elemet tartalmaz, például section és aside elemeket.
Az XHTML5 a HTML5-höz hasonlóan DTD nélküli DOCTYPE-ot használ. Ezenkívül a specifikáció a korábbi XHTML DTD-ket felváltja, a böngészők ezeket csak a megnevezett karakterek entitásdefinícióit tartalmazókra cseréli.[22]
Szabványos XHTML-dokumentumok
Szabványos egy XHTML dokumentum, amely megfelel az XHTML specifikusnak. A szabványosság biztosítja a dokumentum kódjának következetességét, amely pedig megkönnyíti a feldolgozást, ám ez nem jelenti azt, hogy a böngészők is következetesen renderelik a tartalmat. Egy dokumentum XHTML-érvényességét a W3C Markup Validation Service nevű szolgáltatással lehet ellenőrizni. A gyakorlatban sok webfejlesztőprogram biztosít a W3C standardokon nyugvó szabványosítást.
Gyökérelem
Az XHTML dokumentum gyökérelemének a html-nek kell lennie, amelynek rendelkeznie kell egy xmlns attribútummal, amely ezáltal az XML névtérrel azonosítja azt. Az XHTML névtér URI-ja http://www.w3.org/1999/xhtml. A következő példa címke tartalmaz emellett egy xml:lang attribútumot is a tartalom nyelvvel való megfeleltetése érdekében:
Az XHTML dokumentumok érvényesítéséhez használható egy dokumentumtípus-deklaráció, avagy DOCTYPE. Egy DOCTYPE a böngészőnek megadja a dokumentumtípus-definíciót (dokumentumtípus-definíció, DTD), amelynek a dokumentum megfelel. A DOCTYPE-nak a gyökérelem előtt kell elhelyezkednie.
Az XHTML használata során bekövetkező leggyakoribb hibák némelyike:
Az üres címkék bezárásának hiánya (azon HTML-tagok, amelyek a HTML4-ben nem rendelkeznek lezáró címkével):
Helytelen: <br>
Helyes: <br /> Fontos megjegyezni, hogy az XHTML-ben ezek bármelyike szabványos: <br></br>, <br/>, és <br />. HTML-ben csak a <br> forma helyes, de a böngészők a többi formát is ugyanúgy kezelik.
A nemüres címkék nem bezárása
Helytelen: <p>Ez egy bekezdés<p>Ez egy másik.
Helyes: <p>Ez egy bekezdés.</p><p>Ez egy másik.</p>
Az elemek helytelen egymásba ágyazása (ez HTML-ben sem érvényes)
Helytelen: <em><strong>Ez egy szöveg.</em></strong>
Helyes: <em><strong>Ez egy szöveg.</strong></em>
Az attribútumértékek körül levő idézőjelek hiánya vagy nem megfelelő párosítása
Helytelen: <td rowspan=3>
Helytelen: <td rowspan='3">
Helyes: <td rowspan="3">
Helyes: <td rowspan='3'>
Az & használata az entitásokon kívül (ez HTML-ben sem érvényes)
A HTML5 és az XHTML5 nagyobbrészt keresztkompatibilisek, amennyiben a szigorúbb XHTML5 szintaxist vesszük figyelembe, ám vannak esetek, ahol az XHTML5 nem működik szabványos HTML5-ként (például a HTML-ből kivett feldolgozóinstrukciók, amik megjegyzésként lesznek kezelve és bezáródnak az első "?"-nél, amíg teljesen szabványosak az XML-ben, a saját típusukként lesznek kezelve és a "?>")-en záródnak be.[24]
Fordítás
Ez a szócikk részben vagy egészben a XHTML című angol Wikipédia-szócikk fordításán alapul. Az eredeti cikk szerkesztőit annak laptörténete sorolja fel. Ez a jelzés csupán a megfogalmazás eredetét és a szerzői jogokat jelzi, nem szolgál a cikkben szereplő információk forrásmegjelöléseként.
↑Tina Holmboe: XHTML—Myths and Reality. The Developer’s Archive, 2008. október 6. [2017. január 12-i dátummal az eredetiből archiválva]. (Hozzáférés: 2008. december 29.)
↑Ian Hickson: HTML 5, 1.1.2. Relationship to XHTML2. World Wide Web Consortium, 2008. január 22. (Hozzáférés: 2008. július 19.) „…XHTML2… defines a new HTML vocabulary with better features for hyperlinks, multimedia content, annotating document edits, rich metadata, declarative interactive forms, and describing the semantics of human literary works such as poems and scientific papers… However, it lacks elements to express the semantics of many of the non-document types of content often seen on the Web. For instance, forum sites, auction sites, search engines, online shops, and the like, do not fit the document metaphor well and are not covered by XHTML2… This specification aims to extend HTML so that it is also suitable in these contexts…”