Ahoj,
tak tu ted resim takovy problemek... Web aplikace (Tomcat 5.0), pri startu
servletu se parsuji (DOM) nejaka XML (Xerces 2.0.7). Ta XML maji relativni
cestu k DTD. Zjistil jsem vsak, ze cesta je zavisla na tom, odkud se spusti
Tomcat - jinymi slovy, je relativni k /bin adresare Tomcatu a ne ke XML
dokumentu. Samozrejme - aplikace funguje jen v pripade, ze se Tomcat spusti
davkou z /bin, pokud jej spustim jinak a odjinud, tak nastane problem, protoze
DTD se nenajdou. Kdyz predelam adresy DTD relativne k dokumentum, taktez to
nefunguje.
Tak jsem to doho chvilu koukal a napadlo me, ze se to XML nacita pres stream a
tudiz validator parseru nema asi pristup k informaci, kde se vlastne dokument
nachazi a tudiz nemuze ani relativne k nemu najit to DTD... a clovek, ktery to
psal prede mnou to nejspis vyresil tak, ze tam placnul relativni cestu k tomu
binu a hotovo (coz mi zrovna nevyhovuje).
Utrzek kodu parsovani toho XML:
DocumentBuilderFactory dbFactory =
DocumentBuilderFactory.newInstance();
DocumentBuilder docBuilder = dbFactory.newDocumentBuilder();
document = docBuilder.parse(is);
kde is je inputstream toho XML
Jak bych mel rict tomu parseru, kde ten dokument lezi? Nejaka base URL/URI?
Nebo je to uplne spatne?
Diky.
Martin