Internet Info, s.r.o. Lupa Měšec Podnikatel Root Zdroják DigiZone Slunečnice Vitalia Tuesday TopDrive KupDnes Navrcholu Bomba NovýTarif Dobrý web Weblogy Woko Jagg Computer.cz SK: MojeLinky

Vlákno názorů k článku
Mix posvátné validity a X

Huba buba
Huba buba (neregistrovaný)
13. 3. 2007 14:40

NET notace SGML

Díky za článek, o některých věcech jsem dosud nevěděl.

Nicméně myslím, že nemáte tak zcela pravdu s NET notací. V sekci 3.2 specifikace HTML 4.01 se píše:

3.2 SGML constructs used in HTML

The following sections introduce SGML constructs that are used in HTML.

The appendix lists some SGML features that are not widely supported by HTML tools and user agents and should be avoided.

Volně přeloženo:

3.2 Konstrukty SGML použité v HTML

Zde říkáme, co z SGML se používá v HTML.

V příloze najdete vlastnosti SGML, které HTML nástroje běžně neimplementují a neměli byste je používat.

V seznamu konstruktů SGML, které HTML používá, není NET notace uvedena. Naopak, odkazovaná příloha uvadějící SGML konstrukty, které by se neměly používat, je právě tou přílohou, kterou odkazujete ve svém článku jako důkaz o používání NET notace v HTML.

Můj závěr: Specifikace HTML 4.01 nedoporučuje používat NET notaci SGML, tedy <p/text odstavce/ se nedoporučuje používat místo <p>text odstavce</p>. Tvůrci IE, Firefoxe i Konqueroru si to zřejmě vyložili úplně stejně.

Problém myslím spočívá především v ne úplně jasném vztahu mezi HTML a SGML.

dgx aura:94
dgx
13. 3. 2007 14:49

Re: NET notace SGML

Problém je spíš v tom, že co je jen nedoporučované, to není zakázané.
Michal Kubeček
Michal Kubeček (neregistrovaný)
13. 3. 2007 15:14

Re: NET notace SGML

To, že se (důrazně) nedoporučuje zkrácenou notaci v HTML dokumentu používat, neopravňuje autory prohlížečů chovat se, jako by neexistovala. Je to totéž, jako by prohlížeč ignoroval elementy, které jsou v HTML 4 označeny jako zastaralé.

Vztah mezi HTML a SGML je naprosto jasný: HTML je jednou z aplikací SGML, stejně jako je XHTML jednou z aplikací XML. Právě proto XHTML vzniklo: ne kvůli buzeraci autorů webových stránek, ale kvůli zjednodušení syntaxe a strojového zpracování dokumentů - XML, i když se proti němu spousta lidí z neznalosti bouří, je podstatně jednodušší a praktičtější než SGML. Bohužel většina těch protestujících nemá o nějakém SGML (a jeho vztahu k HTML) ani ponětí a místo formální specifikace HTML je zajímají jen empirické poznatky o tom, co jak zobrazí pár známých prohlížečů (v lepším případě, v horším MSIE).

Filip Jirsák
13. 3. 2007 18:25

Re: NET notace SGML

Jak se pozná prohlížeč, který podporuje NET tagy a <br/> zpracuje tak, že <br/ bude považovat za prázdný tag a > za přebývající znak (neukončuje žádný tag) který zahodí, od prohlížeče, který nepodporuje NET syntaxi (specifikace jí nevyžaduje) a lomítko uvnitř tagu považuje třeba za neznámý tag, a ignoruje ho? Tedy jinak, než pohledem do zdrojového kódu.
Michal Wiglasz
13. 3. 2007 19:40

Re: NET notace SGML

Prohlížeč, který bude <br/> chápat jako tag a většítko, se pozná podle toho, že na konci řádku bude většítko nadbývat. Rozhodně se nezahodí. Schválně si zkuste <br>> co to udělá.
Noname
Noname (neregistrovaný)
13. 3. 2007 21:07

