[XSL-LIST Mailing List Archive Home]
[By Thread]
[By Date]
RE: [xsl] XSLT Templates in a Web Browser
Subject: RE: [xsl] XSLT Templates in a Web Browser From: "Michael Kay" <mike@xxxxxxxxxxxx> Date: Sun, 31 Dec 2006 15:28:58 -0000 |
In general the relationship of source documents to stylesheets is many-to-many, and naming your source document within the stylesheet is just as unsatisfactory as naming the stylesheet within the source document. If you're going to use client-side transformation, it's best to control the process from Javascript within your HTML pages, using an API such as Sarissa to achieve cross-browser portability. Michael Kay http://www.saxonica.com/ > -----Original Message----- > From: Thomas Stone [mailto:stonethomasjames@xxxxxxxxx] > Sent: 31 December 2006 09:37 > To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx > Subject: [xsl] XSLT Templates in a Web Browser > > This is a post of one way to test multiple XSLT templates > producing web browser output against a single source XML document. > > I am relatively new to XSLT, though I have been > programming since the Commodore 64. While testing the > intricacies of the language, I primarily used it to transform > XML data into HTML output. The XML document referenced an > XSTL stylesheet. When I double-clicked on the .xml file, the > web browser found its associated XSLT stylesheet and > displayed the HTML output. This really helped in getting > "hands-on" experience with instant feed-back. > > The least satifactory part of this process was having to > edit my XML document every time I wanted to display the data > differently - to change the <?xml-stylesheet type="text/xsl" > href="Transform.xml"?> line. I an old control freak when it > comes to data files, and storing the desired "program" to run > against a data file INSIDE the data file just didn't feel > right. The solution I came up with uses the document() function. > > The trick I found was to rename my XSLT stylesheet to .xml > so the browser will open it and look for an associated > stylesheet instead of opening the source XML document. The > following is an example of my stylesheet. > > <?xml version="1.0" encoding="iso-8859-1"?> <?xml-stylesheet > type="text/xsl" href="Transform.xml"?> > > <xsl:stylesheet version="1.0" > xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> > <xsl:variable name="transform_document">Test.xml</xsl:variable> > > <xsl:template match="/"> > <xsl:apply-templates > select="document($transform_document)" mode="document"/> > </xsl:template> > > <xsl:template match="/" mode="document"> > <xsl:apply-templates /> > </xsl:template> > </xsl:stylesheet> > > > This makes my stylesheet its own stylesheet. The document > I want it to transform is stored in a variablee near the top > of the sheet - in this case it is called "Test.xml". If I > make a copy of this stylesheet, and change the > <?xml-stylesheet type="text/xsl" href="Transform.xml"?> line > to match the copy's name, I can make changes in the second > stylesheet and immediately compare the changes in resulting > HTML output against my original. I did not have to edit my > XML document. > > A second benefit of this is that the source XML document > does not have to be named as .xml. Virtual Reality Modeling > Language text content in an X3D file could be referenced by > changing the transform_document variable declaration to state > "HelloWorld.x3d". An Excel document that has been saved in > XML format or the Open Office documents could be source > documents just as easily, showing the data in a web browser > instead of their native application. > > -- > ___________________________________________________ > Search for products and services at: > http://search.mail.com
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
[xsl] XSLT Templates in a Web Brows, Thomas Stone | Thread | [no subject], Unknown |
[xsl] XSLT Templates in a Web Brows, Thomas Stone | Date | [no subject], Unknown |
Month |