I think there is some general confusion on how 'file' URLs should be constructed. RFC 1738 describes the format explicitly as:
fileurl = "file://" [ host | "localhost" ] "/" fpath So, "/usr/local/cocoon2" should be written as file:///usr/local/cocoon2 (Unix) file:///c:/usr/local/cocoon2 (Windows) Notice the '///'. This is because the host part of the URL is null. I could have written the URL as file://localhost/usr/local/cocoon2 (Unix) file://localhost/c:/usr/local/cocoon2 (Windows) and this would have worked also. Interestingly, with JDK1.3 new File("/usr/local/cocoon2").toURL().toString() (Unix) new File("c:/usr/local/cocoon2").toURL().toString() (Windows) returns 'file:/usr/local/cocoon2' (Unix) 'file:/c:/usr/local/cocoon2' (Windows) in apparent violation of the RFC! So now we have three equivalent ways to specify a file URL in Java: On Unix: file:///usr/local/cocoon2 file://localhost/usr/local/cocoon2 file:/usr/local/cocoon2 On Windows: file:///c:/usr/local/cocoon2 file://localhost/c:/usr/local/cocoon2 file:/c:/usr/local/cocoon2 Notice the file path must be absolute (which is why on Windows the drive specification must be specified.) Regards, --mike On Tue, 23 Oct 2001, David Crossley wrote: > I have discovered the cause of my problem with getting > "build docs" to work properly with the entity resolver. > Remember that it fails for me (but is OK for others) with > "Failed to create InputSource: file://usr/local/.......", and we > supsect the // to be a problem. I also noticed a strange > pathname for loading the catalog file with a "./" in the middle > of it. So i supected a bad path for the "contextDir" argument. > > Sure enough, if i hard-code the full pathname into build.xml > - <arg value="-c."/> > + <arg value="-c/usr/local/cvs/xml-cocoon2/build/cocoon/documentation"/> > then the "build docs" works properly, and i finally see the > "catalog-test.html" with the ISOnum entity set being > resolved using the catalog. Hooray ... but why? > > --David > > On Wed, 10 Oct 2001 Carsten wrote: > > Hi David, > > > > sorry I can't reproduce this here. Running under Windows2k > > everything is working fine and I always get file:/ urls. > > So, if someone with linux can have a look at it? > > > > Carstem > > > > > -----Ursprüngliche Nachricht----- > > > Von: David Crossley [mailto:[EMAIL PROTECTED]] > > > Gesendet: Mittwoch, 10. Oktober 2001 10:11 > > > An: [EMAIL PROTECTED] > > > Betreff: Re: entity resolution for Documentation build - almost > > > > > > Cartsen wrote: > > > > Hi David, > > > > I applied your patch to both cvs. Thanks! > > > > I think the problem lies indeed in the double slashes > > > > of your url (file://). Where is this url build? > > > > > > The URL is built in components/resolver/ResolverImpl.java > > > in the resolveEntity() method. Note that everything is OK > > > via normal servlet running - the URL starts with file:/ > > > However, when running "build docs" it gets file:// > > > > > > You would be able to see it yourself, if you try to > > > process the catalog-test.xml supplied with the last > > > patch. > > > cheers, David > > > > > > > Carsten > > > > > > > > > -----Ursprüngliche Nachricht----- > > > > > Von: David Crossley [mailto:[EMAIL PROTECTED]] > > > > > Gesendet: Montag, 8. Oktober 2001 14:17 > > > > > An: [EMAIL PROTECTED] > > > > > Betreff: Re: entity resolution for Documentation build - almost > > > > > > > > > > I am frustratingly close to getting entity catalogs working for > > > > > the documentation build, and need some help. Here are some > > > > > patches so that you can try for yourself. > > > > > > > > > > The patch to build.xml adds to the prepare-docs target > > > > > to copy the default catalog and its entities over to the > > > > > documentation build space. That is all that is required to > > > > > enable the entity resolver. > > > > > The patch to documentation/cocoon.xconf adds the config > > > > > parameters for catalog resolver. > > > > > > > > > > It is safe to apply those patches. Nothing is adversely affected. > > > > > The DTDs and other entities are already being resolved to > > > > > files relative to the XML instance document. > > > > > > > > > > However, if you declare a new entity set in an xdoc then > > > > > you will strike trouble. The entity resolver does deliver the > > > > > correct pathname for the entity set. However, we get ... > > > > > ----- > > > > > Failed to create InputSource: > > > > > file://usr/local/cvs/xml-cocoon2/build/cocoon/documentation/resour > > > > ces/entities/ISOnum.pen > > > > ----- > > > > Is the failure because of the double-slash file:// ... ??? > > > > The actual pathname is correct. > > > > > > > > When running via the normal webapp under Tomcat the > > > > InputSource is successful and the page is presented. > > > > The only difference is single slash rather than double slash > > > > after file: > > > > file:/usr/local/... > > > > > > > > As a convenience to facilitate testing of entity resolution for > > > > the documentation build, there is a new xdocs/catalog-test.xml > > > > - you will need to add an entry your local book.xml > > > > > > > > cheers, David > ------- > Platform is ... > Linux RedHat 7.1 > Blackdown j2sdk-1.3.1 > ------- > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, email: [EMAIL PROTECTED] > --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, email: [EMAIL PROTECTED]