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] | [Elist Home]


Subject: DOCBOOK-APPS: inconsistent XSL results (saxon/XT)


For XSL processing of docbook XML, we're trying to switch to saxon 
from the no-longer-supported XT.  For the most part, we've been happy 
with the results, as saxon is much faster.  However, there is a 
significant inconsistency in the output and I'm wondering whether:

(a) XT is right, and saxon needs a bugfix, or

(b) saxon is right, and the docbook stylesheets need to be tweaked.

I've tried to provide as much relevant detail as possible below; my 
apologies if it's too verbose.


Here is a sample snippet from a DocBook XML file:

<screen>
<prompt>%</prompt> <userinput>cd ${HOME}/projects/livedemo/</userinput>
<prompt>%</prompt> <userinput>cvs edit ilib</userinput>
<prompt>%</prompt> <userinput>cp /develop/products/releases/clickhr/<replaceable>version</replaceable>/ilib/*.jar ilib</userinput>
<prompt>%</prompt> <userinput>cp /develop/products/releases/clickhr/<replaceable>version</replaceable>/ilib/*.zip ilib</userinput>
</screen>

Here is the output from Saxon (seems like lots of extra whitespace, 
which matters because it's inside a <pre> tag):

                           <pre class="screen">
<tt>%</tt> <b><tt>cd ${HOME}/projects/livedemo/</tt></b>
                              <tt>%</tt> <b><tt>cvs edit ilib</tt></b>
                              <tt>%</tt> <b><tt>cp /develop/products/releases/clickhr/<i><tt>version</tt></i>/ilib/*.jar ilib
                                 </tt>
                              </b>
                              <tt>%</tt> <b><tt>cp /develop/products/releases/clickhr/<i><tt>version</tt></i>/ilib/*.zip ilib
                                 </tt>
                              </b>
                              
                           </pre>

Here is the output from XT (more like what I wanted):

<pre class="screen">
<tt>%</tt> <b><tt>cd ${HOME}/projects/livedemo/</tt></b>
<tt>%</tt> <b><tt>cvs edit ilib</tt></b>
<tt>%</tt> <b><tt>cp /develop/products/releases/clickhr/<i><tt>version</tt></i>/ilib/*.jar ilib</tt></b>
<tt>%</tt> <b><tt>cp /develop/products/releases/clickhr/<i><tt>version</tt></i>/ilib/*.zip ilib</tt></b>
</pre>

Here are (I believe) the relevant templates from the docbook XSL stylesheets:

From "verbatim.xsl":

<xsl:template match="programlisting|screen|literallayout[@class='monospaced']">
  <pre class="{name(.)}"><xsl:apply-templates/></pre>
</xsl:template>

From "inline.xsl":

<xsl:template name="inline.monoseq">
  <xsl:param name="content">
    <xsl:apply-templates/>
  </xsl:param>
  <tt><xsl:copy-of select="$content"/></tt>
</xsl:template>

<xsl:template name="inline.boldmonoseq">
  <xsl:param name="content">
    <xsl:apply-templates/>
  </xsl:param>
  <b><tt><xsl:copy-of select="$content"/></tt></b>
</xsl:template>

<xsl:template name="inline.italicmonoseq">
  <xsl:param name="content">
    <xsl:apply-templates/>
  </xsl:param>
  <i><tt><xsl:copy-of select="$content"/></tt></i>
</xsl:template>

<xsl:template match="prompt">
  <xsl:call-template name="inline.monoseq"/>
</xsl:template>

<xsl:template match="userinput">
  <xsl:call-template name="inline.boldmonoseq"/>
</xsl:template>

<xsl:template match="replaceable" priority="1">
  <xsl:call-template name="inline.italicmonoseq"/>
</xsl:template>

Any idea what the reason is for this inconsistency, or whose fault it is?

P.S.: As a detail, it might be wise if the templates that turn on monospaced output set a parameter so that redundant <tt> tags don't get put in if, for instance, a replaceable is nested inside a screen or a userinput (or both).

-- 
+-------------------------------------------------------------------+
| Dave Makower                                 <davemak@iclick.com> |
| Director of Portal Architecture & Development                     |
+--------------------------------+----------------------------------+
|   iClick, Inc.                 |   (914) 872-8030                 |
|   120 Bloomingdale Road        |   (914) 872-8100   fax           |
|   3rd Floor                    |   (914) 872-8000   main          |
|   White Plains, NY  10605      |   http://www.iclick.com/         |
+--------------------------------+----------------------------------+


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


Powered by eList eXpress LLC