Hola
He estado haciendo unas pruebas y no entidndo los errores que mencionas.
Te pego los archivos que he usado para hacer las pruebas y el resultado que obtengo.
XML - prueba_01.xml
Código:
<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/xsl" href="prueba_01.xsl"?>
<elementos>
<elemento>
<nombre>nombre del primer elemento</nombre>
<id>id del primer elemento</id>
</elemento>
<elemento>
<nombre>nombre del segundo elemento</nombre>
<id>id del segundo elemento</id>
</elemento>
</elementos>
XSL - prueba_01.xsl
Código:
<?xml version="1.0"?>
<xsl:stylesheet version="2.0" xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns="http://www.w3.org/1999/xhtml" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" version="1.0" omit-xml-declaration="no" encoding="UTF-8" doctype-public="-//W3C//DTD XHTML 1.1//EN" doctype-system="http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd" indent="yes"/>
<xsl:template match="/">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="es">
<head>
<title>Ejemplo de uso de xml + xslt</title>
</head>
<body>
<div><img src="/imagen.gif" alt="" /></div>
<dl>
<xsl:for-each select="elementos/elemento">
<dt><xsl:value-of select="nombre"/></dt>
<dd><xsl:value-of select="id"/></dd>
</xsl:for-each>
</dl>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
Resultado con method="xml"
Código:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="es">
<head>
<title>Ejemplo de uso de xml + xslt</title>
</head>
<body>
<div>
<img src="prueba_01_files/imagen.html" alt=""/>
</div>
<dl>
<dt>nombre del primer elemento</dt>
<dd>id del primer elemento</dd>
<dt>nombre del segundo elemento</dt>
<dd>id del segundo elemento</dd>
</dl>
</body>
</html>
Resultado con method="html"
Código:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html lang="es" xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta content="text/html; charset=UTF-8" http-equiv="Content-Type">
<title>Ejemplo de uso de xml + xslt</title>
</head>
<body>
<div>
<img alt="" src="prueba_01.xml_files/imagen.html">
</div>
<dl>
<dt>nombre del primer elemento</dt>
<dd>id del primer elemento</dd>
<dt>nombre del segundo elemento</dt>
<dd>id del segundo elemento</dd>
</dl>
</body>
</html>
Si cambio el omit-xml-declaration="no" a omit-xml-declaration="yes", no sale el <?xml version="1.0" encoding="UTF-8"?>.
Salvo una extraña transformación que hace a la imagen que pongo en el código, la cual no existe en mi disco, el resto está bien.
Usando esos códigos que pongo, revisa tu problema. Si aun persisten, haz modificaciones a esos códigos y pégalos para hacer las pruebas por mi lado y ver que pasa.
Felicidad