Я пытаюсь автоматизировать некоторые преобразования xslt, и мне нужен способ установить атрибуты xsl: output, основанные на содержимом преобразуемых файлов XML.
В частности, я хочу рассмотреть файлы XML, получить атрибут lang из элемента root и установить атрибуты на основе значения lang.
Я пробовал следующее:
<xsl:param name="language">
<xsl:value-of select="//*/@lang"/>
</xsl:param>
<xsl:output method="xml" xmlns:saxon="http://icl.com/saxon" encoding="utf-8">
<xsl:choose>
<xsl:when test="$language != 'ja'">
<xsl:attribute name="saxon:character-representation"><xsl:value-of select="'native'"/></xsl:attribute>
</xsl:when>
<xsl:otherwise>
<xsl:attribute name="saxon:character-representation"><xsl:value-of select="'hex'"/></xsl:attribute>
</xsl:otherwise>
</xsl:choose>
</xsl:output>
.. .но мой анализатор сообщает мне, что элемент xsl: output должен быть пустым.
Есть ли способ сделать что-то подобное в контексте таблицы стилей, или мне придется манипулировать этими атрибутами в более высокий уровень?