Procházet zdrojové kódy

Updated docbook-xsl-snapshot to r6933

git-svn-id: http://svn.linuxfromscratch.org/LFS/branches/new-xsl@8187 4aa44e1e-78dd-0310-a6d2-fbcd4c07a689
Manuel Canales Esparcia před 18 roky
rodič
revize
8fa14925e7

+ 1 - 1
docbook-xsl-snapshot/VERSION

@@ -18,7 +18,7 @@
 <fm:project>
   <fm:Project>DocBook</fm:Project>
   <fm:Branch>XSL Stylesheets</fm:Branch>
-  <fm:Version>snapshot_6925</fm:Version>
+  <fm:Version>snapshot_6933</fm:Version>
 <!--
   <fm:License>MIT/X Consortium License</fm:License>
 -->

+ 4 - 16
docbook-xsl-snapshot/fo/block.xsl

@@ -244,11 +244,7 @@
 <xsl:template match="sidebar" name="sidebar">
   <!-- Also does margin notes -->
   <xsl:variable name="pi-type">
-    <xsl:call-template name="dbfo-attribute">
-      <xsl:with-param name="pis"
-                      select="processing-instruction('dbfo')"/>
-      <xsl:with-param name="attribute" select="'float-type'"/>
-    </xsl:call-template>
+    <xsl:call-template name="pi.dbfo_float-type"/>
   </xsl:variable>
 
   <xsl:variable name="id">
@@ -269,13 +265,9 @@
                                          not(self::sidebarinfo)]"/>
         </fo:block>
       </xsl:variable>
-    
+
       <xsl:variable name="pi-width">
-        <xsl:call-template name="dbfo-attribute">
-          <xsl:with-param name="pis"
-                          select="processing-instruction('dbfo')"/>
-          <xsl:with-param name="attribute" select="'sidebar-width'"/>
-        </xsl:call-template>
+        <xsl:call-template name="pi.dbfo_sidebar-width"/>
       </xsl:variable>
 
       <xsl:variable name="position">
@@ -348,11 +340,7 @@
   </xsl:param>
 
   <xsl:variable name="pi-width">
-    <xsl:call-template name="dbfo-attribute">
-      <xsl:with-param name="pis"
-                      select="processing-instruction('dbfo')"/>
-      <xsl:with-param name="attribute" select="'sidebar-width'"/>
-    </xsl:call-template>
+    <xsl:call-template name="pi.dbfo_sidebar-width"/>
   </xsl:variable>
 
   <xsl:variable name="position" select="$margin.note.float.type"/>

+ 4 - 20
docbook-xsl-snapshot/fo/formal.xsl

@@ -41,11 +41,7 @@
   </xsl:variable>
 
   <xsl:variable name="keep.together">
-    <xsl:call-template name="dbfo-attribute">
-      <xsl:with-param name="pis"
-                      select="processing-instruction('dbfo')"/>
-      <xsl:with-param name="attribute" select="'keep-together'"/>
-    </xsl:call-template>
+    <xsl:call-template name="pi.dbfo_keep-together"/>
   </xsl:variable>
 
   <xsl:choose>
@@ -131,11 +127,7 @@
   </xsl:variable>
 
   <xsl:variable name="keep.together">
-    <xsl:call-template name="dbfo-attribute">
-      <xsl:with-param name="pis"
-                      select="processing-instruction('dbfo')"/>
-      <xsl:with-param name="attribute" select="'keep-together'"/>
-    </xsl:call-template>
+    <xsl:call-template name="pi.dbfo_keep-together"/>
   </xsl:variable>
 
   <xsl:choose>
@@ -284,11 +276,7 @@
 
   <!-- Example doesn't have a pgwide attribute, so may use a PI -->
   <xsl:variable name="pgwide.pi">
-    <xsl:call-template name="dbfo-attribute">
-      <xsl:with-param name="pis"
-                      select="processing-instruction('dbfo')"/>
-      <xsl:with-param name="attribute" select="'pgwide'"/>
-    </xsl:call-template>
+    <xsl:call-template name="pi.dbfo_pgwide"/>
   </xsl:variable>
 
   <xsl:variable name="pgwide">
@@ -466,11 +454,7 @@
 
   <!-- Equation doesn't have a pgwide attribute, so may use a PI -->
   <xsl:variable name="pgwide">
-    <xsl:call-template name="dbfo-attribute">
-      <xsl:with-param name="pis"
-                      select="processing-instruction('dbfo')"/>
-      <xsl:with-param name="attribute" select="'pgwide'"/>
-    </xsl:call-template>
+    <xsl:call-template name="pi.dbfo_pgwide"/>
   </xsl:variable>
 
   <xsl:variable name="equation">

+ 6 - 30
docbook-xsl-snapshot/fo/glossary.xsl

@@ -44,19 +44,11 @@
   </xsl:variable>
 
   <xsl:variable name="presentation">
-    <xsl:call-template name="dbfo-attribute">
-      <xsl:with-param name="pis"
-                      select="processing-instruction('dbfo')"/>
-      <xsl:with-param name="attribute" select="'glossary-presentation'"/>
-    </xsl:call-template>
+    <xsl:call-template name="pi.dbfo_glossary-presentation"/>
   </xsl:variable>
 
   <xsl:variable name="term-width">
-    <xsl:call-template name="dbfo-attribute">
-      <xsl:with-param name="pis"
-                      select="processing-instruction('dbfo')"/>
-      <xsl:with-param name="attribute" select="'glossterm-width'"/>
-    </xsl:call-template>
+    <xsl:call-template name="pi.dbfo_glossterm-width"/>
   </xsl:variable>
 
   <xsl:variable name="width">
@@ -237,19 +229,11 @@
   &setup-language-variable;
 
   <xsl:variable name="presentation">
-    <xsl:call-template name="dbfo-attribute">
-      <xsl:with-param name="pis"
-                      select="processing-instruction('dbfo')"/>
-      <xsl:with-param name="attribute" select="'glosslist-presentation'"/>
-    </xsl:call-template>
+    <xsl:call-template name="pi.dbfo_glosslist-presentation"/>
   </xsl:variable>
 
   <xsl:variable name="term-width">
-    <xsl:call-template name="dbfo-attribute">
-      <xsl:with-param name="pis"
-                      select="processing-instruction('dbfo')"/>
-      <xsl:with-param name="attribute" select="'glossterm-width'"/>
-    </xsl:call-template>
+    <xsl:call-template name="pi.dbfo_glossterm-width"/>
   </xsl:variable>
 
   <xsl:variable name="width">
@@ -374,19 +358,11 @@
   </xsl:variable>
 
   <xsl:variable name="presentation">
-    <xsl:call-template name="dbfo-attribute">
-      <xsl:with-param name="pis"
-                      select="processing-instruction('dbfo')"/>
-      <xsl:with-param name="attribute" select="'glossary-presentation'"/>
-    </xsl:call-template>
+    <xsl:call-template name="pi.dbfo_glossary-presentation"/>
   </xsl:variable>
 
   <xsl:variable name="term-width">
-    <xsl:call-template name="dbfo-attribute">
-      <xsl:with-param name="pis"
-                      select="processing-instruction('dbfo')"/>
-      <xsl:with-param name="attribute" select="'glossterm-width'"/>
-    </xsl:call-template>
+    <xsl:call-template name="pi.dbfo_glossterm-width"/>
   </xsl:variable>
 
   <xsl:variable name="width">

+ 2 - 4
docbook-xsl-snapshot/fo/graphics.xsl

@@ -192,10 +192,8 @@
   </xsl:variable>
 
   <xsl:variable name="bgcolor">
