]> granicus.if.org Git - docbook-dsssl/commitdiff
Finish implementation of generate.id.attributes for all elements
authorBob Stayton <bobs@sagehill.net>
Sun, 22 Apr 2012 03:56:16 +0000 (03:56 +0000)
committerBob Stayton <bobs@sagehill.net>
Sun, 22 Apr 2012 03:56:16 +0000 (03:56 +0000)
using the template named id.attribute.

28 files changed:
xsl/html/admon.xsl
xsl/html/autoidx.xsl
xsl/html/biblio.xsl
xsl/html/block.xsl
xsl/html/callout.xsl
xsl/html/component.xsl
xsl/html/division.xsl
xsl/html/ebnf.xsl
xsl/html/footnote.xsl
xsl/html/formal.xsl
xsl/html/glossary.xsl
xsl/html/graphics.xsl
xsl/html/html.xsl
xsl/html/index.xsl
xsl/html/info.xsl
xsl/html/inline.xsl
xsl/html/lists.xsl
xsl/html/math.xsl
xsl/html/qandaset.xsl
xsl/html/refentry.xsl
xsl/html/sections.xsl
xsl/html/synop.xsl
xsl/html/table.xsl
xsl/html/task.xsl
xsl/html/titlepage.xsl
xsl/html/toc.xsl
xsl/html/verbatim.xsl
xsl/html/xref.xsl

index dbb765c34da0ca9ba1e293578d5053f6cd56538e..e5380dd69ac3142632dda47ed7e618fd14673d3f 100644 (file)
@@ -62,6 +62,7 @@
 
   <div>
     <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
     <xsl:if test="$admon.style != ''">
       <xsl:attribute name="style">
         <xsl:value-of select="$admon.style"/>
     <xsl:call-template name="common.html.attributes">
       <xsl:with-param name="inherit" select="1"/>
     </xsl:call-template>
+    <xsl:call-template name="id.attribute"/>
     <xsl:if test="$admon.style">
       <xsl:attribute name="style">
         <xsl:value-of select="$admon.style"/>
index 9a0cf54b20bde6064578e4889547ba79f35efd7c..087986364074982dbba8739727bc9ff999265638 100644 (file)
   <dt>
     <xsl:for-each select="$refs/primary">
       <xsl:if test="@id or @xml:id">
-        <a name="{(@id|@xml:id)[1]}"/>
+        <xsl:choose>
+          <xsl:when test="$generate.id.attributes = 0">
+            <a name="{(@id|@xml:id)[1]}"/>
+          </xsl:when>
+          <xsl:otherwise>
+            <span>
+              <xsl:call-template name="id.attribute"/>
+            </span>
+          </xsl:otherwise>
+        </xsl:choose>
       </xsl:if>
     </xsl:for-each>
     <xsl:value-of select="primary"/>
   <dt>
     <xsl:for-each select="$refs/secondary">
       <xsl:if test="@id or @xml:id">
-        <a name="{(@id|@xml:id)[1]}"/>
+        <xsl:choose>
+          <xsl:when test="$generate.id.attributes = 0">
+            <a name="{(@id|@xml:id)[1]}"/>
+          </xsl:when>
+          <xsl:otherwise>
+            <span>
+              <xsl:call-template name="id.attribute"/>
+            </span>
+          </xsl:otherwise>
+        </xsl:choose>
       </xsl:if>
     </xsl:for-each>
     <xsl:value-of select="secondary"/>
   <dt>
     <xsl:for-each select="$refs/tertiary">
       <xsl:if test="@id or @xml:id">
-        <a name="{(@id|@xml:id)[1]}"/>
+        <xsl:choose>
+          <xsl:when test="$generate.id.attributes = 0">
+            <a name="{(@id|@xml:id)[1]}"/>
+          </xsl:when>
+          <xsl:otherwise>
+            <span>
+              <xsl:call-template name="id.attribute"/>
+            </span>
+          </xsl:otherwise>
+        </xsl:choose>
       </xsl:if>
     </xsl:for-each>
     <xsl:value-of select="tertiary"/>
     <xsl:otherwise>
       <a>
         <xsl:apply-templates select="." mode="class.attribute"/>
+        <xsl:call-template name="id.attribute"/>
         <xsl:variable name="title">
           <xsl:choose>
             <xsl:when test="&section;/titleabbrev and $index.prefer.titleabbrev != 0">
 
       <a>
         <xsl:apply-templates select="." mode="class.attribute"/>
+        <xsl:call-template name="id.attribute"/>
         <xsl:attribute name="href">
           <xsl:call-template name="href.target">
             <xsl:with-param name="object" select="$target[1]"/>
 
       <a>
         <xsl:apply-templates select="." mode="class.attribute"/>
+        <xsl:call-template name="id.attribute"/>
         <xsl:attribute name="href">
           <xsl:call-template name="href.target">
             <xsl:with-param name="object" select="$target[1]"/>
index 9e0ca5874eb9de57304c1f243e93c699cb4dfb80..de2b8a0597bf453503ba45adaab68bea83b98e61 100644 (file)
     <xsl:call-template name="common.html.attributes">
       <xsl:with-param name="inherit" select="1"/>
     </xsl:call-template>
-    <xsl:if test="$generate.id.attributes != 0">
-      <xsl:attribute name="id">
-        <xsl:call-template name="object.id"/>
-      </xsl:attribute>
-    </xsl:if>
+    <xsl:call-template name="id.attribute">
+      <xsl:with-param name="conditional" select="0"/>
+    </xsl:call-template>
 
     <xsl:call-template name="bibliography.titlepage"/>
 
@@ -52,6 +50,9 @@
     <xsl:call-template name="common.html.attributes">
       <xsl:with-param name="inherit" select="0"/>
     </xsl:call-template>
+    <xsl:call-template name="id.attribute">
+      <xsl:with-param name="conditional" select="0"/>
+    </xsl:call-template>
     <xsl:apply-templates/>
   </div>
 </xsl:template>
@@ -74,6 +75,7 @@
     <xsl:call-template name="common.html.attributes">
       <xsl:with-param name="inherit" select="0"/>
     </xsl:call-template>
+    <xsl:call-template name="id.attribute"/>
     <xsl:call-template name="anchor"/>
     <xsl:if test="blockinfo/title|info/title|title">
       <xsl:call-template name="formal.object.heading"/>
           </xsl:message>
           <div>
             <xsl:call-template name="common.html.attributes"/>
+            <xsl:call-template name="id.attribute"/>
             <xsl:call-template name="anchor"/>
             <p>
               <xsl:copy-of select="$label"/>
     <xsl:otherwise>
       <div>
         <xsl:call-template name="common.html.attributes"/>
+        <xsl:call-template name="id.attribute">
+          <xsl:with-param name="conditional" select="0"/>
+        </xsl:call-template>
         <xsl:call-template name="anchor">
           <xsl:with-param name="conditional" select="0"/>
         </xsl:call-template>
           </xsl:message>
           <div>
             <xsl:call-template name="common.html.attributes"/>
+            <xsl:call-template name="id.attribute"/>
             <xsl:call-template name="anchor"/>
             <p>
               <xsl:copy-of select="$label"/>
     <xsl:otherwise>
       <div>
         <xsl:call-template name="common.html.attributes"/>
+        <xsl:call-template name="id.attribute">
+          <xsl:with-param name="conditional" select="0"/>
+        </xsl:call-template>
         <xsl:call-template name="anchor">
           <xsl:with-param name="conditional" select="0"/>
         </xsl:call-template>
 <xsl:template match="address" mode="bibliography.mode">
   <span>
     <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
     <xsl:apply-templates mode="bibliography.mode"/>
     <xsl:copy-of select="$biblioentry.item.separator"/>
   </span>
 <xsl:template match="affiliation" mode="bibliography.mode">
   <span>
     <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
     <xsl:apply-templates mode="bibliography.mode"/>
     <xsl:copy-of select="$biblioentry.item.separator"/>
   </span>
 <xsl:template match="shortaffil" mode="bibliography.mode">
   <span>
     <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
     <xsl:apply-templates mode="bibliography.mode"/>
     <xsl:copy-of select="$biblioentry.item.separator"/>
   </span>
 <xsl:template match="jobtitle" mode="bibliography.mode">
   <span>
     <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
     <xsl:apply-templates mode="bibliography.mode"/>
     <xsl:copy-of select="$biblioentry.item.separator"/>
   </span>
 <xsl:template match="artheader|articleinfo|info" mode="bibliography.mode">
   <span>
     <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
     <xsl:apply-templates mode="bibliography.mode"/>
     <xsl:copy-of select="$biblioentry.item.separator"/>
   </span>
 <xsl:template match="artpagenums" mode="bibliography.mode">
   <span>
     <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
     <xsl:apply-templates mode="bibliography.mode"/>
     <xsl:copy-of select="$biblioentry.item.separator"/>
   </span>
 <xsl:template match="author" mode="bibliography.mode">
   <span>
     <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
     <xsl:choose>
       <xsl:when test="orgname">
         <xsl:apply-templates select="orgname" mode="bibliography.mode"/>
 <xsl:template match="authorgroup" mode="bibliography.mode">
   <span>
     <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
     <xsl:call-template name="person.name.list"/>
     <xsl:copy-of select="$biblioentry.item.separator"/>
   </span>
 <xsl:template match="authorinitials" mode="bibliography.mode">
   <span>
     <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
     <xsl:apply-templates mode="bibliography.mode"/>
     <xsl:copy-of select="$biblioentry.item.separator"/>
   </span>
 <xsl:template match="bibliomisc" mode="bibliography.mode">
   <span>
     <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
     <xsl:apply-templates mode="bibliography.mode"/>
     <xsl:copy-of select="$biblioentry.item.separator"/>
   </span>
 <xsl:template match="bibliomset" mode="bibliography.mode">
   <span>
     <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
     <xsl:apply-templates mode="bibliography.mode"/>
     <xsl:copy-of select="$biblioentry.item.separator"/>
   </span>
 <xsl:template match="biblioset" mode="bibliography.mode">
   <span>
     <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
     <xsl:apply-templates mode="bibliography.mode"/>
   </span>
 </xsl:template>
 
 <!-- ================================================== -->
 
