Re: sgml xml chaos
To |
Petr Vanek <vanous zavinac penguin bod cz> |
From |
Martin Slouf <xslom03 zavinac vse bod cz> |
Date |
Tue, 28 Oct 2003 14:18:49 +0100 (CET) |
Cc |
debian newsgroup <czdebian-l zavinac debian bod cz> |
On Tue, 28 Oct 2003, Petr Vanek wrote:
> zatim tomu rozumim takto:
>
> vzdy potrebuji tri soubory: moje sgml, k tomu dtd plus *.dsl styl:
to sedi, pricemz ciste teoreticky, lze se obejit bez styloveho souboru i
dtd:
* vyznam dtd je pouze pro overeni validity dokumentu sgml, coz v
konecnem dusledku muze usnadnit treba i editaci v emacsu, neni to vsak
nezbytne
* parser, ktery pouzivas na sgml (docbook2<format>) muze, ale nemusi dtd
pouzivat
* soubor stylu pouze upravuje transformace, ktere sou delany parserem
(jak ma tisknout treba element <b> -- jako tucnej font -- do latexu to
muze znamenat napr. \textbf{text}), pricemz parser muze byt opet napsan
tak, ze zadny soubor stylu nepouziva a ma to natvrdo v kodu
>
> mam souboty dtd, ktere definuji logickou strukturu soboru - definuji
> se zde jednotlive elementy. pokud vyuzivam sgml syntaxe, definuji
> v hlavicce pouze jmeno dtd sablony. pri vyuziti xml bych definoval
> jmeno xml sablony. pro dokonceni: pri generovani vysledneho souboru
> pomoci sgmltool (docbook2...) pak mohu zvolit jmeno sablony definujici
> vysledny tvar/podobu vystupu - takoveto neco v priponou dsl?
>
uprime nevim -- nepouzivam dsl, pouze se trochu orientuju v xslt, kde by
to, co rikas sedelo
> a ted otazky:
>
> vim, ze existuji tri root elementy - book, article a ten treti jsem
> zapomel :-). proc je k dispozici tak mnoho dtd souboru - jedna se o
> definice dalsich podtagu tech root elementu, specifickych pro dany
> ukol? jak vim, ktery budu potrebovat ja? (tedy ne dnes, ale treba
> pozdeji - jak zjistim, co ktere dtd vlastne obsahuje a k cemu se hodi?)
>
dtd definice umoznuji rozdelovat definici dokumentu do nekolika souboru a
logicky to clenit na zvladnutelne celky (elementy, entity, skupiny
elementu atp.)
tebe (resp. me :-)) zajimaji pouze dtd definujici root elementy, nic
jineho, zbytek se po ruznu inkluduje podle toho, co pouzivas (root,
article a treti neznam :-)), jak to vypada u docbooku sem nikdy neresil
(koneckoncu ani u niceho jineho -- a spokojene si edituji, upgraduju a
tak).
> jak zjistim ktere dtd mam vlastne v systemu?
>
dobrej dotaz. kazdej linux to ma jinak, muj debian stable se snazi
pouzivat /usr/share/sgml. ale ne se stoprocentnim ucinkem
jistejsi je neco jako 'locate dtd | pager' a mas to (me to vyhodi na 580
souboru, ne vsechny nutne s definici dtd -- uzij si to)
osobne stejne pouzivam akorat HTML, docbook a dtd souvisejici s J2EE plus
asi 5 mych definic, dohromady tak 20 dtd -- o tech vim kde v systemu sou
(nasel jsem je vyse uvedenym zpusobem v kombinaci s prohlizenim obsahu
baliku) a zbytek me, jak to kulantne vyjadrit ... nezajima
> moje etc/sgml vypada trochu jinak (to bude tim unstable) - je tam
> spousta odkazu na odkazy odkazu na catalogy, nekde na konci jsou pak
> ty samotne catalogy, ta struktura je natolik komplikovana, ze prochozeni
> toho vseho je nad lidske sily, ukazka:
>
to je jasny, ani u me to neni tak hezky -- ukazoval jsem ti soubor, ktery
sem si editoval sam a misto odkazu na odkazy na odkazy odkazu ... sem to
udelal tak, abych se v tom vyznal
do politiky debianu na tomto poli sem pronik jen velice zbezne -- snazi se
podle me vzdy do katalogu /etc/share/catalog a/nebo
/etc/sgml/sgml-data.cat zapsat novy katalog pro novou aplikaci, ktera
nejake to dtd pouziva (to uz je v tom tretim catalogu, chvala bohu),
samotne dtd pak uklada do /usr/share/sgml.
nasledne psgml-mode pro emacs cte tyto catalogy (jejichz syntax nastesti
definuje nejakej sgml standard, takze to je stejne na vsech systemech),
projde tyto katalogy a zaridi se podle toho -- v okamziku kdy napises
<!DOCTYPE ...> do sgml, xml, html, ... do sveho souboru, tak se snazi
najit prislusne dtd, pokud ho nenajde, je lepsi prepnout na fundamental-mode,
protoze to zacne delat takovy psikusy, ze to radsi vzdavam :-)
z toho je patrna jedna neprijemnost, na prvni pohled nijak zrejma -- i do
xml musis napsat definici sgml <!DOCTYPE ... > (coz podle standardu
xml neni nutne), pokud ho chces rozume editovat v emacsu.
me tohle mapovani funguje na systemu dobre a zadny trable nemam, pouze sem
si definoval vlastni catalog (/usr/local/etc/sgml/catalog), pridal jeho
odkaz do tech globalnich (/etc/sgml/catalog) -- mozna uz to tak bylo
nastaveny, coz je koneckoncu fuck -- a vsechny mnou pozuivane dtd si pisu
tam, pokud aplikace, jichz jsou soucasti, z nejakeho duvodu nepouzivaji
debianovskou politiku (vlastne jde jen o dtd pro j2ee/ant)
mnou vyrobene dtd si definuju jako DOCTYPE SYSTEM, nikoli PUBLIC (= PUBLIC
IDENTFIER -- vlastne ani neznam jeho presnou syntax -- nezajima me to) a
ty se pak nemusi ani psat do tech catalogu -- vypada to pak treba takto:
<!DOCTYPE project SYSTEM "/usr/local/lib/sgml/project.dtd">
jak vidis, mam k tomu ryze prakticky pristup, a co me mile prekvapilo,
funguje to, jak ocekavam -- coz me neprestava udivovat doted ;-)
m.
Partial thread listing:
- Re: sgml xml chaos, (pokračuje)
Brand new way to download Movies, Music & Software! zxlmhymp,
Juana Leonard
.deb update
Peter