-    <xsl:call-template name="dbfo-attribute">
-      <xsl:with-param name="pis"
-                      select="../processing-instruction('dbfo')"/>
-      <xsl:with-param name="attribute" select="'background-color'"/>
+    <xsl:call-template name="pi.dbfo_background-color">
+      <xsl:with-param name="node" select=".."/>
     </xsl:call-template>
   </xsl:variable>
 

+ 2 - 9
docbook-xsl-snapshot/fo/htmltbl.xsl

@@ -157,10 +157,7 @@
 
 <xsl:template match="td" mode="htmlTable">
   <xsl:variable name="bgcolor">
-    <xsl:call-template name="dbfo-attribute">
-      <xsl:with-param name="pis" select="processing-instruction('dbfo')"/>
-      <xsl:with-param name="attribute" select="'bgcolor'"/>
-    </xsl:call-template>
+    <xsl:call-template name="pi.dbfo_bgcolor"/>
   </xsl:variable>
   <fo:table-cell xsl:use-attribute-sets="table.cell.padding">
     <xsl:call-template name="table.cell.properties">
@@ -184,12 +181,8 @@
 
 <xsl:template match="th" mode="htmlTable">
   <xsl:variable name="bgcolor">
-    <xsl:call-template name="dbfo-attribute">
-      <xsl:with-param name="pis" select="processing-instruction('dbfo')"/>
-      <xsl:with-param name="attribute" select="'bgcolor'"/>
-    </xsl:call-template>
+    <xsl:call-template name="pi.dbfo_bgcolor"/>
   </xsl:variable>
-
   <fo:table-cell xsl:use-attribute-sets="th.style table.cell.padding">
     <xsl:call-template name="table.cell.properties">
       <xsl:with-param name="bgcolor.pi" select="$bgcolor"/>

+ 8 - 32
docbook-xsl-snapshot/fo/lists.xsl

@@ -21,11 +21,7 @@
   </xsl:variable>
 
   <xsl:variable name="pi-label-width">
-    <xsl:call-template name="dbfo-attribute">
-      <xsl:with-param name="pis"
-                      select="processing-instruction('dbfo')"/>
-      <xsl:with-param name="attribute" select="'label-width'"/>
-    </xsl:call-template>
+    <xsl:call-template name="pi.dbfo_label-width"/>
   </xsl:variable>
 
   <xsl:variable name="label-width">
@@ -188,11 +184,7 @@
   </xsl:variable>
 
   <xsl:variable name="pi-label-width">
-    <xsl:call-template name="dbfo-attribute">
-      <xsl:with-param name="pis"
-                      select="processing-instruction('dbfo')"/>
-      <xsl:with-param name="attribute" select="'label-width'"/>
-    </xsl:call-template>
+    <xsl:call-template name="pi.dbfo_label-width"/>
   </xsl:variable>
 
   <xsl:variable name="label-width">
@@ -335,11 +327,7 @@
 
 <xsl:template match="variablelist">
   <xsl:variable name="presentation">
-    <xsl:call-template name="dbfo-attribute">
-      <xsl:with-param name="pis"
-                      select="processing-instruction('dbfo')"/>
-      <xsl:with-param name="attribute" select="'list-presentation'"/>
-    </xsl:call-template>
+    <xsl:call-template name="pi.dbfo_list-presentation"/>
   </xsl:variable>
 
   <xsl:choose>
@@ -364,11 +352,7 @@
   </xsl:variable>
 
   <xsl:variable name="term-width">
-    <xsl:call-template name="dbfo-attribute">
-      <xsl:with-param name="pis"
-                      select="processing-instruction('dbfo')"/>
-      <xsl:with-param name="attribute" select="'term-width'"/>
-    </xsl:call-template>
+    <xsl:call-template name="pi.dbfo_term-width"/>
   </xsl:variable>
 
   <xsl:variable name="termlength">
@@ -713,10 +697,10 @@
   <fo:inline><xsl:variable name="localized-choice-separator">
     <xsl:choose>
       <xsl:when test="processing-instruction('dbchoice')">
-	<xsl:call-template name="select.choice.separator"/>
+        <xsl:call-template name="select.choice.separator"/>
       </xsl:when>
       <xsl:otherwise>
-	<!-- empty -->
+        <!-- empty -->
       </xsl:otherwise>
     </xsl:choose>
   </xsl:variable>
@@ -741,11 +725,7 @@
 <xsl:template match="simplelist[@type='horiz']">
 
   <xsl:variable name="explicit.table.width">
-    <xsl:call-template name="dbfo-attribute">
-      <xsl:with-param name="pis"
-                      select="processing-instruction('dbfo')"/>
-      <xsl:with-param name="attribute" select="'list-width'"/>
-    </xsl:call-template>
+    <xsl:call-template name="pi.dbfo_list-width"/>
   </xsl:variable>
 
   <xsl:variable name="table.width">
@@ -1054,11 +1034,7 @@
 
 <xsl:template match="segmentedlist">
   <xsl:variable name="presentation">
-    <xsl:call-template name="pi-attribute">
-      <xsl:with-param name="pis"
-                      select="processing-instruction('dbfo')"/>
-      <xsl:with-param name="attribute" select="'list-presentation'"/>
-    </xsl:call-template>
+    <xsl:call-template name="pi.dbfo_list-presentation"/>
   </xsl:variable>
 
   <xsl:variable name="id">

+ 682 - 121
docbook-xsl-snapshot/fo/pi.xsl

@@ -1,6 +1,8 @@
 <?xml version='1.0'?>
 <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                xmlns:doc="http://nwalsh.com/xsl/documentation/1.0"
                 xmlns:fo="http://www.w3.org/1999/XSL/Format"
+                exclude-result-prefixes="doc"
                 version='1.0'>
 
 <!-- ********************************************************************
@@ -13,161 +15,700 @@
 
      ******************************************************************** -->
 
-<xsl:template match="processing-instruction()">
-</xsl:template>
+<doc:reference xmlns="">
+<referenceinfo>
+<releaseinfo role="meta">
+$Id$
+</releaseinfo>
+<authorgroup>
+  <author>
+    <orgname>The DocBook Project Development Team</orgname>
+  </author>
+</authorgroup>
+<copyright>
+  <year>2007</year>
+  <holder>The DocBook Project</holder>
+</copyright>
+</referenceinfo>
+<title>FO Processing Instruction Reference</title>
+
+<partintro id="partintro">
+<title>Introduction</title>
+
+<para>This is generated reference documentation for all
+  user-configurable processing instructions (PIs) in the DocBook
+  XSL stylesheets for FO output.
+  <note>
+    <para>You add these PIs at particular points in a document to
+      cause specific “exceptions” to formatting/output behavior. To
+      make global changes in formatting/output behavior across an
+      entire document, it’s better to do it by setting an
+      appropriate stylesheet parameter (if there is one).</para>
+  </note>
+</para>
+</partintro>
+</doc:reference>
 
 <!-- ==================================================================== -->
 
