I cannot tell if any of your stylesheet modules is importing
xhtml-1_1/docbook.xsl. Does shlomif-essays-5-xhtml-common.xsl?
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 .
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]