Sova v síti - 2/8 - vydáno 7.8.2002 Dobrý den, je zde další číslo Sovy v síti :-) OBSAH -- Úvodník -- Učíme se číst definici typu dokumentu (DTD), část I. -- Odpovídáme na dotazy čtenářů ÚVODNÍK Martin Kopta mi udělal radost. Nejen, že navázal na svůj minulý článek o deklaraci typu dokumentu (DTD), ale dokonce napsal hned dva další díly. Dnes se tedy budete učit číst DTD poprvé a příště podruhé. Ono "příště" bude i přes již pověstná soví zpoždění ještě v srpnu. ... Zaroveň se v těchto dvou posledních letních číslech pokusím splatit dluh, který mám v zodpovídání vašich dotazů. ... Poměrně velký a veskrze pozitivní ohlas vzbudil Pedrův článek o rámcích v posledním čísle. Já jako odpůrce rámců mu takový úspěch ošklivě závidím, vás ostatní by ale mohl inspirovat k úvaze, zda nezkusit pro Sovu také něco napsat. Máte-li nápad co, neváhejte kontaktovat redakci (tj. mě). ... V minulém čísle jsem vyhlásil soutěž na nový design stránek Sovy v síti. Zatím přišlo asi pět návrhů. Píšu "asi" ne proto, že bych si nebyl jist svou schopností počítat do pěti, ale proto, že některé návrhy jsou jen zhruba naznačeny a jeden je dokonce pouze slovní. Na druhou stranu minimálně dva jsou velmi dobré. Soutěž stále pokračuje a bude otevřena alespoň do konce léta, resp. do Sovy číslo 2/10. Hned v příštím čísle (2/9) však plánuji vystavení dosud došlých návrhů k veřejné diskusi. Sova je časopis vás, čtenářů, takže vy si vyberete, jak by se vám nejvíce líbila. Připomínám, že soutěž je otevřena každému, jedinou vstupní podmínkou je uplatnění všeho, co jste se na Sově o webdesignu naučili a jedinou odměnou pro vítězný návrh je to, že bude skutečně použit. Samozřejmě s oslavným uvedním autora a odkazu na jeho stránky. ... Je vidět, že jste si už zvykli na pravidelné návštěvy sovího weblogu . Svědčí o tom nejen naše statistika návštěvnosti, ale i četnost emailů, ve kterých nám píšete, že stránka weblogu neprojde HTML validátorem, ačkoli se tím bezostyšně chlubí. Inu, to je tak: do weblogu zapisujeme s Martinem většinou uprostřed denního shonu (ano, 3:25 v noci je pro nás skutečně denní shon) a zapisujeme HTML kód do rozhraní Bloggeru "ručně", přes formulář v prohlížeči. Ikonu validátoru máme na stránce pěkně po ruce právě proto, abychom si mohli otestovat, zda jsme někde neudělali chybu. Většinou to otestujeme a někdy na to ..., zkrátka to někdy neotestujeme. Pak se výhoda ikony projeví znovu, neboť se hned ozve některý čtenář a buď se nám směje, nebo nadává, podle svého povahového založení a momentálního rozpoložení. Smějte se nám a nadávejte dál -- v tomto případě je to pro nás užitečná pomoc a my si vašeho zájmu o Sovu skutečně vážíme. ... A teď se již pusťte do Martinova článku. Krásný den vám přeje, Marek Prokop ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Denně aktualizované novinky, odkazy na články, zajímavé stránky: Weblog Sovy v síti -- http://www.sovavsiti.cz/weblog/ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ UČÍME SE ČÍST DEFINICI TYPU DOKUMENTU (dtd), ČÁST I. V minulém vydání Sovy v síti jsme si něco řekli o deklaracích DTD a o identifikátorech. Dnes je čas vysvětlit si zápis samotné DTD. Podle tohoto článku nenapíšete vlastní DTD, ale budete schopni porozumět existujícím typům dokumentů. V dnešním díle se naučíme číst definice prvků a atributů. Za čtrnáct dní doplníme ten zbytek. KOMENTÁŘE ELEMENT ATTLIST Struktura DTD vám bude povědomá z vyznačovacích jazyků, ale nenechte se zmást. + KOMENTÁŘE Začneme tím nejdůležitějším, a to jsou komentáře. Ty jsou v DTD naprosto stejné jako v HTML, takže začínají sekvencí znaků Cokoli je pak napsáno mezi těmi dvěma sekvencemi, budou programy, které využívají DTD ignorovat. + ELEMENT (XML) Definice prvků (elementů) se poněkud liší v XML a HTML. V XML je to snazší, takže podle Komenského budeme postupovat odtud. Takto je v XHTML 1.0 Strict definován prvek Za návěstím ELEMENT následuje název deklarovaného prvku a potom přije na řadu jeho obsah. vidíme, že obsahuje prvek právě jednou, zta nímž právě jednou následuje prvek . Obsah prvku může být i složitější. Například prvek

