В настоящее время я использую две таблицы стилей, чтобы получить желаемый результат. Первая таблица стилей (pass1.xsl) выполняет реальную работу, а вторая таблица стилей (pass2.xsl) удаляет дубликаты, обеспечивая незначительные обновления форматирования.
У меня вопрос, могу ли я выполнить оба действия в одной таблице стилей.
Когда я смотрю на контент, у меня не складывается впечатление, что я могу с помощью xsl: functions, потому что обе таблицы стилей содержат совпадения шаблонов, которые конфликтуют, если я копирую / вставляю из второго в первый. IE:
pass1.xsl:
<xsl:template match="xs:complexType">
<xsl:param name="prefix" />
<xs:complexType name="{my:updateName($prefix, @name)}">
<!-- insert xs:sequence ONLY if the child is NOT xs:complexContent -->
<xsl:choose>
<xsl:when test="*[name()='xs:complexContent']">
<xsl:apply-templates select="node()" />
</xsl:when>
<xsl:otherwise>
<xs:sequence>
<xsl:apply-templates select="node()" />
</xs:sequence>
</xsl:otherwise>
</xsl:choose>
</xs:complexType>
<xsl:apply-templates select=".//xs:element" />
</xsl:template>
pass2.xsl:
<xsl:template match="xs:complexType">
<xsl:copy>
<xsl:apply-templates select="*|@*"/>
</xsl:copy>
</xsl:template>
Повторюсь - цель состоит в том, чтобы запустить только одну таблицу стилей для получения окончательного результата.
Бежать два не сложно, но было бы неплохо, если бы не пришлось. Я смотрю на копирование / вставку в оригинал и заставляю его работать, или импорт / включает в себя то, на что я должен смотреть? Я предпочел бы иметь только один файл таблицы стилей - чтобы минимизировать вероятность ошибочного удаления вспомогательного файла.