21. září bude sraz! Od 18.00 v restauraci Tradice v Praze u Anděla
Autor Zpráva
Yur4Y
Profil
Zdravím.
Pokúšal som sa Chamurappiho kontaktovať na email, ktorý má uvedený na validator.webylon.info, ale neodpovedá mi, tak píšem sem. Neviem, či som tému dobre zaradil, ale v popise sekcie je "validita", tak snáď :)
No ale prejdime k veci. Dal som validovať najprv tento pokusný HTML kód:
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html lang="en-US">
<head>
	<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
	<title></title>
</head>
<body>
	<p id=odstavec>Ahoj
</body>
</html>
<P> má voliteľnú ukončovaciu značku a hodnota atribútu nemusí byť v úvodzovkách, dokument je validný HTML 4.01 Strict, to je jasné.
Potom zmením DOCTYPE na XHTML 1.0 Strict, ale nepridávam ukončovaciu lomku do <meta>, nevkladám úvodzovky okolo hodnoty atribútu ani nepridávam ukončovací tag </p>. Dokument vyzerá teda takto:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html lang="en-US">
<head>
	<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
	<title></title>
</head>
<body>
	<p id=odstavec>Ahoj
</body>
</html>
Toto následne validujem s mime typom text/html.
Validátor by mal následne zobraziť takýto výsledok:
Dokument neprošel validací, 1 chyba
definice typu dokumentu "-//W3C//DTD XHTML 1.0 Strict//EN" obsahuje chyby

Je jasné, že validujem HTML, preto by nemal hlásiť "chyby", ktoré sú v HTML povolené, ale v XHTML nie. Dostávam však takýto výsledok:
Dokument neprošel validací, 2 chyby
definice typu dokumentu "-//W3C//DTD XHTML 1.0 Strict//EN" obsahuje chyby
ukončovací značka elementu "P" je vynechána, což jeho deklarace nepřipouští


Čudujem sa. Validátor predsa validuje HTML v oboch prípadoch, ale v druhom prípade mu prekáža neuzavretý element <p>, čo by malo prekážať iba v XHTML.

Na jednej strane teda tento validátor povoľuje HTML konštrukcie (<meta>, id=odstavec), ale na druhej mu niektoré HTML konštrukcie prekážajú (chýbajúce </p>). Bude táto chyba opravená?

Ďakujem.
Chamurappi
Profil
Reaguji na Yur4Y:
Jsi tu správně, tady odpovídám rychleji :-)

Syntaktická pravidla (jako povinnost uvozovek, zápis prázdných elementů) jsou určená vyšším protokolem, tedy MIME typem, ale validátor se pořád musí řídit tím, co je v uvedené DTD. Bere odkázanou „xhtml1-strict.dtd“ jako odrůdu HTML DTD, takže z ní je schopen vyčíst, které elementy či atributy jsou kde povolené. Ale něco mu v ní přeci jen vadí — že chybí údaj o volitelnosti značek. Přesně kvůli tomu naříká, že „definice typu dokumentu "-//W3C//DTD XHTML 1.0 Strict//EN" obsahuje chyby“. Deklarace odstavce vypadá v HTML DTD takto:
<!ELEMENT P - O (%inline;)*            -- paragraph -->
Kdežto v XHTML DTD je takováto:
<!ELEMENT p %Inline;>
Není tam ani „- -“, ani „- O“, ani nic jiného, co by v HTML DTD smělo být, proto validátor řve. Ovšem z chyby se zotaví. Předpokládá, že obě značky jsou povinné.

Mimochodem, zkus si zvalidovat v oficiálním validátoru tento kód, který by měl být ekvivalentní k tvému (druhému):
<!DOCTYPE html SYSTEM "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html lang="en-US">
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title></title>
</head>
<body>
    <p id=odstavec>Ahoj
</body>
</html>
Nedá ti pěknou hlášku o tom, že odkázaná HTML DTD obsahuje chyby, ale chybějící „omitted tag minimization parameter“ též nahlásí.
Yur4Y
Profil
Ďakujem, už mi je to jasné :-) Nevedel som, že možnosť vynechania uzatváracích značiek je v DTD.

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0