Re: [xsl] question on support of stylesheet embedding

Subject: Re: [xsl] question on support of stylesheet embedding
From: Hermann Stamm-Wilbrandt <STAMMW@xxxxxxxxxx>
Date: Mon, 20 Jul 2009 21:29:02 +0200
> If you reverse the method and include your data in the xsl:stylesheet
> (example below) it will work with all browsers. Remarks:
> - tested with IE 6, Firefox 3.5, Opera 9.6.
> - the PI would work also with an empty href (exept IE)
> - the file embedd-test3.xsl was served with application/xml

You are right, that does work, but it is not what xsl-url is about:
(see http://www.stamm-wilbrandt.de/en/xsl-list/xsl-url/#listings)


The idea of xsl-url is to have
- one data file (cdcatalog.xml)
- one stylesheet (cdcatalog.xsl) referenced by that data file
- many different files cdcatalog.1.xsl, cdcatalog.2.xsl, ...
  just "referencing" the data file and the stylesheet (indirectly,
  via cdcatalog.xsl.xsl).

This has the advantage that any change in the data file (cdcatalog.xml)
is immediately visible to all referencing data files, and each data
file may pass in any information (the query string in the samples)
without any side-effect -- and this with pure XSLT ...


If embedding the data file into the transformation all files
(cdcatalog.1.xsl, cdcatalog.2,xsl, ...) would have to be modified and
are difficult to keep in sync.


Mit besten Gr|_en / Best wishes,

Hermann Stamm-Wilbrandt
Developer, XML Compiler
WebSphere DataPower SOA Appliances
----------------------------------------------------------------------
IBM Deutschland Research & Development GmbH
Vorsitzender des Aufsichtsrats: Martin Jetter
Geschdftsf|hrung: Erich Baier
Sitz der Gesellschaft: Bvblingen
Registergericht: Amtsgericht Stuttgart, HRB 243294



             Manfred
             Staudinger
             <manfred.stauding                                          To
             er@xxxxxxxxx>             xsl-list@xxxxxxxxxxxxxxxxxxxxxx
                                                                        cc
             07/20/2009 08:15
             PM                                                    Subject
                                       Re: [xsl] question on support of
                                       stylesheet embedding
             Please respond to
             xsl-list@xxxxxxxx
              lberrytech.com







On 15/07/2009, Hermann Stamm-Wilbrandt <STAMMW@xxxxxxxxxx> wrote:
> My interest in this was to eliminate the need for file
"cdcatalog.xsl.xsl"
> by incorporating "something" as embedded stylesheet into "cdcatalog1.xml"
> and "cdcatalog2.xml" from posting "../200906/msg00070.html"
> (see http://www.stamm-wilbrandt.de/en/xsl-list/xsl-url/#listings).
>
> Since stylesheet embedding is not supported by all browsers I will not
> investigate further into that direction.
If you reverse the method and include your data in the xsl:stylesheet
(example below) it will work with all browsers. Remarks:
- tested with IE 6, Firefox 3.5, Opera 9.6.
- the PI would work also with an empty href (exept IE)
- the file embedd-test3.xsl was served with application/xml

Regards,

Manfred Staudinger

embedd-test3.xsl:
<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="embedd-test3.xsl"?>
<xsl:stylesheet version="1.0"
             xmlns:xsl="http://www.w3.org/1999/XSL/Transform";>
             <xsl:output method="html"/>
             <xsl:template match="/">.
                         <xsl:apply-templates select="*/xsl:variable
[@name='catalog']/*"/>
             </xsl:template>
             <xsl:template match="catalog">
                         <html>
                                     <body>
                                                 <h2>My CD Collection</h2>
                                                 <table border="1">
                                                             <tr
bgcolor="#9acd32">

<th>Title</th>

<th>Artist</th>
                                                             </tr>

<xsl:apply-templates select="*"/>
                                                 </table>
                                     </body>
                         </html>
             </xsl:template>
             <xsl:template match="cd">
                         <tr>
                                     <td><xsl:value-of select="title"/>
</td>
                                     <td><xsl:value-of select="artist"/>
</td>
                         </tr>
             </xsl:template>
             <xsl:variable name="catalog">
                         <catalog>
                                     <cd>
                                                 <title>Empire
Burlesque</title>
                                                 <artist>Bob Dylan</artist>
                                                 <country>USA</country>

<company>Columbia</company>
                                                 <price>10.90</price>
                                                 <year>1985</year>
                                     </cd>
                                     <cd>
                                                 <title>The white
album</title>
                                                 <artist>Beatles</artist>
                                                 <country>UK</country>
                                                 <company>apple</company>
                                                 <price>???</price>
                                                 <year>196?</year>
                                     </cd>
                         </catalog>
             </xsl:variable>
</xsl:stylesheet>



On 15/07/2009, Hermann Stamm-Wilbrandt <STAMMW@xxxxxxxxxx> wrote:
>> I tried this in Chrome, and it does a fantastic job ! Which is amazing
>> to me because chrome does horribly on "pure xml" files ... one thing I
>> keep IE lying around
>
> It is fine that most browsers but IEs support stylesheet embedding.
>
> My interest in this was to eliminate the need for file
"cdcatalog.xsl.xsl"
> by incorporating "something" as embedded stylesheet into "cdcatalog1.xml"
> and "cdcatalog2.xml" from posting "../200906/msg00070.html"
> (see http://www.stamm-wilbrandt.de/en/xsl-list/xsl-url/#listings).
>
> Since stylesheet embedding is not supported by all browsers I will not
> investigate further into that direction.
>
>
> Mit besten Gr|_en / Best wishes,
>
> Hermann Stamm-Wilbrandt
> Developer, XML Compiler
> WebSphere DataPower SOA Appliances
> ----------------------------------------------------------------------
> IBM Deutschland Research & Development GmbH
> Vorsitzender des Aufsichtsrats: Martin Jetter
> Geschdftsf|hrung: Erich Baier
> Sitz der Gesellschaft: Bvblingen
> Registergericht: Amtsgericht Stuttgart, HRB 243294
>
>
>
>              "David A. Lee"
>              <dlee@xxxxxxxxxxx
>              >
To
>                                        xsl-list@xxxxxxxxxxxxxxxxxxxxxx
>              07/15/2009 06:24
cc
>              PM
>
Subject
>                                        Re: [xsl] question on support of
>              Please respond to         stylesheet embedding
>              xsl-list@xxxxxxxx
>               lberrytech.com
>
>
>
>
>
>
>
>
> I tried this in Chrome, and it does a fantastic job ! Which is amazing
> to me because chrome does horribly on "pure xml" files ... one thing I
> keep IE lying around
>
> David A. Lee
> dlee@xxxxxxxxxxx
> http://www.calldei.com,
> http://www.xmlsh.org
> 812-482-5224
>
>
>
> Martin Honnen wrote:
>> Hermann Stamm-Wilbrandt wrote:
>>
>>> the spec says that embedding a stylesheet into a XML document is
>>> possible:
>>> http://www.w3.org/TR/xslt#section-Embedding-Stylesheets
>>>
>>> After some searching I was able to get the cdcatalog sample below
>>> working:
>>> (http://www.stamm-wilbrandt.de/en/xsl-list/cdcatalog.xml if you want to
>>> click).
>>>
>>> But it is working for Firefox 2/3 and Opera 9.64, NOT for MS IE6.
>>> I found neither negative nor positive statements on IE 6/7/8 support
>>> of stylesheet embedding while searching the web.
>>>
>>> Does anybody now the answer whether any of the Microsoft browsers
>>> supports
>>> stylesheet embedding?
>>
>> It does not look like that is supported with IE. IE 8 when I try your
>> test case http://www.stamm-wilbrandt.de/en/xsl-list/cdcatalog.xml
>> seems to sniff the content and try to interpret it as text/html
>> meaning you end up with a browser window displaying the contents of
>> the first title element in the window bar and a table with only the
>> header row as the contents of the document followed by any text nodes
>> in all those unknown (to the HTML parser) elements like artist, country.

Current Thread