******************************************************************** -->
<!-- ==================================================================== -->
+<xsl:variable name="db.prefix"></xsl:variable>
<xsl:template match="/">
<xsl:text>
</xsl:text>
<xsl:text>

</xsl:text>
<xsl:element name="xsl:template">
<xsl:attribute name="match">
+ <xsl:value-of select="$db.prefix"/>
<xsl:value-of select="name(.)"/>
</xsl:attribute>
<xsl:attribute name="mode">
<xsl:value-of select="local-name(.)"/>
</xsl:attribute>
<xsl:attribute name="select">
- <xsl:value-of select="."/>
+ <xsl:call-template name="param.node"/>
</xsl:attribute>
</xsl:element>
</xsl:if>
<xsl:text>|</xsl:text>
</xsl:if>
+ <xsl:value-of select="$db.prefix"/>
<xsl:value-of select="$docinfo"/>
<xsl:text>/</xsl:text>
+ <xsl:value-of select="$db.prefix"/>
<xsl:value-of select="name(.)"/>
<xsl:if test="@t:predicate">
<xsl:value-of select="@t:predicate"/>
<xsl:if test="$altinfo != ''">
<xsl:text>|</xsl:text>
+ <xsl:value-of select="$db.prefix"/>
<xsl:value-of select="$altinfo"/>
<xsl:text>/</xsl:text>
+ <xsl:value-of select="$db.prefix"/>
<xsl:value-of select="name(.)"/>
<xsl:if test="@t:predicate">
<xsl:value-of select="@t:predicate"/>
</xsl:if>
<!-- info -->
- <xsl:text>|info</xsl:text>
+ <xsl:text>|</xsl:text>
+ <xsl:value-of select="$db.prefix"/>
+ <xsl:text>info</xsl:text>
<xsl:text>/</xsl:text>
+ <xsl:value-of select="$db.prefix"/>
<xsl:value-of select="name(.)"/>
<xsl:if test="@t:predicate">
<xsl:value-of select="@t:predicate"/>
or local-name(.) = 'subtitle'
or local-name(.) = 'titleabbrev'">
<xsl:text>|</xsl:text>
+ <xsl:value-of select="$db.prefix"/>
<xsl:value-of select="name(.)"/>
<xsl:if test="@t:predicate">
<xsl:value-of select="@t:predicate"/>
<xsl:value-of select="local-name(.)"/>
</xsl:attribute>
<xsl:attribute name="select">
- <xsl:value-of select="."/>
+ <xsl:call-template name="param.node"/>
</xsl:attribute>
</xsl:element>
</xsl:if>
<xsl:text>
 </xsl:text>
<xsl:element name="xsl:when">
<xsl:attribute name="test">
+ <xsl:value-of select="$db.prefix"/>
<xsl:value-of select="$docinfo"/>
<xsl:text>/</xsl:text>
+ <xsl:value-of select="$db.prefix"/>
<xsl:value-of select="name(.)"/>
</xsl:attribute>
<xsl:text>
 </xsl:text>
<xsl:value-of select="$mode"/>
</xsl:attribute>
<xsl:attribute name="select">
+ <xsl:value-of select="$db.prefix"/>
<xsl:value-of select="$docinfo"/>
<xsl:text>/</xsl:text>
+ <xsl:value-of select="$db.prefix"/>
<xsl:value-of select="name(.)"/>
<xsl:if test="@t:predicate">
<xsl:value-of select="@t:predicate"/>
<xsl:text>
 </xsl:text>
<xsl:element name="xsl:when">
<xsl:attribute name="test">
+ <xsl:value-of select="$db.prefix"/>
<xsl:value-of select="$altinfo"/>
<xsl:text>/</xsl:text>
+ <xsl:value-of select="$db.prefix"/>
<xsl:value-of select="name(.)"/>
</xsl:attribute>
<xsl:text>
 </xsl:text>
