OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.

 


Help: OASIS Mailing Lists Help | MarkMail Help

docbook-apps message

[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]


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" <bobs@sagehill.net> 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 .


[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]