XtremallyPurpur
Новичок
XSLT. Включение шаблонов.
Добрый день.
Есть "каркасный" шаблон с дизайном, в него хочу включать "контентные" шаблоны, которые трансформируют xml в html.
По причине того, что динамический import (include) в XSLT шаблоне сделать нельзя
<code>
<xsl:variable name="content_template" select="//page/content_template/@href" />
<xsl:include href="{$content_template}" />
</code>
Такое не работает.
Приходится городить кучу xsl:choose'ов, которые выбирают, какой тип страницы выводить; какую форму, соответствующую данной странице показать и т.д.
<code>
<xsl:template name="content">
<xsl:choose>
<xsl:when test="$type='login_form'">
<xsl:call-template name="login_form" />
</xsl:when>
<xsl:when test="$type='что-то еще'">
....
....
</xsl:when>
....
....
<xsl: otherwise>
....
....
</xsl: otherwise>
</xsl:choose>
</xsl:template>
</code>
Причем в "каркасный" шаблон приходится включать все шаблоны, которые могут быть вызваны при трансформации, а могут и не быть вызваны.
Нет ли более элегантного решения?
Добрый день.
Есть "каркасный" шаблон с дизайном, в него хочу включать "контентные" шаблоны, которые трансформируют xml в html.
По причине того, что динамический import (include) в XSLT шаблоне сделать нельзя
<code>
<xsl:variable name="content_template" select="//page/content_template/@href" />
<xsl:include href="{$content_template}" />
</code>
Такое не работает.
Приходится городить кучу xsl:choose'ов, которые выбирают, какой тип страницы выводить; какую форму, соответствующую данной странице показать и т.д.
<code>
<xsl:template name="content">
<xsl:choose>
<xsl:when test="$type='login_form'">
<xsl:call-template name="login_form" />
</xsl:when>
<xsl:when test="$type='что-то еще'">
....
....
</xsl:when>
....
....
<xsl: otherwise>
....
....
</xsl: otherwise>
</xsl:choose>
</xsl:template>
</code>
Причем в "каркасный" шаблон приходится включать все шаблоны, которые могут быть вызваны при трансформации, а могут и не быть вызваны.
Нет ли более элегантного решения?