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.