<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">

<!-- www.matthewwest.co.uk                                              -->
<!-- Layout $LastChangedDate:: 2007-05-12 08:36:32 -0700 (Sat, 12 May#$ -->
<!-- Layout $Revision:: 134                                           $ -->
<!-- Copyright (C) 2005-2007 Matthew West                               -->
  
  <head profile="http://gmpg.org/xfn/11">
    <meta name="title" content="Blog - XML to XHTML transformation" />
    <meta name="author" content="Matthew West" />
    <title>
      Blog - XML to XHTML transformation
    </title>
        
    <link href="/stylesheets/site.css?1184434403" media="all" rel="Stylesheet" type="text/css" />
    
    <link href="/stylesheets/print.css?1184459558" media="print" rel="Stylesheet" type="text/css" />
    <link href="/stylesheets/syntax.css?1184434403" media="all" rel="Stylesheet" type="text/css" />
    <link href="/favicon.ico?1167527172" rel="shortcut icon" />
    <style type="text/css">
      
    </style>
          <link href="/blog/2002/8/19/3-link-checker" rel="prev" title="Blog - Link Checker" />
      <link href="/blog/2002/8/1/4-photo-album" rel="first" title="Blog - Photo Album" />
              <link href="/blog/2005/2/21/9-xsl-contents" rel="next" title="Blog - XSL Contents" />
      <link href="/blog/2007/9/16/12-find-fixtures-without-thinking" rel="last" title="Blog - Find Fixtures Without Thinking" />
        <link href="http://www.matthewwest.co.uk/" rel="home" title="Index" />
    <link href="#&lt;#&lt;Class:0xb787fe50&gt;:0xb70a1a9c&gt;" rel="up" title="Blog" />
    <link href="http://www.matthewwest.co.uk/blog/feeds" rel="alternate" title="ATOM" type="application/atom+xml" />
    <link href="http://www.matthewwest.co.uk/blog/feeds/rss2" rel="alternate" title="RSS" type="application/rss+xml" />
  </head>

  <body>
    <div id="bannerhead" >
      <span class="right">www.matthewwest.co.uk</span>
    </div>
     
    <div id="crumbs">
              <a href="/blog">Blog</a>
                  &#160;&gt;&#160;
                      <a href="/blog/2002/8/20/2-xml-to-xhtml-transformation">XML to XHTML transformation</a>
                        </div>
    <h1>
      Blog - XML to XHTML transformation
    </h1>
        
      <div class="floatr">
    <a href="/blog/2005/2/21/9-xsl-contents">XSL Contents&raquo;</a>
  </div>
  <div>
    <a href="/blog/2002/8/19/3-link-checker">&laquo;Link Checker</a>
  </div>
<div style="width:100%;clear:both;">
</div>

<div class="sidebarr tag-cloud">
  Tags:<br />
  <a href="http://www.matthewwest.co.uk/tags/Lucky+Soul" style="font-size: 58%;">Lucky Soul</a> <a href="http://www.matthewwest.co.uk/tags/avolites" style="font-size: 48%;">avolites</a> <a href="http://www.matthewwest.co.uk/tags/chamsys" style="font-size: 58%;">chamsys</a> <a href="http://www.matthewwest.co.uk/tags/computing" style="font-size: 77%;">computing</a> <a href="http://www.matthewwest.co.uk/tags/echelon" style="font-size: 82%;">echelon</a> <a href="http://www.matthewwest.co.uk/tags/hog+1000" style="font-size: 48%;">hog 1000</a> <a href="http://www.matthewwest.co.uk/tags/hog+2" style="font-size: 48%;">hog 2</a> <a href="http://www.matthewwest.co.uk/tags/hog+3" style="font-size: 110%;">hog 3</a> <a href="http://www.matthewwest.co.uk/tags/hog+iPc" style="font-size: 110%;">hog iPc</a> <a href="http://www.matthewwest.co.uk/tags/java" style="font-size: 58%;">java</a> <a href="http://www.matthewwest.co.uk/tags/lighting" style="font-size: 150%;">lighting</a> <a href="http://www.matthewwest.co.uk/tags/magicq" style="font-size: 58%;">magicq</a> <a href="http://www.matthewwest.co.uk/tags/music" style="font-size: 48%;">music</a> <a href="http://www.matthewwest.co.uk/tags/pearl+2004" style="font-size: 48%;">pearl 2004</a> <a href="http://www.matthewwest.co.uk/tags/pearl+expert" style="font-size: 48%;">pearl expert</a> <a href="http://www.matthewwest.co.uk/tags/rails" style="font-size: 48%;">rails</a> <a href="http://www.matthewwest.co.uk/tags/ruby" style="font-size: 48%;">ruby</a> <a href="http://www.matthewwest.co.uk/tags/sailing" style="font-size: 133%;">sailing</a> <a href="http://www.matthewwest.co.uk/tags/website" style="font-size: 77%;">website</a> <a href="http://www.matthewwest.co.uk/tags/xhtml" style="font-size: 72%;">xhtml</a> <a href="http://www.matthewwest.co.uk/tags/xml" style="font-size: 58%;">xml</a> <a href="http://www.matthewwest.co.uk/tags/xsl" style="font-size: 65%;">xsl</a> 
</div>

<dl class="sidebarr frame">
  <dt class="header">Recent Updates</dt>
      <dd><a href="http://www.matthewwest.co.uk/blog/2007/9/16/12-find-fixtures-without-thinking" rel="bookmark">Find Fixtures Without Thinking</a></dd>
      <dd><a href="http://www.matthewwest.co.uk/blog/2007/6/3/11-bush-hall-reviews" rel="bookmark">Bush Hall Reviews</a></dd>
      <dd><a href="http://www.matthewwest.co.uk/blog/2007/5/25/10-lucky-soul-at-bush-hall" rel="bookmark">Lucky Soul at Bush Hall</a></dd>
      <dd><a href="http://www.matthewwest.co.uk/blog/2005/2/21/9-xsl-contents" rel="bookmark">XSL Contents</a></dd>
      <dd><a href="http://www.matthewwest.co.uk/blog/2007/4/15/8-new-website" rel="bookmark">New Website</a></dd>
  </dl>

<div class="post hentry">
  <h2 class="entry-title"><a href="http://www.matthewwest.co.uk/blog/2002/8/20/2-xml-to-xhtml-transformation" rel="bookmark">XML to XHTML transformation</a></h2>
  <h4 class="tags floatr">
    Tags: <a href="http://www.matthewwest.co.uk/tags/computing" rel="tag">computing</a>, <a href="http://www.matthewwest.co.uk/tags/xml" rel="tag">xml</a>, <a href="http://www.matthewwest.co.uk/tags/xhtml" rel="tag">xhtml</a>, <a href="http://www.matthewwest.co.uk/tags/xsl" rel="tag">xsl</a>, <a href="http://www.matthewwest.co.uk/tags/website" rel="tag">website</a>
  </h4>
  <h4 class="datetime">
          Posted
      <abbr class="published" title="2002-08-20T15:10:00Z">
        at August 20, 2002 15:10
      </abbr>
      | Updated
      <abbr class="modified" title="2007-04-13T21:31:55Z">
        at April 13, 2007 21:31
      </abbr>
      </h4>
  <div class="entry-content">
    
    <p>I created this <span class="caps">XSL</span> document for my old website to display various <span class="caps">XML</span> and <span class="caps">XSL</span> files that I had created.  It effectively adds markup to the document so that the various parts appear in different styles, governed by an external stylesheet.  I have stuck to just changing the colours.  The layout of the document is roughly preserved.  The <code>&lt;?xml ?&gt;</code> line at the beginning is lost, as is the <code>DOCTYPE</code> declaration.  Also lost are any text nodes outside the root element.  These are added in by the stylesheet.  The <span class="caps">XSL1</span> specification does not allow for the creation of &#8216;identity&#8217; templates, as all entites are resolved by the <span class="caps">XML</span> processor before they reach the <span class="caps">XSL</span> template.</p>


	<h3>How It Works</h3>


	<p>The initial template matches the document node.  It first looks for comments, using the <code>prolog</code> mode comment template, which adds a newline after every comment.  Thus any comments at the bottom of the source will appear at the top.  It then selects either the root element, or any processing instructions.</p>


	<p>The attributes are dealt with by the <code>match="@*"</code> template and comments are dealt with by the <code>match="comment()"</code>.  The <code>match="text()"</code> sorts out all the text, and displays it all, including whitespace to ensure that the document is laid out as it is in the source.</p>


	<p>The <span class="caps">XSL</span> document seems to manage OK with my documents, which are all laid out in a similar style, however I don&#8217;t think it could cope with all documents.  The version used to create the old website differed only in that it can be called from other <span class="caps">XSL</span> sheets so that I can put a line into my <span class="caps">HTML</span> source such as <code>&lt;xml2xhtml root="yes" href="cv2pdf.xsl" /&gt;</code> and the code will be inserted.</p>


	<h3>The <span class="caps">XSL</span> File</h3>


	<p>This is the file, having been processed by the <a href="http://syntax.rubyforge.org/">Syntax</a> Ruby Gem.  I don&#8217;t use <span class="caps">XSL</span> on this website at all anymore.  You can <a href="/docs/xml2xhtml.xsl">Download</a> it.</p>


<pre class="xml">
<span class="punct">&lt;?</span><span class="tag">xml</span> <span class="attribute">version</span><span class="punct">=&quot;</span><span class="string">1.0</span><span class="punct">&quot;</span> <span class="attribute">encoding</span><span class="punct">=&quot;</span><span class="string">iso-8859-1</span><span class="punct">&quot;?&gt;</span>

<span class="punct">&lt;</span><span class="namespace">xsl</span><span class="punct">:</span><span class="tag">stylesheet</span> <span class="namespace">xmlns</span><span class="punct">:</span><span class="attribute">xsl</span><span class="punct">=&quot;</span><span class="string">http://www.w3.org/1999/XSL/Transform</span><span class="punct">&quot;</span> 
                <span class="namespace">xmlns</span><span class="punct">:</span><span class="attribute">xalan</span><span class="punct">=&quot;</span><span class="string">http://xml.apache.org/xslt</span><span class="punct">&quot;</span>
        <span class="attribute">xmlns</span><span class="punct">=&quot;</span><span class="string">http://www.w3.org/1999/xhtml</span><span class="punct">&quot;</span>
                <span class="attribute">version</span><span class="punct">=&quot;</span><span class="string">1.0</span><span class="punct">&quot;&gt;</span>
 <span class="punct">&lt;</span><span class="namespace">xsl</span><span class="punct">:</span><span class="tag">output</span> <span class="attribute">omit-xml-declaration</span><span class="punct">=&quot;</span><span class="string">no</span><span class="punct">&quot;</span>
             <span class="attribute">method</span><span class="punct">=&quot;</span><span class="string">xml</span><span class="punct">&quot;</span>
             <span class="attribute">doctype-public</span><span class="punct">=&quot;</span><span class="string">-//W3C//DTD XHTML 1.0 Strict//EN</span><span class="punct">&quot;</span>
             <span class="attribute">doctype-system</span><span class="punct">=&quot;</span><span class="string">http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd</span><span class="punct">&quot;</span>
         <span class="namespace">xalan</span><span class="punct">:</span><span class="attribute">indent-amount</span><span class="punct">=&quot;</span><span class="string">1</span><span class="punct">&quot;</span>
         <span class="attribute">indent</span><span class="punct">=&quot;</span><span class="string">no</span><span class="punct">&quot;</span>
             <span class="attribute">encoding</span><span class="punct">=&quot;</span><span class="string">iso-8859-1</span><span class="punct">&quot;</span> <span class="punct">/&gt;</span>
 <span class="punct">&lt;</span><span class="namespace">xsl</span><span class="punct">:</span><span class="tag">template</span> <span class="attribute">match</span><span class="punct">=&quot;</span><span class="string">/</span><span class="punct">&quot;&gt;</span>
  <span class="punct">&lt;</span><span class="tag">html</span><span class="punct">&gt;</span>
   <span class="punct">&lt;</span><span class="tag">head</span><span class="punct">&gt;</span>
    <span class="punct">&lt;</span><span class="tag">link</span> <span class="attribute">rel</span><span class="punct">=&quot;</span><span class="string">stylesheet</span><span class="punct">&quot;</span> <span class="attribute">href</span><span class="punct">=&quot;</span><span class="string">convert.css</span><span class="punct">&quot;</span> <span class="punct">/&gt;</span>
   <span class="punct">&lt;/</span><span class="tag">head</span><span class="punct">&gt;</span> 
   <span class="punct">&lt;</span><span class="tag">body</span><span class="punct">&gt;</span>
    <span class="punct">&lt;</span><span class="tag">pre</span><span class="punct">&gt;</span>
     <span class="punct">&lt;</span><span class="namespace">xsl</span><span class="punct">:</span><span class="tag">apply-templates</span> <span class="attribute">select</span><span class="punct">=&quot;</span><span class="string">comment()</span><span class="punct">&quot;</span> <span class="attribute">mode</span><span class="punct">=&quot;</span><span class="string">prolog</span><span class="punct">&quot;</span> <span class="punct">/&gt;</span>
     <span class="punct">&lt;</span><span class="namespace">xsl</span><span class="punct">:</span><span class="tag">apply-templates</span> <span class="attribute">select</span><span class="punct">=&quot;</span><span class="string">* | processing-instruction()</span><span class="punct">&quot;</span> <span class="punct">/&gt;</span>
    <span class="punct">&lt;/</span><span class="tag">pre</span><span class="punct">&gt;</span> 
   <span class="punct">&lt;/</span><span class="tag">body</span><span class="punct">&gt;</span>
  <span class="punct">&lt;/</span><span class="tag">html</span><span class="punct">&gt;</span> 
 <span class="punct">&lt;/</span><span class="namespace">xsl</span><span class="punct">:</span><span class="tag">template</span><span class="punct">&gt;</span>

 <span class="punct">&lt;</span><span class="namespace">xsl</span><span class="punct">:</span><span class="tag">template</span> <span class="attribute">match</span><span class="punct">=&quot;</span><span class="string">*</span><span class="punct">&quot;&gt;</span>
  <span class="punct">&lt;</span><span class="namespace">xsl</span><span class="punct">:</span><span class="tag">text</span><span class="punct">&gt;&lt;&lt;/</span><span class="namespace">xsl</span><span class="punct">:</span><span class="attribute">text</span><span class="punct">&gt;</span>
  <span class="punct">&lt;</span><span class="namespace">xsl</span><span class="punct">:</span><span class="tag">call-template</span> <span class="attribute">name</span><span class="punct">=&quot;</span><span class="string">showName</span><span class="punct">&quot;&gt;</span>
   <span class="punct">&lt;</span><span class="namespace">xsl</span><span class="punct">:</span><span class="tag">with-param</span> <span class="attribute">name</span><span class="punct">=&quot;</span><span class="string">name</span><span class="punct">&quot;</span> <span class="attribute">select</span><span class="punct">=&quot;</span><span class="string">name()</span><span class="punct">&quot;</span> <span class="punct">/&gt;</span>
  <span class="punct">&lt;/</span><span class="namespace">xsl</span><span class="punct">:</span><span class="tag">call-template</span><span class="punct">&gt;</span> 
  <span class="punct">&lt;</span><span class="namespace">xsl</span><span class="punct">:</span><span class="tag">apply-templates</span> <span class="attribute">select</span><span class="punct">=&quot;</span><span class="string">@*</span><span class="punct">&quot;</span> <span class="punct">/&gt;</span>
  <span class="punct">&lt;</span><span class="namespace">xsl</span><span class="punct">:</span><span class="tag">choose</span><span class="punct">&gt;</span>
   <span class="punct">&lt;</span><span class="namespace">xsl</span><span class="punct">:</span><span class="tag">when</span> <span class="attribute">test</span><span class="punct">=&quot;</span><span class="string">node()</span><span class="punct">&quot;&gt;</span>
    <span class="punct">&lt;</span><span class="namespace">xsl</span><span class="punct">:</span><span class="tag">text</span><span class="punct">&gt;</span>&gt;<span class="punct">&lt;/</span><span class="namespace">xsl</span><span class="punct">:</span><span class="tag">text</span><span class="punct">&gt;</span>
    <span class="punct">&lt;</span><span class="namespace">xsl</span><span class="punct">:</span><span class="tag">apply-templates</span> <span class="punct">/&gt;</span>
    <span class="punct">&lt;</span><span class="namespace">xsl</span><span class="punct">:</span><span class="tag">text</span><span class="punct">&gt;&lt;&lt;/</span><span class="namespace">xsl</span><span class="punct">:</span><span class="attribute">text</span><span class="punct">&gt;</span> 
    <span class="punct">&lt;</span><span class="namespace">xsl</span><span class="punct">:</span><span class="tag">text</span><span class="punct">&gt;</span>/<span class="punct">&lt;/</span><span class="namespace">xsl</span><span class="punct">:</span><span class="tag">text</span><span class="punct">&gt;</span>
    <span class="punct">&lt;</span><span class="namespace">xsl</span><span class="punct">:</span><span class="tag">call-template</span> <span class="attribute">name</span><span class="punct">=&quot;</span><span class="string">showName</span><span class="punct">&quot;&gt;</span>
     <span class="punct">&lt;</span><span class="namespace">xsl</span><span class="punct">:</span><span class="tag">with-param</span> <span class="attribute">name</span><span class="punct">=&quot;</span><span class="string">name</span><span class="punct">&quot;</span> <span class="attribute">select</span><span class="punct">=&quot;</span><span class="string">name()</span><span class="punct">&quot;</span> <span class="punct">/&gt;</span>
    <span class="punct">&lt;/</span><span class="namespace">xsl</span><span class="punct">:</span><span class="tag">call-template</span><span class="punct">&gt;</span> 
   <span class="punct">&lt;/</span><span class="namespace">xsl</span><span class="punct">:</span><span class="tag">when</span><span class="punct">&gt;</span>
   <span class="punct">&lt;</span><span class="namespace">xsl</span><span class="punct">:</span><span class="tag">otherwise</span><span class="punct">&gt;</span> 
    <span class="punct">&lt;</span><span class="namespace">xsl</span><span class="punct">:</span><span class="tag">text</span><span class="punct">&gt;</span>/<span class="punct">&lt;/</span><span class="namespace">xsl</span><span class="punct">:</span><span class="tag">text</span><span class="punct">&gt;</span>
   <span class="punct">&lt;/</span><span class="namespace">xsl</span><span class="punct">:</span><span class="tag">otherwise</span><span class="punct">&gt;</span>
  <span class="punct">&lt;/</span><span class="namespace">xsl</span><span class="punct">:</span><span class="tag">choose</span><span class="punct">&gt;</span> 
  <span class="punct">&lt;</span><span class="namespace">xsl</span><span class="punct">:</span><span class="tag">text</span><span class="punct">&gt;</span>&gt;<span class="punct">&lt;/</span><span class="namespace">xsl</span><span class="punct">:</span><span class="tag">text</span><span class="punct">&gt;</span>
 <span class="punct">&lt;/</span><span class="namespace">xsl</span><span class="punct">:</span><span class="tag">template</span><span class="punct">&gt;</span>

 <span class="punct">&lt;</span><span class="namespace">xsl</span><span class="punct">:</span><span class="tag">template</span> <span class="attribute">name</span><span class="punct">=&quot;</span><span class="string">showName</span><span class="punct">&quot;&gt;</span>
  <span class="punct">&lt;</span><span class="namespace">xsl</span><span class="punct">:</span><span class="tag">param</span> <span class="attribute">name</span><span class="punct">=&quot;</span><span class="string">name</span><span class="punct">&quot;</span> <span class="punct">/&gt;</span>
  <span class="punct">&lt;</span><span class="namespace">xsl</span><span class="punct">:</span><span class="tag">choose</span><span class="punct">&gt;</span>
   <span class="punct">&lt;</span><span class="namespace">xsl</span><span class="punct">:</span><span class="tag">when</span> <span class="attribute">test</span><span class="punct">=&quot;</span><span class="string">substring-before($name, ':')</span><span class="punct">&quot;&gt;</span>
    <span class="punct">&lt;</span><span class="tag">span</span> <span class="attribute">class</span><span class="punct">=&quot;</span><span class="string">namespace</span><span class="punct">&quot;&gt;</span>
     <span class="punct">&lt;</span><span class="namespace">xsl</span><span class="punct">:</span><span class="tag">value-of</span> <span class="attribute">select</span><span class="punct">=&quot;</span><span class="string">substring-before($name, ':')</span><span class="punct">&quot;</span> <span class="punct">/&gt;</span>
    <span class="punct">&lt;/</span><span class="tag">span</span><span class="punct">&gt;</span>
    <span class="punct">&lt;</span><span class="namespace">xsl</span><span class="punct">:</span><span class="tag">text</span><span class="punct">&gt;</span>:<span class="punct">&lt;/</span><span class="namespace">xsl</span><span class="punct">:</span><span class="tag">text</span><span class="punct">&gt;</span>
    <span class="punct">&lt;</span><span class="tag">span</span> <span class="attribute">class</span><span class="punct">=&quot;</span><span class="string">element</span><span class="punct">&quot;&gt;</span>
     <span class="punct">&lt;</span><span class="namespace">xsl</span><span class="punct">:</span><span class="tag">value-of</span> <span class="attribute">select</span><span class="punct">=&quot;</span><span class="string">substring-after($name, ':')</span><span class="punct">&quot;</span> <span class="punct">/&gt;</span>
    <span class="punct">&lt;/</span><span class="tag">span</span><span class="punct">&gt;</span>
   <span class="punct">&lt;/</span><span class="namespace">xsl</span><span class="punct">:</span><span class="tag">when</span><span class="punct">&gt;</span>
   <span class="punct">&lt;</span><span class="namespace">xsl</span><span class="punct">:</span><span class="tag">otherwise</span><span class="punct">&gt;</span>
    <span class="punct">&lt;</span><span class="tag">span</span> <span class="attribute">class</span><span class="punct">=&quot;</span><span class="string">element</span><span class="punct">&quot;&gt;</span>
     <span class="punct">&lt;</span><span class="namespace">xsl</span><span class="punct">:</span><span class="tag">value-of</span> <span class="attribute">select</span><span class="punct">=&quot;</span><span class="string">$name</span><span class="punct">&quot;</span> <span class="punct">/&gt;</span>
    <span class="punct">&lt;/</span><span class="tag">span</span><span class="punct">&gt;</span>
   <span class="punct">&lt;/</span><span class="namespace">xsl</span><span class="punct">:</span><span class="tag">otherwise</span><span class="punct">&gt;</span>
  <span class="punct">&lt;/</span><span class="namespace">xsl</span><span class="punct">:</span><span class="tag">choose</span><span class="punct">&gt;</span>
 <span class="punct">&lt;/</span><span class="namespace">xsl</span><span class="punct">:</span><span class="tag">template</span><span class="punct">&gt;</span>       

 <span class="punct">&lt;</span><span class="namespace">xsl</span><span class="punct">:</span><span class="tag">template</span> <span class="attribute">match</span><span class="punct">=&quot;</span><span class="string">processing-instruction()</span><span class="punct">&quot;&gt;</span>
  <span class="punct">&lt;</span><span class="tag">span</span> <span class="attribute">class</span><span class="punct">=&quot;</span><span class="string">process</span><span class="punct">&quot;&gt;</span>
   <span class="punct">&lt;</span><span class="namespace">xsl</span><span class="punct">:</span><span class="tag">text</span><span class="punct">&gt;&lt;?&lt;/</span><span class="namespace">xsl</span><span class="punct">:</span><span class="attribute">text</span><span class="punct">&gt;</span>
   <span class="punct">&lt;</span><span class="namespace">xsl</span><span class="punct">:</span><span class="tag">value-of</span> <span class="attribute">select</span><span class="punct">=&quot;</span><span class="string">name()</span><span class="punct">&quot;</span> <span class="punct">/&gt;</span>
  <span class="punct">&lt;/</span><span class="tag">span</span><span class="punct">&gt;</span> 
  <span class="punct">&lt;</span><span class="namespace">xsl</span><span class="punct">:</span><span class="tag">text</span><span class="punct">&gt;</span> <span class="punct">&lt;/</span><span class="namespace">xsl</span><span class="punct">:</span><span class="tag">text</span><span class="punct">&gt;</span>
  <span class="punct">&lt;</span><span class="tag">span</span> <span class="attribute">class</span><span class="punct">=&quot;</span><span class="string">text</span><span class="punct">&quot;&gt;</span> 
   <span class="punct">&lt;</span><span class="namespace">xsl</span><span class="punct">:</span><span class="tag">value-of</span> <span class="attribute">select</span><span class="punct">=&quot;</span><span class="string">.</span><span class="punct">&quot;</span> <span class="punct">/&gt;</span>
  <span class="punct">&lt;/</span><span class="tag">span</span><span class="punct">&gt;</span> 
  <span class="punct">&lt;</span><span class="namespace">xsl</span><span class="punct">:</span><span class="tag">text</span><span class="punct">&gt;</span>?&gt;<span class="punct">&lt;/</span><span class="namespace">xsl</span><span class="punct">:</span><span class="tag">text</span><span class="punct">&gt;</span>
 <span class="punct">&lt;/</span><span class="namespace">xsl</span><span class="punct">:</span><span class="tag">template</span><span class="punct">&gt;</span>

 <span class="punct">&lt;</span><span class="namespace">xsl</span><span class="punct">:</span><span class="tag">template</span> <span class="attribute">match</span><span class="punct">=&quot;</span><span class="string">@*</span><span class="punct">&quot;&gt;</span>
  <span class="punct">&lt;</span><span class="namespace">xsl</span><span class="punct">:</span><span class="tag">text</span><span class="punct">&gt;</span> <span class="punct">&lt;/</span><span class="namespace">xsl</span><span class="punct">:</span><span class="tag">text</span><span class="punct">&gt;</span>
  <span class="punct">&lt;</span><span class="tag">span</span> <span class="attribute">class</span><span class="punct">=&quot;</span><span class="string">attribute</span><span class="punct">&quot;&gt;</span>
   <span class="punct">&lt;</span><span class="namespace">xsl</span><span class="punct">:</span><span class="tag">value-of</span> <span class="attribute">select</span><span class="punct">=&quot;</span><span class="string">name()</span><span class="punct">&quot;</span> <span class="punct">/&gt;</span>
   <span class="punct">&lt;</span><span class="namespace">xsl</span><span class="punct">:</span><span class="tag">text</span><span class="punct">&gt;</span>=<span class="punct">&lt;/</span><span class="namespace">xsl</span><span class="punct">:</span><span class="tag">text</span><span class="punct">&gt;</span>
  <span class="punct">&lt;/</span><span class="tag">span</span><span class="punct">&gt;</span>
  <span class="punct">&lt;</span><span class="tag">span</span> <span class="attribute">class</span><span class="punct">=&quot;</span><span class="string">text</span><span class="punct">&quot;&gt;</span> 
   <span class="punct">&lt;</span><span class="namespace">xsl</span><span class="punct">:</span><span class="tag">text</span><span class="punct">&gt;</span>&quot;<span class="punct">&lt;/</span><span class="namespace">xsl</span><span class="punct">:</span><span class="tag">text</span><span class="punct">&gt;</span>
   <span class="punct">&lt;</span><span class="namespace">xsl</span><span class="punct">:</span><span class="tag">value-of</span> <span class="attribute">select</span><span class="punct">=&quot;</span><span class="string">.</span><span class="punct">&quot;</span> <span class="punct">/&gt;</span>
   <span class="punct">&lt;</span><span class="namespace">xsl</span><span class="punct">:</span><span class="tag">text</span><span class="punct">&gt;</span>&quot;<span class="punct">&lt;/</span><span class="namespace">xsl</span><span class="punct">:</span><span class="tag">text</span><span class="punct">&gt;</span>
  <span class="punct">&lt;/</span><span class="tag">span</span><span class="punct">&gt;</span> 
 <span class="punct">&lt;/</span><span class="namespace">xsl</span><span class="punct">:</span><span class="tag">template</span><span class="punct">&gt;</span>

 <span class="punct">&lt;</span><span class="namespace">xsl</span><span class="punct">:</span><span class="tag">template</span> <span class="attribute">match</span><span class="punct">=&quot;</span><span class="string">text()</span><span class="punct">&quot;&gt;</span>
  <span class="punct">&lt;</span><span class="tag">span</span> <span class="attribute">class</span><span class="punct">=&quot;</span><span class="string">text</span><span class="punct">&quot;&gt;</span> 
   <span class="punct">&lt;</span><span class="namespace">xsl</span><span class="punct">:</span><span class="tag">value-of</span> <span class="attribute">select</span><span class="punct">=&quot;</span><span class="string">.</span><span class="punct">&quot;</span> <span class="punct">/&gt;</span>
  <span class="punct">&lt;/</span><span class="tag">span</span><span class="punct">&gt;</span> 
 <span class="punct">&lt;/</span><span class="namespace">xsl</span><span class="punct">:</span><span class="tag">template</span><span class="punct">&gt;</span>

 <span class="punct">&lt;</span><span class="namespace">xsl</span><span class="punct">:</span><span class="tag">template</span> <span class="attribute">match</span><span class="punct">=&quot;</span><span class="string">comment()</span><span class="punct">&quot;&gt;</span>
  <span class="punct">&lt;</span><span class="tag">span</span> <span class="attribute">class</span><span class="punct">=&quot;</span><span class="string">comment</span><span class="punct">&quot;&gt;</span>
   <span class="punct">&lt;</span><span class="namespace">xsl</span><span class="punct">:</span><span class="tag">text</span><span class="punct">&gt;</span><span class="comment">&lt;!--&lt;/xsl:text&gt;
   &lt;xsl:value-of select=&quot;.&quot; /&gt;
   &lt;xsl:text&gt;--&gt;</span><span class="punct">&lt;/</span><span class="namespace">xsl</span><span class="punct">:</span><span class="tag">text</span><span class="punct">&gt;</span>
  <span class="punct">&lt;/</span><span class="tag">span</span><span class="punct">&gt;</span>
 <span class="punct">&lt;/</span><span class="namespace">xsl</span><span class="punct">:</span><span class="tag">template</span><span class="punct">&gt;</span>

 <span class="punct">&lt;</span><span class="namespace">xsl</span><span class="punct">:</span><span class="tag">template</span> <span class="attribute">match</span><span class="punct">=&quot;</span><span class="string">comment()</span><span class="punct">&quot;</span> <span class="attribute">mode</span><span class="punct">=&quot;</span><span class="string">prolog</span><span class="punct">&quot;&gt;</span>
  <span class="punct">&lt;</span><span class="tag">span</span> <span class="attribute">class</span><span class="punct">=&quot;</span><span class="string">comment</span><span class="punct">&quot;&gt;</span>
   <span class="punct">&lt;</span><span class="namespace">xsl</span><span class="punct">:</span><span class="tag">text</span><span class="punct">&gt;</span><span class="comment">&lt;!--&lt;/xsl:text&gt;
   &lt;xsl:value-of select=&quot;.&quot; /&gt;
   &lt;xsl:text&gt;--&gt;</span><span class="punct">&lt;/</span><span class="namespace">xsl</span><span class="punct">:</span><span class="tag">text</span><span class="punct">&gt;</span>
  <span class="punct">&lt;/</span><span class="tag">span</span><span class="punct">&gt;&lt;</span><span class="namespace">xsl</span><span class="punct">:</span><span class="tag">text</span><span class="punct">&gt;</span>
<span class="punct">&lt;/</span><span class="namespace">xsl</span><span class="punct">:</span><span class="tag">text</span><span class="punct">&gt;</span>
 <span class="punct">&lt;/</span><span class="namespace">xsl</span><span class="punct">:</span><span class="tag">template</span><span class="punct">&gt;</span>

<span class="punct">&lt;/</span><span class="namespace">xsl</span><span class="punct">:</span><span class="tag">stylesheet</span><span class="punct">&gt;</span></pre>
      </div>
</div>


    <div id="footer">
             <span class="left">
          Last modified : 13 Apr 2007
        </span>
        
      <span class="right vcard">
       <a href="http://www.matthewwest.co.uk/website-information">Copyright &#169; 2002-2007</a>
       <a href="/email/send_email" class="fn" id="mehcardname" title="E-mail me">Matthew West</a>
      </span>
    </div>
    
    
<!-- Menu                                                            -->
<!-- $Rev:: 10#$ $Date:: 2006-12-11 03:28:11 +0000 (Mon, 11 Dec 20#$ -->  
    <div id="menu">
    <ul class="main">
      <li class="page vcard">
        <a href="#mehcardname" class="include"></a>
        <a href="http://www.matthewwest.co.uk/" class="url" rel="me">Index</a>
      </li>
      <li class="menu"><a href="/professional-experience">Professional</a>  <ul class="sub"><li class="page"><a href="/docs/cv.pdf">Resumé</a></li><li class="page"><a href="/professional-experience/earlier-lighting-work">Earlier Work</a></li><li class="page"><a href="/professional-experience/lighting-photos">Portfolio</a></li>  </ul></li><li class="menu"><a href="/lightingdb">Lighting Database</a>  <ul class="sub"><li class="menu"><a href="/lightingdb/showmanufacturer/Clay Paky">Clay Paky</a>  <ul class="sub"><li class="section"><a href="/lightingdb/showlantern/Clay Paky/Golden Scan HPE">Golden Scan HPE</a></li><li class="section"><a href="/lightingdb/showlantern/Clay Paky/MiniScan">MiniScan</a></li>  </ul></li><li class="menu"><a href="/lightingdb/showmanufacturer/High End">High End</a>  <ul class="sub"><li class="section"><a href="/lightingdb/showlantern/High End/Studio Spot 575">Studio Spot 575</a></li>  </ul></li><li class="menu"><a href="/lightingdb/showmanufacturer/Martin">Martin</a>  <ul class="sub"><li class="section"><a href="/lightingdb/showlantern/Martin/Mac 600E">Mac 600E</a></li><li class="section"><a href="/lightingdb/showlantern/Martin/Mac 2000 Wash">Mac 2000 Wash</a></li><li class="section"><a href="/lightingdb/showlantern/Martin/Mac 500">Mac 500</a></li><li class="section"><a href="/lightingdb/showlantern/Martin/Mac 250">Mac 250</a></li><li class="section"><a href="/lightingdb/showlantern/Martin/Mac 2000 Profile">Mac 2000 Profile</a></li><li class="section"><a href="/lightingdb/showlantern/Martin/Mac 500E">Mac 500E</a></li><li class="section"><a href="/lightingdb/showlantern/Martin/Mac 550">Mac 550</a></li><li class="page">...</li>  </ul></li>  </ul></li><li class="menu"><a href="/photos">Photos</a>  <ul class="sub"><li class="page"><a href="/photos/all">See them all</a></li><li class="menu"><a href="/photos/holidays">Holidays</a>  <ul class="sub"><li class="page"><a href="/photos/holidays/lofoten-islands">Lofoten</a></li><li class="section"><a href="/photos/holidays/eastern-europe">Eastern Europe</a></li><li class="page"><a href="/photos/holidays/cornwall-break">Cornwall Break</a></li><li class="page"><a href="/photos/holidays/cornish-sailing">Cornish Sailing</a></li>  </ul></li><li class="menu"><a href="/photos/lighting-photos">Lighting Photos</a>  <ul class="sub"><li class="page"><a href="/photos/lighting-photos/hampton-court">Hampton Court</a></li><li class="page"><a href="/photos/lighting-photos/dreamgirls">Dreamgirls</a></li>  </ul></li><li class="menu"><a href="/photos/misc">Other photos</a>  <ul class="sub"><li class="page"><a href="/photos/misc/bristol">Bristol</a></li><li class="page"><a href="/photos/misc/portsmouth">Portsmouth</a></li><li class="page"><a href="/photos/misc/oakley">Oakley</a></li><li class="page"><a href="/photos/misc/kingston">Kingston</a></li><li class="page"><a href="/photos/misc/cats-in-portugal">Cats</a></li>  </ul></li>  </ul></li><li class="page"><a href="/blog">Blog</a></li><li class="page"><a href="/links">Links</a></li><li class="page"><a href="/site-info">Site Info</a></li><li class="page"><a href="/email">Contact Me</a></li>
      <li class="google">
        <form action="http://www.google.com/custom" method="get">
     	  <div>
	        <a href="http://www.google.com/search">
  	          <img alt="Google" width="128" height="53" src="/images/google40.png" />
	        </a>
	        <input class="text" value="" maxlength="255" size="12" name="q" type="text" /><br />
	        <div>
	          <input value="" name="sitesearch" type="radio" />
	          All WWW<br />
	          <input checked="checked" value="www.matthewwest.co.uk" name="sitesearch" type="radio" />
	          This site only<br />
	        </div>
	        <input type="hidden" name="cof"
		           value="S:http://www.matthewwest.co.uk;GL:0;VLC:#3333ff;AH:left;LH:80;LC:#3333ff;L:http://www.matthewwest.co.uk/images/h80google.png;ALC:#3333ff;BIMG:http://www.matthewwest.co.uk/images/beams.png;LW:1165;AWFID:ab0c1f8918996ca6;"
		           />
	        <input value="www.matthewwest.co.uk" name="domains" type="hidden" />
	        <input value="Search" name="sa" type="submit" />
	      </div>
        </form>
      </li>
    </ul>
        <script type="text/javascript" src="http://embed.technorati.com/embed/hi6ybdyt32.js"> </script>
  </div>

  </body>
</html>