-<xsl:template match="bookbiblio" mode="bibliography.mode">
-  <span>
-    <xsl:call-template name="common.html.attributes"/>
-    <xsl:apply-templates mode="bibliography.mode"/>
-    <xsl:copy-of select="$biblioentry.item.separator"/>
-  </span>
-</xsl:template>
-
 <xsl:template match="citetitle" mode="bibliography.mode">
   <span>
     <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
     <xsl:choose>
       <xsl:when test="@pubwork = 'article'">
         <xsl:call-template name="gentext.startquote"/>
 <xsl:template match="collab" mode="bibliography.mode">
   <span>
     <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
     <xsl:apply-templates mode="bibliography.mode"/>
     <xsl:copy-of select="$biblioentry.item.separator"/>
   </span>
 <xsl:template match="collabname" mode="bibliography.mode">
   <span>
     <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
     <xsl:apply-templates mode="bibliography.mode"/>
     <xsl:copy-of select="$biblioentry.item.separator"/>
   </span>
 <xsl:template match="confgroup" mode="bibliography.mode">
   <span>
     <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
     <xsl:apply-templates mode="bibliography.mode"/>
     <xsl:copy-of select="$biblioentry.item.separator"/>
   </span>
 <xsl:template match="confdates" mode="bibliography.mode">
   <span>
     <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
     <xsl:apply-templates mode="bibliography.mode"/>
     <xsl:copy-of select="$biblioentry.item.separator"/>
   </span>
 <xsl:template match="conftitle" mode="bibliography.mode">
   <span>
     <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
     <xsl:apply-templates mode="bibliography.mode"/>
     <xsl:copy-of select="$biblioentry.item.separator"/>
   </span>
 <xsl:template match="confnum" mode="bibliography.mode">
   <span>
     <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
     <xsl:apply-templates mode="bibliography.mode"/>
     <xsl:copy-of select="$biblioentry.item.separator"/>
   </span>
 <xsl:template match="confsponsor" mode="bibliography.mode">
   <span>
     <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
     <xsl:apply-templates mode="bibliography.mode"/>
     <xsl:copy-of select="$biblioentry.item.separator"/>
   </span>
 <xsl:template match="contractnum" mode="bibliography.mode">
   <span>
     <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
     <xsl:apply-templates mode="bibliography.mode"/>
     <xsl:copy-of select="$biblioentry.item.separator"/>
   </span>
 <xsl:template match="contractsponsor" mode="bibliography.mode">
   <span>
     <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
     <xsl:apply-templates mode="bibliography.mode"/>
     <xsl:copy-of select="$biblioentry.item.separator"/>
   </span>
 <xsl:template match="contrib" mode="bibliography.mode">
   <span>
     <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
     <xsl:apply-templates mode="bibliography.mode"/>
     <xsl:copy-of select="$biblioentry.item.separator"/>
   </span>
 <xsl:template match="copyright" mode="bibliography.mode">
   <span>
     <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
     <xsl:call-template name="gentext">
       <xsl:with-param name="key" select="'Copyright'"/>
     </xsl:call-template>
 <xsl:template match="corpauthor" mode="bibliography.mode">
   <span>
     <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
     <xsl:apply-templates mode="bibliography.mode"/>
     <xsl:copy-of select="$biblioentry.item.separator"/>
   </span>
 <xsl:template match="corpcredit" mode="bibliography.mode">
   <span>
     <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
     <xsl:apply-templates mode="bibliography.mode"/>
     <xsl:copy-of select="$biblioentry.item.separator"/>
   </span>
 <xsl:template match="corpname" mode="bibliography.mode">
   <span>
     <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
     <xsl:apply-templates mode="bibliography.mode"/>
     <xsl:copy-of select="$biblioentry.item.separator"/>
   </span>
 <xsl:template match="date" mode="bibliography.mode">
   <span>
     <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
     <xsl:apply-templates mode="bibliography.mode"/>
     <xsl:copy-of select="$biblioentry.item.separator"/>
   </span>
 <xsl:template match="edition" mode="bibliography.mode">
   <span>
     <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
     <xsl:apply-templates mode="bibliography.mode"/>
     <xsl:copy-of select="$biblioentry.item.separator"/>
   </span>
 <xsl:template match="editor" mode="bibliography.mode">
   <span>
     <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
     <xsl:call-template name="person.name"/>
     <xsl:copy-of select="$biblioentry.item.separator"/>
   </span>
 <xsl:template match="firstname" mode="bibliography.mode">
   <span>
     <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
     <xsl:apply-templates mode="bibliography.mode"/>
     <xsl:copy-of select="$biblioentry.item.separator"/>
   </span>
 <xsl:template match="honorific" mode="bibliography.mode">
   <span>
     <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
     <xsl:apply-templates mode="bibliography.mode"/>
     <xsl:copy-of select="$biblioentry.item.separator"/>
   </span>
 <xsl:template match="indexterm" mode="bibliography.mode">
   <span>
     <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
     <xsl:apply-templates mode="bibliography.mode"/>
     <xsl:copy-of select="$biblioentry.item.separator"/>
   </span>
 <xsl:template match="invpartnumber" mode="bibliography.mode">
   <span>
     <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
     <xsl:apply-templates mode="bibliography.mode"/>
     <xsl:copy-of select="$biblioentry.item.separator"/>
   </span>
 <xsl:template match="isbn" mode="bibliography.mode">
   <span>
     <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
     <xsl:apply-templates mode="bibliography.mode"/>
     <xsl:copy-of select="$biblioentry.item.separator"/>
   </span>
 <xsl:template match="issn" mode="bibliography.mode">
   <span>
     <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
     <xsl:apply-templates mode="bibliography.mode"/>
     <xsl:copy-of select="$biblioentry.item.separator"/>
   </span>
 <xsl:template match="issuenum" mode="bibliography.mode">
   <span>
     <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
     <xsl:apply-templates mode="bibliography.mode"/>
     <xsl:copy-of select="$biblioentry.item.separator"/>
   </span>
 <xsl:template match="lineage" mode="bibliography.mode">
   <span>
     <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
     <xsl:apply-templates mode="bibliography.mode"/>
     <xsl:copy-of select="$biblioentry.item.separator"/>
   </span>
 <xsl:template match="orgname" mode="bibliography.mode">
   <span>
     <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
     <xsl:apply-templates mode="bibliography.mode"/>
     <xsl:copy-of select="$biblioentry.item.separator"/>
   </span>
 <xsl:template match="orgdiv" mode="bibliography.mode">
   <span>
     <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
     <xsl:apply-templates mode="bibliography.mode"/>
     <xsl:copy-of select="$biblioentry.item.separator"/>
   </span>
 <xsl:template match="othercredit" mode="bibliography.mode">
   <span>
     <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
     <xsl:apply-templates mode="bibliography.mode"/>
     <xsl:copy-of select="$biblioentry.item.separator"/>
   </span>
 <xsl:template match="othername" mode="bibliography.mode">
   <span>
     <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
     <xsl:apply-templates mode="bibliography.mode"/>
     <xsl:copy-of select="$biblioentry.item.separator"/>
   </span>
 <xsl:template match="pagenums" mode="bibliography.mode">
   <span>
     <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
     <xsl:apply-templates mode="bibliography.mode"/>
     <xsl:copy-of select="$biblioentry.item.separator"/>
   </span>
 <xsl:template match="productname" mode="bibliography.mode">
   <span>
     <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
     <xsl:apply-templates mode="bibliography.mode"/>
     <xsl:copy-of select="$biblioentry.item.separator"/>
   </span>
 <xsl:template match="productnumber" mode="bibliography.mode">
   <span>
     <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
     <xsl:apply-templates mode="bibliography.mode"/>
     <xsl:copy-of select="$biblioentry.item.separator"/>
   </span>
 <xsl:template match="pubdate" mode="bibliography.mode">
   <span>
     <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
     <xsl:apply-templates mode="bibliography.mode"/>
     <xsl:copy-of select="$biblioentry.item.separator"/>
   </span>
 <xsl:template match="publisher" mode="bibliography.mode">
   <span>
     <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
     <xsl:apply-templates mode="bibliography.mode"/>
   </span>
 </xsl:template>
 <xsl:template match="publishername" mode="bibliography.mode">
   <span>
     <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
     <xsl:apply-templates mode="bibliography.mode"/>
     <xsl:copy-of select="$biblioentry.item.separator"/>
   </span>
 <xsl:template match="pubsnumber" mode="bibliography.mode">
   <span>
     <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
     <xsl:apply-templates mode="bibliography.mode"/>
     <xsl:copy-of select="$biblioentry.item.separator"/>
   </span>
 <xsl:template match="releaseinfo" mode="bibliography.mode">
   <span>
     <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
     <xsl:apply-templates mode="bibliography.mode"/>
     <xsl:copy-of select="$biblioentry.item.separator"/>
   </span>
 <xsl:template match="seriesinfo" mode="bibliography.mode">
   <span>
     <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
     <xsl:apply-templates mode="bibliography.mode"/>
   </span>
 </xsl:template>
 <xsl:template match="seriesvolnums" mode="bibliography.mode">
   <span>
     <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
     <xsl:apply-templates mode="bibliography.mode"/>
     <xsl:copy-of select="$biblioentry.item.separator"/>
   </span>
 <xsl:template match="subtitle" mode="bibliography.mode">
   <span>
     <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
     <xsl:apply-templates mode="bibliography.mode"/>
     <xsl:copy-of select="$biblioentry.item.separator"/>
   </span>
 <xsl:template match="surname" mode="bibliography.mode">
   <span>
     <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
     <xsl:apply-templates mode="bibliography.mode"/>
     <xsl:copy-of select="$biblioentry.item.separator"/>
   </span>
 <xsl:template match="title" mode="bibliography.mode">
   <span>
     <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
     <i><xsl:apply-templates mode="bibliography.mode"/></i>
     <xsl:copy-of select="$biblioentry.item.separator"/>
   </span>
 <xsl:template match="titleabbrev" mode="bibliography.mode">
   <span>
     <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
     <xsl:apply-templates mode="bibliography.mode"/>
     <xsl:copy-of select="$biblioentry.item.separator"/>
   </span>
 <xsl:template match="volumenum" mode="bibliography.mode">
   <span>
     <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
     <xsl:apply-templates mode="bibliography.mode"/>
     <xsl:copy-of select="$biblioentry.item.separator"/>
   </span>
               mode="bibliography.mode">
   <span>
     <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
     <xsl:apply-templates mode="bibliography.mode"/>
     <xsl:copy-of select="$biblioentry.item.separator"/>
   </span>
               mode="bibliography.mode">
   <span>
     <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
     <a href="{concat('http://dx.doi.org/', .)}">doi:<xsl:value-of select="."/></a>
   </span>
 </xsl:template>
 <xsl:template match="abstract" mode="bibliomixed.mode">
   <span>
     <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
     <xsl:apply-templates mode="bibliomixed.mode"/>
   </span>
 </xsl:template>
 <xsl:template match="address" mode="bibliomixed.mode">
   <span>
     <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
     <xsl:apply-templates mode="bibliomixed.mode"/>
   </span>
 </xsl:template>
 <xsl:template match="affiliation" mode="bibliomixed.mode">
   <span>
     <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
     <xsl:apply-templates mode="bibliomixed.mode"/>
   </span>
 </xsl:template>
 <xsl:template match="shortaffil" mode="bibliomixed.mode">
   <span>
     <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
     <xsl:apply-templates mode="bibliomixed.mode"/>
   </span>
 </xsl:template>
 <xsl:template match="jobtitle" mode="bibliomixed.mode">
   <span>
     <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
     <xsl:apply-templates mode="bibliomixed.mode"/>
   </span>
 </xsl:template>
 <xsl:template match="artpagenums" mode="bibliomixed.mode">
   <span>
     <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
     <xsl:apply-templates mode="bibliomixed.mode"/>
   </span>
 </xsl:template>
 <xsl:template match="author" mode="bibliomixed.mode">
   <span>
     <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
     <xsl:choose>
       <xsl:when test="orgname">
         <xsl:apply-templates select="orgname" mode="bibliomixed.mode"/>
 <xsl:template match="authorblurb|personblurb" mode="bibliomixed.mode">
   <span>
     <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
     <xsl:apply-templates mode="bibliomixed.mode"/>
   </span>
 </xsl:template>
 <xsl:template match="authorgroup" mode="bibliomixed.mode">
   <span>
     <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
     <xsl:apply-templates mode="bibliomixed.mode"/>
   </span>
 </xsl:template>
 <xsl:template match="authorinitials" mode="bibliomixed.mode">
   <span>
     <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
     <xsl:apply-templates mode="bibliomixed.mode"/>
   </span>
 </xsl:template>
 <xsl:template match="bibliomisc" mode="bibliomixed.mode">
   <span>
     <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
     <xsl:apply-templates mode="bibliomixed.mode"/>
   </span>
 </xsl:template>
 <xsl:template match="bibliomset" mode="bibliomixed.mode">
   <span>
     <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
     <xsl:apply-templates mode="bibliomixed.mode"/>
   </span>
 </xsl:template>
 <xsl:template match="biblioset" mode="bibliomixed.mode">
   <span>
     <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
     <xsl:apply-templates mode="bibliomixed.mode"/>
   </span>
 </xsl:template>
 <xsl:template match="citetitle" mode="bibliomixed.mode">
   <span>
     <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
     <xsl:choose>
       <xsl:when test="@pubwork = 'article'">
         <xsl:call-template name="gentext.startquote"/>
 <xsl:template match="collab" mode="bibliomixed.mode">
   <span>
     <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
     <xsl:apply-templates mode="bibliomixed.mode"/>
   </span>
 </xsl:template>
 <xsl:template match="confgroup" mode="bibliomixed.mode">
   <span>
     <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
     <xsl:apply-templates mode="bibliomixed.mode"/>
   </span>
 </xsl:template>
 <xsl:template match="contractnum" mode="bibliomixed.mode">
   <span>
     <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
     <xsl:apply-templates mode="bibliomixed.mode"/>
   </span>
 </xsl:template>
 <xsl:template match="contractsponsor" mode="bibliomixed.mode">
   <span>
     <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
     <xsl:apply-templates mode="bibliomixed.mode"/>
   </span>
 </xsl:template>
 <xsl:template match="contrib" mode="bibliomixed.mode">
   <span>
     <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
     <xsl:apply-templates mode="bibliomixed.mode"/>
   </span>
 </xsl:template>
 <xsl:template match="copyright" mode="bibliomixed.mode">
   <span>
     <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
     <xsl:apply-templates mode="bibliomixed.mode"/>
   </span>
 </xsl:template>
 <xsl:template match="corpauthor" mode="bibliomixed.mode">
   <span>
     <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
     <xsl:apply-templates mode="bibliomixed.mode"/>
   </span>
 </xsl:template>
 <xsl:template match="corpcredit" mode="bibliomixed.mode">
   <span>
     <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
     <xsl:apply-templates mode="bibliomixed.mode"/>
   </span>
 </xsl:template>
 <xsl:template match="corpname" mode="bibliomixed.mode">
   <span>
     <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
     <xsl:apply-templates mode="bibliomixed.mode"/>
   </span>
 </xsl:template>
 <xsl:template match="date" mode="bibliomixed.mode">
   <span>
     <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
     <xsl:apply-templates mode="bibliomixed.mode"/>
   </span>
 </xsl:template>
 <xsl:template match="edition" mode="bibliomixed.mode">
   <span>
     <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
     <xsl:apply-templates mode="bibliomixed.mode"/>
   </span>
 </xsl:template>
 <xsl:template match="editor" mode="bibliomixed.mode">
   <span>
     <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
     <xsl:apply-templates mode="bibliomixed.mode"/>
   </span>
 </xsl:template>
 <xsl:template match="firstname" mode="bibliomixed.mode">
   <span>
     <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
     <xsl:apply-templates mode="bibliomixed.mode"/>
   </span>
 </xsl:template>
 <xsl:template match="honorific" mode="bibliomixed.mode">
   <span>
     <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
     <xsl:apply-templates mode="bibliomixed.mode"/>
   </span>
 </xsl:template>
 <xsl:template match="indexterm" mode="bibliomixed.mode">
   <span>
     <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
     <xsl:apply-templates mode="bibliomixed.mode"/>
   </span>
 </xsl:template>
 <xsl:template match="invpartnumber" mode="bibliomixed.mode">
   <span>
     <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
     <xsl:apply-templates mode="bibliomixed.mode"/>
   </span>
 </xsl:template>
 <xsl:template match="isbn" mode="bibliomixed.mode">
   <span>
     <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
     <xsl:apply-templates mode="bibliomixed.mode"/>
   </span>
 </xsl:template>
 <xsl:template match="issn" mode="bibliomixed.mode">
   <span>
     <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
     <xsl:apply-templates mode="bibliomixed.mode"/>
   </span>
 </xsl:template>
 <xsl:template match="issuenum" mode="bibliomixed.mode">
   <span>
     <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
     <xsl:apply-templates mode="bibliomixed.mode"/>
   </span>
 </xsl:template>
 <xsl:template match="lineage" mode="bibliomixed.mode">
   <span>
     <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
     <xsl:apply-templates mode="bibliomixed.mode"/>
   </span>
 </xsl:template>
 <xsl:template match="orgname" mode="bibliomixed.mode">
   <span>
     <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
     <xsl:apply-templates mode="bibliomixed.mode"/>
   </span>
 </xsl:template>
 <xsl:template match="othercredit" mode="bibliomixed.mode">
   <span>
     <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
     <xsl:apply-templates mode="bibliomixed.mode"/>
   </span>
 </xsl:template>
 <xsl:template match="othername" mode="bibliomixed.mode">
   <span>
     <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
     <xsl:apply-templates mode="bibliomixed.mode"/>
   </span>
 </xsl:template>
 <xsl:template match="pagenums" mode="bibliomixed.mode">
   <span>
     <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
     <xsl:apply-templates mode="bibliomixed.mode"/>
   </span>
 </xsl:template>
 <xsl:template match="printhistory" mode="bibliomixed.mode">
   <span>
     <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
     <xsl:apply-templates mode="bibliomixed.mode"/>
   </span>
 </xsl:template>
 <xsl:template match="productname" mode="bibliomixed.mode">
   <span>
     <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
     <xsl:apply-templates mode="bibliomixed.mode"/>
   </span>
 </xsl:template>
 <xsl:template match="productnumber" mode="bibliomixed.mode">
   <span>
     <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
     <xsl:apply-templates mode="bibliomixed.mode"/>
   </span>
 </xsl:template>
 <xsl:template match="pubdate" mode="bibliomixed.mode">
   <span>
     <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
     <xsl:apply-templates mode="bibliomixed.mode"/>
   </span>
 </xsl:template>
 <xsl:template match="publisher" mode="bibliomixed.mode">
   <span>
     <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
     <xsl:apply-templates mode="bibliomixed.mode"/>
   </span>
 </xsl:template>
 <xsl:template match="publishername" mode="bibliomixed.mode">
   <span>
     <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
     <xsl:apply-templates mode="bibliomixed.mode"/>
   </span>
 </xsl:template>
 <xsl:template match="pubsnumber" mode="bibliomixed.mode">
   <span>
     <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
     <xsl:apply-templates mode="bibliomixed.mode"/>
   </span>
 </xsl:template>
 <xsl:template match="releaseinfo" mode="bibliomixed.mode">
   <span>
     <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
     <xsl:apply-templates mode="bibliomixed.mode"/>
   </span>
 </xsl:template>
 <xsl:template match="seriesvolnums" mode="bibliomixed.mode">
   <span>
     <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
     <xsl:apply-templates mode="bibliomixed.mode"/>
   </span>
 </xsl:template>
 <xsl:template match="subtitle" mode="bibliomixed.mode">
   <span>
     <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
     <xsl:apply-templates mode="bibliomixed.mode"/>
   </span>
 </xsl:template>
 <xsl:template match="surname" mode="bibliomixed.mode">
   <span>
     <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
     <xsl:apply-templates mode="bibliomixed.mode"/>
   </span>
 </xsl:template>
 <xsl:template match="title" mode="bibliomixed.mode">
   <span>
     <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
     <xsl:apply-templates mode="bibliomixed.mode"/>
   </span>
 </xsl:template>
 <xsl:template match="titleabbrev" mode="bibliomixed.mode">
   <span>
     <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
     <xsl:apply-templates mode="bibliomixed.mode"/>
   </span>
 </xsl:template>
 <xsl:template match="volumenum" mode="bibliomixed.mode">
   <span>
     <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
     <xsl:apply-templates mode="bibliomixed.mode"/>
   </span>
 </xsl:template>
               mode="bibliomixed.mode">
   <span>
     <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
     <xsl:apply-templates mode="bibliomixed.mode"/>
   </span>
 </xsl:template>
               mode="bibliomixed.mode">
   <span>
     <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
     <a href="{concat('http://dx.doi.org/', .)}">doi:<xsl:value-of select="."/></a>
   </span>
 </xsl:template>
