]> granicus.if.org Git - docbook-dsssl/commitdiff
add the actual xref.xsl
authorMartijn van Beers <lotr@users.sourceforge.net>
Tue, 30 Apr 2002 14:10:24 +0000 (14:10 +0000)
committerMartijn van Beers <lotr@users.sourceforge.net>
Tue, 30 Apr 2002 14:10:24 +0000 (14:10 +0000)
contrib/xsl/db2man/xref.xsl [new file with mode: 0644]

diff --git a/contrib/xsl/db2man/xref.xsl b/contrib/xsl/db2man/xref.xsl
new file mode 100644 (file)
index 0000000..df1c5a4
--- /dev/null
@@ -0,0 +1,36 @@
+<?xml version='1.0'?>
+<!-- vim:set sts=2 shiftwidth=2 syntax=sgml: -->
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                version='1.0'>
+
+<xsl:template match="xref">
+  <xsl:variable name="targets" select="id(@linkend)"/>
+  <xsl:variable name="target" select="$targets[1]"/>
+  <xsl:variable name="type" select="local-name($target)"/>
+
+  <xsl:choose>
+    <xsl:when test="$type=''">
+      <xsl:message>
+        <xsl:text>xref to nonexistent id </xsl:text>
+        <xsl:value-of select="@linkend"/>
+      </xsl:message>
+    </xsl:when>
+
+    <xsl:when test="$type='refentry'">
+      <xsl:call-template name="do-citerefentry">
+        <xsl:with-param name="refentrytitle"
+                        select="$target/refmeta/refentrytitle[1]"/>
+        <xsl:with-param name="manvolnum"
+                       select="$target/refmeta/manvolnum"/>
+      </xsl:call-template>
+    </xsl:when>
+
+    <xsl:otherwise>
+      <xsl:text>[xref to </xsl:text>
+      <xsl:value-of select="$type"/>
+      <xsl:text>]</xsl:text>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+</xsl:stylesheet>