У меня есть XSLT, который включает в себя множество модулей XSLT. Каждый подчиненный XSLT имеет свой режим для обработки. В основном XSLT есть шаблон идентификации, подобный этому
<xsl:template match="node()|@*" mode="#all" priority="-1">
<xsl:copy>
<xsl:apply-templates select="node()|@*" mode="#current"/>
</xsl:copy>
</xsl:template>
но когда мы применили это к преобразованию, мы обнаружили, что какой-то режим, который не требует идентичного преобразования, конвертируется посредством этого, поэтому мы изменили это, как показано ниже, и он отлично работает:
<xsl:template match="node()|@*" mode="mode1 mode2 mode3 mode4 mode7 mode8" priority="-1">
<xsl:copy>
<xsl:apply-templates select="node()|@*" mode="#current"/>
</xsl:copy>
</xsl:template>
Как я знаю, mode5
и mode6
не нуждаются в преобразовании идентичности и должны избегать его при преобразовании. Но с помощью описанной выше процедуры мы должны редактировать этот шаблон каждый раз, когда добавляем новый режим.
Существует ли какой-либо другой процесс, в котором мы применяем шаблон идентификации к режиму #all
и избегаем только mode5
и mode6
, чтобы избежать будущих конфликтов разработки.