Bob Stayton
Sagehill Enterprises
[email protected]
--------------------------------------------------
From: "Shlomi Fish" <[email protected]>
Sent: Wednesday, January 16, 2013 12:22 AM
To: "Bob Stayton" <[email protected]>
Cc: "DocBook Apps" <[email protected]>
Subject: Re: [docbook-apps] Cannot process a DocBook 5/XML document using
a
custom stylesheet
> Hi Bob,
>
> On Tue, 15 Jan 2013 15:17:42 -0800
> "Bob Stayton" <[email protected]> wrote:
>
>> The problem here is that in chunking, even with onechunk, every
>> chunk-level
>> element is processed twice, once to generate its chunk file and once
>> to
>> generate its content. The two steps are separated by import
>> precedence
>> only, so maintaining the two levels of import precedence is necessary
>> when
>> dealing with chunked elements. That is done by having two
>> customization
>> files, as described here:
>>
>> http://www.sagehill.net/docbookxsl/ChunkingCustomization.html
>>
>> Your custom template for article content would go into the first file,
>> which
>> is named 'mydocbook.xsl' in the example.
>
> Thanks, this is working better. Now I have a different problem. With:
>
> [Q]
> xsltproc --stringparam root.filename
> lib/docbook/5/essays/bad-elements/all-in-one.xhtml.temp.xml
> --path /usr/share/sgml/docbook/xsl-ns-stylesheets/xhtml-1_1
> lib/sgml/shlomif-docbook/xsl-5-stylesheets/mychunk.xsl
> lib/docbook/5/xml/bad-elements.xml
> [/Q]
>
> I get:
>
> [Q]
> runtime error:
> file
> /usr/share/sgml/docbook/xsl-ns-stylesheets/xhtml-1_1/chunk-code.xsl
> line
> 432 element call-template The called template 'get.doc.title' was not
> found.
> runtime error:
> file
> /usr/share/sgml/docbook/xsl-ns-stylesheets/xhtml-1_1/chunk-code.xsl
> line
> 470 element choose
> Variable 'rootid' has not been declared.
> [/Q]
>
> mychunk.xsl is:
>
> [Q]
> <?xml version="1.0" encoding="ASCII"?>
> <!--This file was created automatically by html2xhtml-->
> <!--from the HTML stylesheets.-->
> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
> xmlns:d="http://docbook.org/ns/docbook"
> xmlns:exsl="http://exslt.org/common"
> xmlns="http://www.w3.org/1999/xhtml" version="1.0"
> exclude-result-prefixes="exsl d">
>
> <!--
> ********************************************************************
> $Id: chunk.xsl 6910 2007-06-28 23:23:30Z xmldoc $
>
> ********************************************************************
>
> This file is part of the XSL DocBook Stylesheet distribution.
> See ../README or http://docbook.sf.net/release/xsl/current/ for
> copyright and other information.
>
>
> ******************************************************************** -->
>
> <!--
> ==================================================================== -->
>
> <!-- First import the non-chunking templates that format elements
> within each chunk file. In a customization, you should
> create a separate non-chunking customization layer such
> as mydocbook.xsl that imports the original docbook.xsl and
> customizes any presentation templates. Then your chunking
> customization should import mydocbook.xsl instead of
> docbook.xsl. -->
> <xsl:import href="shlomif-db5-xhtml-mydocbook.xsl"/>
>
> <!-- chunk-common.xsl contains all the named templates for chunking.
> In a customization file, you import chunk-common.xsl, then
> add any customized chunking templates of the same name.
> They will have import precedence over the original
> chunking templates in chunk-common.xsl. -->
> <xsl:import href="chunk-common.xsl"/>
>
> <!-- The manifest.xsl module is no longer imported because its
> templates were moved into chunk-common and chunk-code -->
>
> <!-- chunk-code.xsl contains all the chunking templates that use
> a match attribute. In a customization it should be referenced
> using <xsl:include> instead of <xsl:import>, and then add
> any customized chunking templates with match attributes. But be
> sure
> to add a priority="1" to such customized templates to resolve
> its conflict with the original, since they have the
> same import precedence.
>
> Using xsl:include prevents adding another layer
> of import precedence, which would cause any
> customizations that use xsl:apply-imports to wrongly
> apply the chunking version instead of the original
> non-chunking version to format an element. -->
> <xsl:include href="chunk-code.xsl"/>
>
> </xsl:stylesheet>
>
> [/Q]
>
> And shlomif-db5-xhtml-mydocbook.xsl is:
>
> [Q]
> <?xml version='1.0' encoding='UTF-8'?>
> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
> version="1.0"
> xmlns:db="http://docbook.org/ns/docbook"
> xmlns:d="http://docbook.org/ns/docbook"
> xmlns:vrd="http://www.shlomifish.org/open-source/projects/XML-Grammar/Vered/"
> xmlns="http://docbook.org/ns/docbook"
> xmlns:xlink="http://www.w3.org/1999/xlink"
> xmlns:xhtml="http://www.w3.org/1999/xhtml">
>
> <xsl:import href="shlomif-essays-5-xhtml-common.xsl" />
>
>
> <!-- Ok, using the onechunk parameter makes this all work again. -->
> <!-- It does have the disadvantage that it only works for documents
> that
> have --> <!-- a root element that is considered a chunk by the
> chunk.xsl
> stylesheet. --> <!-- Ideally, onechunk would let anything be a chunk.
> But
> not
> today. -->
>
> <xsl:param name="onechunk" select="1"/>
> <xsl:param name="suppress.navigation">1</xsl:param>
>
> <xsl:template name="href.target.uri">
> <xsl:param name="object" select="."/>
> <xsl:text>#</xsl:text>
> <xsl:call-template name="object.id">
> <xsl:with-param name="object" select="$object"/>
> </xsl:call-template>
> </xsl:template>
>
> <!-- Avoid Generating a Table-of-Contents-->
> <xsl:param name="generate.toc">
> article toc
> </xsl:param>
>
> <!-- Disable the title="" attribute in sections. -->
> <xsl:template name="generate.html.title">
> </xsl:template>
>
> <!--
> <xsl:template match="d:article" priority="1">
> <xsl:call-template name="id.warning"/>
>
> <xsl:element name="{$div.element}"
> namespace="http://www.w3.org/1999/xhtml">
> <xsl:call-template name="common.html.attributes">
> <xsl:with-param name="inherit" select="1"/>
> </xsl:call-template>
> <xsl:call-template name="id.attribute">
> <xsl:with-param name="conditional" select="0"/>
> </xsl:call-template>
>
> <xsl:call-template name="article.titlepage"/>
>
> <xsl:variable name="toc.params">
> <xsl:call-template name="find.path.params">
> <xsl:with-param name="table"
> select="normalize-space($generate.toc)"/> </xsl:call-template>
> </xsl:variable>
>
> <xsl:call-template name="make.lots">
> <xsl:with-param name="toc.params" select="$toc.params"/>
> <xsl:with-param name="toc">
> <xsl:call-template name="component.toc">
> <xsl:with-param name="toc.title.p"
> select="contains($toc.params, 'title')"/> </xsl:call-template>
> </xsl:with-param>
> </xsl:call-template>
>
> <xsl:apply-templates/>
> <xsl:call-template name="process.footnotes"/>
> </xsl:element>
> </xsl:template>
> -->
>
> </xsl:stylesheet>
>
>
> [/Q]
>
> Previously I had a problem that while everything was in one chunk, the
> page was
> empty.
>
> Regards,
>
> Shlomi Fish
>
> --
> -----------------------------------------------------------------
> Shlomi Fish http://www.shlomifish.org/
> My Public Domain Photos - http://www.flickr.com/photos/shlomif/
>
> Ran Eilam To Shlomi Fish: so what are you working on? Working on a new
> wiki
> about unit testing fortunes in freecell?
>
> Please reply to list if it's a mailing list post -
> http://shlom.in/reply .
>