-<xsl:template name="dbfo-attribute">
-  <xsl:param name="pis" select="processing-instruction('dbfo')"/>
-  <xsl:param name="attribute">filename</xsl:param>
+<doc:pi name="dbfo_background-color" xmlns="">
+<refpurpose>Sets background color for an image</refpurpose>
+<refdescription>
+  <para>Use the <tag>dbfo background-color</tag> PI before or
+    after an image (<tag>graphic</tag>, <tag>inlinegraphic</tag>,
+    <tag>imagedata</tag>, or <tag>videodata</tag> element) as a
+    sibling to the element, to set a background color for the
+    image.</para>
+</refdescription>
+  <refsynopsisdiv>
+    <synopsis><tag class="xmlpi">dbfo background-color="<replaceable>color</replaceable>"</tag></synopsis>
+  </refsynopsisdiv>
+<refparameter>
+  <variablelist>
+    <varlistentry><term>background-color="<replaceable>color</replaceable>"</term>
+      <listitem>
+        <para>FIXME: A color value? [In hex, as a name, or what?]</para>
+      </listitem>
+    </varlistentry>
+  </variablelist>
+</refparameter>
+</doc:pi>
+<xsl:template name="pi.dbfo_background-color">
+  <xsl:param name="node" select="."/>
+  <xsl:call-template name="dbfo-attribute">
+    <xsl:with-param name="pis" select="$node/processing-instruction('dbfo')"/>
+    <xsl:with-param name="attribute" select="'background-color'"/>
+  </xsl:call-template>
+</xsl:template>
 
-  <xsl:call-template name="pi-attribute">
-    <xsl:with-param name="pis" select="$pis"/>
-    <xsl:with-param name="attribute" select="$attribute"/>
+<doc:pi name="dbfo_bgcolor" xmlns="">
+<refpurpose>Sets background color on an table row or table cell</refpurpose>
+<refdescription>
+  <para>Use the <tag>dbfo bgcolor</tag> PI as child of a table row
+    or cell to set a background color for that table row or cell.</para>
+</refdescription>
+  <refsynopsisdiv>
+    <synopsis><tag class="xmlpi">dbfo bgcolor="<replaceable>color</replaceable>"</tag></synopsis>
+  </refsynopsisdiv>
+<refparameter>
+  <variablelist>
+    <varlistentry><term>bgcolor="<replaceable>color</replaceable>"</term>
+      <listitem>
+        <para>FIXME: A color value? [In hex, as a name, or what?]</para>
+      </listitem>
+    </varlistentry>
+  </variablelist>
+</refparameter>
+</doc:pi>
+<xsl:template name="pi.dbfo_bgcolor">
+  <xsl:param name="node" select="."/>
+  <xsl:call-template name="dbfo-attribute">
+    <xsl:with-param name="pis" select="$node/processing-instruction('dbfo')"/>
+    <xsl:with-param name="attribute" select="'bgcolor'"/>
   </xsl:call-template>
 </xsl:template>
 
-<xsl:template name="dbfo-filename">
-  <xsl:param name="pis" select="./processing-instruction('dbfo')"/>
+<doc:pi name="dbfo_float-type" xmlns="">
+<refpurpose>Specifies float behavior for a sidebar</refpurpose>
+<refdescription>
+  <para>Use the <tag>dbfo float-type</tag> PI to specify the float
+    behavior for a <tag>sidebar</tag> (to cause the sidebar to be
+  displayed as a marginal note).</para>
+</refdescription>
+  <refsynopsisdiv>
+    <synopsis><tag class="xmlpi">dbfo float-type="margin.note"</tag></synopsis>
+  </refsynopsisdiv>
+<refparameter>
+  <variablelist>
+    <varlistentry><term>float-type="margin.note"</term>
+      <listitem>
+        <para>Specifies that the <tag>sidebar</tag> should be
+          displayed as a marginal note.</para>
+      </listitem>
+    </varlistentry>
+  </variablelist>
+</refparameter>
+</doc:pi>
+<xsl:template name="pi.dbfo_float-type">
+  <xsl:param name="node" select="."/>
   <xsl:call-template name="dbfo-attribute">
-    <xsl:with-param name="pis" select="$pis"/>
-    <xsl:with-param name="attribute">filename</xsl:with-param>
+    <xsl:with-param name="pis" select="$node/processing-instruction('dbfo')"/>
+    <xsl:with-param name="attribute" select="'float-type'"/>
   </xsl:call-template>
 </xsl:template>
 
-<xsl:template name="dbfo-dir">
-  <xsl:param name="pis" select="./processing-instruction('dbfo')"/>
+<doc:pi name="dbfo_glossary-presentation" xmlns="">
+<refpurpose>Specifies presentation style for a glossary</refpurpose>
+<refdescription>
+  <para>Use the <tag>dbfo glossary-presentation</tag> PI as a child of
+    a <tag>glossary</tag> to control its presentation style.</para>
+</refdescription>
+  <refsynopsisdiv>
+    <synopsis><tag class="xmlpi">dbfo glossary-presentation="list"|"blocks"</tag></synopsis>
+  </refsynopsisdiv>
+<refparameter>
+  <variablelist>
+    <varlistentry><term>glossary-presentation="list"</term>
+      <listitem>
+        <para>Displayed the glossary as a list</para>
+      </listitem>
+    </varlistentry>
+    <varlistentry><term>glossary-presentation="blocks"</term>
+      <listitem>
+        <para>Displays the glossary as blocks</para>
+      </listitem>
+    </varlistentry>
+  </variablelist>
+</refparameter>
+</doc:pi>
+<xsl:template name="pi.dbfo_glossary-presentation">
+  <xsl:param name="node" select="."/>
   <xsl:call-template name="dbfo-attribute">
-    <xsl:with-param name="pis" select="$pis"/>
-    <xsl:with-param name="attribute">dir</xsl:with-param>
+    <xsl:with-param name="pis" select="$node/processing-instruction('dbfo')"/>
+    <xsl:with-param name="attribute" select="'glossary-presentation'"/>
   </xsl:call-template>
 </xsl:template>
 
-<!-- ==================================================================== -->
+<doc:pi name="dbfo_glosslist-presentation" xmlns="">
+<refpurpose>Specifies presentation style for a glosslist</refpurpose>
+<refdescription>
+  <para>Use the <tag>dbfo glosslist-presentation</tag> PI as a child of
+    a <tag>glosslist</tag> to control its presentation style.</para>
+</refdescription>
+  <refsynopsisdiv>
+    <synopsis><tag class="xmlpi">dbfo glosslist-presentation="list"|"blocks"</tag></synopsis>
+  </refsynopsisdiv>
+<refparameter>
+  <variablelist>
+    <varlistentry><term>glosslist-presentation="list"</term>
+      <listitem>
+        <para>Displayed the glosslist as a list</para>
+      </listitem>
+    </varlistentry>
+    <varlistentry><term>glosslist-presentation="blocks"</term>
+      <listitem>
+        <para>Displays the glosslist as blocks</para>
+      </listitem>
+    </varlistentry>
+  </variablelist>
+</refparameter>
+</doc:pi>
+<xsl:template name="pi.dbfo_glosslist-presentation">
+  <xsl:param name="node" select="."/>
+  <xsl:call-template name="dbfo-attribute">
+    <xsl:with-param name="pis" select="$node/processing-instruction('dbfo')"/>
+    <xsl:with-param name="attribute" select="'glosslist-presentation'"/>
+  </xsl:call-template>
+</xsl:template>
 
-<xsl:template name="process.cmdsynopsis.list">
-  <xsl:param name="cmdsynopses"/><!-- empty node list by default -->
-  <xsl:param name="count" select="1"/>
+<doc:pi name="dbfo_glossterm-width" xmlns="">
+<refpurpose>Specifies the glossterm width for a glossary or
+  glosslist</refpurpose>
+<refdescription>
+  <para>Use the <tag>dbfo glossterm-width</tag> PI as a child of a
+    <tag>glossary</tag> or <tag>glosslist</tag> to specify the
+    width for output of <tag>glossterm</tag> instances in the
+    output.</para>
+</refdescription>
+  <refsynopsisdiv>
+    <synopsis><tag class="xmlpi">dbfo glossterm-width="<replaceable>width</replaceable>"</tag></synopsis>
+  </refsynopsisdiv>
+<refparameter>
+  <variablelist>
+    <varlistentry><term>glossterm-width="<replaceable>width</replaceable>"</term>
+      <listitem>
+        <para>FIXME: Specifies the glossterm width (in what units?)</para>
+      </listitem>
+    </varlistentry>
+  </variablelist>
+</refparameter>
+</doc:pi>
+<xsl:template name="pi.dbfo_glossterm-width">
+  <xsl:param name="node" select="."/>
+  <xsl:call-template name="dbfo-attribute">
+    <xsl:with-param name="pis" select="$node/processing-instruction('dbfo')"/>
+    <xsl:with-param name="attribute" select="'glossterm-width'"/>
+  </xsl:call-template>
+</xsl:template>
 
