<?xml version="1.0"?>

<!DOCTYPE stylesheet [
<!ENTITY copy   "&#169;"> <!-- copyright sign -->
<!ENTITY AElig  "&#198;"> <!-- capital AE ligature -->
<!ENTITY aelig  "&#230;"> <!-- lower AE ligature -->
<!ENTITY nbsp   "&#160;"> <!-- non-breaking space -->
]>

<!-- Produces a simple draft version of the seminar,
     all on a single Web page.
  -->

<!-- Developed using Xalan Version 0.19.3D01, Xerces Version 1.0.1 -->

<xsl:stylesheet
  xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
  xmlns="http://www.w3.org/TR/REC-html40"
>

  <!-- The following makes XSL tweak its output files
       to be HTML 4.0 compatible.
    -->
  <xsl:output method="html" indent="yes"/>

  <xsl:template match="/">
    <html>
      <head><title>Draft XML -&gt; HTML</title></head>
      <body>
        <xsl:apply-templates/>
        <xsl:variable name="numSlides" select="count(/seminar/topic/slide)"/>
        <h4><xsl:text>#Slides: </xsl:text>
            <xsl:value-of select="$numSlides"/></h4>
      </body>
    </html>
  </xsl:template>

  <xsl:template match="topic/title"/>

  <xsl:template match="topic">
    <xsl:apply-templates/>
  </xsl:template>

  <xsl:template match="slide">
    <h3 align="center">
      <xsl:element name="a">
        <xsl:attribute name="name">
          <xsl:for-each select="..">
            <xsl:number/>
          </xsl:for-each>
          <xsl:text>-</xsl:text>
          <xsl:number/>
        </xsl:attribute>
        <xsl:value-of select="../title"/>
      </xsl:element>
      <xsl:text> [</xsl:text>
      <xsl:number/>
      <xsl:text>/</xsl:text>
      <xsl:for-each select="../slide">
        <xsl:if test="position()=last()">
          <xsl:number/>
        </xsl:if>
      </xsl:for-each>
      <xsl:text>]</xsl:text>
    </h3>
    <xsl:apply-templates/>
    <hr/>
  </xsl:template>

  <xsl:template match="table-of-contents">
    <h3 align="center">Contents</h3>
    <ol>
      <xsl:for-each select="/seminar/topic">
        <xsl:element name="li">
          <xsl:element name="a">
            <xsl:attribute name="href">
              <xsl:text>#</xsl:text><xsl:number/><xsl:text>-1</xsl:text>
            </xsl:attribute>
            <xsl:value-of select="title"/>
          </xsl:element>
        </xsl:element>
      </xsl:for-each>
    </ol>
    <hr/>
  </xsl:template>

  <xsl:template match="item">
    <ul>
      <li>
      <xsl:apply-templates/>
      </li>
    </ul>
  </xsl:template>

  <xsl:template match="heading">
    <h2 align="center">
    <xsl:apply-templates/>
    </h2>
  </xsl:template>

  <xsl:template match="sample">
    <pre><xsl:value-of select="."/></pre>
  </xsl:template>

  <xsl:template match="insert-sample">
    <xsl:variable name="sampleURL">
      <xsl:value-of select="@href"/>
    </xsl:variable>
    <pre><xsl:value-of select="document($sampleURL)"/></pre>
  </xsl:template>

  <xsl:template match="image">
    <p align="center">
    <img src="{@href}" alt="{@name}"/>
    </p>
  </xsl:template>

  <xsl:template match="reference">
    <dl>
      <dt><b><xsl:apply-templates select="title"/></b></dt>
      <xsl:element name="dd">
        <xsl:if test="@href">
          <xsl:element name="a">
            <xsl:attribute name="href">
              <xsl:value-of select="@href"/>
            </xsl:attribute>
            <xsl:attribute name="target">refer-window</xsl:attribute>
            <xsl:value-of select="@href"/>
          </xsl:element>
          <xsl:if test="description">
            <xsl:element name="br"/>
          </xsl:if>
        </xsl:if>
        <xsl:apply-templates select="description"/>
      </xsl:element>
    </dl>
  </xsl:template>

  <xsl:template match="reference/title">
    <xsl:apply-templates/>
  </xsl:template>

  <xsl:template match="refer">
    <a href="{@href}" target="refer-window"><xsl:apply-templates/></a>
  </xsl:template>

  <xsl:template match="emphasise">
    <b><xsl:apply-templates/></b>
  </xsl:template>

  <xsl:template match="keyboard">
    <kbd><xsl:apply-templates/></kbd>
  </xsl:template>

  <xsl:template match="copyright">
    <xsl:text>&copy;</xsl:text>
  </xsl:template>

  <xsl:template match="AElig">
    <xsl:text>&AElig;</xsl:text>
  </xsl:template>

  <xsl:template match="aelig">
    <xsl:text>&aelig;</xsl:text>
  </xsl:template>

  <xsl:template match="space">
    <xsl:text>&nbsp;</xsl:text>
  </xsl:template>

</xsl:stylesheet>

