Name — Use role attribute for xrefstyle on xref?


<xsl:param name="" select="1"></xsl:param>


If non-zero, the role attribute on xref will be used to select the cross reference style. The DocBook Technical Committee recently added an xrefstyle attribute for this purpose. If the xrefstyle attribute is present, role will be ignored, regardless of this setting.

Until an official DocBook release that includes the new attribute, this flag allows role to serve that purpose.


The following small stylesheet shows how to configure the stylesheets to make use of the cross reference style:

<?xml version="1.0"?>
<xsl:stylesheet xmlns:xsl=""

<xsl:import href="../xsl/html/docbook.xsl"/>

<xsl:output method="html"/>

<xsl:param name="local.l10n.xml" select="document('')"/>
<l:i18n xmlns:l="">
  <l:l10n xmlns:l="" language="en">
   <l:context name="xref">
      <l:template name="chapter" style="title" text="Chapter %n, %t"/>
      <l:template name="chapter" text="Chapter %n"/>


With this stylesheet, the cross references in the following document:

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
<book id="book"><title>Book</title>


<para>Normal: <xref linkend="ch1"/>.</para>
<para>Title: <xref xrefstyle="title" linkend="ch1"/>.</para>


<chapter id="ch1">
<title>First Chapter</title>



will appear as:

Normal: Chapter 1.

Title: Chapter 1, First Chapter.