<xsl:value-of select="$mode"/>
</xsl:attribute>
<xsl:attribute name="select">
+ <xsl:value-of select="$db.prefix"/>
<xsl:value-of select="$altinfo"/>
<xsl:text>/</xsl:text>
+ <xsl:value-of select="$db.prefix"/>
<xsl:value-of select="name(.)"/>
<xsl:if test="@t:predicate">
<xsl:value-of select="@t:predicate"/>
<xsl:text>
 </xsl:text>
<xsl:element name="xsl:when">
<xsl:attribute name="test">
+ <xsl:value-of select="$db.prefix"/>
<xsl:value-of select="'info'"/>
<xsl:text>/</xsl:text>
+ <xsl:value-of select="$db.prefix"/>
<xsl:value-of select="name(.)"/>
</xsl:attribute>
<xsl:text>
 </xsl:text>
<xsl:value-of select="$mode"/>
</xsl:attribute>
<xsl:attribute name="select">
+ <xsl:value-of select="$db.prefix"/>
<xsl:value-of select="'info'"/>
<xsl:text>/</xsl:text>
+ <xsl:value-of select="$db.prefix"/>
<xsl:value-of select="name(.)"/>
<xsl:if test="@t:predicate">
<xsl:value-of select="@t:predicate"/>
<xsl:text>
 </xsl:text>
<xsl:element name="xsl:when">
<xsl:attribute name="test">
+ <xsl:value-of select="$db.prefix"/>
<xsl:value-of select="name(.)"/>
</xsl:attribute>
<xsl:text>
 </xsl:text>
<xsl:value-of select="$mode"/>
</xsl:attribute>
<xsl:attribute name="select">
+ <xsl:value-of select="$db.prefix"/>
<xsl:value-of select="name(.)"/>
<xsl:if test="@t:predicate">
<xsl:value-of select="@t:predicate"/>
<xsl:value-of select="$mode"/>
</xsl:attribute>
<xsl:attribute name="select">
+ <xsl:value-of select="$db.prefix"/>
<xsl:value-of select="$docinfo"/>
<xsl:text>/</xsl:text>
+ <xsl:value-of select="$db.prefix"/>
<xsl:value-of select="name(.)"/>
<xsl:if test="@t:predicate">
<xsl:value-of select="@t:predicate"/>
<xsl:value-of select="$mode"/>
</xsl:attribute>
<xsl:attribute name="select">
+ <xsl:value-of select="$db.prefix"/>
<xsl:value-of select="$altinfo"/>
<xsl:text>/</xsl:text>
+ <xsl:value-of select="$db.prefix"/>
<xsl:value-of select="name(.)"/>
<xsl:if test="@t:predicate">
<xsl:value-of select="@t:predicate"/>
<xsl:value-of select="$mode"/>
</xsl:attribute>
<xsl:attribute name="select">
+ <xsl:value-of select="$db.prefix"/>
<xsl:value-of select="'info'"/>
<xsl:text>/</xsl:text>
+ <xsl:value-of select="$db.prefix"/>
<xsl:value-of select="name(.)"/>
<xsl:if test="@t:predicate">
<xsl:value-of select="@t:predicate"/>
<!-- ==================================================================== -->
+<xsl:template name="param.node">
+ <xsl:param name="value" select="string(.)"/>
+
+ <xsl:choose>
+ <xsl:when test="local-name(.) = 'title'">
+ <xsl:choose>
+ <xsl:when test="$value = 'title'">
+ <xsl:text>title</xsl:text>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$value"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:when test="local-name(.) = 'node'">
+ <xsl:choose>
+ <xsl:when test="starts-with($value, 'ancestor-or-self::')">
+ <xsl:variable name="new">
+ <xsl:text>ancestor-or-self::</xsl:text>
+ <xsl:value-of select="$db.prefix"/>
+ <xsl:value-of select="substring-after($value, 'ancestor-or-self::')"/>
+ </xsl:variable>
+ <xsl:value-of select="$new"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$value"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$value"/>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
</xsl:stylesheet>