index 41aef864132c09cea5ff6f2d68ade83b7621a436..7744eb77ec83e6b52801d4ec054ee167a1347b6e 100644 (file)
@@ -24,6 +24,7 @@
 <xsl:template name="block.object">
   <div>
     <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
     <xsl:call-template name="anchor"/>
     <xsl:apply-templates/>
   </div>
@@ -57,6 +58,7 @@
 
   <xsl:variable name="p">
     <p>
+      <xsl:call-template name="id.attribute"/>
       <xsl:choose>
         <xsl:when test="$class != ''">
           <xsl:call-template name="common.html.attributes">
           </xsl:call-template>
         </xsl:otherwise>
       </xsl:choose>
+
+      <!-- need to capture the id of the listitem -->
+      <xsl:if test="position() = 1 and 
+                   (parent::listitem/@id or parent::listitem/@xml:id)">
+        <span>
+          <xsl:call-template name="id.attribute">
+            <xsl:with-param name="node" select="parent::listitem"/>
+          </xsl:call-template>
+        </span>
+      </xsl:if>
+
       <xsl:copy-of select="$content"/>
     </p>
   </xsl:variable>
 <xsl:template match="simpara">
   <!-- see also listitem/simpara in lists.xsl -->
   <p>
+    <xsl:call-template name="id.attribute"/>
     <xsl:call-template name="locale.html.attributes"/>
     <xsl:if test="@role and $para.propagates.style != 0">
       <xsl:apply-templates select="." mode="class.attribute">
 <xsl:template match="blockquote">
   <div>
     <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
     <xsl:call-template name="anchor"/>
 
     <xsl:choose>
 <xsl:template match="epigraph">
   <div>
     <xsl:call-template name="common.html.attributes"/>
-      <xsl:apply-templates select="para|simpara|formalpara|literallayout"/>
-      <xsl:if test="attribution">
-        <div class="attribution">
-          <span>&#x2014;<xsl:apply-templates select="attribution"/></span>
-        </div>
-      </xsl:if>
+    <xsl:call-template name="id.attribute"/>
+    <xsl:apply-templates select="para|simpara|formalpara|literallayout"/>
+    <xsl:if test="attribution">
+      <div class="attribution">
+        <span>&#x2014;<xsl:apply-templates select="attribution"/></span>
+      </div>
+    </xsl:if>
   </div>
 </xsl:template>
 
 <xsl:template match="attribution">
   <span>
     <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
     <xsl:apply-templates/>
   </span>
 </xsl:template>
 <xsl:template match="abstract|sidebar">
   <div>
     <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
     <xsl:call-template name="anchor"/>
     <xsl:call-template name="sidebar.titlepage"/>
     <xsl:apply-templates/>
 <xsl:template match="revhistory">
   <div>
     <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
     <table border="0" width="100%" summary="Revision history">
       <tr>
         <th align="{$direction.align.start}" valign="top" colspan="3">
index 556fe8465ac197932035e2759a8b30eb9fcae40d..2eb290415092080d70ba534c0f997f68b370aa85 100644 (file)
@@ -52,6 +52,7 @@
                         and $linenumbering.extension != '0'">
           <div>
             <xsl:call-template name="common.html.attributes"/>
+            <xsl:call-template name="id.attribute"/>
             <xsl:call-template name="number.rtf.lines">
               <xsl:with-param name="rtf" select="$rtf-with-callouts"/>
               <xsl:with-param name="pi.context"
@@ -63,6 +64,7 @@
         <xsl:otherwise>
           <div>
             <xsl:call-template name="common.html.attributes"/>
+            <xsl:call-template name="id.attribute"/>
             <xsl:copy-of select="$rtf-with-callouts"/>
             <xsl:apply-templates select="calloutlist"/>
           </div>
@@ -72,6 +74,7 @@
     <xsl:otherwise>
       <div>
         <xsl:apply-templates select="." mode="common.html.attributes"/>
+        <xsl:call-template name="id.attribute"/>
         <xsl:apply-templates/>
       </div>
     </xsl:otherwise>
     <xsl:when test="$target">
       <a>
         <xsl:apply-templates select="." mode="common.html.attributes"/>
-        <xsl:if test="@id or @xml:id">
-          <xsl:attribute name="name">
-            <xsl:value-of select="(@id|@xml:id)[1]"/>
-          </xsl:attribute>
-        </xsl:if>
+        <xsl:choose>
+          <xsl:when test="$generate.id.attributes = 0">
+            <xsl:if test="@id or @xml:id">
+              <xsl:attribute name="name">
+                <xsl:value-of select="(@id|@xml:id)[1]"/>
+              </xsl:attribute>
+            </xsl:if>
+          </xsl:when>
+          <xsl:otherwise>
+            <xsl:call-template name="id.attribute"/>
+          </xsl:otherwise>
+        </xsl:choose>
         <xsl:attribute name="href">
           <xsl:call-template name="href.target">
             <xsl:with-param name="object" select="$target"/>
       </a>
     </xsl:when>
     <xsl:otherwise>
+      <xsl:call-template name="id.attribute"/>
       <xsl:call-template name="anchor"/>
       <xsl:apply-templates select="." mode="callout-bug"/>
     </xsl:otherwise>
index fb8980ab78a1feb91585b558f21601ba01f368d7..1c1088b604e4269b219b120fade6f6f4eb5bb875 100644 (file)
 
   <xsl:element name="h{$level+1}">
     <xsl:attribute name="class">title</xsl:attribute>
-    <xsl:if test="$generate.id.attributes = 0">
-      <xsl:call-template name="anchor">
-       <xsl:with-param name="node" select="$node"/>
-       <xsl:with-param name="conditional" select="0"/>
-      </xsl:call-template>
-    </xsl:if>
-      <xsl:apply-templates select="$node" mode="object.title.markup">
+    <xsl:call-template name="id.attribute"/>
+    <xsl:call-template name="anchor">
+      <xsl:with-param name="node" select="$node"/>
+      <xsl:with-param name="conditional" select="0"/>
+    </xsl:call-template>
+    <xsl:apply-templates select="$node" mode="object.title.markup">
       <xsl:with-param name="allow-anchors" select="1"/>
     </xsl:apply-templates>
   </xsl:element>
@@ -62,6 +61,7 @@
 
   <xsl:if test="$subtitle">
     <h3 class="subtitle">
+      <xsl:call-template name="id.attribute"/>
       <i>
         <xsl:apply-templates select="$node" mode="object.subtitle.markup"/>
       </i>
@@ -81,6 +81,9 @@
     <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="dedication.titlepage"/>
     <xsl:apply-templates/>
     <xsl:call-template name="process.footnotes"/>
     <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="acknowledgements.titlepage"/>
     <xsl:apply-templates/>
     <xsl:call-template name="process.footnotes"/>
     <xsl:call-template name="common.html.attributes">
       <xsl:with-param name="inherit" select="1"/>
     </xsl:call-template>
-    <xsl:if test="$generate.id.attributes != 0">
-      <xsl:attribute name="id">
-        <xsl:call-template name="object.id"/>
-      </xsl:attribute>
-    </xsl:if>
+    <xsl:call-template name="id.attribute">
+      <xsl:with-param name="conditional" select="0"/>
+    </xsl:call-template>
 
     <xsl:call-template name="component.separator"/>
     <xsl:call-template name="component.title"/>
     <xsl:call-template name="common.html.attributes">
       <xsl:with-param name="inherit" select="1"/>
     </xsl:call-template>
-    <xsl:if test="$generate.id.attributes != 0">
-      <xsl:attribute name="id">
-        <xsl:call-template name="object.id"/>
-      </xsl:attribute>
-    </xsl:if>
+    <xsl:call-template name="id.attribute">
+      <xsl:with-param name="conditional" select="0"/>
+    </xsl:call-template>
 
     <xsl:call-template name="component.separator"/>
     <xsl:call-template name="preface.titlepage"/>
     <xsl:call-template name="common.html.attributes">
       <xsl:with-param name="inherit" select="1"/>
     </xsl:call-template>
-    <xsl:if test="$generate.id.attributes != 0">
-      <xsl:attribute name="id">
-        <xsl:call-template name="object.id"/>
-      </xsl:attribute>
-    </xsl:if>
+    <xsl:call-template name="id.attribute">
+      <xsl:with-param name="conditional" select="0"/>
+    </xsl:call-template>
 
     <xsl:call-template name="component.separator"/>
     <xsl:call-template name="chapter.titlepage"/>
     <xsl:call-template name="common.html.attributes">
       <xsl:with-param name="inherit" select="1"/>
     </xsl:call-template>
-    <xsl:if test="$generate.id.attributes != 0">
-      <xsl:attribute name="id">
-        <xsl:call-template name="object.id"/>
-      </xsl:attribute>
-    </xsl:if>
+    <xsl:call-template name="id.attribute">
+      <xsl:with-param name="conditional" select="0"/>
+    </xsl:call-template>
 
     <xsl:choose>
       <xsl:when test="parent::article and $ischunk = 0">
     <xsl:call-template name="common.html.attributes">
       <xsl:with-param name="inherit" select="1"/>
     </xsl:call-template>
-    <xsl:if test="$generate.id.attributes != 0">
-      <xsl:attribute name="id">
-        <xsl:call-template name="object.id"/>
-      </xsl:attribute>
-    </xsl:if>
+    <xsl:call-template name="id.attribute">
+      <xsl:with-param name="conditional" select="0"/>
+    </xsl:call-template>
 
     <xsl:call-template name="article.titlepage"/>
 
     <xsl:call-template name="common.html.attributes">
       <xsl:with-param name="inherit" select="1"/>
     </xsl:call-template>
-    <xsl:if test="$generate.id.attributes != 0">
-      <xsl:attribute name="id">
-        <xsl:call-template name="object.id"/>
-      </xsl:attribute>
-    </xsl:if>
+    <xsl:call-template name="id.attribute">
+      <xsl:with-param name="conditional" select="0"/>
+    </xsl:call-template>
 
     <xsl:call-template name="topic.titlepage"/>
 
index 7dc8e1b78281ff9243238d5a70865c9df0b0a630..78a167486a4e3cc04d3e81dc71923b9a0eaf595a 100644 (file)
@@ -19,6 +19,9 @@
 
   <div>
     <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute">
+      <xsl:with-param name="conditional" select="0"/>
+    </xsl:call-template>
     <xsl:call-template name="dir">
       <xsl:with-param name="inherit" select="1"/>
     </xsl:call-template>
 
   <div>
     <xsl:apply-templates select="." mode="common.html.attributes"/>
-    <xsl:if test="$generate.id.attributes != 0">
-      <xsl:attribute name="id">
-        <xsl:call-template name="object.id"/>
-      </xsl:attribute>
-    </xsl:if>
+    <xsl:call-template name="id.attribute">
+      <xsl:with-param name="conditional" select="0"/>
+    </xsl:call-template>
 
     <xsl:call-template name="book.titlepage"/>
 
 
   <div>
     <xsl:apply-templates select="." mode="common.html.attributes"/>
-    <xsl:if test="$generate.id.attributes != 0">
-      <xsl:attribute name="id">
-        <xsl:call-template name="object.id"/>
-      </xsl:attribute>
-    </xsl:if>
+    <xsl:call-template name="id.attribute">
+      <xsl:with-param name="conditional" select="0"/>
+    </xsl:call-template>
 
     <xsl:call-template name="part.titlepage"/>
 
 
   <div>
     <xsl:call-template name="common.html.attributes"/>
-    <xsl:if test="$generate.id.attributes != 0">
-      <xsl:attribute name="id">
-        <xsl:call-template name="object.id"/>
-      </xsl:attribute>
-    </xsl:if>
+    <xsl:call-template name="id.attribute">
+      <xsl:with-param name="conditional" select="0"/>
+    </xsl:call-template>
 
     <xsl:call-template name="partintro.titlepage"/>
     <xsl:apply-templates/>
 
   <h1>
     <xsl:attribute name="class">title</xsl:attribute>
-    <xsl:if test="$generate.id.attributes = 0">
-      <xsl:call-template name="anchor">
-       <xsl:with-param name="node" select="$node"/>
-       <xsl:with-param name="conditional" select="0"/>
-      </xsl:call-template>
-    </xsl:if>
-      <xsl:apply-templates select="$node" mode="object.title.markup">
+    <xsl:call-template name="id.attribute">
+      <xsl:with-param name="node" select="$node"/>
+      <xsl:with-param name="conditional" select="0"/>
+    </xsl:call-template>
+    <xsl:call-template name="anchor">
+      <xsl:with-param name="node" select="$node"/>
+      <xsl:with-param name="conditional" select="0"/>
+    </xsl:call-template>
+    <xsl:apply-templates select="$node" mode="object.title.markup">
       <xsl:with-param name="allow-anchors" select="1"/>
     </xsl:apply-templates>
   </h1>
index e70e44c403d079a206241d12bccaf5ae1fd4857e..a451218e59af370162f50ac0eae5a9ca2a612441 100644 (file)
@@ -123,6 +123,7 @@ to be incomplete. Don't forget to read the source, too :-)</para>
           </a>
         </xsl:when>
         <xsl:otherwise>
