A WEBMESTER 1908-ban írta :
>Meg tudnatok mondani mennyiben ter el a HTML4-tol?
A kettő között sokkal inkább elvi, mint gyakorlati különbség van. Az elvi
külnbség abban áll, hogy míg a HTML egy SGML-osztályba tartozó nyelv, az
XHTML egy XML-osztályba tartozó nyelv. (Hogy a dolog még szebb legyen az
XML-ek is az SGML-osztályba tartoznak.)
Hogy ez mit jelent a gyakorlatban? A leglátványosabb különbség az, hogy míg
az SGML-ben egy <TAG> alakú karaktersorozat lehet nyitó tag meg üres tag
is, az XML-ben a <TAG> csak nyitó tag lehet, az üres tag így néz ki:
<TAG/>. Erre azért van szükség, mert az XML-specifikáció arra épít, hogy
DTD (documentum type definiton) nélkül is elemezhető legyen egy dokumentum.
Nézzünk egy konkrét példát. A HTML-ben a sortörést a <BR> tag valósítja
meg. Ez tehát nem létezhet az XHTML-ben, hanem van helyette a <BR/>.
Azaz lenne, mert itt jön a második különbség. Míg a HTML nem volt érzékeny
a kisbetű-nagybetűre, az XHTML kizárólag a kisbetűt emészti meg. Tehát HTML
<BR> helyett XHTML <br/> (kompatibilitási okokból a <br /> is jó, ezt
minden HTML-értelmezőnek is meg kell értenie); ez még helyettesíthető a
<br></br> megoldással is.
Az első különbségből következik még egy másik is. Jelesül, hogy míg a
HTML-ben írhatott ilyet az ember, hogy:
<P>Ez egy bekezdés. <P>Ez egy másik.
az XHTML-ben ezt nem teheti meg, hiszen a <p> páros tag. Tehát:
<p>Ez egy bekezdés.</p> <p>Ez egy másik.</p>
Ehhez kapcsolódik (és ez valójában nem ellentmondás, csak a HTML-ben inkább
el lehetett tekinteni tőle, az XHTML szigorúbban veszi), hogy a HTML-ben
elcsúszott az ilyen:
<B><I>hú de nagyon ki van emelve</B></I>,
az XHTML csak a szabályos beágyazást fogadja el:
<b><i>hú de nagyon ki van emelve</i></b>
vagy -- természetesen -- fordítva:
<i><b>hú de nagyon ki van emelve</b></i>.
Szintén szigorúbb az XHTML abban, hogy míg a HTML megengedte, hogy a
tulajdonságok értékei (amennyiben nem tartalmaznak szóközt) idézőjel nélkül
álljanak, az XHTML kötelezővé teszi az értékek idézőjelbe rakását:
<table cellspacing="0" border="1">.
Ugyanígy kötelező a tulajdonságok értékének a kiírása, azaz míg HTML-ben
így szokás:
<TD NOWRAP>,
az XHTML így kéri:
<td nowrap="nowrap">.
Most már az egyre speciálisabb dolgok felé haladunk. A <STYLE> és <SCRIPT>
tageken belül -- praktikus okokból -- a HTML-ben is szokás volt
kikommentezni a tartalmat a <!-- ... --> jelek segítségével. Az XHTML ezt
kötelezővé teszi, de az alábbi módon:
<script type="text/javascript">
<![CDATA[
... ide jön a script ...
]]>
</script>.
Nem elvi különbség, de ajánlatos kerülni a sortörést a tulajdonságok
értékeiben.
Röviden ennyi a két szabvány közti különbség. Látható, hogy az XHTML
lényegében egyszerűen szigorúbb szintaxist követ, így az XHTML-ben írt
oldalt elvben bármely tetszőleges HTML-értelmezőnek meg kell tudnia érteni.
További olvasnivalónak sajnos, csak angol nyelvű irodalmat tudok így
hirtelen javasolni (itt fogsz találni további apró részleteket), ez azonban
az XHTML teljes definíciója. Hogy ne kelljen feltétlenül végigolvasnod (egy
fájl az egész), ez rögtön a HTML 4-gyel való összehasonlításra mutató
horgonyra fog ugrani: http://www.w3.org/TR/2002/REC-xhtml1-20020801/#diffs
; a http://www.w3.org/TR/2002/REC-xhtml1-20020801/#guidelines pedig a
HTML-kompatibilitási problémákra.
Üdv: Attila
|