-  <xsl:choose>
-    <xsl:when test="$count>count($cmdsynopses)"></xsl:when>
-    <xsl:otherwise>
-      <xsl:variable name="cmdsyn" select="$cmdsynopses[$count]"/>
-
-       <dt>
-       <a>
-         <xsl:attribute name="href">
-           <xsl:call-template name="object.id">
-             <xsl:with-param name="object" select="$cmdsyn"/>
-           </xsl:call-template>
-         </xsl:attribute>
-
-         <xsl:choose>
-           <xsl:when test="$cmdsyn/@xreflabel">
-             <xsl:call-template name="xref.xreflabel">
-               <xsl:with-param name="target" select="$cmdsyn"/>
-             </xsl:call-template>
-           </xsl:when>
-           <xsl:otherwise>
-             <xsl:apply-templates select="$cmdsyn" mode="xref-to">
-               <xsl:with-param name="target" select="$cmdsyn"/>
-             </xsl:apply-templates>
-           </xsl:otherwise>
-         </xsl:choose>
-       </a>
-       </dt>
-
-        <xsl:call-template name="process.cmdsynopsis.list">
-          <xsl:with-param name="cmdsynopses" select="$cmdsynopses"/>
-          <xsl:with-param name="count" select="$count+1"/>
-        </xsl:call-template>
-      </xsl:otherwise>
-    </xsl:choose>
+<doc:pi name="dbfo_keep-together" xmlns="">
+<refpurpose>Specifies “keep” behavior for a table, example,
+  figure, or equation</refpurpose>
+<refdescription>
+  <para>Use the <tag>dbfo keep-together</tag> PI as a child of a
+    formal object (<tag>table</tag>, <tag>example</tag>,
+    <tag>figure</tag>, or <tag>equation</tag>) or their informal
+    equivalents) to specify “keep” behavior for the object (to
+    allow the object to “break” across a page).</para>
+</refdescription>
+  <refsynopsisdiv>
+    <synopsis><tag class="xmlpi">dbfo keep-together="auto"|"always"</tag></synopsis>
+  </refsynopsisdiv>
+<refparameter>
+  <variablelist>
+    <varlistentry><term>keep-together="auto"</term>
+      <listitem>
+        <para>Enables the object to break across a page</para>
+      </listitem>
+    </varlistentry>
+    <varlistentry><term>keep-together="always"</term>
+      <listitem>
+        <para>Prevents the object from breaking across a page (the
+          default stylesheet behavior)</para>
+      </listitem>
+    </varlistentry>
+  </variablelist>
+</refparameter>
+</doc:pi>
+<xsl:template name="pi.dbfo_keep-together">
+  <xsl:param name="node" select="."/>
+  <xsl:call-template name="dbfo-attribute">
+    <xsl:with-param name="pis" select="$node/processing-instruction('dbfo')"/>
+    <xsl:with-param name="attribute" select="'keep-together'"/>
+  </xsl:call-template>
 </xsl:template>
 
-<xsl:template match="processing-instruction('dbcmdlist')">
-  <xsl:variable name="cmdsynopses" select="..//cmdsynopsis"/>
+<doc:pi name="dbfo_label-width" xmlns="">
+<refpurpose>Specifies the label width for an itemizedlist,
+  orderedlist, or qandaset</refpurpose>
+<refdescription>
+  <para>Use the <tag>dbfo label-width</tag> PI as a child of an
+    <tag>itemizedlist</tag>, <tag>orderedlist</tag>, or
+    <tag>qandaset</tag> to specify the width of labels.</para>
+</refdescription>
+  <refsynopsisdiv>
+    <synopsis><tag class="xmlpi">dbfo label-width="<replaceable>width</replaceable>"</tag></synopsis>
+  </refsynopsisdiv>
+<refparameter>
+  <variablelist>
+    <varlistentry><term>label-width="<replaceable>width</replaceable>"</term>
+      <listitem>
+        <para>FIXME: Specifies the label width (in what units?)</para>
+      </listitem>
+    </varlistentry>
+  </variablelist>
+</refparameter>
+</doc:pi>
+<xsl:template name="pi.dbfo_label-width">
+  <xsl:param name="node" select="."/>
+  <xsl:call-template name="dbfo-attribute">
+    <xsl:with-param name="pis" select="$node/processing-instruction('dbfo')"/>
+    <xsl:with-param name="attribute" select="'label-width'"/>
+  </xsl:call-template>
+</xsl:template> 
+
+<doc:pi name="dbfo_linenumbering.everyNth" xmlns="">
+<refpurpose>Specifies the interval at which lines are numbered
+  output of verbatim environments</refpurpose>
+<refdescription>
+  <para>Use the <tag>dbfo linenumbering.everyNth</tag> PI as a child
+    of a “verbatim” element – <tag>programlisting</tag>,
+    <tag>screen</tag>, <tag>synopsis</tag> — to specify
+    the interval at which lines are numbered.</para>
+</refdescription>
+  <refsynopsisdiv>
+    <synopsis><tag class="xmlpi">dbfo linenumbering.everyNth="<replaceable>N</replaceable>"</tag></synopsis>
+  </refsynopsisdiv>
+<refparameter>
+  <variablelist>
+    <varlistentry><term>linenumbering.everyNth="<replaceable>N</replaceable>"</term>
+      <listitem>
+        <para>FIXME: Specifies numbering interval; a number is
+          output before every <replaceable>N</replaceable>th line</para>
+      </listitem>
+    </varlistentry>
+  </variablelist>
+</refparameter>
+</doc:pi>
+<xsl:template name="pi.dbfo_linenumbering.everyNth">
+  <xsl:param name="node" select="."/>
+  <xsl:call-template name="dbfo-attribute">
+    <xsl:with-param name="pis"
+      select="$node/processing-instruction('dbfo')"/>
+    <xsl:with-param name="attribute" select="'linenumbering.everyNth'"/>
+  </xsl:call-template>
+</xsl:template>
+
+<doc:pi name="dbfo_linenumbering.separator" xmlns="">
+<refpurpose>Specifies the separator text used between line numbers
+  and content in output of verbatim environments</refpurpose>
+<refdescription>
+  <para>Use the <tag>dbfo linenumbering.separator</tag> PI as a child
+    of a “verbatim” element – <tag>programlisting</tag>,
+    <tag>screen</tag>, <tag>synopsis</tag> — to specify
+    the separator text output between the line numbers and content.</para>
+</refdescription>
+  <refsynopsisdiv>
+    <synopsis><tag class="xmlpi">dbfo linenumbering.separator="<replaceable>text</replaceable>"</tag></synopsis>
+  </refsynopsisdiv>
+<refparameter>
+  <variablelist>
+    <varlistentry><term>linenumbering.separator="<replaceable>text</replaceable>"</term>
+      <listitem>
+        <para>FIXME: Specifies the text (zero or more characters)</para>
+      </listitem>
+    </varlistentry>
+  </variablelist>
+</refparameter>
+</doc:pi>
+<xsl:template name="pi.dbfo_linenumbering.separator">
+  <xsl:param name="node" select="."/>
+  <xsl:call-template name="dbfo-attribute">
+    <xsl:with-param name="pis"
+      select="$node/processing-instruction('dbfo')"/>
+    <xsl:with-param name="attribute" select="'linenumbering.separator'"/>
+  </xsl:call-template>
+</xsl:template>
 
