Re: [xsl] XML allowing variable XSL application for browsers?

Subject: Re: [xsl] XML allowing variable XSL application for browsers?
From: "M. David Peterson" <m.david.x2x2x@xxxxxxxxx>
Date: Thu, 21 Apr 2005 00:48:58 -0600
Whoa!  Thats a lot of disparate processes to invoke.  It seems this
should be a lot simpler and in fact, is. Chris Bayes shows you the
basics of  how to do this and then extends things into as a PowerToy
to dynamically swtich the stylesheets.

http://www.bayes.co.uk/xml/portal.aspx?page=/xml/index.xml&subpage=/xml/utils
/multiple.xml


Using embedded PIs to determine the proper styesheet to use is by far
the easiest as it doesnt require any extra code in form of client-side
Javasript to initialize the transformation.  A great way to handle
both -- wait, Safari just got client-side XSLT so I guess that means
we need to start saying "A great way to handle all three" although I
here there's all sorts of Java hell breaking lose after the install of
the latest OSX release and as such creating a Monty Python-styled "RUN
AWAY" circus... Im sure they will fix that soon if not already so
using "all three" should be a safe usage bet.

Anyway, a great way to handle the differences between each of the
processors (MSXML, TransforMiiX, libxslt) is to use the xsl:vendor
function to determine which processor this is.  Embedded with a Choose
When Otherwise block will then allow you to use a "start" template to
store each processors nuisances within an outside XML document that
contains the proper data values to be used instead of what would
normally be used, etc... By using the mode attribute of xsl:template
and xsl:apply-templates you can easily "label" the entry template for
each processor without missing a beat in regards to a well designed,
template-based transformation process (using a named template would
require you to pass "/" as a parameter each  time which, depending on
the size of the tree, could become quite massive and as such drive
permonance of your application down.  Named-templates serve a very
important set of aspects in the world of XSLT development, but this
example isnt one them.

Hope this helps!

On 4/20/05, Aron Bock <aronbock@xxxxxxxxxxx> wrote:
> John, here's one way to approach this:
>
> 1) send the browser an HTML document, with an embedded XML data island, and
> multiple XSL islands, each corresponding to a transform.  They need not be
> "embedded", but in many cases I prefer this.
>
> 2) in the body-load event, use client-side [java]script to apply one of the
> XSLs to the XML and display
>
> 3) at server or client build a dropdown of other transforms ("views"); each
> corresponds to an XSL island; when selected use script to apply the
> corresponding XSL to the XML and redisplay.  All this happens without a
> server round-trip.
>
> See this link for starters: http://xmlfiles.com/xsl/xsl_client.asp .  Also
> look into "Sarissa", which has been mentioned on this NG as a cross-browser
> XML-related script library.
>
> Regards,
>
> --A
>
> >From: John <john-xsl-list@xxxxxxxx>
> >Reply-To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> >To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> >Subject: [xsl] XML allowing variable XSL application for browsers?
> >Date: Wed, 20 Apr 2005 14:14:51 -0700
> >
> >I have an XML file on a web server which references an XSL with code as
> >follows:
> >
> ><?xml-stylesheet type="text/xsl" href="somefile.xsl"?>
> >
> >When IE or Firefox requests this XML file, the browser detects the
> >stylesheet reference and applies it to the XML to transform it into HTML.
> >This works great, but what if I want to let the user choose from multiple
> >XSL files which can be applied to the same XML?  My first thought was URL
> >parameters (which I otherwise generally avoid), but I am not sure if there
> >is any URL parameter that can override the stylesheet referenced in the
XML
> >file.  I was then thinking multiple XML files that basically contain the
> >XSL reference and an entity reference (keeping the XML in a separate
file),
> >or using document() in the XSL files to open the content XML, but I would
> >prefer to avoid that if possible.
> >
> >Does anyone have any recommendations, pros and cons of the various
> >techniques?
> >
> >Thanks & regards,
> >
> >    -John
> >
>
> _________________________________________________________________
> Is your PC infected? Get a FREE online computer virus scan from McAfee(r)
> Security. http://clinic.mcafee.com/clinic/ibuy/campaign.asp?cid=3963
>
>



--
<M:D/>

:: M. David Peterson ::
XML & XML Transformations, C#, .NET, and Functional Languages Specialist

Current Thread