В нашей работе у нас есть специальная структура, которая помогает нам создавать быстрые и мощные страницы для наших клиентских сервисов.Одним из компонентов этого фреймворка является специальная функция «Подробности», которая позволяет вам выбрать конкретный элемент списка, щелкнуть по нему и просмотреть его детали.Это сделано потому, что компонент Detail получает предопределенную структуру XML и анализирует ее с помощью XSLT, что позволяет ему представлять данные на разных вкладках данных, показывать изображения или суммировать конкретные данные, среди других функций.
Наше требованиезаключается в том, что мы хотим иметь возможность добавлять новые вкладки, которые существуют вне предопределенной структуры XML, поэтому, например, мы можем добавить пользовательскую диаграмму или любое другое конкретное отображение данных.
Для этого мыполагал, что возможным решением было бы создать специальную вкладку внутри предопределенной структуры XML с двумя новыми атрибутами:
type: , которая сообщает родительскому XSLT, что эта вкладка должнане разбирается со стандартным преобразованием XSL.(например: «Литерал»)
translationSource: , который сообщает родительскому XSLT, какой новый XSLT он должен включить / импортировать для преобразования этой конкретной вкладки.(например: "newTransformation.xslt")
Возможно ли это сделать динамически?Что-то вроде этого:
<div>
<xsl:for-each select="Tab">
<xsl:choose>
<xsl:when test="@type='Literal'">
<xsl:include href=<xsl:value-of select='@transformationSource'/>
</xsl:when>
<xsl:otherwise> --do what it does everytime
<xsl:apply-templates select="Header" />
<xsl:apply-templates select="Data" />
</xsl:otherwise>
</xsl:choose>
</xsl:for-each>
</div>
У нас есть две проблемы с этим:
Мы не можем выполнить команду value-of xsl
внутри другой команды xsl
Мы не можем использовать функцию включения или импорта в некоммерческом html-компоненте, что означает, что его нельзя использовать внутри div, таблицы, строки или чего-либо еще.
Буду признателен за любые идеи.
Заранее спасибо:)