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ů