Vlákno názorů k článku
Soumrak nad moderním X
Věcné chyby
Dále autor evidentně nemá přesnou představu o způsobu, jakým počítač formální jazyk (tedy značkovací či programovací) zpracovává a s čím to souvisí. O tom svědčí chybná tvrzení, jako "<!DOCTYPE> je odkaz na primitivní schéma, podle něhož může být dokument ověřován k tomu určeným nástrojem" (to skutečně takto zjednodušit nelze), "jeden jediný jazyk XHTML, který je identifikován jmenným prostorem http://www.w3.org/1999/xhtml" (jmenný prostor v žádném případě nedefinuje jazyk, proto XHTML také není jediný jazyk, důvod nepochopení viz DOCTYPE výše) nebo přehnaný důraz účelově kladený na MIME typy, což je podružná záležitost týkající se pouze přenosu dokumentů přes HTTP.
Pokud se tedy chce autor dále nazývat zkomoleným jménem zákonodárce, měl by mít mnohem větší rozhled o informatice obecně, než začne něco sebevědomě hlásat.
Re: Věcné chyby
Co tedy <!DOCTYPE> je? Podle 11 dní starého návrhu druhého vydání XHTML 1.1 je FPI v <!DOCTYPE> zjevně nepovinný, takže jedinou smysluplnou informací zůstane adresa DTD, kterou si pochopitelně může webmaster zkopírovat k sobě.
Modelová situace: na začátku dokumentu najdete <!DOCTYPE html SYSTEM "kopie-xhtml11.dtd"> — jak z toho poznáte, že jde zrovna o XHTML 1.1? Má snad prohlížeč tu DTD číst? A když ji přečte, jak z ní pozná, že zrovna tohle je XHTML 1.1 a ne nějaký můj vlastní jazyk s mojí vlastní sémantikou?
„jmenný prostor v žádném případě nedefinuje jazyk, proto XHTML také není jediný jazyk, důvod nepochopení viz DOCTYPE výše“
K čemu podle vás slouží jmenné prostory?
„přehnaný důraz účelově kladený na MIME typy“
MIME typ určuje parser. Nebo by alespoň měl. Ověřit, že se tak v prohlížečích při HTML či XML skutečně děje, je snadné.
„Pokud se tedy chce autor dále nazývat zkomoleným jménem zákonodárce, měl by mít mnohem větší rozhled o informatice obecně“
Nerozumím, jak souvisí zkomolené jméno zákonodárce s rozhledem v informatice.
Re: Věcné chyby
jedinou smysluplnou informací zůstane adresa DTD, kterou si pochopitelně může webmaster zkopírovat k sobě
Podle mého názoru, ta adresa DTD slouží jako identifikátor. Tudíž prohlížeče nemusí to DTD stahovat, aby věděly, že jde o XHTML. V případě, že si to někdo zkopíruje k sobě, tak to má jiný identifikátor a pak to opravdu není XHTML ale uživatelský formát, který ovšem může být s XHTML shodný. To pak prohlížeč má problém, protože z DTD nevyčte sémantiku. Normální prohlížeč ale doufá, že je stejná, jako v HTML/XHTML a podle toho jedná. Co mu také zbývá jiného.
K čemu podle vás slouží jmenné prostory?
Slouží k tomu, aby nám nekolidovaly značky, které mají v různých jazycích různý význam a přitom stejná jména. Ale nedefinují jazyk. V tomto případě si lze jmenný prostor představit jako množinu značek, tedy abecedu, ze které můžeme tvořit věty, zde dokumenty. Abychom dostali jazyk, potřebujeme k tomu ještě gramatiku jazyka a tu právě definuje DTD. XHTML jsou tedy jazyky nad stejnou abecedou, ale každý má trochu jinou gramatiku.
Re: Věcné chyby
Re: Věcné chyby
Re: Věcné chyby
Re: Věcné chyby
„Podle mého názoru, ta adresa DTD slouží jako identifikátor.“
Jenže adresa už vůbec nemusí být fixní. XHTML 1.0 i 1.1 (obě vydání obou) říkají, že systémový identifikátor smí být ve vyhovujícím dokumentu změněn.
Zrovna XHTML 1.1 nabízí dvě verze své DTD. Jednak má svoji mamutí modulovou verzi skládanou z cca dvaceti modulů, jednak i sloučenou verzi do jednoho souboru — kopii té prokazatelně používá validátor. Modulová se od sloučené mírně liší. V prvním vydání XHTML 1.1 nevyžaduje modulová žádný element v <body>, kdežto sloučená ano. V druhém vydání zatím ta modulová naopak vyžaduje alespoň jeden element v <body> a sloučená je už dva týdny vadná, neboť na jejím konci kdosi utrousil kus dokumentu.
„To pak prohlížeč má problém, protože z DTD nevyčte sémantiku.“
Jenže uvnitř DTD není určena sémantika, tam se může dozvědět nanejvýš názvy validních elementů, atributů a entit. Není tam řečeno „tohle je nadpis, tohle obrázek, tohle odkaz“.
„Slouží k tomu, aby nám nekolidovaly značky, které mají v různých jazycích různý význam a přitom stejná jména. Ale nedefinují jazyk.“
Kdyby měly pouze bránit kolizi, tak by nepotřebovaly mít k prefixu přiřazenu adresu. Prefix by totiž stejně natvrdo zakotvila DTD a dokument s jinými prefixy či dokument složený z více jmenných prostorů by potřeboval buď svoji DTD se svojí adresou, která by se neshodovala s adresou oficiální DTD, nebo modularizaci + velkou interní podsadu DTD.
Kdybych chtěl do XHTML vložit prvky svého vlastního jazyka, při čemž XHTML i ten vlastní jazyk by měli každý svou oficiální DTD, znamená to, že by kvůli zkombinované DTD neměly výsledku rozumět ani XHTML prohlížeče, ani prohlížeče toho mého jazyka?
Re: Věcné chyby
DTD PUBLIC identifier je obdoba XML namespace. Oba mechanismy identifikuji pouzity jazyk. Oba k tomu pouzivaji URI a zcela bezne se pouzivaji katalogy (at uz SGML ci XML) pro preklad techto URI na aktualni URL (trebas na lokalni kopii).
To, ze se DTD dostalo do XML je chyba. XML melo vymytit silenou slozitost SGML. Bohuzel pri vynalezani XML neexistoval jiny jazyk pro schema nez DTD, takze to dopadlo tak, jak to dopadlo.
Re: Věcné chyby
Ve stávajícím návrhu druhého vydání XHTML 1.1 je psáno, že se veřejný identifikátor musí odvolávat na oficiální DTD, pokud je přítomen. Z čehož usuzuji, že povinný není. Ale uznávám, že to je jen pracovní návrh.
Domnívám se, že FPI jako obdobu jmenných prostorů chápat nelze. Doporučení XML 1.0 o něm hovoří pouze jako o alternativní pěšince k adrese DTD. Odhlédnu-li od teorie: v praxi prohlížeče podle veřejného identifikátoru jazyk neurčují.