+          <xsl:call-template name="id.attribute"/>
           <xsl:call-template name="anchor"/>
           <xsl:apply-templates select="lhs"/>
         </xsl:otherwise>
@@ -315,6 +316,7 @@ to be incomplete. Don't forget to read the source, too :-)</para>
 <xsl:template match="constraintdef">
   <div>
     <xsl:apply-templates select="." mode="class.attribute"/>
+    <xsl:call-template name="id.attribute"/>
     <xsl:call-template name="anchor"/>
     <xsl:apply-templates/>
   </div>
index d00c91ec9c0f62297b88582d5a16b909e401809a..46243c52d6241adca7a7888b576f7303d8cd14ab 100644 (file)
 
      ******************************************************************** -->
 
+<!-- This template generates just the footnote marker inline.
+The footnote text is handled in name="process.footnote".
+The footnote marker gets an id of @id, while the
+footnote text gets an id of #ftn.@id. They cross link to each other. -->
 <xsl:template match="footnote">
-  <xsl:variable name="name">
-    <xsl:call-template name="object.id"/>
-  </xsl:variable>
   <xsl:variable name="href">
     <xsl:text>#ftn.</xsl:text>
-    <xsl:call-template name="object.id"/>
+    <xsl:call-template name="object.id">
+      <xsl:with-param name="conditional" select="0"/>
+    </xsl:call-template>
   </xsl:variable>
 
-  <xsl:choose>
-    <xsl:when test="ancestor::table or ancestor::informaltable">
-      <a name="{$name}" href="{$href}">
-        <xsl:apply-templates select="." mode="class.attribute"/>
-        <sup>
-          <xsl:text>[</xsl:text>
-          <xsl:apply-templates select="." mode="footnote.number"/>
-          <xsl:text>]</xsl:text>
-        </sup>
-      </a>
-    </xsl:when>
-    <xsl:otherwise>
-      <a name="{$name}" href="{$href}">
-        <xsl:apply-templates select="." mode="class.attribute"/>
-        <sup>
-          <xsl:text>[</xsl:text>
-          <xsl:apply-templates select="." mode="footnote.number"/>
-          <xsl:text>]</xsl:text>
-        </sup>
-      </a>
-    </xsl:otherwise>
-  </xsl:choose>
+  <a href="{$href}">
+    <xsl:apply-templates select="." mode="class.attribute"/>
+    <sup>
+      <xsl:apply-templates select="." mode="class.attribute"/>
+      <xsl:call-template name="id.attribute"/>
+      <xsl:call-template name="anchor"/>
+      <xsl:text>[</xsl:text>
+      <xsl:apply-templates select="." mode="footnote.number"/>
+      <xsl:text>]</xsl:text>
+    </sup>
+  </a>
 </xsl:template>
 
 <xsl:template match="footnoteref">
@@ -74,7 +66,9 @@ linkend/id: <xsl:value-of select="@linkend"/>
 
   <a href="{$href}">
     <xsl:apply-templates select="." mode="class.attribute"/>
+    <xsl:call-template name="id.attribute"/>
     <sup>
+      <xsl:apply-templates select="." mode="class.attribute"/>
       <xsl:text>[</xsl:text>
       <xsl:apply-templates select="$footnote" mode="footnote.number"/>
       <xsl:text>]</xsl:text>
@@ -125,12 +119,6 @@ linkend/id: <xsl:value-of select="@linkend"/>
 <xsl:template match="footnote/para[1]|footnote/simpara[1]" priority="2">
   <!-- this only works if the first thing in a footnote is a para, -->
   <!-- which is ok, because it usually is. -->
-  <xsl:variable name="name">
-    <xsl:text>ftn.</xsl:text>
-    <xsl:call-template name="object.id">
-      <xsl:with-param name="object" select="ancestor::footnote"/>
-    </xsl:call-template>
-  </xsl:variable>
   <xsl:variable name="href">
     <xsl:text>#</xsl:text>
     <xsl:call-template name="object.id">
@@ -145,9 +133,10 @@ linkend/id: <xsl:value-of select="@linkend"/>
       </xsl:if>
     </xsl:with-param>
     <xsl:with-param name="content">
-      <a id="{$name}" href="{$href}">
+      <a href="{$href}">
         <xsl:apply-templates select="." mode="class.attribute"/>
         <sup>
+          <xsl:apply-templates select="." mode="class.attribute"/>
           <xsl:text>[</xsl:text>
           <xsl:apply-templates select="ancestor::footnote" mode="footnote.number"/>
           <xsl:text>] </xsl:text>
@@ -175,8 +164,20 @@ linkend/id: <xsl:value-of select="@linkend"/>
     </xsl:call-template>
   </xsl:variable>
   <xsl:variable name="footnote.mark">
-    <a name="{$name}" href="{$href}">
+    <a href="{$href}">
       <xsl:apply-templates select="." mode="class.attribute"/>
+      <xsl:choose>
+        <xsl:when test="$generate.id.attributes = 0">
+          <xsl:if test="@id or @xml:id">
+            <xsl:attribute name="name">
+              <xsl:value-of select="@id|@xml:id"/>
+            </xsl:attribute>
+          </xsl:if>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:call-template name="id.attribute"/>
+        </xsl:otherwise>
+      </xsl:choose>
       <sup>
         <xsl:text>[</xsl:text>
         <xsl:apply-templates select="ancestor::footnote"
@@ -270,9 +271,16 @@ linkend/id: <xsl:value-of select="@linkend"/>
 </xsl:template>
 
 <xsl:template match="footnote" name="process.footnote" mode="process.footnote.mode">
+  <xsl:variable name="id">
+    <xsl:text>#ftn.</xsl:text>
+    <xsl:call-template name="object.id">
+      <xsl:with-param name="conditional" select="0"/>
+    </xsl:call-template>
+  </xsl:variable>
+
   <xsl:choose>
     <xsl:when test="local-name(*[1]) = 'para' or local-name(*[1]) = 'simpara'">
-      <div>
+      <div id="{$id}">
         <xsl:call-template name="common.html.attributes"/>
         <xsl:apply-templates/>
       </div>
@@ -280,8 +288,9 @@ linkend/id: <xsl:value-of select="@linkend"/>
 
     <xsl:when test="$html.cleanup != 0 and 
                     $exsl.node.set.available != 0">
-      <div>
+      <div id="{$id}">
         <xsl:call-template name="common.html.attributes"/>
+        <xsl:call-template name="id.attribute"/>
         <xsl:apply-templates select="*[1]" mode="footnote.body.number"/>
         <xsl:apply-templates select="*[position() &gt; 1]"/>
       </div>
@@ -294,8 +303,9 @@ linkend/id: <xsl:value-of select="@linkend"/>
         <xsl:value-of select="local-name(*[1])"/>
         <xsl:text> unexpected as first child of footnote.</xsl:text>
       </xsl:message>
-      <div>
+      <div id="{$id}">
         <xsl:call-template name="common.html.attributes"/>
+        <xsl:call-template name="id.attribute"/>
         <xsl:apply-templates/>
       </div>
     </xsl:otherwise>
index 17f775bd9a064b1ea6505a38c32925010e701ed0..d16541d51f6edff18c3b51ccb702a9b82f45f482 100644 (file)
@@ -24,6 +24,9 @@
 
   <xsl:variable name="content">
     <div class="{$class}">
+      <xsl:call-template name="id.attribute">
+        <xsl:with-param name="conditional" select="0"/>
+      </xsl:call-template>
       <xsl:call-template name="anchor">
         <xsl:with-param name="conditional" select="0"/>
       </xsl:call-template>
 
   <xsl:variable name="content">
     <div class="{$class}">
+      <xsl:call-template name="id.attribute"/>
       <xsl:if test="$spacing.paras != 0"><p/></xsl:if>
       <xsl:call-template name="anchor"/>
       <xsl:apply-templates/>
 
   <xsl:variable name="content">
     <div class="{$class}">
+      <xsl:call-template name="id.attribute">
+        <xsl:with-param name="conditional" select="0"/>
+      </xsl:call-template>
       <xsl:call-template name="anchor">
         <xsl:with-param name="conditional" select="0"/>
       </xsl:call-template>
index 5bdd7b7f96a02d2aa68726b92ebd696c4e9354cf..8e5bfd470308b8d4f763ca81ec3f599b5f6acc1c 100644 (file)
 
   <div>
     <xsl:apply-templates select="." mode="common.html.attributes"/>
-    <xsl:if test="$generate.id.attributes != 0">
-      <xsl:attribute name="id">
-        <xsl:call-template name="object.id"/>
-      </xsl:attribute>
-    </xsl:if>
+    <xsl:call-template name="id.attribute">
+      <xsl:with-param name="conditional" select="0"/>
+    </xsl:call-template>
 
     <xsl:call-template name="glossary.titlepage"/>
 
@@ -87,6 +85,7 @@
   &setup-language-variable;
   <div>
     <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
     <xsl:call-template name="anchor"/>
     <xsl:if test="blockinfo/title|info/title|title">
       <xsl:call-template name="formal.object.heading"/>
 
   <div>
     <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute">
+      <xsl:with-param name="conditional" select="0"/>
+    </xsl:call-template>
     <xsl:apply-templates select="(glossentry[1]/preceding-sibling::*)"/>
 
     <dl>
@@ -154,6 +156,14 @@ GlossEntry ::=
   <xsl:choose>
     <xsl:when test="$glossentry.show.acronym = 'primary'">
       <dt>
+        <xsl:call-template name="id.attribute">
+          <xsl:with-param name="conditional">
+            <xsl:choose>
+              <xsl:when test="$glossterm.auto.link != 0">0</xsl:when>
+              <xsl:otherwise>1</xsl:otherwise>
+            </xsl:choose>
+          </xsl:with-param>
+        </xsl:call-template>
         <xsl:call-template name="anchor">
           <xsl:with-param name="conditional">
             <xsl:choose>
@@ -178,6 +188,14 @@ GlossEntry ::=
     </xsl:when>
     <xsl:when test="$glossentry.show.acronym = 'yes'">
       <dt>
+        <xsl:call-template name="id.attribute">
+          <xsl:with-param name="conditional">
+            <xsl:choose>
+              <xsl:when test="$glossterm.auto.link != 0">0</xsl:when>
+              <xsl:otherwise>1</xsl:otherwise>
+            </xsl:choose>
+          </xsl:with-param>
+        </xsl:call-template>
         <xsl:call-template name="anchor">
           <xsl:with-param name="conditional">
             <xsl:choose>
@@ -198,6 +216,14 @@ GlossEntry ::=
     </xsl:when>
     <xsl:otherwise>
       <dt>
+        <xsl:call-template name="id.attribute">
+          <xsl:with-param name="conditional">
+            <xsl:choose>
+              <xsl:when test="$glossterm.auto.link != 0">0</xsl:when>
+              <xsl:otherwise>1</xsl:otherwise>
+            </xsl:choose>
+          </xsl:with-param>
+        </xsl:call-template>
         <xsl:call-template name="anchor">
           <xsl:with-param name="conditional">
             <xsl:choose>
@@ -253,6 +279,7 @@ GlossEntry ::=
           <xsl:when test="$target">
             <a>
               <xsl:apply-templates select="." mode="common.html.attributes"/>
+              <xsl:call-template name="id.attribute"/>
               <xsl:attribute name="href">
                 <xsl:call-template name="href.target">
                   <xsl:with-param name="object" select="$target"/>
@@ -322,6 +349,7 @@ GlossEntry ::=
     <xsl:when test="$target">
       <a>
         <xsl:apply-templates select="." mode="common.html.attributes"/>
+        <xsl:call-template name="id.attribute"/>
         <xsl:attribute name="href">
           <xsl:call-template name="href.target">
             <xsl:with-param name="object" select="$target"/>
@@ -390,11 +418,9 @@ GlossEntry ::=
 
   <div>
     <xsl:apply-templates select="." mode="common.html.attributes"/>
-    <xsl:if test="$generate.id.attributes != 0">
-      <xsl:attribute name="id">
-        <xsl:call-template name="object.id"/>
-      </xsl:attribute>
-    </xsl:if>
+    <xsl:call-template name="id.attribute">
+      <xsl:with-param name="conditional" select="0"/>
+    </xsl:call-template>
 
     <xsl:call-template name="glossary.titlepage"/>
 
@@ -461,6 +487,9 @@ GlossEntry ::=
 
   <div>
     <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute">
+      <xsl:with-param name="conditional" select="0"/>
+    </xsl:call-template>
     <xsl:apply-templates select="(glossentry[1]/preceding-sibling::*)"/>
 
     <dl>
index cf957c549e742b37fc38b5323991b34ee13855a8..f8bc792fb72242b48e60a616e3ada6849c728065 100644 (file)
@@ -76,6 +76,7 @@
 <xsl:template match="screenshot">
   <div>
     <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
     <xsl:apply-templates/>
   </div>
 </xsl:template>
@@ -1056,11 +1057,15 @@ valign: <xsl:value-of select="@valign"/></xsl:message>
 <xsl:template match="graphic">
   <xsl:choose>
     <xsl:when test="parent::inlineequation">
-      <xsl:call-template name="anchor"/>
-      <xsl:call-template name="process.image"/>
+      <span>
+        <xsl:call-template name="id.attribute"/>
+        <xsl:call-template name="anchor"/>
+        <xsl:call-template name="process.image"/>
+      </span>
     </xsl:when>
     <xsl:otherwise>
       <div>
+        <xsl:call-template name="id.attribute"/>
         <xsl:if test="@align">
           <xsl:attribute name="align">
             <xsl:value-of select="@align"/>
@@ -1148,6 +1153,7 @@ valign: <xsl:value-of select="@valign"/></xsl:message>
         <xsl:value-of select="$align"/>
       </xsl:attribute>
     </xsl:if>
+    <xsl:call-template name="id.attribute"/>
     <xsl:call-template name="anchor"/>
 
     <xsl:apply-templates select="$object"/>
@@ -1158,6 +1164,7 @@ valign: <xsl:value-of select="@valign"/></xsl:message>
 <xsl:template match="inlinemediaobject">
   <span>
     <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
     <xsl:call-template name="anchor"/>
     <xsl:call-template name="select.mediaobject"/>
   </span>
@@ -1492,6 +1499,7 @@ valign: <xsl:value-of select="@valign"/></xsl:message>
 <xsl:template match="caption">
   <div>
     <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
     <xsl:if test="@align = 'right' or @align = 'left' or @align='center'">
       <xsl:attribute name="align"><xsl:value-of
                          select="@align"/></xsl:attribute>
index 02626ad5476b3e3bafb6341e8bd53dd31c556f98..81c664365c699dc3895ceed87a968f3e79beb1c9 100644 (file)
 <xsl:template name="anchor">
   <xsl:param name="node" select="."/>
   <xsl:param name="conditional" select="1"/>
-  <xsl:variable name="id">
-    <xsl:call-template name="object.id">
-      <xsl:with-param name="object" select="$node"/>
-    </xsl:call-template>
-  </xsl:variable>
-  <xsl:if test="$conditional = 0 or $node/@id or $node/@xml:id">
-    <a name="{$id}"/>
-  </xsl:if>
+
+  <xsl:choose>
+    <xsl:when test="$generate.id.attributes != 0">
+      <!-- No named anchors output when this param is set -->
+    </xsl:when>
+    <xsl:when test="$conditional = 0 or $node/@id or $node/@xml:id">
+      <a>
+        <xsl:attribute name="name">
+          <xsl:call-template name="object.id">
+            <xsl:with-param name="object" select="$node"/>
+          </xsl:call-template>
+        </xsl:attribute>
+      </a>
+    </xsl:when>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template name="id.attribute">
+  <xsl:param name="node" select="."/>
+  <xsl:param name="conditional" select="1"/>
+  <xsl:choose>
+    <xsl:when test="$generate.id.attributes = 0">
+      <!-- No id attributes when this param is zero -->
+    </xsl:when>
+    <xsl:when test="$conditional = 0 or $node/@id or $node/@xml:id">
+      <xsl:attribute name="id">
+        <xsl:call-template name="object.id">
+          <xsl:with-param name="object" select="$node"/>
+        </xsl:call-template>
+      </xsl:attribute>
+    </xsl:when>
+  </xsl:choose>
 </xsl:template>
 
 <xsl:template name="href.target.uri">
index 98a9988d63ebe8bc1b9e2452c1a5256d2de406a7..7dbea50906fb9cc7dd9aa5fcfa10cc2c4a532c02 100644 (file)
   <xsl:if test="count(*)>0 or $generate.index != '0'">
     <div>
       <xsl:apply-templates select="." mode="common.html.attributes"/>
-      <xsl:if test="$generate.id.attributes != 0">
-        <xsl:attribute name="id">
-          <xsl:call-template name="object.id"/>
-        </xsl:attribute>
-      </xsl:if>
+      <xsl:call-template name="id.attribute">
+        <xsl:with-param name="conditional" select="0"/>
+      </xsl:call-template>
 
       <xsl:call-template name="index.titlepage"/>
       <xsl:choose>
   <xsl:if test="count(*)>0 or $generate.index != '0'">
     <div>
       <xsl:apply-templates select="." mode="common.html.attributes"/>
-      <xsl:if test="$generate.id.attributes != 0">
-        <xsl:attribute name="id">
-          <xsl:call-template name="object.id"/>
-        </xsl:attribute>
-      </xsl:if>
+      <xsl:call-template name="id.attribute">
+        <xsl:with-param name="conditional" select="0"/>
+      </xsl:call-template>
 
       <xsl:call-template name="setindex.titlepage"/>
       <xsl:apply-templates/>
 
   <div>
     <xsl:apply-templates select="." mode="common.html.attributes"/>
-    <xsl:if test="$generate.id.attributes != 0">
-      <xsl:attribute name="id">
-        <xsl:call-template name="object.id"/>
-      </xsl:attribute>
-    </xsl:if>
-
+    <xsl:call-template name="id.attribute"/>
     <xsl:call-template name="anchor"/>
     <xsl:apply-templates select="*[not(self::indexentry)]"/>
     <dl>
index 492b5dae9a1bd7f31c80888e03ce5102a253dfa2..0179ceac31b3b0b5ca4df829eb9e492f353ec671 100644 (file)
@@ -25,6 +25,7 @@
 <xsl:template match="corpauthor">
   <span>
     <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
     <xsl:apply-templates/>
   </span>
 </xsl:template>
@@ -34,6 +35,7 @@
 <xsl:template match="jobtitle">
   <span>
     <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
     <xsl:apply-templates/>
   </span>
 </xsl:template>
index c8c3562a56cf2b27f8ba1185dfb2588ca6e98ff8..7453fa2072f8e43981182392a9a42af42d7c98b9 100644 (file)
               <xsl:otherwise>
                 <a>
                   <xsl:apply-templates select="." mode="common.html.attributes"/>
+                  <xsl:call-template name="id.attribute"/>
 
                   <xsl:attribute name="href">
                     <xsl:call-template name="href.target">
           <xsl:otherwise>
             <a>
               <xsl:apply-templates select="." mode="common.html.attributes"/>
+              <xsl:call-template name="id.attribute"/>
               <xsl:attribute name="href">
                 <xsl:value-of select="$xhref"/>
               </xsl:attribute>
 
         <a>
           <xsl:apply-templates select="." mode="common.html.attributes"/>
+          <xsl:call-template name="id.attribute"/>
           <xsl:attribute name="href">
             <xsl:call-template name="href.target">
               <xsl:with-param name="object" select="$target"/>
     <xsl:attribute name="class">
       <xsl:value-of select="local-name(.)"/>
     </xsl:attribute>
+    <xsl:call-template name="id.attribute"/>
     <xsl:call-template name="dir"/>
     <xsl:call-template name="generate.html.title"/>
     <xsl:copy-of select="$content"/>
   </xsl:param>
   <code>
     <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
     <xsl:copy-of select="$content"/>
     <xsl:call-template name="apply-annotations"/>
   </code>
 
   <span>
     <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
 
     <!-- don't put <strong> inside figure, example, or table titles -->
     <xsl:choose>
   </xsl:param>
   <em>
     <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
     <xsl:copy-of select="$content"/>
     <xsl:call-template name="apply-annotations"/>
   </em>
                          or local-name(../..) = 'formalpara')">
       <code>
         <xsl:call-template name="common.html.attributes"/>
