Некоторое время боролся с этим, но только случайно заработал:
ключ должен был добавить <xsl:strip-space elements="*"/>
так это будет выглядеть так:
<xsl:stylesheet
version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:java="http://xml.apache.org/xalan/java"
xmlns:xalan="http://xml.apache.org/xslt">
<xsl:output method="xml" encoding="ASCII" indent="yes" xalan:indent-amount="4"/>
<xsl:strip-space elements="*"/>
Не знаю почему, но, вероятно, удаление всего пробела помогает xalan выяснить отступ