Технический термин для этих «параметров» - «атрибуты» (на всякий случай, которые помогают при будущих поисках), и вы ссылаетесь на них с помощью @class
и т. Д.
Также обратите внимание, что <xsl:otherwise>
не для <xsl:if>
, а для <xsl:choose>
:
<xsl:template match="par">
<xsl:choose>
<xsl:when test="@class='class1'">
<fo:block
space-before="3pt"
space-after="3pt">
<xsl:apply-templates />
</fo:block>
</xsl:when>
<xsl:otherwise>
<fo:block
space-before="10pt"
space-after="10pt">
<xsl:apply-templates />
</fo:block>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
Или, чтобы лучше показать фактические различия,
<xsl:template match="par">
<fo:block>
<xsl:choose>
<xsl:when test="@class='class1'">
<xsl:attribute name='space-before'>3pt</xsl:attribute>
<xsl:attribute name='space-after'>3pt</xsl:attribute>
</xsl:when>
<xsl:otherwise>
<xsl:attribute name='space-before'>10pt</xsl:attribute>
<xsl:attribute name='space-after'>10pt</xsl:attribute>
</xsl:otherwise>
</xsl:choose>
<xsl:apply-templates/>
</fo:block>
</xsl:template>