Jmenné prostory nejsou nadbytečný balast, ale něco, co umožňuje snadno v jednom dokumentu používat značky z různých standardů. Takže pak není potřeba vymýšlet všeobjímající jazyk, který by uměl popsat hypertextový dokument, vektorový obrázek, matematický vzorec a geografické souřadnice, ale vytvoří se pro každou oblast samostatný jazyk – a jejich značky pak použijete dohromady v jednom dokumentu. Je to velká výhoda XHTML oproti HTML. Bohužel v HTML5 se na ni dost zapomnělo. Až se bude jednou HTML5 dělat pořádně, snad se ty různé data-atributy a mikroformáty nahradí jmennými prostory XML.
V dokumentu typu text/html je <math>
neznámý tag a má být ignorován. <math xmlns="http://www.w3.org/1998/Math/MathML">
je vložený dokument v MathML a má být vykreslen podle specifikace MathML. Jak to má být v HTML5 těžko říct – za prvé to není žádný standard, za druhé i v návrhu standardu je to popsáno dvojím způsobem. V samotném textu je to popsáno správně se jmennými prostory, v příkladu je ale jmenný prostor zapomenutý a prohlížeč ho má zřejmě vyvěštit z křišťálové koule.
Pokud podle vás jde o nadbytečný balast, můžete mi prozradit, podle čeho má prohlížeč poznat, do kterého jmenného prostoru patří element <math>
? Je to jmenný prostor http://www.w3.org/1998/Math/MathML
, http://www.examination.edu/2010/graduation/Math
nebo http://www.tex.org/2008/TeXML/plain/Math
?
V dokumentu typu text/html je <math> neznámý tag
Nie je, je to element z HTML5, ako tu: http://dev.w3.org/html5/spec/single-page.html#math. Popis "Here is an example of the use of MathML in an HTML document:" je snáď dosť jednoznačný.
podle čeho má prohlížeč poznat, do kterého jmenného prostoru patří element <math>?
Snáď podľa typu text/html (HTML5) - ako to robia všetky prehliadače, čo MathML podporujú. Alebo snáď viete o nejakom prehliadači, čo element math
podporuje, no pri type text/html ho vykreslí len so zadaným atribútom xmlns
?
Reagovat na komentář ve standardu je to popsané dvěma způsoby, které jsou v rozporu větou ve standardu je druhý způsob není zrovna nejšťastnější, nemyslíte? Ono to pak vypadá, že jste se neobtěžoval přečíst si ani první větu toho, co odkazujete: The math element from the MathML namespace falls into...
jste se neobtěžoval přečíst si ani první větu toho, co odkazujete: The math element from the MathML namespace falls into...
To som si samozrejme prečítal, no z toho, aký element je v akom mennom priestore, nijako nevyplýva, že by mal HTML parser v HTML dokumente atribút xmlns
brať do úvahy. Ale ho správne ignoruje - čo sa dá overiť v každom prehliadači.
Je to ještě jinak. Parsovací algoritmus HTML5 dává všechny elementy automticky do jmenného prostoru XHTML, s výjimkou elementů <svg> a <math> a jejich podelementů -- ty se automaticky v DOM tváří jako ze jmenného prostoru SVG, resp. MathML.
Pokud je v xmlns="..." u <svg> nebo <math> špatná hodnota, je to chyba.
http://htmlwg.org/cr/html/single-page.html#parsing-main-inbody
A start tag whose tag name is "math"
...
Insert a foreign element for the token, in the MathML namespace.
...
Díky. A to jsem tuhle část projížděl několikrát...
Ale nemůžu si pomoct, pořád v tomhle řešení nevidím jediný přínos, za to má fatální nedostatek -- pro podporu každé nové technologie bude nutné upravit standard. Přitom už se i ve světě webu minimálně 15 let ví, že standard, který nepočítá s dopřednou kompatibilitou, se nebude dodržovat. A 12 let je známé a standardizované alespoň nějaké řešení (XHTML). Nevím, zda za tím je zášť autorů standardu vůči XML, ale žádný racionální důvod mne nenapadá...
Ve skutečnosti je toho vkládaného obsahu mnohem víc, a spousta z toho je spojena právě s HTML5 - mikroformáty, data-atributy, multimediální obsah... To vše se mohlo řešit standardy nezávislými na HTML a do HTML vkládat jednotně jako elementy z jiných jmenných prostorů. Místo toho se to všechno řeší jedním všeobjímajícím standardem, navíc se to řeší pokaždé jinak.
Ono se na to taky dá dívat opačně. Za těch "dvacet" let se toho víc nerozšířilo, protože to s uzavřeným HTML nebylo možné udělat jinak, než porušením standardů. Ony se nakonec stejně porušovaly, a HTML5 vzniklo právě jako reakce na to masové obcházení nerozšiřitelnosti HTML 4.01. Jenže místo aby se standardizovala rozšiřitelnost, standardizuje se pár rozšíření. Není těžké uhodnout, že se bude situace za pár let opakovat.