Lo tengo!!!!!!!
Debo reconocer que me he vuelto un poco loco buscando la solución.
Necesitas 2 xml de entrada, en los que haces la llamada uno a 1.xsl y otro a 2.xsl. Y en ambos incluyes el fichero xml que realmente contiene los datos.
Me he hecho un ejemplito.
tiendaPrincipal.xml Xml con formato A y llamada a los datos
<?xml version="1.0" encoding='ISO-8859-1'?>
<!DOCTYPE page [<!ENTITY datos SYSTEM "tienda.xml">]>
<?xml-stylesheet href="tienda0.xsl" type="text/xsl"?>
<principal>
&datos;
</principal>
tiendaPrincipal1.xml Xml con formato B y llamada a los datos
<?xml version="1.0" encoding='ISO-8859-1'?>
<!DOCTYPE page [<!ENTITY datos SYSTEM "tienda.xml">]>
<?xml-stylesheet href="tienda1.xsl" type="text/xsl"?>
<principal>
&datos;
</principal>
tienda0.xsl Formato A
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match='/'>
<html>
<head><title>Generado con tienda-html.xsl</title></head>
<body>
<h1> <xsl:apply-templates /> </h1>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
tienda1.xsl Formato B
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match='/'>
<html>
<head><title>Generado con tienda-html.xsl</title></head>
<body>
<p> <xsl:apply-templates /> </p>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
tienda.xml El que contiene los datos realmente
<?xml version="1.0" encoding='ISO-8859-1'?>
<tienda>
<nombre>La tiendecilla </nombre>
<telefono>953 87 12 23 </telefono>
</tienda>
El ejemplo base lo he sacado de aquí