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 
Sent: Wednesday, November 07, 2012 8:42 AM
To: DocBook Apps list 
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