Re: NET notace SGML

hlavně tuším můj validátor takové <code><br/></code> považuje za nevalidní a opravuje jej na <code><br /></code>, tak nevím, jestli je to tento případ.
Filip Jirsák
14. 3. 2007 21:07

Re: NET notace SGML

To ale plyne z toho, že prohlížeč znak > na místě, kde žádné > nečeká, zobrazí. Klidně ten znak ale místo zobrazení může ignorovat (standard nic neříká o tom, co s přebytečným > dělat).
Michal Kubeček
Michal Kubeček (neregistrovaný)
14. 3. 2007 22:47

Re: NET notace SGML

Prosím? Podle vás může prohlížeč jen tak svévolně vynechávat některé znaky?
Filip Jirsák
15. 3. 2007 9:53

Re: NET notace SGML

Zkuste si do elementu body vložit jen "<text" (bez uvozovek). WIE7, FF 2.0 i Opera nezobrazí nic – protože po < očekávají název tagu. Stejně legitimní je považovat > za konec tagu, a pokud aktuálně prohlížeč nemá žádný tag, který by mohl ukončit, prostě znak ignoruje.

To je právě problém HTML specifikace, že sice říká, že tag je ohraničen < a >, ale už neříká, co dělat, když na tyto znaky prohlížeč narazí někde jinde.

A ještě jeden detail – specifikace povoluje atributy (možná nechtěně) pouze u tagů ukončených >:

Attribute/value pairs appear before the final ">" of an element's start tag.
Jakmile má tag atributy, nemůže lomítko na konci považovat prohlížeč za NET notaci, ale musí jej považovat za vnitřek tagu – nejspíš tedy za neznámý atribut. Takže problém s NET notací se zužuje na tagy <br /> a <hr /> – a těm stačí doplnit nějakou neutrální třídu, třeba <br class="br" />. A je po problému, žádné > nikde nepřebývá.

Chamurappi aura:93
15. 3. 2007 16:15

Re: NET notace SGML

V HTML je „>“ znak jako každý jiný, pokud je uvnitř obsahu elementu nebo atributu.

sice říká, že tag je ohraničen < a >, ale už neříká, co dělat, když na tyto znaky prohlížeč narazí někde jinde
Pokud za „<“ není znak povolený v názvech, je to obyčejné menšítko. Totéž platí třeba i pro ampersand.

specifikace povoluje atributy (možná nechtěně) pouze u tagů ukončených >
To je dost zjednodušená formulace, ono totiž i to ukončovací většítko je někdy nepovinné. Na NET nemají atributy vliv.

Filip Jirsák
15. 3. 2007 19:06

Re: NET notace SGML

To je ta výhoda přesné specifikace HTML. Na jednom místě je napsáno, že atributy jsou mezi názvem tagu a ukončovacím většítkem, z něčeho jiného pak možná vyplyne, že atributy mohou být i něco jiného. Jinde zase – je to SGML, ale tohle se moc často nepoužívá, tak to možná radši taky nepoužívejte…
Jirka Kosek
Jirka Kosek (neregistrovaný)
13. 3. 2007 16:34

Re: NET notace SGML

Problém myslím spočívá především v ne úplně jasném vztahu mezi HTML a SGML.
Ne ten vztah je zcela jasný. Chybou bylo spíše to, že se ve specifikaci HTML 4.01 nezakázala minimalizace značkování. V té době již bylo jasné, že nejpoužívanější prohlížeče nebudou pro čtení HTML používat skutečné SGML parsery. Kdyby se v SGML deklaraci změnilo "SHORTTAG YES" na "SHORTTAG NO" přiblížilo by se načítání HTML pomocí skutečného SGML parseru chování prohlížečů s "tagsoup" parserem. Navíc by odpadl problém nekompatibility s XHTML při zápisu <tag/>.
Zasílat nově přidané příspěvky e-mailem