Lasse Reichstein Nielsen skrev:
> Hvis du sender XHTML med content-type "text/html", så vil det
> blive parset og fortolket som HTML (med nogle underlige "/"'er
> i nogle af taggene[1]). Altså er du sikker på at browserne
> laver fejl-korrektion på din side, og du kan ikke være helt
> sikker på hvad de gør, da det jo netop er ikke-standard HTML.
Hvis man følger retningslinjerne i appendiks C til xhtml-
standarden, kan man være ret sikker på at browserne laver samme
transformation fra xhtml til html
"C. HTML Compatibility Guidelines" -
<
http://www.w3.org/TR/xhtml1/guidelines.html#guidelines>
> Hvis du sender XHTML med content-type "application/xml+xhtml",
> så virker det bare ikke i IE (som jo desværre stadig bruges af
> en del mennesker).
Man kan - forudsat at man har adgang til et serversidesprog -
benytte content negotiation til at levere xhtml-sider som
application/xhtml+xml (ikke application/xml+xhtml) til browsere der
forstår den slags og som text/html til resten.
Det er dog ikke nødvendigvis en god ide. En enkelt fejl på en side
får xml/xhtml-parseren til at stoppe og melde fejl, mens sgml/html-
parseren som bekendt forsøger at vise en side uanset hvor mange
fejl den indeholder.
Selv om man naturligvis altid skal tilstræbe sider uden kodefejl,
kan det være svært at garantere at alle sider er fejlfri til enhver
tid. Jeg er ikke klar over om xml-parseren generelt er hurtigere
end en sgml-parser, men så vidt jeg husker kan det modsatte nemt
være tilfældet på større sider (jeg mener ikke at xml-parseren kan
gå i gang med at vise dokumentet før hele koden er indlæst).
> Nej da. Det er jo buzz-word compliant :)
Indrømmet - der er meget "buzz" omkring det at anvende xhtml. Jeg
mener nu alligevel at det giver nogle reelle fordele.
Ved at bruge xhtml, tvinger man sig selv til at følge "god
kodeskik" på en række områder. Det drejer sig primært om:
1) Altid at anvende anførselstegn om parameterværdier
2) Altid at lukke elementer
3) At være konsekvent i versaleringen af elementer og attributter
(alt med små bogstaver)
Man kan sagtens følge ovenstående retningslinjer (minus nr. 2 for
tomme elementer) når man skriver html 4-kode, men man kan ikke få
en validator til at kontrollere om man har husket det alle steder
(medmindre man selv kan skrive en til formålet).
I html 4.01 er det muligt at lave følgende, valide dokument:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"
http://www.w3.org/TR/html4/strict.dtd">
<title>test</title>
<h1 class=over>En dårlig formateret side</H1>
<P>Her er lidt tekst
<TABLE border=1>
<TR><TD>1 <TD>2 <TD>3 <td>X</td>
<TR><TD colspan=2>4 <TD>6
<TR><TD>7 <TD>8 <TD>9 <td>Y</td> <TD>Z
</TABLE>
<OL>
<li><a href=side3.html title=Badedyr>Badedyr</a>
<LI>Bevar <b class=bb>roen</b></LI>
</OL>
Skifter man til xhtml, giver ovenstående 43 valideringsfejl - og
retter man dem (uden i øvrigt at ændre koden), ser resultatet sådan
ud:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"
http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
<head>
<title>test</title>
</head>
<body>
<h1 class="over">En dårlig formateret side</h1>
<p>Her er lidt tekst</p>
<table border="1">
<tr><td>1 </td><td>2 </td><td>3 </td><td>X</td></tr>
<tr><td colspan="2">4 </td><td>6</td></tr>
<tr><td>7 </td><td>8 </td><td>9 </td><td>Y</td> <td>Z</td></tr>
</table>
<ol>
<li><a title="Badedyr" href="side3.html">Badedyr</a></li>
<li>Bevar <b class="bb">roen</b></li>
</ol>
</body>
</html>
I mine øjne gør det koden lettere at overskue (selv om en ordnet
opstilling ville hjælpe på begge eksempler).
Men hovedpointen er at de strengere krav til koden i xhtml gør
udbyttet af en validering bedre.
Man slipper for at tænke på om en parameterværdi kræver
anførselstegn eller ej - for anførselstegnene skal altid være der.
Tilsvarende med lukning af elementer - ikke noget med at tænke på
hvor meget der indeholdt i et element uden lukkekode - man kan
klart og tydeligt se hvornår hvert enkelt element afsluttes.
I visse tilfælde giver xml-reglernes anvendelse på html-standarden
nogle bøvlede udtryk - fx i de mange x="x"-udtryk (<option
checked="checked" disabled="disabled"> etc.) - men jeg vurderer
den ulempe som mindre end fordelen ved en stærkere validering på
xhtml-koden.
--
Jens Gyldenkærne Clausen
Svar venligst under det du citerer, og citer kun det der er
nødvendigt for at forstå dit svar i sammenhængen. Se hvorfor og
hvordan på
http://usenet.dk/netikette/citatteknik.html