Podpora katalogov²ch soubor∙

KatologovΘ soubory jsou v²bornou myÜlenkou, kterß umo₧≥uje snazÜφ p°enositelnost XML dokument∙ p°i zachovßnφ pohodlφ pro autory. Pokud n∞komu posφlßme XML dokumenty, m∞ly by pou₧itΘ systΘmovΘ identifikßtory (kterΘ nap°φklad odkazujφ na soubor s DTD) obsahovat absolutnφ URL adresu, kterß je dosa₧itelnß odkudkoliv. Dokumenty jsou pak snadno p°enositelnΘ, proto₧e vÜechny dalÜφ soubory pot°ebnΘ pro jejich validaci apod. jsou dostupnΘ na sφti.

ProblΘm nastßvß v situacφch, kdy nejsme p°ipojeni k sφti. Zdroj oznaΦen² systΘmov²m identifikßtorem je pak nedostupn².

Elegantnφm °eÜenφm tohoto problΘmu jsou katalogovΘ soubory, kterΘ umo₧≥ujφ p°emapovat ve°ejnΘ i systΘmovΘ identifikßtory na jejich lokßln∞ dostupnou kopii. KatalogovΘ soubory podporuje v∞tÜina SGML aplikacφ, ve sv∞t∞ XML jejich podpora vÜak nenφ zdaleka tak b∞₧nß.

V²hody pou₧itφ katalog∙ ve vÜech souvislostech popisuje Norman Walsh ve svΘm Φlßnku If You Can Name It, You Can Claim It!. SouΦßstφ Φlßnku je i knihovna v Jav∞, kterß umo₧≥uje p°idßnφ podpory katalog∙ do tΘm∞° libovolnΘho parseru. Tato knihovna je souΦßstφ i upravenΘ verze XT. Formßt katalogov²ch soubor∙ je standardizovßn sdru₧enφm OASIS.

Pokud chceme, aby XT vyu₧ivalo katalogov² soubor catalog, staΦφ drobn∞ zm∞nit p°φkaz, kter²m jej spouÜtφme

java -cp <cesta k xt.jar>xt.jar -Dxml.catalog.files=catalog com.arbortext.xsl.sax.Driver dokument styl [v²stup] [nastavenφ parametr∙]

VÜimn∞te si, ₧e se m∞nφ t°φda, kterß se spouÜtφ. Pou₧φvß se upravenß verze, kterß upravφ t°φdu pou₧itou pro naΦφtßnφ externφch entit. TakΘ je pot°eba nastavit vlastnost xml.catalog.files.

Pokud se rozhodneme pou₧φvat katalogovΘ soubory s XT, patrn∞ je ji₧ pou₧φvßme s dalÜφmi nßstroji jako je parser nsgmls nebo editor Emacs. V tom p°φpad∞ u₧ mßme cesty ke katalogov²m soubor∙m ulo₧eny v prom∞nnΘ prost°edφ SGML_CATALOG_FILES. M∙₧eme proto rovnou pou₧φt jejφ hodnotu.

Pro ΦastΘ spouÜt∞nφ se nßm samoz°ejm∞ vyplatφ vytvo°enφ dßvkovΘho souboru. Ve Windows zhruba takto

@java -cp c:\xmllib\xt.jar -Dxml.catalog.files=%SGML_CATALOG_FILES% com.arbortext.xsl.sax.Driver %1 %2 %3 %4 %5 %6 %7 %8 %9

Na Unixu asi takto

#!/bin/sh
java -cp /usr/share/java/xml/xt.jar -Dxml.catalog.files=$SGML_CATALOG_FILES com.arbortext.xsl.sax.Driver $*

╚asem snad budu mφt vφce Φasu popsat zde zp∙sob prßce s katalogov²mi soubory podrobn∞ji.

⌐ Ji°φ Kosek 2000