Witam, przygotowuje specjalnie przygotowany plik XML opisany przez XSL. Dane wyświetlane mają być za pomocą tabeli. Problem polega na sortowaniu dynamicznym. Przygotowałem sortowanie statyczne które działa w 100% jednak muszę przygotować tak plik XSL żeby sortował mi dane w tabeli po kolumnach. Proszę o pomoc

<xsl:stylesheet version="1.0"
  xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns="http://www.w3.org/1999/xhtml">
 
  <xsl:output method="xml" indent="yes"
    doctype-public="-//W3C//DTD XHTML 1.1//EN"
    doctype-system="http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"/>
 
  <xsl:template match="bukmacher">
  <xsl:param name="smode" />
    <html>
      <head> <title>Bukmacher.xml</title> </head>
      <body>
<h3>Projekt XML - Tomasz Sapiński, Dawid Waśkowski | Informatyka niestacjonarne</h3>
<p></p>
       <xsl:for-each select="zaklady">
<br/>
<xsl:value-of select="data"/>
<br/>
<br/>
<table  cellpadding="5" align="center" border="1" style="text-align:center;padding 5px;">
<th><a href="?smode=nazwa">nazwa_typu</a></th><th>godzina rozpoczecia</th><th>wygrana 1</th><th>wygrana 2</th>
<th>remis</th><th>czerwona kartka tak</th> <th>czerwona kartka nie</th>
<th>karny tak</th><th>karny nie</th>
 
  <xsl:choose>
    <xsl:when test="contains($smode, 'nazwa')">
<xsl:for-each select="typy">
 <xsl:sort select="nazwa_typu"/>
    <tr>
<td width="300px"><xsl:value-of select="nazwa_typu"/></td>
<td><xsl:value-of select="godzina_rozpoczecia"/></td>
<td><xsl:value-of select="wygrana_1"/></td>
<td><xsl:value-of select="wygrana_2"/></td>
<td><xsl:value-of select="remis"/></td>
<td><xsl:value-of select="czerwona_kartka_tak"/></td>
<td><xsl:value-of select="czerwona_kartka_nie"/></td>
<td><xsl:value-of select="karny_tak"/></td>
<td><xsl:value-of select="karny_nie"/></td>
</tr>
        </xsl:for-each>
    </xsl:when>
    <xsl:otherwise>
<xsl:for-each select="typy">
    <tr>
<td width="300px"><xsl:value-of select="nazwa_typu"/></td>
<td><xsl:value-of select="godzina_rozpoczecia"/></td>
<td><xsl:value-of select="wygrana_1"/></td>
<td><xsl:value-of select="wygrana_2"/></td>
<td><xsl:value-of select="remis"/></td>
<td><xsl:value-of select="czerwona_kartka_tak"/></td>
<td><xsl:value-of select="czerwona_kartka_nie"/></td>
<td><xsl:value-of select="karny_tak"/></td>
<td><xsl:value-of select="karny_nie"/></td>
</tr>
  </xsl:for-each>
    </xsl:otherwise>
  </xsl:choose>
 
</table>
</xsl:for-each>
      </body>
    </html>
  </xsl:template>
</xsl:stylesheet>
 

Powyższy kod niestety nie spełnia funkcji ponieważ parametr smode nie jest przesyłany do

 <xsl:choose>
    <xsl:when test="contains($smode, 'nazwa')">
<xsl:for-each select="typy">