Hello,

Your suggested solution solved the problem.  Xalan didn't like the paths on
Windows.

As I am using Ant to compile, using the standard <makeurl> task before
filtering and invoking the XSLT customization layer file was all I needed
to do.

Thanks,
Christopher



On 7 November 2012 20:49, Bob Stayton <[email protected]> wrote:

> **
> It is possible that Xalan is confused by the Windows pathname syntax:
>
> <xsl:import
> href="c:\java\build\temp\ProductName\docbook-xsl-1.76.1\html\chunk.xsl"/>
>
> I would try:
>
> <xsl:import
> href="file:///c:/java/build/temp/ProductName/docbook-xsl-1.76.1/html/chunk.xsl"/>
>
> Bob Stayton
> Sagehill Enterprises
> [email protected]
>
>  *From:* Christopher BROWN <[email protected]>
> *Sent:* Wednesday, November 07, 2012 8:42 AM
> *To:* DocBook Apps list <[email protected]>
> *Subject:* [docbook-apps] DocBook chunk.xsl resolves path to docbook.xsl
> incorrectly with Xalan (with Windows, but not with *nix)
>
> Hello,
>
> I'm observing a strange problem, where I use the "html/chunk.xsl"
> stylesheet via Ant and the <xslt> task.  It works under Linux (Ubuntu
> 12.04) and Mac OS X 10.8, but not under Windows.  The problem seems to be
> that (as expected) under *nix, the "chunk.xsl" imports the "docbook.xsl"
> stylesheet (in the same directory, because there's no directory in the
> XSLT, which is correct), but under Windows it resolves against the
> "basedir" of Ant and not the "basedir" of the XSLT task.
>
> I'm using:
> - DocBook HTML stylesheets 1.76.1
> - Ant 1.8.4
> - Java 6.0 u37
> - Xalan 2.7.1
>
> Here's the relevant bit of my "build.xml" file (${vbuild} is an absolute
> path):
>
>          <xslt basedir="${vbuild}/docbook/src/${l10n}"
> style="${vbuild}/docbook/custom/${l10n}/custom-html.xsl"
>               destdir="${vbuild}/docbook/out/${l10n}" extension=".html"
>               includes="*.xml">
>             <classpath refid="xalan.classpath"/>
>         </xslt>
>
> "xalan.classpath" includes: resolver.jar, serializer.jar, xalan.jar,
> xercesImpl.jar
>
> Here's the output from Ant:
>
>       [xslt] Transforming into
> c:\java\build\temp\ProjectName\docbook\out\en
>      [xslt] Processing
> c:\java\build\temp\ProjectName\docbook\src\en\manual.xml to
> c:\java\build\temp\ProjectName\docbook\out\en\manual.html
>      [xslt] Loading stylesheet
> c:\java\build\temp\ProjectName\docbook\custom\en\custom-html.xsl
>      [xslt]
> c:\java\build\temp\ProjectName\docbook-xsl-1.76.1\html\chunk.xsl:25:33:
> Error! Had IO Exception with stylesheet file: docbook.xsl Cause:
> java.io.FileNotFoundException: C:\java\projects\ProjectName\docbook.xsl
> (The system cannot find the file specified)
>      [xslt]
> c:\java\build\temp\ProjectName\docbook-xsl-1.76.1\html\chunk.xsl:32:38:
> Error! Had IO Exception with stylesheet file: chunk-common.xsl Cause:
> java.io.FileNotFoundException:
> C:\java\projects\ProjectName\chunk-common.xsl (The system cannot find the
> file specified)
>      [xslt]
> c:\java\build\temp\ProjectName\docbook-xsl-1.76.1\html\chunk.xsl:50:37:
> Error! Had IO Exception with stylesheet file: chunk-code.xsl Cause:
> java.io.FileNotFoundException: C:\java\projects\viewshell\chunk-code.xsl
> (The system cannot find the file specified)
>
> Like I say, it works under *nix but not under Windows.  I can't see what
> needs configuring so that under Windows, the "chunk.xsl" looks in the same
> directory as itself for "docbook.xsl".  I've not modified the standard
> docbook files.
>
> My "custom-html.xsl" customization layer contains this import on *nix
> (first line) and Windows (second line) :
>
>  <xsl:import
> href="/Users/cbr/dev/build/temp/ProductName/docbook-xsl-1.76.1/html/chunk.xsl"/>
>  <xsl:import
> href="c:\java\build\temp\ProductName\docbook-xsl-1.76.1\html\chunk.xsl"/>
>
> ...the path is hard-coded into this file as part of the build process (ant
> copy, filtering on).  On all platforms, "custom-html.xsl" finds
> "chunk.xsl", but on Windows, "chunk.xsl" can't find "docbook.xsl".
>
> Thanks,
> Christopher
>
>

Reply via email to