Regarding the -o option, it is for standard output from the process and
not used in the chunking process, because that path is not passed to the
XSLT process which is generating the filenames for chunks. The -o
option will capture any output that is *not* explicitly written to a
chunk file. In most cases, that is nothing, but there are some chunking
configurations where some things are not chunked and they would go to
standard output.
Bob Stayton
bobs@sagehill.netOn 3/29/2020 5:59 AM, Niels Müller Larsen wrote:
> Hi Bob
>
> You have done it again! You once helped me with missing literature refs because of lack of ns in my downloaded xsl. Huge thanks.
>
> Now it works as it did with xsltproc, a couple of small thing in the catalog, that I could fix.
>
> I have a question about the -o option when chunking, and if it is connected to the base.dir param. Are both -o and base.dir necessary? it is not happy with a dir name in -o.
>
> Starting to work at linenumbering I get:
>
> 975 No numberLines function available.
> 976 Processing terminated by xsl:message at line 309
>
> relating to
>
> <programlisting language="javascript" linenumbering="numbered">const bcrypt =
> ...
>
> in my xml. In my customizations have:
> ...
> <xsl:param name="linenumbering.extension" select="1"/>
> <xsl:param name="local.l10n.xml" select="document('')"/>
> <xsl:param name="textinsert.extension">1</xsl:param>
> <xsl:param name="toc.max.depth">2</xsl:param>
> <xsl:param name="generate.toc">
> appendix toc,title
> book toc,title
> chapter toc,title
> part toc,title
> preface toc,title
> reference toc,title
> </xsl:param>
> <xsl:param name="use.extensions" select="1"/>
> ...
>
> which according to your book/site should make it work.
>
> Cheers
> Niels
>
>
> On Sat, 28 Mar 2020 20:04:49 -0700
> Bob Stayton <
bobs@sagehill.net> wrote:
>
>> Hi Niels,
>>
>> I have found that the Java catalog resolver and xsltproc catalog
>> resolver can have different behaviors. I can't remember the particulars
>> but it had to do with the catalog being consulted even when the path
>> exists as specified.
>>
>> In this case, the problem is using the name "docbook.xsl", because that
>> first resolves to your custom stylesheet, which imports chunk.xsl which
>> in turn imports docbook.xsl, which triggers the catalog lookup again
>> even though you don't intend it a second time.
>>
>> Try changing your catalog and Makefile to use mydocbook.xsl instead.
>>
>> Bob Stayton
>>
bobs@sagehill.net>>
>> On 3/28/2020 5:29 PM, Niels Müller Larsen wrote:
>>> Hi again Bob
>>>
>>> I changed the makefile to:
>>>
>>> sax:
>>> rm -rf site
>>> mkdir site
>>> cp css/* site
>>> cp js/* site
>>> xmllint --noent --xinclude \
>>> module.xml > /tmp/docbresolved.xml \
>>> 2>./errloglint
>>> java com.icl.saxon.StyleSheet \
>>> -x org.apache.xml.resolver.tools.ResolvingXMLReader \
>>> -y org.apache.xml.resolver.tools.ResolvingXMLReader \
>>> -r org.apache.xml.resolver.tools.CatalogResolver \
>>> -u \
>>> -o site/index.html \
>>> /tmp/docbresolved.xml \
>>> docbook.xsl \
>>> base.dir="site" \
>>> use.extensions=1 \
>>> 2>./errlogxslt
>>> tar czf site.tgz site/*
>>> echo "site.tgz ready for deployment"
>>>
>>> The catalog should then translate 'docbook.xsl' to
>>>
>>> <uri
>>> name="docbook.xsl"
>>> uri=".docbook/docbook.custom.xsl" />
>>>
>>> The output from verbosity 4 is:
>>>
>>> Parse catalog: file:/home/nml/.docbook/catalog.xml
>>> Loading catalog: file:/home/nml/.docbook/catalog.xml
>>> Default BASE: file:/home/nml/.docbook/catalog.xml
>>> xml:base: file:///home/nml/
>>> BASE STR: file:///home/nml/
>>> rewriteSystem:
http://www.oasis-open.org/docbook/xml/4.5/>>> .docbook/
>>> REWRITE_SYSTEM:
http://www.oasis-open.org/docbook/xml/4.5/>>> file:/home/nml/.docbook/
>>> rewriteURI:
http://docbook.sourceforge.net/release/xsl/current/>>> xsl-stylesheets-1.79.2/
>>> REWRITE_URI:
http://docbook.sourceforge.net/release/xsl/current/>>> file:/home/nml/xsl-stylesheets-1.79.2/
>>> rewriteURI: file:///basics/
>>> .docbook/
>>> REWRITE_URI: file:///basics/
>>> file:/home/nml/.docbook/
>>> system: uvmat_entities.ent
>>> .docbook/uvmat_entities.ent
>>> SYSTEM: uvmat_entities.ent
>>> file:/home/nml/.docbook/uvmat_entities.ent
>>> uri: docbook.xsl
>>> .docbook/docbook.custom.xsl
>>> URI: docbook.xsl
>>> file:/home/nml/.docbook/docbook.custom.xsl
>>> uri: docbook.fo.xsl
>>> .docbook/docbook.custom.fo.xsl
>>> URI: docbook.fo.xsl
>>> file:/home/nml/.docbook/docbook.custom.fo.xsl
>>> uri: docbook.slides.xsl
>>> .docbook/docbook.custom.slides.xsl
>>> URI: docbook.slides.xsl
>>> file:/home/nml/.docbook/docbook.custom.slides.xsl
>>> uri: file:///foo/biblio.xml
>>> .docbook/biblio.xml
>>> URI: file:///foo/biblio.xml
>>> file:/home/nml/.docbook/biblio.xml
>>> (reset) xml:base: file:/home/nml/.docbook/catalog.xml
>>> BASE STR: file:/home/nml/.docbook/catalog.xml
>>> resolveURI(/tmp/docbresolved.xml)
>>> resolveURI(/tmp/docbresolved.xml)
>>> Resolved URI: /tmp/docbresolved.xml
>>> file:/tmp/docbresolved.xml
>>> resolveURI(docbook.xsl)
>>> Resolved URI: docbook.xsl
>>> file:/home/nml/.docbook/docbook.custom.xsl
>>> resolveSystem(file:/home/nml/.docbook/docbook.custom.xsl)
>>> resolveSystem(file:/home/nml/docbook/uvmat_entities.ent)
>>> resolveSystem(file:/home/nml/docbook/xhtml-lat1.ent)
>>> resolveSystem(file:/home/nml/docbook/xhtml-symbol.ent)
>>> resolveSystem(file:/home/nml/docbook/xhtml-special.ent)
>>> resolveSystem(file:/home/nml/docbook/hsizes.ent)
>>> resolveURI(/usr/share/xml/docbook/xsl-stylesheets-1.79.2/xhtml5/chunk.xsl)
>>> Resolved URI: /usr/share/xml/docbook/xsl-stylesheets-1.79.2/xhtml5/chunk.xsl
>>> file:/usr/share/xml/docbook/xsl-stylesheets-1.79.2/xhtml5/chunk.xsl
>>> resolveSystem(file:/usr/share/xml/docbook/xsl-stylesheets-1.79.2/xhtml5/chunk.xsl)
>>> resolveURI(docbook.xsl)
>>> Resolved URI: docbook.xsl
>>> file:/home/nml/.docbook/docbook.custom.xsl
>>> resolveURI(/home/nml/docbook/docbook.common.custom.xsl)
>>> Resolved URI: /home/nml/docbook/docbook.common.custom.xsl
>>> file:/home/nml/docbook/docbook.common.custom.xsl
>>> resolveSystem(file:/home/nml/docbook/docbook.common.custom.xsl)
>>> resolveSystem(file:/home/nml/docbook/uvmat_entities.ent)
>>> resolveSystem(file:/home/nml/docbook/xhtml-lat1.ent)
>>> resolveSystem(file:/home/nml/docbook/xhtml-symbol.ent)
>>> resolveSystem(file:/home/nml/docbook/xhtml-special.ent)
>>> resolveSystem(file:/home/nml/docbook/hsizes.ent)
>>> make: *** [Makefile:23: sax] Error 2
>>>
>>> which as far as I can see is correct
>>>
>>> the error message is now:
>>>
>>> Error at xsl:import on line 15 of file:/usr/share/xml/docbook/xsl-stylesheets-1.79.2/xhtml5/chunk.xsl:
>>> A stylesheet cannot import itself
>>> Transformation failed: Failed to compile stylesheet. 1 error detected.
>>>
>>> This puzzles me because I use the same stylesheet when I run with xsltproc without problems.
>>>
>>> The installation has:
>>> nmlX240 TheModelChapter $ ls /usr/share/xml/docbook
>>> docbook-xsl-1.79.2 xml-dtd-4.2 xml-dtd-4.4 xsl-stylesheets-1.79.2
>>> xml-dtd-4.1.2 xml-dtd-4.3 xml-dtd-4.5 xsl-stylesheets-1.79.2-nons
>>>
>>>
>>> Cheers
>>> /Niels
>>>
>>> On Sat, 28 Mar 2020 14:37:22 -0700
>>> Bob Stayton <
bobs@sagehill.net> wrote:
>>>
>>>> I think what is happening is your XSL URL is directly calling the
>>>> chunk.xsl file, which import docbook.xsl, which is getting mapped by the
>>>> catalog file to use:
>>>>
>>>> <uri
>>>> name="docbook.xsl"
>>>> uri=".docbook/docbook.custom.xsl" />
>>>>
>>>> which then reimports the DocBook stylesheet file. Try setting
>>>> verbosity=4 in your CatalogManager.properties file and watch how the
>>>> catalog is being used.
>>>>
>>>> Bob Stayton
>>>>
bobs@sagehill.net>>>>
>>>> On 3/28/2020 11:40 AM, Niels Müller Larsen wrote:
>>>>> Thanks for speedy reply.
>>>>>
>>>>> My catalog looks as follows:
>>>>>
>>>>>
>>>>>
>>>>> >>>>> PUBLIC "-//OASIS/DTD Entity Resolution XML Catalog V1.0//EN"
>>>>> "http://www.oasis-open.org/committees/entity/release/1.0/catalog.dtd">
>>>>>
>>>>> <catalog xmlns="urn:oasis:names:tc:entity:xmlns:xml:catalog">
>>>>>
>>>>>
>>>>> <group xml:base="file:///home/nml/">
>>>>>
>>>>>
>>>>> <rewriteSystem
>>>>> systemIdStartString="http://www.oasis-open.org/docbook/xml/4.5/"
>>>>> rewritePrefix=".docbook/" />
>>>>>
>>>>> <rewriteURI
>>>>> uriStartString="http://docbook.sourceforge.net/release/xsl/current/"
>>>>> rewritePrefix='xsl-stylesheets-1.79.2/' />
>>>>> <rewriteURI
>>>>> uriStartString="file:///basics/"
>>>>> rewritePrefix=".docbook/" />
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>> <system
>>>>> systemId="uvmat_entities.ent"
>>>>> uri=".docbook/uvmat_entities.ent" />
>>>>>
>>>>> <uri
>>>>> name="docbook.xsl"
>>>>> uri=".docbook/docbook.custom.xsl" />
>>>>> <uri
>>>>> name="docbook.fo.xsl"
>>>>> uri=".docbook/docbook.custom.fo.xsl" />
>>>>> <uri
>>>>> name="docbook.slides.xsl"
>>>>> uri=".docbook/docbook.custom.slides.xsl" />
>>>>> <uri
>>>>> name="file:///foo/biblio.xml"
>>>>> uri=".docbook/biblio.xml"/>
>>>>> </group>
>>>>>
>>>>> </catalog>
>>>>>
>>>>>
>>>>> And my docbook.custom.xsl:
>>>>>
>>>>>
>>>>> >>>>>
>>>>> %uvmatent;
>>>>> ]>
>>>>> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
>>>>> xmlns="http://www.w3.org/1999/xhtml"
>>>>> version="1.0">
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>> <xsl:import href="/usr/share/xml/docbook/xsl-stylesheets-1.79.2/xhtml5/chunk.xsl"/>
>>>>>
>>>>>
>>>>> <xsl:import href="/home/nml/docbook/docbook.common.custom.xsl"/>
>>>>> </xsl:stylesheet>
>>>>>
>>>>> The docbook.common.custom.xsl just holds a series of parameters
>>>>>
>>>>> /Niels
>>>>>
>>>>>
>>>>>
>>>>> On Sat, 28 Mar 2020 11:29:22 -0700
>>>>> Bob Stayton <
bobs@sagehill.net> wrote:
>>>>>
>>>>>> I think the first error message is the most informative. This file:
>>>>>>
>>>>>> /home/nml/.docbook/docbook.custom.xsl
>>>>>>
>>>>>> is not part of the DocBook XSL distribution, and it does not seem to be
>>>>>> mentioned in your Makefile. Have you examined that file to see what it is?
>>>>>>
>>>>>> I suspect the catalog resolver is mapping the stylesheet URL to that file.
>>>>>>
>>>>>> Bob Stayton
>>>>>>
bobs@sagehill.net>>>>>>
>>>>>> On 3/28/2020 11:14 AM, Niels Müller Larsen wrote:
>>>>>>> When producing html output from my docbook I use the following fragment of a Makefile:
>>>>>>>
>>>>>>> html:
>>>>>>> rm -rf site
>>>>>>> mkdir site
>>>>>>> cp css/* site
>>>>>>> cp js/* site
>>>>>>> xmllint --noent --xinclude \
>>>>>>> module.xml > /tmp/docbresolved.xml \
>>>>>>> 2>./errloglint
>>>>>>> xsltproc \
>>>>>>> --output site/ \
>>>>>>> docbook.xsl \
>>>>>>> /tmp/docbresolved.xml \
>>>>>>> 2>./errlogxslt && \
>>>>>>> tar czf site.tgz site/*
>>>>>>> echo "site.tgz ready for deployment"
>>>>>>>
>>>>>>> This works, and it has worked for a long time. I write about coding, so I have some need to change to using saxon for added functionality with respect to linenumbering and code highlighting. The first step would be a 1:1 change, and I have tried:
>>>>>>>
>>>>>>> html:
>>>>>>> rm -rf site
>>>>>>> mkdir site
>>>>>>> cp css/* site
>>>>>>> cp js/* site
>>>>>>> xmllint --noent --xinclude \
>>>>>>> module.xml > /tmp/docbresolved.xml \
>>>>>>> 2>./errloglint
>>>>>>> java com.icl.saxon.StyleSheet \
>>>>>>> -x org.apache.xml.resolver.tools.ResolvingXMLReader \
>>>>>>> -y org.apache.xml.resolver.tools.ResolvingXMLReader \
>>>>>>> -r org.apache.xml.resolver.tools.CatalogResolver \
>>>>>>> -u \
>>>>>>> -o site/index.xhtml \
>>>>>>> /tmp/docbresolved.xml \
>>>>>>> /usr/share/xml/docbook/xsl-stylesheets-1.79.2/xhtml5/chunk.xsl \
>>>>>>> base.dir="site" \
>>>>>>> use.extensions=1 \
>>>>>>> 2>./errlogxslt
>>>>>>> tar czf site.tgz site/*
>>>>>>> echo "site.tgz ready for deployment"
>>>>>>>
>>>>>>> This gives me errors:
>>>>>>>
>>>>>>> Error at xsl:import on line 16 of file:/home/nml/.docbook/docbook.custom.xsl:
>>>>>>> A stylesheet cannot import itself
>>>>>>> Error at xsl:when on line 25 of file:/usr/share/xml/docbook/xsl-stylesheets-1.79.2/xhtml/chunk-common.xsl:
>>>>>>> Variable exsl.node.set.available has not been declared
>>>>>>> Error at xsl:if on line 26 of file:/usr/share/xml/docbook/xsl-stylesheets-1.79.2/xhtml/chunk-common.xsl:
>>>>>>> Variable chunk.quietly has not been declared
>>>>>>> Error at xsl:apply-templates on line 29 of file:/usr/share/xml/docbook/xsl-stylesheets-1.79.2/xhtml/chunk-common.xsl:
>>>>>>> Variable with.namespace has not been declared
>>>>>>> Error at xsl:when on line 31 of file:/usr/share/xml/docbook/xsl-stylesheets-1.79.2/xhtml/chunk-common.xsl:
>>>>>>> Variable exsl.node.set.available has not been declared
>>>>>>> Error at xsl:if on line 32 of file:/usr/share/xml/docbook/xsl-stylesheets-1.79.2/xhtml/chunk-common.
>>>>>>> ......
>>>>>>>
>>>>>>> I have tried many variations and several stylesheets, this just changes the error messages I get.
>>>>>>>
>>>>>>> Does anyone have an example of a workflow that works? Chunked output is a must.
>>>>>>>
>>>>>>>
>