smí obsahovat kterýkoli prvek neblokové povahy, což by se zapsalo následovně: Sledujeme změnu. Vedle prvků HTML se v závorce objevila i sekce #PCDATA ta reprezentuje prostý text. Vidíte tedy, že prvek nemůže obsahovat přímo prostý text. Kromě toho v závorce jsou čárky vystřídány svislítkem (|). Čárce a svislítku se říká operátory a v DTD jich může být několik: (A , B) -- A i B se musí vyskytnout, v tomto pořadí (A | B) -- buď A, nebo B se musí vyskytnout (A & B) -- A i B se musí vyskytnout, na pořadí nezáleží Existují i další klíčová slova: EMPTY -- prvek nesmí obsahovat nic (jako nebo
) ANY -- prvek může obsahovat cokoli (v XHTML se neuplatní) Nakonec za závorkou následuje ještě hvězdička. I ta má svůj význam: (A)* -- prvek se MŮŽE vyskytnout kolikrát libo, nebo vůbec {0,} (A)? -- prvek se MUSÍ vyskytnout MAXIMÁLNĚ jednou {0,1} (A)+ -- prvek se MUSÍ vyskytnout MINIMÁLNĚ jednou {1,} +(A) -- A se MŮŽE vyskytnout, nikdo neříká jak často -(A) -- A se NESMÍ vyskytnout Pokud prvek nebo skupinu prvků (uzavřených v závorce) nenásleduje žádné znaménko, musí se vyskytnout právě jednou. + ELEMENT (HTML) V HTML jsou definice elementů bohatší, protože některé prvky nemusí být uzavírány. Následující definice pochází z HTML 4.01 Trasitional: Vidíte, že název prvku se píše verzálkami. Hned za ním následují dvě verzálky "O O" oddělené mezerou. Písmeno "O" zde znamená "omit", tedy "vypustitelný", a vztahuje se na výskyt značky (tagu) v HTML. Podle HTML 4.01 Trasitional tedy MŮŽETE zapisovat otvírací značku a zavírací . Uvnitř první závorky vidíte %flow; -- to je parametrická entita. O entitách budeme hovořit za čtrnáct dní. Druhou možností je místo písmene "O" uvést spojovník: Prvek MUSÍ mít otvírací i zavírací značku. Prvek

  • MŮŽE v HTML 4.01 Transitional být uzavírán: A pokud je prvek prázdný (EMPTY) naopak NESMÍ být v HTML 4.01 Transitional uzavírán: Za závorkou označující obsah prvku vidíte ještě komentář. Tento typ vnořeného komentáře se uplatní pouze v HTML (a jazycích SGML), ovšem v DTD pro dokumenty XML se nepoužívá, stejně jako definice otvírací a zavírací značky prvku. V Definici DTD pro HTML (ne XML) najdete ještě uvnitř závorky znak ampersandu (&); ten funguje jako logické "a": Frameset podle HTML 4.01 Transitional může obsahovat blíže neurčený počet prvků a/nebo a maximálně jeden prvek . + ATTLIST Vnořený komentář, jak jste ho viděli u definice ELEMENT se v DTD pro HTML může objevit i u ATTLIST. U definic dokumentů XML se opět nepoužívá. Zde je definice vlastností (atributů) prvku