+        <xsl:call-template name="id.attribute"/>
         <xsl:copy-of select="$content"/>
         <xsl:call-template name="apply-annotations"/>
       </code>
     <xsl:otherwise>
       <strong>
         <xsl:call-template name="common.html.attributes"/>
+        <xsl:call-template name="id.attribute"/>
         <code>
           <xsl:call-template name="generate.html.title"/>
           <xsl:call-template name="dir"/>
   </xsl:param>
   <em>
     <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
     <code>
       <xsl:call-template name="generate.html.title"/>
       <xsl:call-template name="dir"/>
   </xsl:param>
   <sup>
     <xsl:call-template name="generate.html.title"/>
+    <xsl:call-template name="id.attribute"/>
     <xsl:call-template name="dir"/>
     <xsl:copy-of select="$content"/>
     <xsl:call-template name="apply-annotations"/>
   </xsl:param>
   <sub>
     <xsl:call-template name="generate.html.title"/>
+    <xsl:call-template name="id.attribute"/>
     <xsl:call-template name="dir"/>
     <xsl:copy-of select="$content"/>
     <xsl:call-template name="apply-annotations"/>
 
   <span>
     <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
     <xsl:copy-of select="$content"/>
   </span>
 </xsl:template>
 
   <span>
     <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
     <xsl:copy-of select="$content"/>
   </span>
 </xsl:template>
 
   <span>
     <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
     <xsl:copy-of select="$content"/>
   </span>
 </xsl:template>
 
 <xsl:template match="emphasis">
   <span>
+    <xsl:call-template name="id.attribute"/>
     <xsl:choose>
       <!-- We don't want empty @class values, so do not propagate empty @roles -->
       <xsl:when test="@role  and
 
 <xsl:template match="phrase">
   <span>
+    <xsl:call-template name="id.attribute"/>
     <xsl:call-template name="locale.html.attributes"/>
     <!-- We don't want empty @class values, so do not propagate empty @roles -->
     <xsl:choose>
       </xsl:if>
       <a>
         <xsl:apply-templates select="." mode="common.html.attributes"/>
+        <xsl:call-template name="id.attribute"/>
         <xsl:attribute name="href">
           <xsl:text>mailto:</xsl:text>
           <xsl:value-of select="."/>
 
         <xsl:choose>
           <xsl:when test="$bibliography.numbered != 0">
+            <xsl:call-template name="id.attribute"/>
             <xsl:apply-templates select="$target" mode="citation"/>
           </xsl:when>
           <xsl:otherwise>
 
   <span>
     <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
     <xsl:copy-of select="$content"/>
   </span>
 </xsl:template>
 
   <span>
     <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
     <xsl:copy-of select="$content"/>
   </span>
 </xsl:template>
 
   <span>
     <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
     <xsl:copy-of select="$content"/>
   </span>
 </xsl:template>
 
   <span>
     <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
     <xsl:copy-of select="$content"/>
   </span>
 </xsl:template>
 
   <span>
     <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
     <xsl:copy-of select="$content"/>
   </span>
 </xsl:template>
index 90c47b8628275b08912a68f428e8be337d80d4d1..a1a2157656eb975a7df4c972bd23000ae33bd0b4 100644 (file)
@@ -26,6 +26,7 @@
   
   <div>
     <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
     <xsl:call-template name="anchor"/>
     <xsl:if test="title">
       <xsl:call-template name="formal.object.heading"/>
@@ -89,6 +90,7 @@
 
   <li>
     <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
     <xsl:if test="$css.decoration = '1' and $cssmark != ''">
       <xsl:attribute name="style">
         <xsl:text>list-style-type: </xsl:text>
 
   <div>
     <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
     <xsl:call-template name="anchor"/>
 
     <xsl:if test="title">
           </xsl:call-template>
           <colgroup>
             <col align="{$direction.align.start}" valign="top"/>
+            <col/>
           </colgroup>
           <tbody>
             <xsl:apply-templates 
 <xsl:template match="orderedlist/listitem">
   <li>
     <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
     <xsl:if test="@override">
       <xsl:attribute name="value">
         <xsl:value-of select="@override"/>
     </td>
     <td>
       <xsl:if test="local-name(child::*[1]) != 'para'">
+        <xsl:call-template name="id.attribute"/>
         <xsl:call-template name="anchor"/>
       </xsl:if>
 
 
   <div>
     <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
     <xsl:call-template name="anchor"/>
     <xsl:if test="title">
       <xsl:call-template name="formal.object.heading"/>
                 </xsl:attribute>
               </xsl:if>
             </col>
+            <col/>
           </colgroup>
           <tbody>
             <xsl:apply-templates mode="varlist-table"
     </xsl:when>
     <xsl:otherwise>
       <p>
+        <xsl:call-template name="id.attribute"/>
         <xsl:choose>
           <xsl:when test="@role and $para.propagates.style != 0">
             <xsl:call-template name="common.html.attributes">
 
 <xsl:template match="varlistentry">
   <dt>
+    <xsl:call-template name="id.attribute"/>
     <xsl:call-template name="anchor"/>
     <xsl:apply-templates select="term"/>
   </dt>
     </xsl:call-template>
 
     <td>
+      <xsl:call-template name="id.attribute"/>
       <p>
       <xsl:call-template name="anchor"/>
       <xsl:choose>
 <xsl:template match="varlistentry/term">
   <span>
     <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
     <xsl:call-template name="anchor"/>
     <xsl:call-template name="simple.xlink">
       <xsl:with-param name="content">
   <xsl:call-template name="anchor"/>
   <table border="0" summary="Simple list">
     <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
     <xsl:call-template name="simplelist.vert">
       <xsl:with-param name="cols">
         <xsl:choose>
 <xsl:template match="simplelist[@type='inline']">
   <span>
     <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
     <!-- if dbchoice PI exists, use that to determine the choice separator -->
     <!-- (that is, equivalent of "and" or "or" in current locale), or literal -->
     <!-- value of "choice" otherwise -->
   <xsl:call-template name="anchor"/>
   <table border="0" summary="Simple list">
     <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
     <xsl:call-template name="simplelist.horiz">
       <xsl:with-param name="cols">
         <xsl:choose>
   <xsl:call-template name="anchor"/>
   <table border="0" summary="Simple list">
     <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
     <xsl:call-template name="simplelist.vert">
       <xsl:with-param name="cols">
         <xsl:choose>
 
   <div>
     <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute">
+      <xsl:with-param name="conditional">
+        <xsl:choose>
+          <xsl:when test="title">0</xsl:when>
+          <xsl:otherwise>1</xsl:otherwise>
+        </xsl:choose>
+      </xsl:with-param>
+    </xsl:call-template>
     <xsl:call-template name="anchor">
       <xsl:with-param name="conditional">
         <xsl:choose>
 
   <ol type="{$numeration}">
     <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
     <xsl:apply-templates/>
   </ol>
 </xsl:template>
 <xsl:template match="step">
   <li>
     <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
     <xsl:call-template name="anchor"/>
     <xsl:apply-templates/>
   </li>
   <xsl:call-template name="anchor"/>
   <ul>
     <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
     <xsl:apply-templates/>
   </ul>
 </xsl:template>
 
   <div>
     <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
     <xsl:call-template name="anchor"/>
 
     <xsl:choose>
 <xsl:template match="seglistitem">
   <div>
     <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
     <xsl:call-template name="anchor"/>
     <xsl:apply-templates/>
   </div>
 
   <div>
     <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
     <strong>
       <span class="segtitle">
         <xsl:apply-templates select="$segtitles[$segnum=position()]"
 
   <tr>
     <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
     <xsl:call-template name="tr.attributes">
       <xsl:with-param name="rownum" select="$seglinum + 1"/>
     </xsl:call-template>
 <xsl:template match="seg" mode="seglist-table">
   <td>
     <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
     <xsl:apply-templates/>
   </td>
 </xsl:template>
 <xsl:template match="seg[1]" mode="seglist-table">
   <td>
     <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
     <xsl:call-template name="anchor">
       <xsl:with-param name="node" select="ancestor::seglistitem"/>
     </xsl:call-template>
 <xsl:template match="calloutlist">
   <div>
     <xsl:call-template name="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
     <xsl:call-template name="anchor"/>
     <xsl:if test="title|info/title">
       <xsl:call-template name="formal.object.heading"/>
         </xsl:call-template>
 
         <td width="5%" valign="top" align="{$direction.align.start}">
+          <xsl:call-template name="id.attribute"/>
           <p>
             <xsl:call-template name="anchor"/>
             <xsl:call-template name="callout.arearefs">
     </xsl:when>
     <xsl:otherwise>
       <dt>
+        <xsl:call-template name="id.attribute"/>
         <xsl:call-template name="anchor"/>
         <xsl:call-template name="callout.arearefs">
           <xsl:with-param name="arearefs" select="@arearefs"/>
     </xsl:when>
     <xsl:otherwise>
       <p>
+        <xsl:call-template name="id.attribute"/>
         <xsl:if test="@role and $para.propagates.style != 0">
           <xsl:choose>
             <xsl:when test="@role and $para.propagates.style != 0">
