XSLT: eliminar el exceso de espacios en blanco conservando nodos

Entonces mi problema es este. Tengo un documento de transformación que se usa en muchos lugares y que maneja genéricamente muchas transformaciones de formato pequeño. En un caso específico, necesito eliminar espacios en blanco del resultado. El resultado se parece a:

'\ n <I> Algo </I> muy significativo con una nota de superíndice <SUP> 1 </SUP> \ n'

He intentado variaciones en:

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

pero los subnodos se eliminan de la salida. Tengo que tener mucho cuidado de no configurar ninguna plantilla universal como 'text ()' ya que interferirá con el procesamiento general de la transformación. Parece que me falta algo obvio aquí.

EDITAR: Intenté escribir una transformación de identidad según lo 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>

Esto resolvió mi problema, que era eliminar los espacios en blanco y las nuevas líneas en el nivel más alto de la etiqueta, y luego permitir que las transformaciones prosiguieran normalmente. Disculpas por la pregunta mal construida, y gracias por su ayuda.

EDITE el segundo: el uso de 'traducir' no funciona como esperaba, funciona carácter por carácter. Usé una transformación que reemplaza las subcadenas en su lugar.

Respuestas a la pregunta(3)

Su respuesta a la pregunta