2012-11-30 15 views

risposta

4

Molte (la maggior parte) implementazioni funzioneranno, anche se tecnicamente, se non ricordo male, la posizione deve essere interpretata come un URI, non come URL.

Se si vuole essere sicuri di risolverlo localmente, dare un'occhiata all'interfaccia EntityResolver.

+0

Quindi, dove troverebbe il dtd prima di Internet? Voglio dire, il riferimento doctype è un url http; c'è una logica per convertire questo in una ricerca di classpath? Ho notato che i vasi dei montanti hanno tutti i dtd dentro. – chad

+0

Beh, i DTD non esistevano prima di Internet :-) Ad ogni modo, il riferimento doctype sembra un URL http, ma questa è solo convenzione: è davvero un URI (c'è una differenza) e non necessariamente si associa ad un URL valido . Non uso Struts da molti anni, ma suppongo che includa i DTD e utilizzi un EntityResolver per risolverli localmente. – GreyBeardedGeek

2

In base allo Xerces documentation, il parser può provare a scaricare il file da Internet quando la convalida è attivata. Ma penso davvero che questo possa cambiare da parser a parser, perché la libreria può decidere di usare una cache locale, un server proxy o altro.

+0

L'ho visto. Non riuscivo a trovare altre specifiche su dove altro, e in quale ordine, avrebbe cercato di trovare il dtd. Filesystem? Classpath? – chad

+1

Penso, poiché si tratta di dettagli di implementazione, non c'è documentazione migliore del codice sorgente e di un debugger – Raffaele