Re: [Refdb-devel] Docs failing to build
Status: Beta
Brought to you by:
mhoenicka
From: Markus H. <mar...@mh...> - 2006-08-31 14:16:41
|
Hi, David Nebauer <dav...@sw...>: > More specifically, the error is caused by the inclusion of '../doc/' in > specifying the stylesheet. It makes no difference whether included or > not in the source xml file name. That is what I suspected. To the best of my knowledge the shell does not canonicalize the path, i.e. the '../doc/<path>' is passed literally to xsltproc. This works ok if the strings are used for regular "open()" or "fopen()" calls. Therefore xsltproc finds both the XML file and the XSLT stylesheet. However, to resolve the "xsl:include" in the stylesheet, an xslt processor probably applies a different logic (the path could be an URL too). I suspect that xsltproc expects a canonicalized path at that point. > xmlstarlet uses the same underlying library ('libxslt1.1') but happily > creates a viable FO file even when the offending '../doc/' is included. > The following command works: > > xmlstarlet tr --xinclude ../doc/include/manual-fo.xsl \ > ../doc/refdb-manual.xml > refdb-manual.fo > This is even more confusing result. The "xsl:include" handling is certainly a part of the library, not a part of the xsltproc application itself. > It would appear to be an xsltproc-specific bug. > More specifically, an xsltproc-on-Debian-specific bug. I've compared the patches that Debian and FreeBSD apply to the sources in their package and port, respectively. I don't see anything that would explain why things work ok on FreeBSD but not on Debian. One last chance: Can you verify with xsltproc --version that you invoke the right binary and the right libraries? regards, Markus -- Markus Hoenicka mar...@ca... (Spam-protected email: replace the quadrupeds with "mhoenicka") http://www.mhoenicka.de |