[ me-tuzalem @ 08.01.2005. 13:56 ] @
Kada pomoću SAX parsera parsiram XML u kome je interno unet DTD opis, sve mi radi bez problema.
Kada taj DTD opis stavim u eksterni fajl i hoću da u XMLu imam
Code:
<?xml version="1.0" ?>
<!DOCTYPE ZAHTEV SYSTEM "zahtev.dtd">
...

ne radi, a kroz debugger vidim da mi stalno javlja da ne može da nađe fajl zahtev.dtd.
Svašta sam probao, i sa punom putanjom i pažljivo sa malim i velikim slovima, i ne mogu da ga nateram da mi parsira. Fajl "zahtev.dtd" se nalazi na istom direktorijumu gde je i xml fajl. Koristim xerces, ako je to uopšte važno.
Ima li ko ideju šta da još pokušam?
[ veljaradenkovic @ 08.01.2005. 15:58 ] @
Ne mogu da se setim al mi se cini da je nesto oko 'setLocator' funkcije ili tako nesto sacu da potrazim po racunaru pa cu da ti kazem. Ovo cisto da i ti malo preturis.
[ veljaradenkovic @ 08.01.2005. 17:50 ] @
Pogresio sam ...

Ne treba nista.

Nego evo napisao sam mali program koji demonstrira osnovnu funkcionalnost.

www.myjavaserver.com/~veljaradenkovic/XercesTest.zip

1. Unzipuj
2. run.bat
(Xerces jarovi u classpath)

:)
[ me-tuzalem @ 08.01.2005. 18:15 ] @
Hvala na trudu, ali ne ide. Uploadovao sam sliku da se vidi da primer ne radi.
[ Toxter @ 08.01.2005. 18:21 ] @
Imao sam isti problem.
Izgleda da to ne moze da se tako odradi, jedino da "rucno napises" te dve linije
teksta u fajl.
[ veljaradenkovic @ 08.01.2005. 18:41 ] @
Ma ne radi :)

http://www.myjavaserver.com/~veljaradenkovic/radi_sigurno.gif
[ veljaradenkovic @ 08.01.2005. 18:44 ] @
Stavi resolver.jar u classpath.
[ me-tuzalem @ 08.01.2005. 18:46 ] @
Resio sam problem! Izgleda da mora u kodu da postoji:
Code:

            InputSource ic =new InputSource(new FileReader(fullPathName));
            ic.setSystemId("."); // OVO JE KLJUC!!!
            xmlReader.parse(ic);


i tada u XML fajlu navedem punu putanju do DTD fajla npr.("C:\folder\subfolder\fajl.dtd").

a mogu da imam i

Code:

....
      ic.setSystemId("C:\\folder\\subfolder\\");     // obrati paznju na backslash escape!

pa u XML-u stavim samo "fajl.dtd".

Ovo sam otkrio pre par minuta, istestirao par varijanti i ubedjen sam da je to to.
Hvala svima na trudu.
[ veljaradenkovic @ 08.01.2005. 18:55 ] @
Kakva crna apsolutna putanja (osim ako ne pises program koji ces samo ti da koristis).

http://xml.apache.org/commons/components/resolver/
http://xml.apache.org/commons/...resolver/resolver-article.html


Moj primer odlicno radi sa relativnom putanjom na bilo kojoj masini i u bilo kojem folderu. Sto li je ASF stavio ove jarove u Xerces distribuciju.