SGML pro programátory

Standard SGML je mezi námi již dvanáct let. Poslední dobou se slůvkem SGML začíná ohánět kdekdo. V mnoha knihách, k...


Standard SGML je mezi námi již dvanáct let. Poslední dobou se slůvkem SGML
začíná ohánět kdekdo. V mnoha knihách, které pojednávají o jazyce
HTML, se dozvíme, že HTML nějakým způsobem s SGML souvisí. Jak přesně o tom již
knihy ve valné většině mlčí.
Druhou aktuální oblastí, ze které můžeme slyšet o SGML, jsou informace o novém
jazyce XML. Často se např. dočteme, že XML je podmnožinou
SGML. XML se dnes používá např. při definici kanálů v Internet Exploreru 4.0
(formát CDF). Navíc prosakují informace o tom, že XML bude Microsoft nějakým
způsobem využívat jako formát pro dokumenty v Office 2000.
Všechny tyto informace jsou však velmi mlhavé a o skutečném významu magické
zkratky SGML se nedozvíme téměř nic. Dnešní recenzi tedy zahájím poněkud
netradičně a ještě než se budeme věnovat samotné knize, pokusím se stručně
odmlžit obsah pojmu SGML.
SGML (Standard Generalized Markup Language) je metajazyk, který umožňuje
standardizovaným způsobem definovat další značkovací jazyky jako je třeba HTML.
To znamená, že pomocí SGML můžeme definovat, jaké značky lze v dokumentech
používat, v jakém mohou být vzájemném vztahu atd. Použijeme-li analogii s
programováním, je SGML něco jako programovací jazyk a HTML pak program zapsaný
v tomto jazyce. Popisu značek a jejich vzájemných možných vztahů se říká DTD
(Document Type Definition). Dokumenty, jejichž struktura je vyznačena pomocí
předem definovaných značek v SGML, přinášejí mnohé výhody. K práci s nimi lze
použít libovolný software, který je kompatibilní s SGML. Odpadají tak problémy,
které přinášejí různé proprietární formáty dokumentů používané v textových
procesorech a sázecích programech. Další nezanedbatelnou výhodou SGML je velice
snadná konverze do dalších formátů a přenositelnost mezi platformami.
Výhody SGML se dnes v praxi používají především při tvorbě dokumentace. Z
jednoho zdroje lze pak snadno generovat jak tištěnou, tak elektronickou
dokumentaci. V ČR se bohužel tato výborná technologie používá velmi málo. Jaké
jsou příčiny tohoto ne zrovna příznivého stavu? Osobně hlavní příčinu spatřuji
v totálním nedostatku literatury, která se problematice SGML věnuje.
Pokud se tedy našinec chce něco dozvědět o SGML, nezbývá mu nic jiného, než
sáhnout po zahraniční literatuře. V angličtině vyšlo několik desítek knih,
které se zabývají problematikou SGML. Většina těchto knih je však určena pro
informační manažery a neobsahuje podrobné technické informace.
Programátor, který stojí před pro-blémem vývoje aplikací pracujících s SGML
dokumenty, měl donedávna jedinou možnost prostudovat si samotný standard ISO,
který popisuje SGML. Kdo někdy četl nějakou normu, potvrdí, že to většinou není
nic moc příjemného a srozumitelného.
Kniha The concise SGML companion v tomto ohledu zaplňuje mezeru na trhu.
Vynechává filozofické úvahy na téma "SGML ano či ne". Ve valné většině se
věnuje pouze praktickým věcem.
Na prvních 10 stranách se nevyhneme stručnému úvodu, kde se seznámíme s tím, co
to je SGML a značkování.
Další kapitola jde již přímo k věci a zabývá se základními prvky, se kterými se
setkáme v SGML dokumentech. Dozvíme se, jak se zapisují jednotlivé elementy a
atributy, jak lze jejich zápis zkracovat. Nevynechají se ani komentáře a
způsob, jakým se zpracovávají konce řádků.
Další kapitola se věnuje komponentám, ze kterých je složen každý SGML dokument.
Dozvíme se, co je to deklarace SGML, prolog a instance dokumentu. Na řadu
přijde i způsob, jakým může lexikální analyzátor (parser) kontrolovat správnost
dokumentu. Následuje kapitola věnovaná entitám.
Tvorbě DTD se kniha věnuje ve své 7. kapitole, která přináší kompletní přehled
možností při definování struktury dokumentů. Dozvíme se, jak deklarovat
elementy a atributy. Podrobně je rozebrána možnost definice přípustných vztahů
mezi jednotlivými elementy.
Po DTD je pozornost soustředěna na návrh deklarace SGML. Deklarace slouží pro
nastavení možností, které můžeme používat v instancích dokumentu. Problematice
tvorby odkazů v SGML dokumentech je věnována samostatná kapitola. Kromě popisu
obecného přístupu, který nabízí SGML, jsou rozebrány i jednotlivé možnosti,
které se nabízejí pro tvorbu odkazů mezi dokumenty. Stručně je popsán i systém
HyTime, který rozšiřuje možnosti tvorby odkazů a přitom využívá pouze
standardních možností jazyka SGML.
Následující 3 kapitoly jsou více prakticky zaměřené. Obsahují popis tří běžně
používaných DTD. Seznámíme se s modelem CALS pro vytváření tabulek a se zápisem
matematických vzorců podle normy ISO 9573. Třetí praktickou ukázkou je jazyk
HTML, který je rovněž definován v jazyce SGML. Na řadu přijde kapitola
popisující práci s parsery SGLMS a NSGMLS. Za nejcennější v této kapitole
považuji popis formátu ESIS, který je generován parsery při zpracování SGML
dokumentů. Jedná se o jednoduchý formát, který lze snadno dekódovat. Pomocí něj
můžeme naší aplikací snadno zpřístupnit čtení SGML dokumentů.
Následuje referenčně pojatá kapitola, která obsahuje různé užitečné přehledy a
tabulky použitelné typy atributů, znakové sady aj. Škoda jen, že v některých
tabulkách je špatně vytištěno pár znaků. Příštích 55 stran je velice
užitečných. Obsahují totiž diagramy syntaxe jazyka SGML. Přehled syntaxe
obsahuje až na pár téměř nepoužívaných specialit vše, co člověk potřebuje znát.
Konec knihy je vyplněn velice podrobným slovníčkem pojmů a rejstříkem.
Pokud jste tedy programátorem nebo analytikem a čeká vás práce na projektu
založeném na SGML, bude pro vás dnes recenzovaná kniha tím pravým.
(Bradley, N.: The concise SGML companion. Addison Wesley. 324 stran. ISBN
0-201-41999-8. Cena 30 dolarů)
8 1980 / pah









Komentáře
K tomuto článku není připojena žádná diskuze, nebo byla zakázána.