-  <xsl:if test="count($cmdsynopses)&lt;1">
-    <xsl:message><xsl:text>No cmdsynopsis elements matched dbcmdlist PI, perhaps it's nested too deep?</xsl:text>
-    </xsl:message>
-  </xsl:if>
+<doc:pi name="dbfo_linenumbering.width" xmlns="">
+<refpurpose>Specifies the width set aside for line numbers in
+  output of verbatim environments</refpurpose>
+<refdescription>
+  <para>Use the <tag>dbfo linenumbering.width</tag> PI as a child
+    of a “verbatim” element – <tag>programlisting</tag>,
+    <tag>screen</tag>, <tag>synopsis</tag> — to specify
+    the width set aside for line numbers.</para>
+</refdescription>
+  <refsynopsisdiv>
+    <synopsis><tag class="xmlpi">dbfo linenumbering.width="<replaceable>width</replaceable>"</tag></synopsis>
+  </refsynopsisdiv>
+<refparameter>
+  <variablelist>
+    <varlistentry><term>linenumbering.width="<replaceable>width</replaceable>"</term>
+      <listitem>
+        <para>FIXME: Specifies the width (in what units?)</para>
+      </listitem>
+    </varlistentry>
+  </variablelist>
+</refparameter>
+</doc:pi>
+<xsl:template name="pi.dbfo_linenumbering.width">
+  <xsl:param name="node" select="."/>
+  <xsl:call-template name="dbfo-attribute">
+    <xsl:with-param name="pis"
+      select="$node/processing-instruction('dbfo')"/>
+    <xsl:with-param name="attribute" select="'linenumbering.width'"/>
+  </xsl:call-template>
+</xsl:template>
 
-  <dl>
-    <xsl:call-template name="process.cmdsynopsis.list">
-      <xsl:with-param name="cmdsynopses" select="$cmdsynopses"/>
-    </xsl:call-template>
-  </dl>
+<doc:pi name="dbfo_list-width" xmlns="">
+<refpurpose>Specifies the width of a horizontal simplelist</refpurpose>
+<refdescription>
+  <para>Use the <tag>dbfo list-width</tag> PI as a child of a
+    <tag>simplelist</tag> whose <tag class="attribute">class</tag>
+    value is <literal>horizontal</literal>, to specify the width
+    of the <tag>simplelist</tag>.</para>
+</refdescription>
+  <refsynopsisdiv>
+    <synopsis><tag class="xmlpi">dbfo list-width="<replaceable>width</replaceable>"</tag></synopsis>
+  </refsynopsisdiv>
+<refparameter>
+  <variablelist>
+    <varlistentry><term>list-width="<replaceable>width</replaceable>"</term>
+      <listitem>
+        <para>FIXME: Specifies the <tag>simplelist</tag> width (in what units?)</para>
+      </listitem>
+    </varlistentry>
+  </variablelist>
+</refparameter>
+</doc:pi>
+<xsl:template name="pi.dbfo_list-width">
+  <xsl:param name="node" select="."/>
+  <xsl:call-template name="dbfo-attribute">
+    <xsl:with-param name="pis" select="$node/processing-instruction('dbfo')"/>
+    <xsl:with-param name="attribute" select="'list-width'"/>
+  </xsl:call-template>
 </xsl:template>
 
-<!-- ==================================================================== -->
+<doc:pi name="dbfo_list-presentation" xmlns="">
+<refpurpose>Specifies presentation style for a variablelist or
+  segmentedlist</refpurpose>
+<refdescription>
+  <para>Use the <tag>dbfo list-presentation</tag> PI as a child of
+    a <tag>variablelist</tag> or <tag>segmentedlist</tag> to
+    control the presentation style for the list (to cause it, for
+    example, to be displayed as a table).</para>
+</refdescription>
+  <refsynopsisdiv>
+    <synopsis><tag class="xmlpi">dbfo list-presentation="list"|"blocks"|"table"</tag></synopsis>
+  </refsynopsisdiv>
+<refparameter>
+  <variablelist>
+    <varlistentry><term>list-presentation="list"</term>
+      <listitem>
+        <para>Displayed the list as a list</para>
+      </listitem>
+    </varlistentry>
+    <varlistentry><term>list-presentation="blocks"</term>
+      <listitem>
+        <para>(<tag>variablelist</tag> only) Displays the list as blocks</para>
+      </listitem>
+    </varlistentry>
+    <varlistentry><term>list-presentation="table"</term>
+      <listitem>
+        <para>(<tag>segmentedlist</tag> only) Displays the list as a table</para>
+      </listitem>
+    </varlistentry>
+  </variablelist>
+</refparameter>
+</doc:pi>
+<xsl:template name="pi.dbfo_list-presentation">
+  <xsl:param name="node" select="."/>
+  <xsl:call-template name="dbfo-attribute">
+    <xsl:with-param name="pis" select="$node/processing-instruction('dbfo')"/>
+    <xsl:with-param name="attribute" select="'list-presentation'"/>
+  </xsl:call-template>
+</xsl:template>
 
-<xsl:template name="process.funcsynopsis.list">
-  <xsl:param name="funcsynopses"/><!-- empty node list by default -->
-  <xsl:param name="count" select="1"/>
+<doc:pi name="dbfo_orientation" xmlns="">
+<refpurpose>Specifies the orientation for table row or cell</refpurpose>
+<refdescription>
+  <para>Use the <tag>dbfo orientation</tag> PI as a child of an
+    <tag>table</tag> row or cell to specify the orientation
+    (rotation) for the row or cell.</para>
+</refdescription>
+  <refsynopsisdiv>
+    <synopsis><tag class="xmlpi">dbfo orientation="0"|"90"|"180"|"270"|"-90"|"-180"|"-270"</tag></synopsis>
+  </refsynopsisdiv>
+<refparameter>
+  <variablelist>
+    <varlistentry><term>orientation="0"|"90"|"180"|"270"|"-90"|"-180"|"-270"</term>
+      <listitem>
+        <para>Specifies the number of degrees by which the cell or
+          row is rotated</para>
+      </listitem>
+    </varlistentry>
+  </variablelist>
+</refparameter>
+</doc:pi>
+<xsl:template name="pi.dbfo_orientation">
+  <xsl:param name="node" select="."/>
+  <xsl:call-template name="dbfo-attribute">
+    <xsl:with-param name="pis" select="$node/processing-instruction('dbfo')"/>
+    <xsl:with-param name="attribute" select="'orientation'"/>
+  </xsl:call-template>
+</xsl:template>
 
