spacer

Webref WebRef   Sitemap · Experts · Tools · Services · Newsletters · About i.com

home / authoring / languages / xml / insidexslt / chap2 / 6 current pageTo page 2To page 3To page 4To page 5
[next]

Inside XSLT

Developer News
Mandrake Linux Founder Back, Virtually
Amazon: We're a Technology Company
Sun Expands MySQL With Closed Source

Simplified Stylesheets

[Editor's note: the following is the conclusion of our series of excerpts from chapter 2 of the New Riders publication, "Inside XSLT."]

As you can see from the material covered so far, it can take some thought to create XSLT stylesheets. The W3C has tried to make things easier by introducing simplified stylesheets, where you don't need to-and in fact cannot-include the <xsl:stylesheet> element or any other top-level elements.

In fact, a simplified stylesheet is simply the result document with a few non-top-level XSL elements in it. W3C calls this a "literal result element as stylesheet."

In Listing 2.7, I'll transform planets.xml into planets.html, but this time I'll do it with a simplified stylesheet. In simplified stylesheets, you can't use top-level elements such as <xsl:template>, which allow recursive processing of all elements in the source document. So here, I'll look ahead a little and use the <xsl:for-each> element (covered in Chapter 5), which is not a top-level element, but which enables you to loop over a number of nodes at once.

I'll also need some way of matching all <PLANET> elements in the source document, and you might not think that's possible without several levels of templates-for example, one for the root node, then one to match the next level down, which is the <PLANETS> root element, and then another level down for the <PLANET> elements themselves. In fact, using XPath, you can use the expression "//PLANET" to match any <PLANET> element node that is descended from the root node (see Chapter 4). This means that I can write the simplified stylesheet as follows:

Listing 2.7. Simplified Stylesheet

<HTML 
xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
xsl:version="1.0">
  <HEAD>
    <TITLE>
      The Planets Table
    </TITLE>
  </HEAD>
  <BODY>
    <H1>
      The Planets Table
    </H1>
    <TABLE BORDER="2">
      <TR>
        <TD>Name</TD>
        <TD>Mass</TD>
        <TD>Radius</TD>
        <TD>Day</TD>
      </TR>
      <xsl:for-each select="//PLANET">
        <TR>
          <TD><xsl:value-of select="NAME"/></TD>
          <TD><xsl:value-of select="MASS"/></TD>
          <TD><xsl:value-of select="RADIUS"/></TD>
          <TD><xsl:value-of select="DAY"/></TD>
        </TR>
      </xsl:for-each>
    </TABLE>
  </BODY>
</HTML>

This version works just as the previous version of planets.xsl did, and without any top-level elements at all. Simplified stylesheets such as this one were introduced to help HTML authors make the transition to XSL, but the fact is that they're only of limited utility. As you can see, you still need to know how to use XSL elements, and the fact that you can't use <xsl:template> has only made the job more difficult here. But you should know that simplified stylesheets exist, and they're part of the XSLT specification.

Default Handling without an <xsl:stylesheet> Element
If an XSLT processor can't find the <xsl:stylesheet> element in a stylesheet, it's supposed to treat the stylesheet as a simplified stylesheet.


home / authoring / languages / xml / insidexslt / chap2 / 6 current pageTo page 2To page 3To page 4To page 5
[next]

internet.comearthweb.comDevx.commediabistro.comGraphics.com

Search:

Jupitermedia Corporation has two divisions: Jupiterimages and JupiterOnlineMedia

Jupitermedia Corporate Info

Legal Notices, Licensing, Reprints, Permissions, Privacy Policy.
Advertise | Newsletters | Tech Jobs | Shopping | E-mail Offers

webref The latest from WebReference.com Browse >
Working with the DOM Stylesheets Collection · Administering RBAC in PHP 5 CMS Framework · xref: Automatic Cross Referencing Script
Sitemap · Experts · Tools · Services · Email a Colleague · Contact FREE Newsletters 
 The latest from internet.com
Combine BottomCount() with Other MDX Functions to Add Sophistication · Creating a Daemon with Python · The Coming Voice-over-WiMAX Revolution

Created: October 16, 2001
Revised: October 16, 2001


URL: http://webreference.com/authoring/languages/xml/insidexslt/chap2/6/