Zdravim, psat si vlastni EntityResolver je zbytecne. Melo by stacit do metody parse() predavat instanci InputSource s nastavenym systemId() - cesta, kde bude parser hledat relativni cesty.
"The system identifier is optional if there is a byte stream or a character stream, but it is still useful to provide one, since the application can use it to resolve relative URIs " M.Jarosik On 8/26/05, Martin Javorek <[EMAIL PROTECTED]> wrote: > 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 >