-  <xsl:choose>
-    <xsl:when test="$count>count($funcsynopses)"></xsl:when>
-    <xsl:otherwise>
-      <xsl:variable name="cmdsyn" select="$funcsynopses[$count]"/>
-
-       <dt>
-       <a>
-         <xsl:attribute name="href">
-           <xsl:call-template name="object.id">
-             <xsl:with-param name="object" select="$cmdsyn"/>
-           </xsl:call-template>
-         </xsl:attribute>
-
-         <xsl:choose>
-           <xsl:when test="$cmdsyn/@xreflabel">
-             <xsl:call-template name="xref.xreflabel">
-               <xsl:with-param name="target" select="$cmdsyn"/>
-             </xsl:call-template>
-           </xsl:when>
-           <xsl:otherwise>
-              <xsl:apply-templates select="$cmdsyn" mode="xref-to">
-                <xsl:with-param name="target" select="$cmdsyn"/>
-              </xsl:apply-templates>
-           </xsl:otherwise>
-         </xsl:choose>
-       </a>
-       </dt>
-
-        <xsl:call-template name="process.funcsynopsis.list">
-          <xsl:with-param name="funcsynopses" select="$funcsynopses"/>
-          <xsl:with-param name="count" select="$count+1"/>
-        </xsl:call-template>
-      </xsl:otherwise>
-    </xsl:choose>
+<doc:pi name="dbfo_pgwide" xmlns="">
+  <refpurpose>Species whether an <tag>equation</tag> or
+    <tag>example</tag> should rendered across the full width of a
+    page</refpurpose>
+<refdescription>
+  <para>Use the <tag>dbfo pgwide</tag> PI as a child of an
+    <tag>equation</tag> or <tag>example</tag> to specify that the
+    content should rendered across the full width of the page.</para>
+</refdescription>
+  <refsynopsisdiv>
+    <synopsis><tag class="xmlpi">dbfo pgwide="0"|"1"</tag></synopsis>
+  </refsynopsisdiv>
+<refparameter>
+  <variablelist>
+    <varlistentry><term>pgwide="0"</term>
+      <listitem>
+        <para>If zero, the content is rendered across the current
+        text flow</para>
+      </listitem>
+    </varlistentry>
+    <varlistentry><term>pgwide="1"</term>
+      <listitem>
+        <para>If <code>1</code> (or any non-zero value), the
+          content is rendered across the full width of the page</para>
+      </listitem>
+    </varlistentry>
+  </variablelist>
+</refparameter>
+</doc:pi>
+<xsl:template name="pi.dbfo_pgwide">
+  <xsl:param name="node" select="."/>
+  <xsl:call-template name="dbfo-attribute">
+    <xsl:with-param name="pis" select="$node/processing-instruction('dbfo')"/>
+    <xsl:with-param name="attribute" select="'pgwide'"/>
+  </xsl:call-template>
 </xsl:template>
 
-<xsl:template match="processing-instruction('dbfunclist')">
-  <xsl:variable name="funcsynopses" select="..//funcsynopsis"/>
+<doc:pi name="dbfo_rotated-width" xmlns="">
+  <refpurpose>Specifies the width for a table <tag>entry</tag> or
+    <tag>row</tag></refpurpose>
+<refdescription>
+  <para>Use the <tag>dbfo rotated-width</tag> PI as a child of an
+    <tag>entry</tag> or <tag>row</tag> instance to specify the
+    width of that the <tag>entry</tag> or <tag>row</tag>; or
+    use it higher up in table to cause the width to be inherited
+    recursively down.</para>
+</refdescription>
+  <refsynopsisdiv>
+    <synopsis><tag class="xmlpi">dbfo rotated-width="<replaceable>width</replaceable>"</tag></synopsis>
+  </refsynopsisdiv>
+<refparameter>
+  <variablelist>
+    <varlistentry><term>rotated-width="<replaceable>width</replaceable>"</term>
+      <listitem>
+        <para>FIXME: Specifies the width of a row or cell (in what units?)</para>
+      </listitem>
+    </varlistentry>
+  </variablelist>
+</refparameter>
+</doc:pi>
+<xsl:template name="pi.dbfo_rotated-width">
+  <xsl:param name="node" select="."/>
+  <xsl:call-template name="dbfo-attribute">
+    <xsl:with-param name="pis"
+      select="$node/processing-instruction('dbfo')"/>
+    <xsl:with-param name="attribute" select="'rotated-width'"/>
+  </xsl:call-template>
+</xsl:template>
 
-  <xsl:if test="count($funcsynopses)&lt;1">
-    <xsl:message><xsl:text>No funcsynopsis elements matched dbfunclist PI, perhaps it's nested too deep?</xsl:text>
-    </xsl:message>
-  </xsl:if>
+<doc:pi name="dbfo_sidebar-width" xmlns="">
+<refpurpose>Specifies the width of a sidebar</refpurpose>
+<refdescription>
+  <para>Use the <tag>dbfo sidebar-width</tag> PI as a child of a
+    <tag>sidebar</tag> to specify the width of the sidebar.</para>
+</refdescription>
+  <refsynopsisdiv>
+    <synopsis><tag class="xmlpi">dbfo sidebar-width="<replaceable>width</replaceable>"</tag></synopsis>
+  </refsynopsisdiv>
+<refparameter>
+  <variablelist>
+    <varlistentry><term>sidebar-width="<replaceable>width</replaceable>"</term>
+      <listitem>
+        <para>FIXME: Specifies the <tag>sidebar</tag> width (in what units?)</para>
+      </listitem>
+    </varlistentry>
+  </variablelist>
+</refparameter>
+</doc:pi>
+<xsl:template name="pi.dbfo_sidebar-width">
+  <xsl:param name="node" select="."/>
+  <xsl:call-template name="dbfo-attribute">
+    <xsl:with-param name="pis" select="$node/processing-instruction('dbfo')"/>
+    <xsl:with-param name="attribute" select="'sidebar-width'"/>
+  </xsl:call-template>
+</xsl:template>
 
-  <dl>
-    <xsl:call-template name="process.funcsynopsis.list">
-      <xsl:with-param name="funcsynopses" select="$funcsynopses"/>
-    </xsl:call-template>
-  </dl>
+<doc:pi name="dbfo_table-width" xmlns="">
+<refpurpose>Specifies the width for a table or for revhistory
+  output</refpurpose>
+<refdescription>
+  <para>Use the <tag>dbfo table-width</tag> PI as a child of a
+    <tag>table</tag> or <tag>revhistory</tag> instance (which is
+    rendered as a table in output) to specify the width of the
+    table in output.</para>
+</refdescription>
+  <refsynopsisdiv>
+    <synopsis><tag class="xmlpi">dbfo table-width="<replaceable>width</replaceable>"</tag></synopsis>
+  </refsynopsisdiv>
+<refparameter>
+  <variablelist>
+    <varlistentry><term>table-width="<replaceable>width</replaceable>"</term>
+      <listitem>
+        <para>FIXME: Specifies the table width (in what units?)</para>
+      </listitem>
+    </varlistentry>
+  </variablelist>
+</refparameter>
+</doc:pi>
+<xsl:template name="pi.dbfo_table-width">
+  <xsl:param name="node" select="."/>
+  <xsl:call-template name="dbfo-attribute">
+    <xsl:with-param name="pis" select="$node/processing-instruction('dbfo')"/>
+    <xsl:with-param name="attribute" select="'table-width'"/>
+  </xsl:call-template>
 </xsl:template>
 
-<!-- ==================================================================== -->
+<doc:pi name="dbfo_term-width" xmlns="">
+<refpurpose>Specifies the term width for a variablelist</refpurpose>
+<refdescription>
+  <para>Use the <tag>dbfo term-width</tag> PI as a child of a
+    <tag>variablelist</tag> to specify the width for
+    <tag>term</tag> output.</para>
+</refdescription>
+  <refsynopsisdiv>
+    <synopsis><tag class="xmlpi">dbfo term-width="<replaceable>width</replaceable>"</tag></synopsis>
+  </refsynopsisdiv>
+<refparameter>
+  <variablelist>
+    <varlistentry><term>term-width="<replaceable>width</replaceable>"</term>
+      <listitem>
+        <para>FIXME: Specifies the term width (in what units?)</para>
+      </listitem>
+    </varlistentry>
+  </variablelist>
+</refparameter>
+</doc:pi>
+<xsl:template name="pi.dbfo_term-width">
+  <xsl:param name="node" select="."/>
+  <xsl:call-template name="dbfo-attribute">
+    <xsl:with-param name="pis" select="$node/processing-instruction('dbfo')"/>
+    <xsl:with-param name="attribute" select="'term-width'"/>
+  </xsl:call-template>
+</xsl:template>
 
