Re: [docbook-apps] Epub and Saxon

From
Marcel Tromp <>
Date
2013-04-03T17:22:18+00:00
ID
Thread
Re: [docbook-apps] Epub and Saxon
Thanks! Errors eliminated with this customization.

 

MT
--

 

On Wed, Apr 3, 2013 at 10:04 AM, Bob Stayton <> wrote:

It is a bug in the epub/docbook.xsl stylesheet file.  
This template:

 

<xsl:template match="d:author|d:corpauthor" 
mode="opf.metadata">

 

creates the dc:creator element and tries to add an attribute 
named "opf:file-as" by calling the template named 
'person.name.last-first'.  However, that template generates an HTML 
<span> element, and you cannot put an element into an attribute 
value.  The solution is to take the text value of the that template 
call:

 

  <xsl:template match="d:author|d:corpauthor" 
mode="opf.metadata">
    <xsl:variable 
name="n">
      <xsl:call-template 
name="person.name">
        
<xsl:with-param name="node" select="."/>
      
</xsl:call-template>
    
</xsl:variable>
    <xsl:element 
name="dc:creator">
      <xsl:attribute 
name="opf:file-as">
        
<xsl:variable 
name="attvalue">
          
<xsl:call-template 
name="person.name.last-first">
            
<xsl:with-param name="node" 
select="."/>
          
</xsl:call-template>
        
</xsl:variable>
        
<xsl:value-of select="$attvalue"/>
      
</xsl:attribute>
      <xsl:value-of 
select="normalize-space(string($n))"/>
    
</xsl:element>
  </xsl:template>

 

I'll fix this in the source, and you can use this in your 
customization layer.

 

Bob Stayton
Sagehill Enterprises


From: Marcel Tromp 

Sent: Tuesday, April 02, 2013 1:40 PM

To: Bob 
Stayton 

Cc: docbook-apps 

Subject: Re: [docbook-apps] Epub and Saxon

It is the author element in info that triggers the problem:

      
<author>
        
<personname>
          
<firstname>Marcel</firstname>
          
<surname>Tromp</surname>
        
</personname>
      
</author>

If I use an empty authorgroup, no errors are generated. The error I showed 
before is generated twice: once for firstname, once for lastname.

 

MT
--

On Tue, Apr 2, 2013 at 8:56 AM, Bob Stayton <> wrote:

  

  
Hi Marcel,

  
Can you determine exactly which element in info is 
  triggering that error?  Perhaps comment out all but one element at a 
  time?

  
 

  
Bob Stayton
Sagehill Enterprises


  

  

  

  
From: Marcel Tromp 

  
Sent: Monday, April 01, 2013 1:11 PM

  
To: docbook-apps 
  

  
Subject: [docbook-apps] Epub and Saxon

  

  

  

  

  
Hi,

  
 

  
I am setting up flow to generate epub using 1.78.1, but will use Saxon 
  instead of xsltproc.

  
 

  
With xsltproc, document converts without any warnings/errors, but Saxon 
  throws recoverable errors:

  
 

  
Recoverable error
at xsl:attribute 
  on line 211 of 
  file://work/mtools/docbook-xsl-ns/dev/xhtml-1_1/inline.xsl:
  
  Cannot write an attribute node when no element start tag is open
Writing 
  OEBPS/content.opf

  
This seems to be caused by adding the author data to content.opf in line 
  260 of epub/docbook.xsl:

  
 

  
     
  <xsl:apply-templates select="/*/*[contains(name(.), 
  'info')]/*"
                                 
  mode="opf.metadata"/>

  
Although the generated file seems ok, the error output will be 
  problematic/confusing for users.

  
 

  
Is there a way to suppress these errors, or even better, prevent them 
  from happing?

  
 

  
MT
--