Wrox Programmer Forums
Go Back   Wrox Programmer Forums > XML > XSLT
|
XSLT General questions and answers about XSLT. For issues strictly specific to the book XSLT 1.1 Programmers Reference, please post to that forum instead.
Welcome to the p2p.wrox.com Forums.

You are currently viewing the XSLT section of the Wrox Programmer to Programmer discussions. This is a community of software programmers and website developers including Wrox book authors and readers. New member registration was closed in 2019. New posts were shut off and the site was archived into this static format as of October 1, 2020. If you require technical support for a Wrox book please contact http://hub.wiley.com
 
Old March 10th, 2009, 03:42 AM
Friend of Wrox
 
Join Date: Feb 2009
Posts: 119
Thanks: 25
Thanked 3 Times in 3 Posts
Default XSL transformation in browser outputs data (text nodes) only

Okay this might seem like a silly easy question, but here goes.

Why is it that when I open the following XML document in the browser, either firefox or IE that all I get is the data (text nodes) output.
Note that the xml file is linked to the xsl file below as well.

When I run the transformation inside any application ie. xmlspy/oxygen/jdeveloper etc I get the 'right' output which is a properly formated xml document?? Am I missing something in the xsl or is this a quirk of the browser and its xsl 1.0 and transformer???

Code:
<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="soap2.xsl"?>

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/03/addressing" xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
    <soap:Header>
        <wsa:Action>http://www.sampleproject.com/webservice/BusinessServices/CreateWorkspaceResponse</wsa:Action>
        <wsa:MessageID>uuid:59e55139-1062-4f42-8509-d9218d76daeb</wsa:MessageID>
        <wsa:RelatesTo>uuid:2af90059-eb06-4762-8de8-c8ea72b0fc70</wsa:RelatesTo>
        <wsa:To>http://schemas.xmlsoap.org/ws/2004/03/addressing/role/anonymous</wsa:To>
        <wsse:Security>
            <wsu:Timestamp wsu:Id="Timestamp-4e49cb36-9397-43a0-b62e-ddb2098abd43">
                <wsu:Created>2009-02-28T00:17:01Z</wsu:Created>
                <wsu:Expires>2009-02-28T00:22:01Z</wsu:Expires>
            </wsu:Timestamp>
        </wsse:Security>
    </soap:Header>
    <soap:Body>
        <CreateWorkspaceResponse xmlns="http://www.sampleproject.com/webservice/BusinessServices">
            <CreateWorkspaceResult>
                <![CDATA[<ep:Response xmlns:ep="www.sampleproject.com/response" success="True" timeStamp="20090228T12:17:01.000" >
<ep:Workspace id="d815952d-5f0b-4dd9-9a3a-5a067adb2914" lastModified="2/27/2009 4:17 PM" >
<ep:Title>SA_ProjCreate_WS_CusFld_0227</ep:Title>
<ep:WorkspaceType id="eba14bec-1be9-465b-af8b-2d9f7aff4b3e" >
<ep:Title>Full Service</ep:Title>
</ep:WorkspaceType>
<ep:field type="native" name="Summary" mayEdit="yes" ></ep:field>
<ep:field type="native" name="ApprovalStatus" mayEdit="no" >NotRequired</ep:field>
<ep:field type="native" name="Budget" mayEdit="yes" >0</ep:field>
<ep:field type="native" name="CreatedOn" mayEdit="no" >2/27/2009</ep:field>
<ep:field type="native" name="StartDate" mayEdit="yes" >2/27/2009</ep:field>
<ep:field type="native" name="EndDate" mayEdit="yes" >3/10/2009</ep:field>
<ep:field type="native" name="Health" mayEdit="yes" >OnPlan</ep:field>
<ep:field type="native" name="Owner" mayEdit="no" >Suhel Ahmed</ep:field>
<ep:field type="native" name="PercentComplete" mayEdit="no" >0</ep:field>
<ep:field type="native" name="Priority" mayEdit="yes" >Medium</ep:field>
<ep:field type="native" name="Budget" mayEdit="no" >0</ep:field>
<ep:field type="native" name="TotalBudget" mayEdit="no" >0</ep:field>
<ep:field type="native" name="PlannedCostFromTasks" mayEdit="no" >0</ep:field>
<ep:field type="native" name="TotalActualCost" mayEdit="no" >0</ep:field>
<ep:field type="native" name="TotalMinutesWorked" mayEdit="no" >0</ep:field>
<ep:field type="custom" name="SalesForceID" mayEdit="yes" id="359e1a31-ebaa-4ef9-b540-1556c0a1b206" >666</ep:field>
<ep:field type="custom" name="Client" mayEdit="yes" id="d0d69a76-573e-4534-b135-826753ed60aa" ></ep:field>
<ep:field type="custom" name="Region" mayEdit="yes" id="a0d96369-ad6f-4096-b11e-151b508d2030" >GMI</ep:field>
<ep:field type="custom" name="ProductType" mayEdit="yes" id="2ece64e9-ecbc-46dc-8e7b-fe6ba81dfb39" ></ep:field>
</ep:Workspace>
</ep:Response>]]>
            </CreateWorkspaceResult>
        </CreateWorkspaceResponse>
    </soap:Body>