-<!-- "need" processing instruction, a kind of soft page break -->
-<!-- A "need" is a request for space on a page.  If the requested space
-     is not available, the page breaks and the content that follows
-     the need request appears on the next page. If the requested
-     space is available, then the request is ignored. -->
+<doc:pi name="dbfo_toc" xmlns="">
+<refpurpose>Species whether a TOC should be generated for a qandaset</refpurpose>
+<refdescription>
+  <para>Use the <tag>dbfo toc</tag> PI as a child of a
+    <tag>jandaset</tag> to specify whether a table of contents
+    (TOC) is generated for the <tag>qandaset</tag>.</para>
+</refdescription>
+  <refsynopsisdiv>
+    <synopsis><tag class="xmlpi">dbfo toc="0"|"1"</tag></synopsis>
+  </refsynopsisdiv>
+<refparameter>
+  <variablelist>
+    <varlistentry><term>toc="0"</term>
+      <listitem>
+        <para>If zero, no TOC is generated</para>
+      </listitem>
+    </varlistentry>
+    <varlistentry><term>toc="1"</term>
+      <listitem>
+        <para>If <code>1</code> (or any non-zero value),
+          a TOC is generated</para>
+      </listitem>
+    </varlistentry>
+  </variablelist>
+</refparameter>
+</doc:pi>
+<xsl:template name="pi.dbfo_toc">
+  <xsl:param name="node" select="."/>
+  <xsl:call-template name="dbfo-attribute">
+    <xsl:with-param name="pis" select="$node/processing-instruction('dbfo')"/>
+    <xsl:with-param name="attribute" select="'toc'"/>
+  </xsl:call-template>
+</xsl:template>
 
-<xsl:template match="processing-instruction('dbfo-need')">
+<!-- ==================================================================== -->
 
+<doc:pi name="dbfo-need" xmlns="">
+<refpurpose>Specify a need for space (a kind of soft page break)</refpurpose>
+<refdescription>
+  <para>A “need” is a request for space on a page.  If the
+    requested space is not available, the page breaks and the
+    content that follows the need request appears on the next
+    page. If the requested space is available, then the request is
+    ignored.</para>
+</refdescription>
+  <refsynopsisdiv>
+    <synopsis><tag class="xmlpi">dbfo-need height="<replaceable>n</replaceable>"</tag></synopsis>
+    <synopsis><tag class="xmlpi">dbfo-need space-before="<replaceable>n</replaceable>"</tag></synopsis>
+  </refsynopsisdiv>
+<refparameter>
+  <variablelist>
+    <varlistentry><term>height="<replaceable>n</replaceable>"</term>
+      <listitem>
+        <para>FIXME: the amount of height(?) needed? In what units? pt?.</para>
+      </listitem>
+    </varlistentry>
+    <varlistentry><term>space-before"<replaceable>n</replaceable>"</term>
+      <listitem>
+        <para>FIXME: the amount of space needed before the
+          [something]? In what units? pt?.</para>
+      </listitem>
+    </varlistentry>
+  </variablelist>
+</refparameter>
+</doc:pi>
+<xsl:template name="pi.dbfo-need">
   <xsl:variable name="pi-height">
     <xsl:call-template name="dbfo-attribute">
       <xsl:with-param name="pis" select="."/>
@@ -293,7 +834,27 @@
   </xsl:choose>
 </xsl:template>
 
+<!-- ==================================================================== -->
+
+<xsl:template name="dbfo-attribute">
+  <!-- * dbfo-attribute is an interal utility template for retrieving -->
+  <!-- * pseudo-attributes/parameters from PIs -->
+  <xsl:param name="pis" select="processing-instruction('dbfo')"/>
+  <xsl:param name="attribute">filename</xsl:param>
+  <xsl:call-template name="pi-attribute">
+    <xsl:with-param name="pis" select="$pis"/>
+    <xsl:with-param name="attribute" select="$attribute"/>
+  </xsl:call-template>
+</xsl:template>
+
+<!-- ==================================================================== -->
+<xsl:template match="processing-instruction()">
+</xsl:template>
 
 <!-- ==================================================================== -->
 
+<xsl:template match="processing-instruction('dbfo-need')">
+  <xsl:call-template name="pi.dbfo-need"/>
+</xsl:template>
+
 </xsl:stylesheet>

+ 3 - 15
docbook-xsl-snapshot/fo/qandaset.xsl

@@ -21,11 +21,7 @@
   </xsl:variable>
 
   <xsl:variable name="label-width">
-    <xsl:call-template name="dbfo-attribute">
-      <xsl:with-param name="pis"
-                      select="processing-instruction('dbfo')"/>
-      <xsl:with-param name="attribute" select="'label-width'"/>
-    </xsl:call-template>
+    <xsl:call-template name="pi.dbfo_label-width"/>
   </xsl:variable>
 
   <xsl:variable name="label-length">
@@ -45,11 +41,7 @@
   </xsl:variable>
   
   <xsl:variable name="toc">
-    <xsl:call-template name="dbfo-attribute">
-      <xsl:with-param name="pis"
-                      select="processing-instruction('dbfo')"/>
-      <xsl:with-param name="attribute" select="'toc'"/>
-    </xsl:call-template>
+    <xsl:call-template name="pi.dbfo_toc"/>
   </xsl:variable>
 
   <xsl:variable name="toc.params">
@@ -156,11 +148,7 @@
   <xsl:variable name="id"><xsl:call-template name="object.id"/></xsl:variable>
 
   <xsl:variable name="label-width">
-    <xsl:call-template name="dbfo-attribute">
-      <xsl:with-param name="pis"
-                      select="processing-instruction('dbfo')"/>
-      <xsl:with-param name="attribute" select="'label-width'"/>
-    </xsl:call-template>
+    <xsl:call-template name="pi.dbfo_label-width"/>
   </xsl:variable>
 
   <xsl:variable name="label-length">

+ 22 - 43
docbook-xsl-snapshot/fo/table.xsl

@@ -72,11 +72,7 @@ works</quote>.</para>
 <xsl:template name="calsTable">
 
   <xsl:variable name="keep.together">
-    <xsl:call-template name="dbfo-attribute">
-      <xsl:with-param name="pis"
-                      select="processing-instruction('dbfo')"/>
-      <xsl:with-param name="attribute" select="'keep-together'"/>
-    </xsl:call-template>
+    <xsl:call-template name="pi.dbfo_keep-together"/>
   </xsl:variable>
 
   <xsl:for-each select="tgroup">
@@ -530,24 +526,20 @@ works</quote>.</para>
   <xsl:variable name="explicit.table.width">
     <xsl:choose>
       <xsl:when test="self::entrytbl">
-        <xsl:call-template name="dbfo-attribute">
-          <xsl:with-param name="pis" 
-                          select="processing-instruction('dbfo')"/>
-          <xsl:with-param name="attribute" select="'table-width'"/>
-        </xsl:call-template>
+        <xsl:call-template name="pi.dbfo_table-width"/>
       </xsl:when>
       <xsl:when test="self::table or self::informaltable">
-        <xsl:call-template name="dbfo-attribute">
-          <xsl:with-param name="pis" 
-                          select="processing-instruction('dbfo')"/>
-          <xsl:with-param name="attribute" select="'table-width'"/>
-        </xsl:call-template>
+        <xsl:call-template name="pi.dbfo_table-width"/>
       </xsl:when>
       <xsl:otherwise>