index 2c3dfdd04a95f90de575875ebf14009710509db1..2d2ec2cbdb35761f5ef09ad9929f83f5695fde26 100644 (file)
@@ -24,6 +24,7 @@
 <xsl:template match="mathphrase">
   <span>
     <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
     <xsl:apply-templates/>
   </span>
 </xsl:template>
index a4e9eea7d8b942c2f204892606dc605478e1d6ea..13e6f09a3e2699a871480054a64f51ca739c551e 100644 (file)
 
   <div>
     <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute">
+      <xsl:with-param name="conditional" select="0"/>
+    </xsl:call-template>
     <xsl:apply-templates select="$title"/>
     <xsl:if test="not($title)">
-      <!-- id is output on title if there is one -->
+      <!-- andhor is output on title if there is one -->
       <xsl:call-template name="anchor">
         <xsl:with-param name="conditional" select="0"/>
       </xsl:call-template>
 
   <xsl:element name="h{string(number($qalevel)+1)}">
     <xsl:apply-templates select="." mode="class.attribute"/>
+    <xsl:call-template name="id.attribute">
+      <xsl:with-param name="node" select=".."/>
+      <xsl:with-param name="conditional" select="0"/>
+    </xsl:call-template>
     <xsl:call-template name="anchor">
       <xsl:with-param name="node" select=".."/>
       <xsl:with-param name="conditional" select="0"/>
 
   <tr>
     <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <!-- capture the id of the  quandaentry -->
+    <xsl:call-template name="id.attribute">
+      <xsl:with-param name="node" select=".."/>
+      <xsl:with-param name="conditional" select="0"/>
+    </xsl:call-template>
     <td align="{$direction.align.start}" valign="top">
+      <!-- and the id of the question too -->
+      <xsl:call-template name="id.attribute">
+        <xsl:with-param name="conditional" select="0"/>
+      </xsl:call-template>
       <xsl:call-template name="anchor">
         <xsl:with-param name="node" select=".."/>
         <xsl:with-param name="conditional" select="0"/>
 
   <tr>
     <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
     <td align="{$direction.align.start}" valign="top">
       <xsl:call-template name="anchor"/>
       <xsl:variable name="answer.label">
index 223b2c2f2d05973a09cd477a9fbb8f199adf834e..2c7ede9357860bd894658f6d2f7e786746b42670 100644 (file)
     <xsl:call-template name="common.html.attributes">
       <xsl:with-param name="inherit" select="1"/>
     </xsl:call-template>
-    <xsl:if test="$generate.id.attributes != 0">
-      <xsl:attribute name="id">
-        <xsl:call-template name="object.id"/>
-      </xsl:attribute>
-    </xsl:if>
+    <xsl:call-template name="id.attribute">
+      <xsl:with-param name="conditional" select="0"/>
+    </xsl:call-template>
 
     <xsl:call-template name="reference.titlepage"/>
 
@@ -88,6 +86,9 @@
     <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:if test="$refentry.separator != 0 and preceding-sibling::refentry">
       <div class="refentry.separator">
         <hr/>
     <xsl:call-template name="common.html.attributes">
       <xsl:with-param name="inherit" select="1"/>
     </xsl:call-template>
+    <xsl:call-template name="id.attribute"/>
     <xsl:call-template name="anchor"/>
 
     <xsl:choose>
     <xsl:call-template name="common.html.attributes">
       <xsl:with-param name="inherit" select="1"/>
     </xsl:call-template>
+    <xsl:call-template name="id.attribute"/>
     <xsl:call-template name="anchor"/>
     <h2>
       <xsl:choose>
     <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="anchor">
       <xsl:with-param name="conditional" select="0"/>
     </xsl:call-template>
index dc3c16dbb28d637abb8c7f5f7671aff4e06c2da0..e6b0e789a0ff70b1cc22d1e1139b201b9952ffb0 100644 (file)
@@ -23,6 +23,9 @@
     <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="section.titlepage"/>
 
     <xsl:variable name="toc.params">
     <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:choose>
       <xsl:when test="@renderas = 'sect2'">
     <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:choose>
       <xsl:when test="@renderas = 'sect1'">
     <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:choose>
       <xsl:when test="@renderas = 'sect1'">
     <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:choose>
       <xsl:when test="@renderas = 'sect1'">
     <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:choose>
       <xsl:when test="@renderas = 'sect1'">
     <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="simplesect.titlepage"/>
     <xsl:apply-templates/>
         <xsl:attribute name="style">clear: both</xsl:attribute>
       </xsl:if>
     </xsl:if>
-    <xsl:if test="$allow-anchors != 0 and $generate.id.attributes = 0">
+    <xsl:if test="$allow-anchors != 0">
+      <xsl:call-template name="id.attribute">
+        <xsl:with-param name="node" select="$section"/>
+        <xsl:with-param name="conditional" select="0"/>
+      </xsl:call-template>
       <xsl:call-template name="anchor">
         <xsl:with-param name="node" select="$section"/>
         <xsl:with-param name="conditional" select="0"/>
   </xsl:variable>
 
   <xsl:element name="h{$hlevel}">
+    <xsl:call-template name="id.attribute">
+      <xsl:with-param name="conditional" select="0"/>
+    </xsl:call-template>
     <xsl:call-template name="anchor">
       <xsl:with-param name="conditional" select="0"/>
     </xsl:call-template>
index b20e7e9791291333fd01189bc5acd01b61fa203d..bb78badc2276d7290a5ad1baf306c90d28b7fe0f 100644 (file)
@@ -25,6 +25,9 @@
   <div>
     <xsl:apply-templates select="." mode="common.html.attributes"/>
     <p>
+      <xsl:call-template name="id.attribute">
+        <xsl:with-param name="conditional" select="0"/>
+      </xsl:call-template>
       <xsl:if test="..//processing-instruction('dbcmdlist')">
         <!-- * Placing a dbcmdlist PI as a child of a particular element -->
         <!-- * creates a hyperlinked list of all cmdsynopsis instances -->
     <!-- * a descendant of an element containing a dbfunclist PI, we need -->
     <!-- * to output an a@id instance so that we will have something to -->
     <!-- * link to -->
+    <span>
+      <xsl:call-template name="id.attribute">
+        <xsl:with-param name="conditional" select="0"/>
+      </xsl:call-template>
+    </span>
     <xsl:call-template name="anchor">
       <xsl:with-param name="conditional" select="0"/>
     </xsl:call-template>
 <xsl:template match="funcsynopsisinfo">
   <pre>
     <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
     <xsl:apply-templates/>
   </pre>
 </xsl:template>
