В настоящее время я работаю над таблицей стилей XSL для некоторых вспомогательных средств, но я считаю, что у меня есть конфликт между несколькими шаблонами в таблице стилей.Конечно, я довольно новичок в XSL, так что я, вероятно, что-то здесь упускаю.Я надеюсь, что я включил все необходимые детали.
Вот код, с которым я хочу работать с шаблонами:
<c05 level="item"><did><unittitle><title render="italic">Souvenir</title>, undated</unittitle></did>
<scopecontent>
<p>With sketches of Confederate Generals and Confederate flags and a <emph render="doublequote">bird's eye view</emph> of Charleston.</p>
</scopecontent>
</c05>
Теперь, 2 рассматриваемых шаблона форматируют мой макет списка контейнерови немного форматирования текста соответственно.Шаблон для макета находится здесь:
<xsl:template name="item">
<xsl:variable name="title">
<xsl:if test="did/unitid">
<xsl:value-of select="did/unitid"/><xsl:text>. </xsl:text>
</xsl:if>
<xsl:value-of select="did/unittitle"/>
<xsl:if test="did/unitdate">
<xsl:text>, </xsl:text><xsl:value-of select="did/unitdate"/>
</xsl:if>
</xsl:variable>
<div style="margin-left:80px; padding-top:10px;"><xsl:value-of select="$title" /></div>
<div class="c01sc" style="margin-left:80px;"><xsl:value-of select="scopecontent" /></div>
<xsl:element name="a">
<xsl:call-template name="addidtoc"/>
</xsl:element>
</xsl:template>
А вот код для форматирования текста.Он вызывает другой шаблон, который выполняет некоторое форматирование:
<xsl:template match='emph'>
<xsl:call-template name='render'/>
</xsl:template>
<xsl:template name='render'>
<xsl:choose>
<xsl:when test="@render='italic'">
<xsl:element name="i">
<xsl:call-template name="addid"/>
<xsl:apply-templates/>
</xsl:element>
</xsl:when>
etc.....
</xsl:template>
Проблема в том, что выполняются только действия первого шаблона макета.Мои стили макета сгенерированы, но область, которая должна быть в двойных кавычках из-за тега emph, по-прежнему проста.Это проблема иерархии шаблонов или я сделал что-то не так?Надеюсь, в этом есть какой-то смысл.Буду признателен за любую помощь!