Tyto strßnky jsou ji₧ neaktußlnφ. P°ejd∞te prosφm na novou strßnku o XT, kde je novß verze upravenΘho XT.

Podpora k≤dovßnφ ISO 8859-2 a windows-1250 v XT

Jirka Kosek


XT je program napsan² v jazyce Java, kter² umφ transformovat XML dokumenty pomocφ XSLT stylu. Bohu₧el, XT standardn∞ pou₧φvß parser XP, kter² nepodporuje k≤dovßnφ ISO 8859-2 a windows-1250, kterß se pou₧φvajφ pro zßpis text∙ v n∞kolika st°edoevropsk²ch jazycφch. To ho pro nßs Φinφ prakticky nepou₧iteln²m, proto₧e podporovanΘ k≤dovßnφ UTF-8 zatφm nepodporujφ vÜechny aplikace (zejmΘna editory).

Proto₧e jsem funkΦnost XT pot°eboval, upravil jsem XP tak, aby ob∞ dv∞ v²Üe zmφn∞nß k≤dovßnφ podporoval. StaΦilo drobn∞ upravit dva soubory z distribuce XP verze 0.5 û Encoding.java a SingleByteEncoding.java. ┌pravy jsem poslal zp∞t i autorovi program∙ Jamesu Clarkovi, tak₧e je mo₧nΘ, ₧e dalÜφ verze XP a XT budou ji₧ ob∞ dv∞ zmφn∞nß k≤dovßnφ podporovat rovnou.

Pokud nechcete programy XP a XT po ·prav∞ kompilovat, m∙₧ete vyu₧φt mnou p°ipraven² archiv xt.jar. Narozdφl od distribuce jsou v tomto Java archivu obsa₧eny oba dva programy XT i XP vΦetn∞ definice rozhranφ SAX, kterΘ vyu₧φvajφ.

Pro pou₧itφ si staΦφ stßhnout xt.jar a ulo₧it ho do libovolnΘho adresß°e. XT pak spustφme p°φkazem

java <cesta k xt.jar>xt.jar com.jclark.xsl.sax.Driver dokument styl [v²stup] [nastavenφ parametr∙]

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 com.jclark.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 com.jclark.xsl.sax.Driver $*

V pou₧it²ch XSL stylech i XML dokumentech pak m∙₧eme pou₧φvat naÜe oblφbenΘ k≤dovßnφ. StaΦφ jako prvnφ °ßdku souboru uvΘst jednu z nßsledujφcφch XML deklaracφ.

<?xml version="1.0" encoding="windows-1250"?>

<?xml version="1.0" encoding="iso-8859-2"?>

Program jsem testoval pouze pod Windows, ale doufßm, ₧e dφky Jav∞ bude pracovat i na unixov²ch a dalÜφch systΘmech. Pokud narazφte na n∞jakou chybu, kterß souvisφ s k≤dovßnφm, dejte mi v∞d∞t.

(c) Ji°φ Kosek 1999