@@ -262,6 +271,7 @@ paramdef      ::= (#PCDATA|type|replaceable|parameter|funcparams)*
 <xsl:template match="funcdef" mode="kr-nontabular">
   <code>
     <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
     <xsl:apply-templates mode="kr-nontabular"/>
     <xsl:text>(</xsl:text>
   </code>
@@ -377,6 +387,7 @@ paramdef      ::= (#PCDATA|type|replaceable|parameter|funcparams)*
 <xsl:template match="funcdef" mode="kr-tabular">
   <code>
     <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
     <xsl:apply-templates mode="kr-tabular"/>
     <xsl:text>(</xsl:text>
   </code>
@@ -543,6 +554,7 @@ paramdef      ::= (#PCDATA|type|replaceable|parameter|funcparams)*
 <xsl:template match="funcdef" mode="ansi-nontabular">
   <code>
     <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
     <xsl:apply-templates mode="ansi-nontabular"/>
     <xsl:text>(</xsl:text>
   </code>
@@ -630,6 +642,7 @@ paramdef      ::= (#PCDATA|type|replaceable|parameter|funcparams)*
 <xsl:template match="funcdef" mode="ansi-tabular">
   <code>
     <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
     <xsl:apply-templates mode="ansi-tabular"/>
     <xsl:text>(</xsl:text>
   </code>
@@ -763,6 +776,7 @@ paramdef      ::= (#PCDATA|type|replaceable|parameter|funcparams)*
 <xsl:template match="classsynopsis" mode="java">
   <pre>
     <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
     <xsl:apply-templates select="ooclass[1]" mode="java"/>
     <xsl:if test="ooclass[preceding-sibling::*]">
       <xsl:text> extends</xsl:text>
@@ -810,6 +824,7 @@ paramdef      ::= (#PCDATA|type|replaceable|parameter|funcparams)*
   </xsl:choose>
   <span>
     <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
     <xsl:apply-templates mode="java"/>
   </span>
 </xsl:template>
@@ -817,6 +832,7 @@ paramdef      ::= (#PCDATA|type|replaceable|parameter|funcparams)*
 <xsl:template match="modifier|package" mode="java">
   <span>
     <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
     <xsl:apply-templates mode="java"/>
     <xsl:if test="following-sibling::*">
       <xsl:text>&nbsp;</xsl:text>
@@ -830,6 +846,7 @@ paramdef      ::= (#PCDATA|type|replaceable|parameter|funcparams)*
   </xsl:if>
   <span>
     <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
     <xsl:apply-templates mode="java"/>
   </span>
 </xsl:template>
@@ -840,6 +857,7 @@ paramdef      ::= (#PCDATA|type|replaceable|parameter|funcparams)*
   </xsl:if>
   <span>
     <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
     <xsl:apply-templates mode="java"/>
   </span>
 </xsl:template>
@@ -850,6 +868,7 @@ paramdef      ::= (#PCDATA|type|replaceable|parameter|funcparams)*
   </xsl:if>
   <span>
     <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
     <xsl:apply-templates mode="java"/>
   </span>
 </xsl:template>
@@ -857,6 +876,7 @@ paramdef      ::= (#PCDATA|type|replaceable|parameter|funcparams)*
 <xsl:template match="fieldsynopsis" mode="java">
   <code>
     <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
     <xsl:if test="parent::classsynopsis">
       <xsl:text>&nbsp;&nbsp;</xsl:text>
     </xsl:if>
@@ -869,6 +889,7 @@ paramdef      ::= (#PCDATA|type|replaceable|parameter|funcparams)*
 <xsl:template match="type" mode="java">
   <span>
     <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
     <xsl:apply-templates mode="java"/>
     <xsl:text>&nbsp;</xsl:text>
   </span>
@@ -877,6 +898,7 @@ paramdef      ::= (#PCDATA|type|replaceable|parameter|funcparams)*
 <xsl:template match="varname" mode="java">
   <span>
     <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
     <xsl:apply-templates mode="java"/>
     <xsl:text>&nbsp;</xsl:text>
   </span>
@@ -885,6 +907,7 @@ paramdef      ::= (#PCDATA|type|replaceable|parameter|funcparams)*
 <xsl:template match="initializer" mode="java">
   <span>
     <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
     <xsl:text>=&nbsp;</xsl:text>
     <xsl:apply-templates mode="java"/>
   </span>
@@ -893,6 +916,7 @@ paramdef      ::= (#PCDATA|type|replaceable|parameter|funcparams)*
 <xsl:template match="void" mode="java">
   <span>
     <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
     <xsl:text>void&nbsp;</xsl:text>
   </span>
 </xsl:template>
@@ -900,6 +924,7 @@ paramdef      ::= (#PCDATA|type|replaceable|parameter|funcparams)*
 <xsl:template match="methodname" mode="java">
   <span>
     <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
     <xsl:apply-templates mode="java"/>
   </span>
 </xsl:template>
@@ -918,6 +943,7 @@ paramdef      ::= (#PCDATA|type|replaceable|parameter|funcparams)*
   </xsl:if>
   <span>
     <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
     <xsl:apply-templates mode="java"/>
   </span>
 </xsl:template>
@@ -925,6 +951,7 @@ paramdef      ::= (#PCDATA|type|replaceable|parameter|funcparams)*
 <xsl:template match="parameter" mode="java">
   <span>
     <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
     <xsl:apply-templates mode="java"/>
   </span>
 </xsl:template>
@@ -950,6 +977,7 @@ paramdef      ::= (#PCDATA|type|replaceable|parameter|funcparams)*
 
   <code>
     <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
     <xsl:copy-of select="$decl"/>
     <xsl:text>(</xsl:text>
     <xsl:apply-templates select="methodparam" mode="java">
@@ -975,6 +1003,7 @@ paramdef      ::= (#PCDATA|type|replaceable|parameter|funcparams)*
 <xsl:template match="classsynopsis" mode="cpp">
   <pre>
     <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
     <xsl:apply-templates select="ooclass[1]" mode="cpp"/>
     <xsl:if test="ooclass[preceding-sibling::*]">
       <xsl:text>: </xsl:text>
@@ -1017,6 +1046,7 @@ paramdef      ::= (#PCDATA|type|replaceable|parameter|funcparams)*
   </xsl:if>
   <span>
     <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
     <xsl:apply-templates mode="cpp"/>
   </span>
 </xsl:template>
@@ -1024,6 +1054,7 @@ paramdef      ::= (#PCDATA|type|replaceable|parameter|funcparams)*
 <xsl:template match="modifier|package" mode="cpp">
   <span>
     <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
     <xsl:apply-templates mode="cpp"/>
     <xsl:if test="following-sibling::*">
       <xsl:text>&nbsp;</xsl:text>
@@ -1037,6 +1068,7 @@ paramdef      ::= (#PCDATA|type|replaceable|parameter|funcparams)*
   </xsl:if>
   <span>
     <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
     <xsl:apply-templates mode="cpp"/>
   </span>
 </xsl:template>
@@ -1047,6 +1079,7 @@ paramdef      ::= (#PCDATA|type|replaceable|parameter|funcparams)*
   </xsl:if>
   <span>
     <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
     <xsl:apply-templates mode="cpp"/>
   </span>
 </xsl:template>
@@ -1057,6 +1090,7 @@ paramdef      ::= (#PCDATA|type|replaceable|parameter|funcparams)*
   </xsl:if>
   <span>
     <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
     <xsl:apply-templates mode="cpp"/>
   </span>
 </xsl:template>
@@ -1064,6 +1098,7 @@ paramdef      ::= (#PCDATA|type|replaceable|parameter|funcparams)*
 <xsl:template match="fieldsynopsis" mode="cpp">
   <code>
     <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
     <xsl:if test="parent::classsynopsis">
       <xsl:text>&nbsp;&nbsp;</xsl:text>
     </xsl:if>
@@ -1076,6 +1111,7 @@ paramdef      ::= (#PCDATA|type|replaceable|parameter|funcparams)*
 <xsl:template match="type" mode="cpp">
   <span>
     <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
     <xsl:apply-templates mode="cpp"/>
     <xsl:text>&nbsp;</xsl:text>
   </span>
@@ -1084,6 +1120,7 @@ paramdef      ::= (#PCDATA|type|replaceable|parameter|funcparams)*
 <xsl:template match="varname" mode="cpp">
   <span>
     <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
     <xsl:apply-templates mode="cpp"/>
     <xsl:text>&nbsp;</xsl:text>
   </span>
@@ -1092,6 +1129,7 @@ paramdef      ::= (#PCDATA|type|replaceable|parameter|funcparams)*
 <xsl:template match="initializer" mode="cpp">
   <span>
     <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
     <xsl:text>=&nbsp;</xsl:text>
     <xsl:apply-templates mode="cpp"/>
   </span>
@@ -1100,6 +1138,7 @@ paramdef      ::= (#PCDATA|type|replaceable|parameter|funcparams)*
 <xsl:template match="void" mode="cpp">
   <span>
     <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
     <xsl:text>void&nbsp;</xsl:text>
   </span>
 </xsl:template>
@@ -1107,6 +1146,7 @@ paramdef      ::= (#PCDATA|type|replaceable|parameter|funcparams)*
 <xsl:template match="methodname" mode="cpp">
   <span>
     <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
     <xsl:apply-templates mode="cpp"/>
   </span>
 </xsl:template>
@@ -1117,6 +1157,7 @@ paramdef      ::= (#PCDATA|type|replaceable|parameter|funcparams)*
   </xsl:if>
   <span>
     <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
     <xsl:apply-templates mode="cpp"/>
   </span>
 </xsl:template>
@@ -1124,6 +1165,7 @@ paramdef      ::= (#PCDATA|type|replaceable|parameter|funcparams)*
 <xsl:template match="parameter" mode="cpp">
   <span>
     <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
     <xsl:apply-templates mode="cpp"/>
   </span>
 </xsl:template>
@@ -1136,6 +1178,7 @@ paramdef      ::= (#PCDATA|type|replaceable|parameter|funcparams)*
 
   <code>
     <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
     <xsl:if test="parent::classsynopsis">
       <xsl:text>&nbsp;&nbsp;</xsl:text>
     </xsl:if>
@@ -1169,6 +1212,7 @@ paramdef      ::= (#PCDATA|type|replaceable|parameter|funcparams)*
 <xsl:template match="classsynopsis" mode="idl">
   <pre>
     <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
     <xsl:text>interface </xsl:text>
     <xsl:apply-templates select="ooclass[1]" mode="idl"/>
     <xsl:if test="ooclass[preceding-sibling::*]">
@@ -1212,6 +1256,7 @@ paramdef      ::= (#PCDATA|type|replaceable|parameter|funcparams)*
   </xsl:if>
   <span>
     <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
     <xsl:apply-templates mode="idl"/>
   </span>
 </xsl:template>
@@ -1219,6 +1264,7 @@ paramdef      ::= (#PCDATA|type|replaceable|parameter|funcparams)*
 <xsl:template match="modifier|package" mode="idl">
   <span>
     <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
     <xsl:apply-templates mode="idl"/>
     <xsl:if test="following-sibling::*">
       <xsl:text>&nbsp;</xsl:text>
@@ -1232,6 +1278,7 @@ paramdef      ::= (#PCDATA|type|replaceable|parameter|funcparams)*
   </xsl:if>
   <span>
     <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
     <xsl:apply-templates mode="idl"/>
   </span>
 </xsl:template>
@@ -1242,6 +1289,7 @@ paramdef      ::= (#PCDATA|type|replaceable|parameter|funcparams)*
   </xsl:if>
   <span>
     <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
     <xsl:apply-templates mode="idl"/>
   </span>
 </xsl:template>
@@ -1252,6 +1300,7 @@ paramdef      ::= (#PCDATA|type|replaceable|parameter|funcparams)*
   </xsl:if>
   <span>
     <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
     <xsl:apply-templates mode="idl"/>
   </span>
 </xsl:template>
@@ -1259,6 +1308,7 @@ paramdef      ::= (#PCDATA|type|replaceable|parameter|funcparams)*
 <xsl:template match="fieldsynopsis" mode="idl">
   <code>
     <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
     <xsl:if test="parent::classsynopsis">
       <xsl:text>&nbsp;&nbsp;</xsl:text>
     </xsl:if>
@@ -1271,6 +1321,7 @@ paramdef      ::= (#PCDATA|type|replaceable|parameter|funcparams)*
 <xsl:template match="type" mode="idl">
   <span>
     <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
     <xsl:apply-templates mode="idl"/>
     <xsl:text>&nbsp;</xsl:text>
   </span>
@@ -1279,6 +1330,7 @@ paramdef      ::= (#PCDATA|type|replaceable|parameter|funcparams)*
 <xsl:template match="varname" mode="idl">
   <span>
     <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
     <xsl:apply-templates mode="idl"/>
     <xsl:text>&nbsp;</xsl:text>
   </span>
@@ -1287,6 +1339,7 @@ paramdef      ::= (#PCDATA|type|replaceable|parameter|funcparams)*
 <xsl:template match="initializer" mode="idl">
   <span>
     <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
     <xsl:text>=&nbsp;</xsl:text>
     <xsl:apply-templates mode="idl"/>
   </span>
@@ -1295,6 +1348,7 @@ paramdef      ::= (#PCDATA|type|replaceable|parameter|funcparams)*
 <xsl:template match="void" mode="idl">
   <span>
     <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
     <xsl:text>void&nbsp;</xsl:text>
   </span>
 </xsl:template>
@@ -1302,6 +1356,7 @@ paramdef      ::= (#PCDATA|type|replaceable|parameter|funcparams)*
 <xsl:template match="methodname" mode="idl">
   <span>
     <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
     <xsl:apply-templates mode="idl"/>
   </span>
 </xsl:template>
@@ -1312,6 +1367,7 @@ paramdef      ::= (#PCDATA|type|replaceable|parameter|funcparams)*
   </xsl:if>
   <span>
     <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
     <xsl:apply-templates mode="idl"/>
   </span>
 </xsl:template>
@@ -1319,6 +1375,7 @@ paramdef      ::= (#PCDATA|type|replaceable|parameter|funcparams)*
 <xsl:template match="parameter" mode="idl">
   <span>
     <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
     <xsl:apply-templates mode="idl"/>
   </span>
 </xsl:template>
@@ -1330,6 +1387,7 @@ paramdef      ::= (#PCDATA|type|replaceable|parameter|funcparams)*
   <xsl:variable name="end-modifiers" select="modifier[preceding-sibling::*[local-name(.) != 'modifier']]"/>
   <code>
     <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
     <xsl:if test="parent::classsynopsis">
       <xsl:text>&nbsp;&nbsp;</xsl:text>
     </xsl:if>
@@ -1364,6 +1422,7 @@ paramdef      ::= (#PCDATA|type|replaceable|parameter|funcparams)*
 <xsl:template match="classsynopsis" mode="perl">
   <pre>
     <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
     <xsl:text>package </xsl:text>
     <xsl:apply-templates select="ooclass[1]" mode="perl"/>
     <xsl:text>;</xsl:text>
@@ -1394,6 +1453,7 @@ paramdef      ::= (#PCDATA|type|replaceable|parameter|funcparams)*
   </xsl:if>
   <span>
     <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
     <xsl:apply-templates mode="perl"/>
   </span>
 </xsl:template>
@@ -1401,6 +1461,7 @@ paramdef      ::= (#PCDATA|type|replaceable|parameter|funcparams)*
 <xsl:template match="modifier|package" mode="perl">
   <span>
     <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
     <xsl:apply-templates mode="perl"/>
     <xsl:if test="following-sibling::*">
       <xsl:text>&nbsp;</xsl:text>
@@ -1414,6 +1475,7 @@ paramdef      ::= (#PCDATA|type|replaceable|parameter|funcparams)*
   </xsl:if>
   <span>
     <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
     <xsl:apply-templates mode="perl"/>
   </span>
 </xsl:template>
@@ -1424,6 +1486,7 @@ paramdef      ::= (#PCDATA|type|replaceable|parameter|funcparams)*
   </xsl:if>
   <span>
     <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
     <xsl:apply-templates mode="perl"/>
   </span>
 </xsl:template>
@@ -1434,6 +1497,7 @@ paramdef      ::= (#PCDATA|type|replaceable|parameter|funcparams)*
   </xsl:if>
   <span>
     <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
     <xsl:apply-templates mode="perl"/>
   </span>
 </xsl:template>
@@ -1441,6 +1505,7 @@ paramdef      ::= (#PCDATA|type|replaceable|parameter|funcparams)*
 <xsl:template match="fieldsynopsis" mode="perl">
   <code>
     <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
     <xsl:if test="parent::classsynopsis">
       <xsl:text>&nbsp;&nbsp;</xsl:text>
     </xsl:if>
@@ -1453,6 +1518,7 @@ paramdef      ::= (#PCDATA|type|replaceable|parameter|funcparams)*
 <xsl:template match="type" mode="perl">
   <span>
     <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
     <xsl:apply-templates mode="perl"/>
     <xsl:text>&nbsp;</xsl:text>
   </span>
@@ -1461,6 +1527,7 @@ paramdef      ::= (#PCDATA|type|replaceable|parameter|funcparams)*
 <xsl:template match="varname" mode="perl">
   <span>
     <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
     <xsl:apply-templates mode="perl"/>
     <xsl:text>&nbsp;</xsl:text>
   </span>
@@ -1469,6 +1536,7 @@ paramdef      ::= (#PCDATA|type|replaceable|parameter|funcparams)*
 <xsl:template match="initializer" mode="perl">
   <span>
     <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
     <xsl:text>=&nbsp;</xsl:text>
     <xsl:apply-templates mode="perl"/>
   </span>
@@ -1477,6 +1545,7 @@ paramdef      ::= (#PCDATA|type|replaceable|parameter|funcparams)*
 <xsl:template match="void" mode="perl">
   <span>
     <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
     <xsl:text>void&nbsp;</xsl:text>
   </span>
 </xsl:template>
@@ -1484,6 +1553,7 @@ paramdef      ::= (#PCDATA|type|replaceable|parameter|funcparams)*
 <xsl:template match="methodname" mode="perl">
   <span>
     <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
     <xsl:apply-templates mode="perl"/>
   </span>
 </xsl:template>
@@ -1494,6 +1564,7 @@ paramdef      ::= (#PCDATA|type|replaceable|parameter|funcparams)*
   </xsl:if>
   <span>
     <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
     <xsl:apply-templates mode="perl"/>
   </span>
 </xsl:template>
@@ -1501,6 +1572,7 @@ paramdef      ::= (#PCDATA|type|replaceable|parameter|funcparams)*
 <xsl:template match="parameter" mode="perl">
   <span>
     <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
     <xsl:apply-templates mode="perl"/>
   </span>
 </xsl:template>
@@ -1513,6 +1585,7 @@ paramdef      ::= (#PCDATA|type|replaceable|parameter|funcparams)*
 
   <code>
     <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
     <xsl:text>sub </xsl:text>
 
     <xsl:apply-templates select="methodname" mode="perl"/>
index 82b38fc31391931681b4079e4e3e7d1c91b25505..af7c42571dcea44f530f2cab584bc6956a91187e 100644 (file)
   </xsl:variable>
 
   <tr>
+    <xsl:call-template name="id.attribute"/>
     <xsl:call-template name="tr.attributes">
       <xsl:with-param name="rownum">
         <xsl:number from="tgroup" count="row"/>
       </xsl:variable>
 
       <xsl:element name="{$cellgi}">
+        <xsl:call-template name="id.attribute"/>
         <xsl:if test="$bgcolor != ''">
           <xsl:attribute name="bgcolor">
             <xsl:value-of select="$bgcolor"/>
index 40c258dc729efafed5bdb1848068e67c236df9b2..3524adbf48dd96b5a17be112929b8138c7b12983 100644 (file)
@@ -37,6 +37,7 @@
 
   <div>
     <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
     <xsl:call-template name="anchor"/>
 
     <xsl:if test="title and $placement = 'before'">
index 4faca8bd5ea2d2fc9caf10aec69fe450ac2e934e..eb6529f4039c3fb42e49816548ab9009872c0d1f 100644 (file)
 <xsl:template match="abbrev" mode="titlepage.mode">
   <span>
     <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
     <xsl:apply-templates mode="titlepage.mode"/>
     <br/>
   </span>
 <xsl:template match="abstract" mode="titlepage.mode">
   <div>
     <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
     <xsl:call-template name="anchor"/>
     <xsl:if test="$abstract.notitle.enabled = 0">
       <xsl:call-template name="formal.object.heading">
 <xsl:template match="affiliation" mode="titlepage.mode">
   <div>
     <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
     <xsl:apply-templates mode="titlepage.mode"/>
   </div>
 </xsl:template>
 <xsl:template match="artpagenums" mode="titlepage.mode">
   <span>
     <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
     <xsl:apply-templates mode="titlepage.mode"/>
     <br/>
   </span>
 <xsl:template name="credits.div">
   <div>
     <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
     <xsl:if test="self::editor[position()=1] and not($editedby.enabled = 0)">
       <h4 class="editedby"><xsl:call-template name="gentext.edited.by"/></h4>
     </xsl:if>
 <xsl:template match="authorblurb|personblurb" mode="titlepage.mode">
   <div>
     <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
     <xsl:apply-templates mode="titlepage.mode"/>
   </div>
 </xsl:template>
 <xsl:template match="authorgroup" mode="titlepage.mode">
   <div>
     <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
     <xsl:if test="parent::refentryinfo">
       <h2>Authors</h2>
     </xsl:if>
 <xsl:template match="authorinitials" mode="titlepage.mode">
   <span>
     <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
     <xsl:apply-templates mode="titlepage.mode"/>
     <br/>
   </span>
 <xsl:template match="collab" mode="titlepage.mode">
   <span>
     <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
     <xsl:apply-templates mode="titlepage.mode"/>
     <br/>
   </span>
 <xsl:template match="collabname" mode="titlepage.mode">
   <span>
     <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
     <xsl:apply-templates mode="titlepage.mode"/>
   </span>
 </xsl:template>
 <xsl:template match="confgroup" mode="titlepage.mode">
   <div>
     <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
     <xsl:apply-templates mode="titlepage.mode"/>
   </div>
 </xsl:template>
 <xsl:template match="confdates" mode="titlepage.mode">
   <span>
     <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
     <xsl:apply-templates mode="titlepage.mode"/>
     <br/>
   </span>
 <xsl:template match="confsponsor" mode="titlepage.mode">
   <span>
     <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
     <xsl:apply-templates mode="titlepage.mode"/>
     <br/>
   </span>
 <xsl:template match="conftitle" mode="titlepage.mode">
   <span>
     <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
     <xsl:apply-templates mode="titlepage.mode"/>
     <br/>
   </span>
 <xsl:template match="contractnum" mode="titlepage.mode">
   <span>
     <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
     <xsl:apply-templates mode="titlepage.mode"/>
     <br/>
   </span>
 <xsl:template match="contractsponsor" mode="titlepage.mode">
   <span>
     <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
     <xsl:apply-templates mode="titlepage.mode"/>
     <br/>
   </span>
     <xsl:when test="not($contrib.inline.enabled = 0)">
       <span>
         <xsl:apply-templates select="." mode="common.html.attributes"/>
+        <xsl:call-template name="id.attribute"/>
         <xsl:apply-templates mode="titlepage.mode"/>
       </span><xsl:text>&#160;</xsl:text>
     </xsl:when>
     <xsl:otherwise>
       <div>
         <xsl:apply-templates select="." mode="common.html.attributes"/>
+        <xsl:call-template name="id.attribute"/>
         <p><xsl:apply-templates mode="titlepage.mode"/></p>
       </div>
     </xsl:otherwise>
 
   <p>
     <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
     <xsl:call-template name="gentext">
       <xsl:with-param name="key" select="'Copyright'"/>
     </xsl:call-template>
 <xsl:template match="corpauthor" mode="titlepage.mode">
   <h3>
     <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
     <xsl:apply-templates mode="titlepage.mode"/>
   </h3>
 </xsl:template>
 <xsl:template match="corpcredit" mode="titlepage.mode">
   <span>
     <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
     <xsl:apply-templates mode="titlepage.mode"/>
     <br/>
   </span>
 <xsl:template match="corpname" mode="titlepage.mode">
   <span>
     <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
     <xsl:apply-templates mode="titlepage.mode"/>
     <br/>
   </span>
 <xsl:template match="date" mode="titlepage.mode">
   <span>
     <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
     <xsl:apply-templates mode="titlepage.mode"/>
     <br/>
   </span>
 <xsl:template match="edition" mode="titlepage.mode">
   <p>
     <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
     <xsl:apply-templates mode="titlepage.mode"/>
     <xsl:call-template name="gentext.space"/>
     <xsl:call-template name="gentext">
 <xsl:template match="firstname" mode="titlepage.mode">
   <span>
     <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
     <xsl:apply-templates mode="titlepage.mode"/>
     <br/>
   </span>
 <xsl:template match="honorific" mode="titlepage.mode">
   <span>
     <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
     <xsl:apply-templates mode="titlepage.mode"/>
     <br/>
   </span>
 <xsl:template match="isbn" mode="titlepage.mode">
   <span>
     <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
     <xsl:apply-templates mode="titlepage.mode"/>
     <br/>
   </span>
 <xsl:template match="issn" mode="titlepage.mode">
   <span>
     <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
     <xsl:apply-templates mode="titlepage.mode"/>
     <br/>
   </span>
 <xsl:template match="biblioid" mode="titlepage.mode">
   <span>
     <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
     <xsl:apply-templates mode="titlepage.mode"/>
     <br/>
   </span>
 <xsl:template match="invpartnumber" mode="titlepage.mode">
   <span>
     <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
     <xsl:apply-templates mode="titlepage.mode"/>
     <br/>
   </span>
 <xsl:template match="issuenum" mode="titlepage.mode">
   <span>
     <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
     <xsl:apply-templates mode="titlepage.mode"/>
     <br/>
   </span>
 <xsl:template match="jobtitle" mode="titlepage.mode">
   <span>
     <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
     <xsl:apply-templates mode="titlepage.mode"/>
     <br/>
   </span>
               <xsl:call-template name="body.attributes"/>
               <div>
                 <xsl:apply-templates select="." mode="common.html.attributes"/>
+                <xsl:call-template name="id.attribute">
+                  <xsl:with-param name="conditional" select="0"/>
+                </xsl:call-template>
                 <xsl:apply-templates mode="titlepage.mode"/>
               </div>
             </body>
     <xsl:otherwise>
       <div>
         <xsl:apply-templates select="." mode="common.html.attributes"/>
-        <a name="{$id}"/>
+        <xsl:call-template name="id.attribute">
+          <xsl:with-param name="conditional" select="0"/>
+        </xsl:call-template>
+        <xsl:call-template name="anchor">
+          <xsl:with-param name="conditional" select="0"/>
+        </xsl:call-template>
         <xsl:apply-templates mode="titlepage.mode"/>
       </div>
     </xsl:otherwise>
 <xsl:template match="lineage" mode="titlepage.mode">
   <span>
     <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
     <xsl:apply-templates mode="titlepage.mode"/>
     <br/>
   </span>
   </xsl:if>
   <span>
     <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
     <xsl:apply-templates mode="titlepage.mode"/>
     <br/>
   </span>
 <xsl:template match="orgname" mode="titlepage.mode">
   <span>
     <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
     <xsl:apply-templates mode="titlepage.mode"/>
     <br/>
   </span>
 <xsl:template match="othername" mode="titlepage.mode">
   <span>
     <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
     <xsl:apply-templates mode="titlepage.mode"/>
     <br/>
   </span>
 <xsl:template match="pagenums" mode="titlepage.mode">
   <span>
     <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
     <xsl:apply-templates mode="titlepage.mode"/>
     <br/>
   </span>
 <xsl:template match="printhistory" mode="titlepage.mode">
   <div>
     <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
     <xsl:apply-templates mode="titlepage.mode"/>
   </div>
 </xsl:template>
 <xsl:template match="productname" mode="titlepage.mode">
   <span>
     <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
     <xsl:apply-templates mode="titlepage.mode"/>
     <br/>
   </span>
 <xsl:template match="productnumber" mode="titlepage.mode">
   <span>
     <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
     <xsl:apply-templates mode="titlepage.mode"/>
     <br/>
   </span>
 <xsl:template match="publishername" mode="titlepage.mode">
   <span>
     <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
     <xsl:apply-templates mode="titlepage.mode"/>
     <br/>
   </span>
 <xsl:template match="pubsnumber" mode="titlepage.mode">
   <span>
     <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
     <xsl:apply-templates mode="titlepage.mode"/>
     <br/>
   </span>
   <xsl:variable name="contents">
     <div>
       <xsl:apply-templates select="." mode="common.html.attributes"/>
+      <xsl:call-template name="id.attribute"/>
       <table border="1" width="100%" summary="Revision history">
         <tr>
           <th align="{$direction.align.start}" valign="top" colspan="{$numcols}">
 <xsl:template match="seriesvolnums" mode="titlepage.mode">
   <span>
     <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
     <xsl:apply-templates mode="titlepage.mode"/>
     <br/>
   </span>
 <xsl:template match="shortaffil" mode="titlepage.mode">
   <span>
     <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
     <xsl:apply-templates mode="titlepage.mode"/>
     <br/>
   </span>
 <xsl:template match="subtitle" mode="titlepage.mode">
   <h2>
     <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
     <xsl:apply-templates mode="titlepage.mode"/>
   </h2>
 </xsl:template>
 <xsl:template match="surname" mode="titlepage.mode">
   <span>
     <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
     <xsl:apply-templates mode="titlepage.mode"/>
     <br/>
   </span>
 
   <h1>
     <xsl:apply-templates select="." mode="common.html.attributes"/>
-    <xsl:if test="$generate.id.attributes = 0">
-      <a name="{$id}"/>
-    </xsl:if>
+    <xsl:choose>
+      <xsl:when test="$generate.id.attributes = 0">
+        <a name="{$id}"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:attribute name="id">
+          <xsl:value-of select="$id"/>
+        </xsl:attribute>
+      </xsl:otherwise>
+    </xsl:choose>
     <xsl:choose>
       <xsl:when test="$show.revisionflag != 0 and @revisionflag">
        <span class="{@revisionflag}">
 <xsl:template match="volumenum" mode="titlepage.mode">
   <span>
     <xsl:apply-templates select="." mode="common.html.attributes"/>
+    <xsl:call-template name="id.attribute"/>
     <xsl:apply-templates mode="titlepage.mode"/>
     <br/>
   </span>
index 0b9059b32067147937a94f37e02511994535cd63..41d9733c4b56a8d68deadc6c79b73927d19a58ab 100644 (file)
@@ -83,6 +83,7 @@
       <xsl:when test="* and $process.source.toc != 0">
         <div>
           <xsl:apply-templates select="." mode="common.html.attributes"/>
+          <xsl:call-template name="id.attribute"/>
           <xsl:apply-templates select="title"/> 
           <dl>
             <xsl:apply-templates select="." mode="common.html.attributes"/>
       <xsl:when test="* and $process.source.toc != 0">
         <div>
           <xsl:apply-templates select="." mode="common.html.attributes"/>
+          <xsl:call-template name="id.attribute"/>
           <xsl:apply-templates select="title"/> 
           <dl>
             <xsl:apply-templates select="." mode="common.html.attributes"/>
index 00547b8706bb9996797e6bf194c13fff3d9a53cb..e4dda13d2f6a030d4f02514c598a0dc3e3299b64 100644 (file)
@@ -28,9 +28,6 @@
 
 <xsl:template match="programlisting|screen|synopsis">
   <xsl:param name="suppress-numbers" select="'0'"/>
-  <xsl:variable name="id">
-    <xsl:call-template name="object.id"/>
-  </xsl:variable>
 
   <xsl:call-template name="anchor"/>
 
@@ -65,6 +62,7 @@
       </xsl:variable>
       <xsl:element name="{$div.element}">
         <xsl:apply-templates select="." mode="common.html.attributes"/>
+        <xsl:call-template name="id.attribute"/>
         <xsl:if test="@width != ''">
           <xsl:attribute name="width">
             <xsl:value-of select="@width"/>
@@ -78,6 +76,7 @@
     <xsl:otherwise>
       <xsl:element name="{$div.element}">
         <xsl:apply-templates select="." mode="common.html.attributes"/>
+        <xsl:call-template name="id.attribute"/>
         <xsl:if test="@width != ''">
           <xsl:attribute name="width">
             <xsl:value-of select="@width"/>
         <xsl:when test="@class='monospaced'">
           <pre>
             <xsl:apply-templates select="." mode="common.html.attributes"/>
+            <xsl:call-template name="id.attribute"/>
             <xsl:call-template name="number.rtf.lines">
               <xsl:with-param name="rtf" select="$rtf"/>
             </xsl:call-template>
         <xsl:otherwise>
           <div>
             <xsl:apply-templates select="." mode="common.html.attributes"/>
+            <xsl:call-template name="id.attribute"/>
             <p>
               <xsl:call-template name="number.rtf.lines">
                 <xsl:with-param name="rtf" select="$rtf"/>
         <xsl:when test="@class='monospaced'">
           <pre>
             <xsl:apply-templates select="." mode="common.html.attributes"/>
+            <xsl:call-template name="id.attribute"/>
             <xsl:copy-of select="$rtf"/>
           </pre>
         </xsl:when>
         <xsl:otherwise>
           <div>
             <xsl:apply-templates select="." mode="common.html.attributes"/>
+            <xsl:call-template name="id.attribute"/>
             <p>
               <xsl:call-template name="make-verbatim">
                 <xsl:with-param name="rtf" select="$rtf"/>
                     and $linenumbering.extension != '0'">
       <div>
         <xsl:apply-templates select="." mode="common.html.attributes"/>
+        <xsl:call-template name="id.attribute"/>
         <p>
           <xsl:call-template name="number.rtf.lines">
             <xsl:with-param name="rtf" select="$rtf"/>
     <xsl:otherwise>
       <div>
         <xsl:apply-templates select="." mode="common.html.attributes"/>
+        <xsl:call-template name="id.attribute"/>
         <p>
           <xsl:call-template name="make-verbatim">
             <xsl:with-param name="rtf" select="$rtf"/>
index baaac26089369fbbd538eed01bf8bbd41d1c83b2..b23cb9f649c9d1bbb68ee7605d2d406a4967e9b1 100644 (file)
 <!-- ==================================================================== -->
 
 <xsl:template match="anchor">
-  <xsl:call-template name="anchor"/>
+  <xsl:choose>
+    <xsl:when test="$generate.id.attributes = 0">
+      <xsl:call-template name="anchor"/>
+    </xsl:when>
+    <xsl:otherwise>
+      <span>
+        <xsl:call-template name="id.attribute"/>
+      </span>
+    </xsl:otherwise>
+  </xsl:choose>
 </xsl:template>
 
 <!-- ==================================================================== -->
           </xsl:message>
           <a href="{$href}">
             <xsl:apply-templates select="." mode="common.html.attributes"/>
+            <xsl:call-template name="id.attribute"/>
             <xsl:text>???</xsl:text>
           </a>
         </xsl:when>
         <xsl:otherwise>
           <a href="{$href}">
             <xsl:apply-templates select="." mode="common.html.attributes"/>
+            <xsl:call-template name="id.attribute"/>
             <xsl:apply-templates select="$etarget" mode="endterm"/>
           </a>
         </xsl:otherwise>
     <a>
       <xsl:apply-templates select="." mode="common.html.attributes"/>
       <xsl:if test="@id or @xml:id">
-        <xsl:attribute name="name">
-          <xsl:value-of select="(@id|@xml:id)[1]"/>
-        </xsl:attribute>
+        <xsl:choose>
+          <xsl:when test="$generate.id.attributes = 0">
+            <xsl:attribute name="name">
+              <xsl:value-of select="(@id|@xml:id)[1]"/>
+            </xsl:attribute>
+          </xsl:when>
+          <xsl:otherwise>
+            <xsl:attribute name="id">
+              <xsl:value-of select="(@id|@xml:id)[1]"/>
+            </xsl:attribute>
+          </xsl:otherwise>
+        </xsl:choose>
       </xsl:if>
       <xsl:attribute name="href"><xsl:value-of select="$url"/></xsl:attribute>
       <xsl:if test="$ulink.target != ''">
         <xsl:when test="$href != ''">
           <a href="{$href}">
             <xsl:apply-templates select="." mode="common.html.attributes"/>
+            <xsl:call-template name="id.attribute"/>
             <xsl:copy-of select="$hottext"/>
           </a>
           <xsl:copy-of select="$olink.page.citation"/>
           <xsl:copy-of select="$olink.docname.citation"/>
         </xsl:when>
         <xsl:otherwise>
-          <span class="olink"><xsl:copy-of select="$hottext"/></span>
+          <span class="olink">
+            <xsl:call-template name="id.attribute"/>
+            <xsl:copy-of select="$hottext"/>
+          </span>
           <xsl:copy-of select="$olink.page.citation"/>
           <xsl:copy-of select="$olink.docname.citation"/>
         </xsl:otherwise>
         <xsl:when test="$href != ''">
           <a href="{$href}">
             <xsl:apply-templates select="." mode="common.html.attributes"/>
+            <xsl:call-template name="id.attribute"/>
             <xsl:call-template name="olink.hottext"/>
           </a>
         </xsl:when>