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]

Reply via email to