生成具有使用 XSLT 添加的模式的 XSLT(如 Kay 博士所建议的那样)。这会将作为样式表变量传入的模式添加为默认模式,同时保留现有模式:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xso="dummy" version="2.0">
<xsl:output method="xml" xml:space="preserve" indent="no" encoding="UTF-8" />
<xsl:namespace-alias stylesheet-prefix="xso" result-prefix="xsl" />
<xsl:param name="mode" required="yes" />
<xsl:template match="xsl:template">
<xso:template mode="{ (@mode, $mode)[1] }">
<xsl:apply-templates select="@* except @mode|node()" />
</xso:template>
</xsl:template>
<xsl:template match="xsl:apply-templates">
<xso:apply-templates mode="{ (@mode, '#current')[1] }">
<xsl:apply-templates select="@* except @mode|node()" />
</xso:apply-templates>
</xsl:template>
<xsl:template match="@*|node()">
<xsl:copy>
<xsl:apply-templates select="@*|node()" />
</xsl:copy>
</xsl:template>
</xsl:stylesheet>