attribute. This is not allowed according to "5.3 Defining Template Rules" in REC-xslt-19991116, XSL Transformations (XSLT) Version 1.0. The xsltproc utility prior to version 1.1.15 allowed this erroneously but in the latest version it has been fixed. Reported by: scottl
		
			
				
	
	
		
			88 lines
		
	
	
	
		
			2.5 KiB
		
	
	
	
		
			XML
		
	
	
	
	
	
			
		
		
	
	
			88 lines
		
	
	
	
		
			2.5 KiB
		
	
	
	
		
			XML
		
	
	
	
	
	
<?xml version="1.0" encoding="iso-8859-1"?>
 | 
						|
<!-- $FreeBSD$ -->
 | 
						|
 | 
						|
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
 | 
						|
 | 
						|
  <xsl:import href="./transtable-common.xsl" />
 | 
						|
 | 
						|
  <xsl:output type="xml" encoding="iso-8859-1"
 | 
						|
	      indent="yes"/>
 | 
						|
 | 
						|
  <!-- these params should be externally bound. The values
 | 
						|
       here are not used actually -->
 | 
						|
  <xsl:param name="transtable-target-element" select="''" />
 | 
						|
  <xsl:param name="transtable-word-group" select="''" />
 | 
						|
  <xsl:param name="transtable-mode" select="''" />
 | 
						|
 | 
						|
  <xsl:template match="/">
 | 
						|
    <xsl:choose>
 | 
						|
      <xsl:when test="$transtable-mode = 'sortkey'">
 | 
						|
	<xsl:apply-templates mode="sortkey"/>
 | 
						|
      </xsl:when>
 | 
						|
      <xsl:otherwise>
 | 
						|
	<xsl:apply-templates />
 | 
						|
      </xsl:otherwise>
 | 
						|
    </xsl:choose>
 | 
						|
  </xsl:template>
 | 
						|
 | 
						|
  <xsl:template match="*">
 | 
						|
    <xsl:choose>
 | 
						|
      <xsl:when test="local-name() = $transtable-target-element">
 | 
						|
	<xsl:element name="{local-name(.)}" namespace="{namespace-uri(.)}">
 | 
						|
	  <xsl:copy-of select="@*" />
 | 
						|
 | 
						|
	  <xsl:call-template name="transtable-sortkey-lookup">
 | 
						|
	    <xsl:with-param name="word" select="." />
 | 
						|
	    <xsl:with-param name="word-group" select="$transtable-word-group" />
 | 
						|
	  </xsl:call-template>
 | 
						|
 | 
						|
	  <xsl:call-template name="transtable-lookup">
 | 
						|
	    <xsl:with-param name="word" select="." />
 | 
						|
	    <xsl:with-param name="word-group" select="$transtable-word-group" />
 | 
						|
	  </xsl:call-template>
 | 
						|
	</xsl:element>
 | 
						|
      </xsl:when>
 | 
						|
 | 
						|
      <xsl:otherwise>
 | 
						|
	<xsl:copy>
 | 
						|
	  <xsl:copy-of select="@*" />
 | 
						|
	  <xsl:apply-templates />
 | 
						|
	</xsl:copy>
 | 
						|
      </xsl:otherwise>
 | 
						|
    </xsl:choose>
 | 
						|
  </xsl:template>
 | 
						|
 | 
						|
 <!-- mode for generating sortkeytable -->
 | 
						|
 | 
						|
  <xsl:template match="*" mode="sortkey">
 | 
						|
    <xsl:choose>
 | 
						|
      <xsl:when test="local-name() = $transtable-target-element">
 | 
						|
	<xsl:element name="word">
 | 
						|
	  <xsl:attribute name="name">
 | 
						|
	    <xsl:call-template name="transtable-lookup">
 | 
						|
	      <xsl:with-param name="word" select="." />
 | 
						|
	      <xsl:with-param name="word-group" select="$transtable-word-group" />
 | 
						|
	    </xsl:call-template>
 | 
						|
	  </xsl:attribute>
 | 
						|
 | 
						|
	  <xsl:attribute name="orig">
 | 
						|
	    <xsl:value-of select="." />
 | 
						|
	  </xsl:attribute>
 | 
						|
 | 
						|
	  <xsl:attribute name="sortkey">
 | 
						|
	    <xsl:value-of select="'@sortkey@'" />
 | 
						|
	  </xsl:attribute>
 | 
						|
	</xsl:element>
 | 
						|
 | 
						|
	<xsl:text disable-output-escaping="yes">
</xsl:text>
 | 
						|
      </xsl:when>
 | 
						|
 | 
						|
      <xsl:otherwise>
 | 
						|
	<xsl:apply-templates mode="sortkey"/>
 | 
						|
      </xsl:otherwise>
 | 
						|
    </xsl:choose>
 | 
						|
  </xsl:template>
 | 
						|
 | 
						|
  <xsl:template match="text()" mode="sortkey">
 | 
						|
  </xsl:template>
 | 
						|
</xsl:stylesheet>
 |