</soap:Envelope>
And the XSL

Code:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
    xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
    exclude-result-prefixes="xs" 
    version="1.0">
    
    <xsl:output method="xml" omit-xml-declaration="no" encoding="utf-8"></xsl:output>
    
    <xsl:template match="soap:Envelope">
        <xsl:copy>
            <xsl:apply-templates select="soap:Header"></xsl:apply-templates>
            <xsl:apply-templates select="soap:Body"></xsl:apply-templates>
        </xsl:copy>
    </xsl:template>
    <xsl:template match="soap:Header">
        <xsl:copy-of select="."></xsl:copy-of>
    </xsl:template>
    <xsl:template match="soap:Body">
        <xsl:copy>
            <xsl:apply-templates select="*"></xsl:apply-templates>
        </xsl:copy>
    </xsl:template>
    <xsl:template match="*[namespace-uri()='http://www.sampleproject.com/webservice/BusinessServices' and local-name()='CreateWorkspaceResponse']">
        <xsl:copy>
            <xsl:apply-templates select="*"></xsl:apply-templates>
        </xsl:copy>
    </xsl:template>
    <xsl:template match="*[namespace-uri()='http://www.sampleproject.com/webservice/BusinessServices' and local-name()='CreateWorkspaceResult']">
        <xsl:copy>
            <xsl:value-of select="." disable-output-escaping="yes"></xsl:value-of>
        </xsl:copy>
    </xsl:template>
</xsl:stylesheet>
Any ideas?
 
Old March 10th, 2009, 09:04 AM
Friend of Wrox
 
Join Date: Nov 2007
Posts: 1,243
Thanks: 0
Thanked 245 Times in 244 Posts
Default

Well if you transform XML to XML then a browser is not the right tool to look at the transformation result. IE, as far as I know, treats any transformation result as text/html and parses it with its HTML tag soup parser so it is not suprising that you only see text nodes of the result as that is the only thing it can recognize and render, the XML elements like SOAP elements are not something the HTML parser recognizes.

Mozilla/Firefox is better as it has support for rendering certain XML applications (e.g. XHTML or SVG) so you would certainly be able to transform XML to SVG for instance and have Mozilla render that SVG. But I am afraid your SOAP message is not something that Mozilla associates any defined rendering with so all you get to see is the text nodes. You could associate an CSS stylesheet with your transformation result to style the resulting XML, that is something that Mozilla should support.

I guess what you expect to happen is that the browsers do the same with the resulting XML that they do with static XML not associated with a stylesheet, namely rendering a pretty-printed document tree. But I don't know of any browser that does that. I am not sure why, maybe chaining the XSLT provided in the XML document with the default XSLT doing the pretty-printing is too complicated.
__________________
Martin Honnen
Microsoft MVP (XML, Data Platform Development) 2005/04 - 2013/03
My blog
 
Old March 10th, 2009, 09:35 AM
Friend of Wrox
 
Join Date: Feb 2009
Posts: 119
Thanks: 25
Thanked 3 Times in 3 Posts
Default

Thats what I thought, but a little bit less intellectually. :)

thanks.





Similar Threads
Thread Thread Starter Forum Replies Last Post
xsl transformation ... rajesh_css XSLT 5 September 30th, 2008 12:37 AM
XSL-Transformation atulshin XSLT 4 September 15th, 2008 06:37 AM
WML and XSL transformation. Feodorov XSLT 2 February 13th, 2008 05:00 PM
Transformation of XSL text sg1973 XSLT 5 August 9th, 2006 03:47 PM
XSL transformation Thodoris XML 0 May 20th, 2004 08:33 AM





Powered by vBulletin®
Copyright ©2000 - 2020, Jelsoft Enterprises Ltd.
Copyright (c) 2020 John Wiley & Sons, Inc.