Hasta donde yo sé, la transformación la puede hacer perfectamente el propio navegador (al menos el Internet Explorer y el Firefox la hacen).
Al XML se le pone una línea como esta:
<?xml-stylesheet type='text/xsl' href='plantilla.xsl'?>
y junto a ese fichero se adjunta el susodicho "plantilla.xsl".
El navegador, al intentar abrir el XML, se da cuenta de que tiene esa plantilla asociada, así que transforma el fichero en ese momento y muestra la versión final.
Sería equivalente a una hoja de estilos CSS asociada a un HTML. Es el navegador el que, al encontrarse con ambos ficheros, "los combina" y muestra la versión final.
Un buen ejemplo de esto, fácil de ver para todos los que usen Windows, es el historial de conversaciones del MSN Messenger (llamado ahora Windows Live Messenger). Dentro de la carpeta "Mis archivos recibidos" se tiene otra carpeta con el Historial de conversaciones. Esas conversaciones son todas archivos XML, y en la misma carpeta hay una plantilla XSLT: "MessageLog.xsl". Pues bien, si se intenta abrir un XML con el navegador, no se muestra dicho XML, sino la conversión que se hace usando la plantilla...
Si queréis jugar un poco, moved la plantilla temporalmente a otra carpeta, ya veréis como al intentar abrir otro XML el navegador protesta y dice que no lo puede mostrar porque no encuentra la plantilla.
En cualquier caso, seguro que hay simples "transformadores" que hacen innecesario el envío de la plantilla XSLT al navegador, generando simplemente el HTML correspondiente (por ejemplo, creo que esto lo hace el programa XMLSpy).
Bueno, pues nada, perdón por el rollo, espero que se me haya entendido...
Saludos!