値が xml 内の項目の表示をフィルター処理する Saxon-ce でコンボボックスを設定しようとしています。ここに私がこれまでに持っているコードのサンプルがあります。
<xsl:stylesheet version="2.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:ext="http://exslt.org/common"
xmlns:ixsl="http://saxonica.com/ns/interactiveXSLT"
xmlns:msxsl="urn:schemas-microsoft-com:xslt"
extension-element-prefixes="ixsl">
<xsl:template match="/">
<!-- set up combo box -->
<xsl:result-document href="#typeControl">
<xsl:text>Type: </xsl:text>
<select class="menuSub_monster" id="typeBox">
<option value="all" selected="'all'">Unsorted</option>
<option value="group">Sorted</option>
<option value="value1">Value1</option>
<option value="value2">Value2</option>
</select>
</xsl:result-document>
<!-- inital display -->
<xsl:call-template name="displayTemplates">
<xsl:with-param name="typeSel" select="'all'"/>
</xsl:call-template>
</xsl:template>
<!-- Change display when we change combo box -->
<xsl:template match="select[@id='typeBox']" mode="ixsl:onchange">
<xsl:variable name="control" select="."/>
<xsl:variable name="typeValue" select="ixsl:get($control,'value')" />
<xsl:call-template name="displayTemplates">
<xsl:with-param name="typeSel" select="$typeValue"/>
</xsl:call-template>
</xsl:template>
<!-- display routine -->
<xsl:template name="displayTemplates">
<xsl:param name="typeSel"/>
<xsl:result-document href="#display" method="ixsl:replace-content" >
<xsl:choose>
<xsl:when test="$typeSel='all'">
<xsl:for-each select="templates/template">
<xsl:sort select="sort_name"/>
... CODE FOR DISPLAY
</xsl:for-each>
</xsl:when>
<xsl:when test="$typeSel='group'">
... CODE FOR DISPLAY
</xsl:when>
<xsl:otherwise>
<xsl:for-each select="templates/template/types[type[text()=$typeSel]]">
<xsl:sort select="../sort_name"/>
...CODE FOR DISPLAY
</xsl:for-each>
</xsl:otherwise>
</xsl:choose>
</div>
</xsl:result-document>
</xsl:template>
私が抱えている問題は、コンボボックスの値が変更されたときにテンプレート displayTemplates を呼び出すことです。これは、このスタイル シートで呼び出している XML の一部であるため、コンテキスト テンプレート/テンプレートへの移行が機能しません。ただし、match="select[@id='typeBox']" は、コンテキストを XML にないオブジェクトに設定します。コンテキストをコンボボックスから XML に変更して、表示ルーチンの for-each ステートメントが正しく機能するようにするにはどうすればよいですか?