[xsl] xml-to-xml output does not show properly on IE5

Subject: [xsl] xml-to-xml output does not show properly on IE5
From: "Anne Honkaranta" <ankarjal@xxxxxxxxx>
Date: Tue, 2 Oct 2001 16:36:44 +0300
Hello!

Here is another silly question considering Microsoft Internet Explorer
and XML/XSLT. I apologize if this seems to be a little bit over of this
list's main focus.
I've browsed through Microsoft documentation and MSXML3.0SDK, and tried to
make searches
on the XSLT-list archive but with no success.

I use Microsoft IE6, in which I have installed MSXML3.0 parser in replace
mode.
For studying the output of XSLT transformations I useMicrosoft IE tools for
validating XML and viewing SXLT output. I also use MS IIS5.0 server.

 I've been having lots of problems with character encodings, since I
have use iso-8859-1.Now I think I have made it work on server-side, but the
problem
I seem not to be able to solve is that XML-to-XML transformation
output does not show properly on the Internet Explorer when transformation
is being done on a client side.
By "not show properly" I mean that the IE does not show the output document
with
it's fancy XSLT stylesheet it uses for showing XML documents. The output
document
shows as a junk of  text, from which the element tags have been rendered
off.
When using "show XSLT output" -tool to source document with PI, I see that
output document seems to be well-formed XML, xml tags are on the appropriate
places
 and the encoding declaration is OK.

The problem occurs on both occasions on a client side transformations:
*when I do the transformation using a PI in source XML document,
*when I try to make it work by using a html page which loads the source
document
and transformation document as DOM objects.

I've been doing XML-to-HTML and XML-to-HTML transformations with the
same techniques and similar scripts (asp&html) and the output documents have
been rendered just fine.

I saw some postings about it on this list, saying to use save() and to use
transformNodeToObject, but I cannot figure out how. I suspect the problem
is, anyhow,
encoding- related.

Here are my example documents:

************************************************
Main template (a clip of the whole transformation) from  v2tov3.xsl in /Xslt

<?xml version='1.0' encoding='iso-8859-1'?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform";
version="1.0">
<xsl:output method="xml" version="1.0" encoding="iso-8859-1" indent="yes"
omit-xml-declaration="yes" />
<xsl:template match="/">
<xsl:text disable-output-escaping="yes">&lt;&#63;xml version="1.0"
encoding="iso-8859-1"&#63;&gt;</xsl:text>
 <xsl:apply-templates select="*" />
</xsl:template>

<xsl:template match="*">
...make identity transformation and add some attributes...
</xsl:template>
</xsl:stylesheet>

*************************************************************
A start of a source document with PI added to it for client-side
transformation (file Pinkku2.xml in /Runot/):

<?xml version="1.0" ?>
<?xml-stylesheet type="text/xsl" href="../Xslt/v2tov3.xsl" ?>
<!DOCTYPE RUNO SYSTEM "../Dtd/runo2.dtd"
[<!ENTITY Pinkku SYSTEM "../Kuvat/Penguin.gif" NDATA GIF>]>
<RUNO TYYPPI="LASTEN">
... some tagged text
</RUNO>
**********************************************************
.. when Pinkku2.xml is opened in IE 5 the tags disappear form screen view.
the appropriate xml tags are there when output is studied using Microsoft IE
XSLT Output viewer.
Source document is well-formed according to Microsoft Validate XML-tool (in
IE)

**********************************************************
Transformation on client using DOM objects; (presumably the fault is
transformNode and Document.Write?):
<HTML><HEAD></HEAD><BODY>
<SCRIPT LANGUAGE=VBSCRIPT CODEPAGE="ISO-8859-1">
Dim objDocument, objTransform, objXML

Set objDoc = CreateObject("MSXML2.DOMDocument")
Set objXSL = CreateObject ("MSXML2.DOMDocument")

objDoc.async=false
objXSL.async=false

objDoc.Load "Runot/Pinkku2.xml"
objXSL.Load "Xslt/v2tov3.xsl"

objXML = objDoc.transformNode(objXSL)
Document.write objXML
</SCRIPT></BODY></HTML>

-When I try to use transformNodeToObject;  I get an error (of
transformNodeToObject method or it's parameters).
**********************************************************
However, on my server-side asp script I followed an advice I found on this
list and changed the
objXML to xmlResponseDoc and then did (after loading the documents) the
transformation
and sending the output document to client on a same phrase:

xmlResponseDoc=(objDoc.transformNodeToObject(objXSL, Response))

-this worked, and the resulting XML-output document that was rendered on IE
was
OK; the element tags were visible, the document was styled with MS XSLT
stylesheet and
everything was OK.
*********************************************************

I  appriciate your help or ideas to solve this problem. Any ideas are
welcome.

Please, if you know what is wrong with my code be kind to provide a whole
example script from document load to sending it out so that even people with
thick heads (such as I ) can see how
it should be used, and with which parameters.

Greetings,

Anne Honkaranta
University of Jyväskylä
Finland
ankarjal@xxxxxxxxx


 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list


Current Thread