-        <xsl:call-template name="dbfo-attribute">
-          <xsl:with-param name="pis" 
-                          select="../processing-instruction('dbfo')"/>
-          <xsl:with-param name="attribute" select="'table-width'"/>
+        <!-- * no dbfo@table-width PI as a child of this table, so check -->
+        <!-- * the parent of this table to see if the table has any -->
+        <!-- * sibling dbfo@table-width PIs (FIXME: 2007-07 MikeSmith: we -->
+        <!-- * should really instead be checking here just to see if the -->
+        <!-- * first preceding sibling of this table is a -->
+        <!-- * dbfo@table-width PI) -->
+        <xsl:call-template name="pi.dbfo_table-width">
+          <xsl:with-param name="node" select=".."/>
         </xsl:call-template>
       </xsl:otherwise>
     </xsl:choose>
@@ -749,10 +741,7 @@ works</quote>.</para>
 <!-- customize this template to add row properties -->
 <xsl:template name="table.row.properties">
   <xsl:variable name="bgcolor">
-    <xsl:call-template name="dbfo-attribute">
-      <xsl:with-param name="pis" select="processing-instruction('dbfo')"/>
-      <xsl:with-param name="attribute" select="'bgcolor'"/>
-    </xsl:call-template>
+    <xsl:call-template name="pi.dbfo_bgcolor"/>
   </xsl:variable>
   <xsl:if test="$bgcolor != ''">
     <xsl:attribute name="background-color">
@@ -948,34 +937,26 @@ works</quote>.</para>
       </xsl:variable>
 
       <xsl:variable name="cell-orientation">
-        <xsl:call-template name="dbfo-attribute">
-          <xsl:with-param name="pis"
-                          select="ancestor-or-self::entry/processing-instruction('dbfo')"/>
-          <xsl:with-param name="attribute" select="'orientation'"/>
+        <xsl:call-template name="pi.dbfo_orientation">
+          <xsl:with-param name="node" select="ancestor-or-self::entry"/>
         </xsl:call-template>
       </xsl:variable>
 
       <xsl:variable name="row-orientation">
-        <xsl:call-template name="dbfo-attribute">
-          <xsl:with-param name="pis"
-                          select="ancestor-or-self::row/processing-instruction('dbfo')"/>
-          <xsl:with-param name="attribute" select="'orientation'"/>
+        <xsl:call-template name="pi.dbfo_orientation">
+          <xsl:with-param name="node" select="ancestor-or-self::row"/>
         </xsl:call-template>
       </xsl:variable>
 
       <xsl:variable name="cell-width">
-        <xsl:call-template name="dbfo-attribute">
-          <xsl:with-param name="pis"
-                          select="ancestor-or-self::entry/processing-instruction('dbfo')"/>
-          <xsl:with-param name="attribute" select="'rotated-width'"/>
+        <xsl:call-template name="pi.dbfo_rotated-width">
+          <xsl:with-param name="node" select="ancestor-or-self::entry"/>
         </xsl:call-template>
       </xsl:variable>
 
       <xsl:variable name="row-width">
-        <xsl:call-template name="dbfo-attribute">
-          <xsl:with-param name="pis"
-                          select="ancestor-or-self::row/processing-instruction('dbfo')"/>
-          <xsl:with-param name="attribute" select="'rotated-width'"/>
+        <xsl:call-template name="pi.dbfo_rotated-width">
+          <xsl:with-param name="node" select="ancestor-or-self::row"/>
         </xsl:call-template>
       </xsl:variable>
 
@@ -1002,10 +983,8 @@ works</quote>.</para>
       </xsl:variable>
 
       <xsl:variable name="bgcolor">
-        <xsl:call-template name="dbfo-attribute">
-          <xsl:with-param name="pis"
-                          select="ancestor-or-self::entry/processing-instruction('dbfo')"/>
-          <xsl:with-param name="attribute" select="'bgcolor'"/>
+        <xsl:call-template name="pi.dbfo_bgcolor">
+          <xsl:with-param name="node" select="ancestor-or-self::entry"/>
         </xsl:call-template>
       </xsl:variable>
 

+ 1 - 5
docbook-xsl-snapshot/fo/titlepage.xsl

@@ -514,11 +514,7 @@
 <xsl:template match="revhistory" mode="titlepage.mode">
 
   <xsl:variable name="explicit.table.width">
-    <xsl:call-template name="dbfo-attribute">
-      <xsl:with-param name="pis"
-                      select="processing-instruction('dbfo')"/>
-      <xsl:with-param name="attribute" select="'table-width'"/>
-    </xsl:call-template>
+    <xsl:call-template name="pi.dbfo_table-width"/>
   </xsl:variable>
 
   <xsl:variable name="table.width">

+ 6 - 12
docbook-xsl-snapshot/fo/verbatim.xsl

@@ -178,26 +178,20 @@
 
   <!-- Extract the <?dbfo linenumbering.*?> PI values -->
   <xsl:variable name="pi.linenumbering.everyNth">
-    <xsl:call-template name="dbfo-attribute">
-      <xsl:with-param name="pis"
-                      select="$pi.context/processing-instruction('dbfo')"/>
-      <xsl:with-param name="attribute" select="'linenumbering.everyNth'"/>
+    <xsl:call-template name="pi.dbfo_linenumbering.everyNth">
+      <xsl:with-param name="node" select="$pi.context"/>
     </xsl:call-template>
   </xsl:variable>
 
   <xsl:variable name="pi.linenumbering.separator">
-    <xsl:call-template name="dbfo-attribute">
-      <xsl:with-param name="pis"
-                      select="$pi.context/processing-instruction('dbfo')"/>
-      <xsl:with-param name="attribute" select="'linenumbering.separator'"/>
+    <xsl:call-template name="pi.dbfo_linenumbering.separator">
+      <xsl:with-param name="node" select="$pi.context"/>
     </xsl:call-template>
   </xsl:variable>
 
   <xsl:variable name="pi.linenumbering.width">
-    <xsl:call-template name="dbfo-attribute">
-      <xsl:with-param name="pis"
-                      select="$pi.context/processing-instruction('dbfo')"/>
-      <xsl:with-param name="attribute" select="'linenumbering.width'"/>
+    <xsl:call-template name="pi.dbfo_linenumbering.width">
+      <xsl:with-param name="node" select="$pi.context"/>
     </xsl:call-template>
   </xsl:variable>
 

+ 1 - 5
pdf/lfs-admon.xsl

@@ -16,11 +16,7 @@
   <xsl:attribute-set name="graphical.admonition.properties">
     <xsl:attribute name="keep-together.within-column">
       <xsl:variable name="keep.together">
-        <xsl:call-template name="dbfo-attribute">
-          <xsl:with-param name="pis"
-                          select="processing-instruction('dbfo')"/>
-          <xsl:with-param name="attribute" select="'keep-together'"/>
-        </xsl:call-template>
+        <xsl:call-template name="pi.dbfo_keep-together"/>
       </xsl:variable>
       <xsl:choose>
         <xsl:when test="$keep.together != ''">

+ 1 - 5
pdf/lfs-mixed.xsl

@@ -86,11 +86,7 @@
           original screen templates. -->
   <xsl:template match="screen|literallayout">
     <xsl:variable name="keep.together">
-      <xsl:call-template name="dbfo-attribute">
-        <xsl:with-param name="pis"
-                        select="processing-instruction('dbfo')"/>
-        <xsl:with-param name="attribute" select="'keep-together'"/>
-      </xsl:call-template>
+      <xsl:call-template name="pi.dbfo_keep-together"/>
     </xsl:variable>
     <fo:block>
       <xsl:attribute name="keep-together.within-column">