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


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

--------------------------------------------------
From: "Shlomi Fish" <shlomif@shlomifish.org>
Sent: Wednesday, January 16, 2013 12:22 AM
To: "Bob Stayton" <bobs@sagehill.net>
Cc: "DocBook Apps" <docbook-apps@lists.oasis-open.org>
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]