Condition <xsl: output> en XSLT 1.0?

Tengo una hoja de estilo XSLT 1.0 (2.0 no es una opción) que produce XHTML. Dependiendo de un parámetro, puede producir un documento XHTML completo válido o solo un<div>...</div> fragmento, destinado a ser incluido en una página web.

Mi problema es producir diferentes declaraciones XML en estos dos casos. Para la página independiente, necesito:

<xsl:output doctype-public="-//W3C//DTD XHTML 1.0 Strict//EN"
       doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"/>

Y para el<div> uno

<xsl:output omit-xml-declaration="yes"/>

Pero<xsl:output> no se puede incluir en un<xsl:if>. Solo puede ser ladirect niño de<xsl:stylesheet>.

a única solución que veo es crear una hoja de estilo con la mayoría de las plantillas y luego dos pequeños "envoltorios" con la @ correc<xsl:output> y cuál será<xsl:import> la hoja de estilo principal.

Estaba buscando una idea mejor, pero aparentemente no hay ninguna. Siguiendo el consejo de Andrew Hare y jelovirt, escribí dos "controladores", dos hojas de estilo simples que llaman el @ apropia<xsl:output> y luego la hoja de estilo principal. Aquí está uno de estos controladores, el de HTML independiente:

<?xml version="1.0" encoding="us-ascii"?>
<!-- This file is intended to be used as the main stylesheet, it creates a 
 standalone Web page. 
-->
<xsl:stylesheet
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="1.0">

  <xsl:import href="traceroute2html.xsl"/>

  <xsl:param name="standalone" select="'true'"/>

  <xsl:output doctype-public="-//W3C//DTD XHTML 1.0 Strict//EN"
      doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"/>

</xsl:stylesheet>

Respuestas a la pregunta(3)

Su respuesta a la pregunta