XSLT: Remova caracteres em branco em excesso, preservando os nós

Então, meu problema é esse. Eu tenho um documento de transformação que é usado em muitos lugares e lida genericamente com muitas pequenas transformações de formatação. Em um caso específico, preciso remover o espaço em branco do resultado. A saída se parece com:

'\ n <I> Algo </I> muito significativo com uma nota sobrescrita <SUP> 1 </SUP> \ n'

Eu tentei variações sobre:

<xsl:template match="no_whitespace">
    <xsl:variable name="result">
        <xsl:apply-templates/>
    </xsl:variable>
    <xsl:copy-of select="normalize-space($result)"/>
</xsl:template>

mas os subnós são removidos da saída. Eu tenho que ter muito cuidado para não configurar nenhum modelo universal como 'text ()', pois isso interferirá no processamento geral da transformação. Parece que estou perdendo algo óbvio aqui.

Edição: Tentei escrever uma transformação de identidade, como sugerido por Stefan-Hegny.

<xsl:template match="title_full">
    <xsl:apply-templates mode="stripwhitespace"/>
</xsl:template>

<xsl:template match="text()" mode="stripwhitespace">
    <xsl:value-of select="normalize-space(translate(., '\n', ''))"/>
</xsl:template>

<xsl:template match="/ | @* | *" mode="stripwhitespace">
    <xsl:apply-templates select="."/>
</xsl:template>

Isso resolveu meu problema, que era remover os espaços em branco e as novas linhas no nível mais alto da tag e permitir que as transformações prosseguissem normalmente. Pedimos desculpas pela pergunta obscura e agradecemos sua ajuda.

Edite o segundo: o uso de 'translate' não funciona como eu esperava, funciona caractere por caractere. Eu usei uma transformação que substitui substrings.

questionAnswers(3)

yourAnswerToTheQuestion