common.xsl
branchstyles
changeset 0 08de8d15f932
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/common.xsl	Tue Dec 27 13:55:27 2005 -0500
@@ -0,0 +1,93 @@
+<?xml version="1.0"?>
+<xsl:stylesheet version="1.1"
+  xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+  xmlns:xt="http://www.jclark.com/xt"
+  extension-element-prefixes="xt">
+  
+<xsl:template name="get-id">    
+  <xsl:choose>
+    <xsl:when test="@id"><xsl:value-of select="@id"/></xsl:when>
+    <xsl:otherwise><xsl:value-of select="generate-id(.)"/></xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+<xsl:template name="parent-id">
+  <xsl:choose>
+    <xsl:when test="../@id"><xsl:value-of select="../@id"/></xsl:when>
+    <xsl:otherwise><xsl:value-of select="generate-id(..)"/></xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+<xsl:template name="next-id">
+  <xsl:choose>
+    <xsl:when test="following::*[1]/@id"><xsl:value-of select="following::*[1]/@id"/></xsl:when>
+    <xsl:otherwise><xsl:value-of select="generate-id(following::*[1])"/></xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+<xsl:template name="prec-id">
+  <xsl:choose>
+    <xsl:when test="preceding::*[1]/@id"><xsl:value-of select="preceding::*[1]/@id"/></xsl:when>
+    <xsl:otherwise><xsl:value-of select="generate-id(preceding::*[1])"/></xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+<xsl:template match="*" mode="fullname">
+  <xsl:call-template name="name"/>  
+</xsl:template>
+
+<!-- default docinfo processing -->
+<!-- normal is not process -->
+<xsl:template match="docinfo"/>
+
+<!-- copyright footer processing -->
+<xsl:template match="copyright">
+  © <xsl:apply-templates select="holder"/>
+  <xsl:text> </xsl:text>
+  <xsl:apply-templates select="year"/>
+</xsl:template>
+<xsl:template match="holder">
+  <xsl:call-template name="name"/>
+</xsl:template>
+<xsl:template match="year">
+  <xsl:apply-templates/>
+  <xsl:if test="position() != last()">
+    <xsl:text>, </xsl:text>
+  </xsl:if>
+</xsl:template>
+
+<!-- author processing -->
+<xsl:template match="author">
+  <xsl:call-template name="name"/> 
+</xsl:template>
+
+<!-- short representation -->
+<xsl:template match="para" mode="short">
+  <xsl:apply-templates/>  
+</xsl:template>
+<xsl:template match="list" mode="short">
+  <xsl:param name="ending">
+    <xsl:text>.</xsl:text>
+  </xsl:param>
+  <xsl:apply-templates mode="short">
+    <xsl:with-param name="ending" select="$ending"/>
+  </xsl:apply-templates>
+</xsl:template>
+<xsl:template match="listitem" mode="short">
+  <xsl:apply-templates mode="short"/><xsl:text>, </xsl:text>
+</xsl:template>
+<xsl:template match="listitem[position() = last()]" mode="short">
+  <xsl:param name="ending">
+    <xsl:text>.</xsl:text>
+  </xsl:param>
+  <xsl:apply-templates mode="short"/><xsl:value-of select="$ending"/>
+</xsl:template>
+<xsl:template match="item" mode="short">
+  <xsl:apply-templates/><xsl:text>, </xsl:text>
+</xsl:template>
+<xsl:template match="item[position() = last()]" mode="short">
+  <xsl:param name="ending">
+    <xsl:text>.</xsl:text>
+  </xsl:param>
+  <xsl:apply-templates/><xsl:value-of select="$ending"/>
+</xsl:template>
+
+</xsl:stylesheet>
+