svg2-tools: Remove old build system support.

details:   https://svgwg.org/hg/svg2-tools/rev/4f816c23b257
branches:  
changeset: 58:4f816c23b257
user:      Cameron McCormack <cam@mcc.id.au>
date:      Tue Aug 21 15:06:25 2012 +1000
description:
Remove old build system support.

diffstat:

 build.py                         |    45 +-
 publish.xsl                      |  1708 --------------------------------------
 saxonb/doc/img/saxonica_logo.gif |     0 
 saxonb/doc/index.html            |    56 -
 saxonb/doc/saxondocs.css         |   228 -----
 saxonb/notices/APACHE.txt        |    13 -
 saxonb/notices/CERN.txt          |     7 -
 saxonb/notices/FRIJTERS.txt      |    22 -
 saxonb/notices/GPL+CLASSPATH.txt |   347 -------
 saxonb/notices/JAMESCLARK.txt    |    25 -
 saxonb/notices/LEGAL.txt         |    33 -
 saxonb/notices/LICENSE.txt       |    15 -
 saxonb/notices/THAI.txt          |    31 -
 saxonb/notices/UNICODE.txt       |    29 -
 saxonb/saxon9-dom.jar            |     0 
 saxonb/saxon9-dom4j.jar          |     0 
 saxonb/saxon9-jdom.jar           |     0 
 saxonb/saxon9-s9api.jar          |     0 
 saxonb/saxon9-sql.jar            |     0 
 saxonb/saxon9-xom.jar            |     0 
 saxonb/saxon9-xpath.jar          |     0 
 saxonb/saxon9-xqj.jar            |     0 
 saxonb/saxon9.jar                |     0 
 23 files changed, 9 insertions(+), 2550 deletions(-)

diffs (2724 lines):

diff --git a/build.py b/build.py
--- a/build.py
+++ b/build.py
@@ -12,17 +12,16 @@
 
 # It would be good if "tocopy" list could be extracted from
 # publish.xml instead of being hard coded here.
 
 tocopy = """
   style
   images
   examples
-  svg.idl
 """.split()
 
 
 
 import os, sys, signal, commands
 from os.path import isfile, abspath, getmtime, exists, join, normpath
 
 def exit(code, *message):
@@ -110,54 +109,37 @@ if len(sys.argv) == 2 and sys.argv[1] ==
     for file in files[:]:
       file = join(parent, file)
       if file != readme:
         os.remove(file)
     for dir in dirs[:]:
       os.rmdir(join(parent, dir))
   sys.exit(0)
 
-new_build = len(sys.argv) == 2 and sys.argv[1] == "-n"
-
 # Get all the pages from publish.xml:
 
 os.chdir(master_dir)
 status, output = getstatusoutput("node \"" +
     native_path(join(tools_dir, "publish/publish.js")) + "\" --list-pages")
 os.chdir(repo_dir)
 if status != 0:
   exit(1, 'FAIL: could not get list of specification pages')
 
 all = output.split()
 
-# Build svg.idlx as required:
-
-svg_idl = join(master_dir, "svg.idl")
-svg_idlx = join(build_dir, "svg.idlx")
-
-if not new_build and (not isfile(svg_idlx) or getmtime(svg_idl) > getmtime(svg_idlx)):
-  toremove = [svg_idlx]
-  run("java -classpath \"" + native_path(str(join(tools_dir, "idlparser", "idlparser.jar"))) +
-      "\" au.id.mcc.idlparser.IDLToXML \"" + native_path(svg_idl) + "\" > " + svg_idlx)
-  toremove = []
-
 # Build chapters as required:
 
 deps = [
   join(master_dir, "publish.xml"),
   join(master_dir, "definitions.xml"),
 ]
-if new_build:
-  for filename in os.listdir(publishjs_dir):
-    path = join(publishjs_dir, filename)
-    if os.path.isfile(path):
-      deps.append(path)
-else:
-  deps.append(svg_idlx)
-  join(tools_dir, "publish.xsl")
+for filename in os.listdir(publishjs_dir):
+  path = join(publishjs_dir, filename)
+  if os.path.isfile(path):
+    deps.append(path)
 deptimes = [getmtime(file) for file in deps]
 tobuild = []
 tobuild_names = []
 for name in all:
   pub_path = join(publish_dir, name + ".html")
   src_path = join(master_dir, name + ".html")
   if not isfile(pub_path):
     tobuild.append(pub_path)
@@ -168,30 +150,21 @@ for name in all:
     if srctime > desttime:
       tobuild.append(pub_path)
       tobuild_names.append(name)
       break
 
 if tobuild:
   toremove = tobuild
   os.chdir(master_dir)
-  if new_build:
-    run("node \"" +
-        native_path(join(tools_dir, "publish/publish.js")) +
-        "\" --build " +
-        " ".join(tobuild_names) +
-        (" --local-style" if os.environ.get("SVG_BUILD_LOCAL_STYLE_SHEETS") else ""))
-  else:
-    run("java -classpath \"" + native_path(join(tools_dir, 'saxonb', 'saxon9.jar')) +
-        "\" net.sf.saxon.Transform -ext:on -dtd:off -expand:off -l:on \"" +
-        native_path(join(master_dir, "publish.xml")) + "\" \"" +
-        native_path(join(tools_dir, "publish.xsl")) +
-        "\" chapters-to-build=\"" + " ".join(tobuild_names) + "\"" +
-        (" local-style-sheets=\"yes\""
-         if os.environ.get("SVG_BUILD_LOCAL_STYLE_SHEETS") else ""))
+  run("node \"" +
+      native_path(join(tools_dir, "publish/publish.js")) +
+      "\" --build " +
+      " ".join(tobuild_names) +
+      (" --local-style" if os.environ.get("SVG_BUILD_LOCAL_STYLE_SHEETS") else ""))
   toremove = []
   os.chdir(repo_dir) # chdir back
 
 # Build single page spec as required:
 
 buildSinglePage = False
 single_page = join(publish_dir, "single-page.html")
 
diff --git a/publish.xsl b/publish.xsl
deleted file mode 100644
--- a/publish.xsl
+++ /dev/null
@@ -1,1708 +0,0 @@
-<?xml version="1.0"?>
-
-<!-- Input document should be a publish.xml file. -->
-
-<xsl:stylesheet xmlns="http://www.w3.org/1999/xhtml"
-                xmlns:h="http://www.w3.org/1999/xhtml"
-                xmlns:m="http://www.w3.org/1998/Math/MathML"
-                xmlns:svg="http://www.w3.org/2000/svg"
-                xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
-                xmlns:edit="http://xmlns.grorg.org/SVGT12NG/"
-                xmlns:x="http://mcc.id.au/ns/local"
-                xmlns:saxon="http://saxon.sf.net/"
-                xmlns:xs='http://www.w3.org/2001/XMLSchema'
-                xmlns:idl='http://mcc.id.au/ns/idl'
-                xmlns:_xml='data:,'
-                xpath-default-namespace="http://www.w3.org/1999/xhtml"
-                exclude-result-prefixes="h edit x saxon xs idl m"
-                version="2.0">
-
-  <xsl:output method='text'/>
-  <xsl:output name='chapter' method='xhtml' omit-xml-declaration='yes' doctype-public='-//W3C//DTD XHTML 1.0 Transitional//EN' doctype-system='http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd' indent="no" saxon:indent-spaces="0"/>
-
-  <xsl:namespace-alias stylesheet-prefix='_xml' result-prefix='xml'/>
-
-  <xsl:variable name='MATURITIES'>
-    <x:maturity code='ED' short='ED' long='Editor’s Draft' longer='Editor’s Draft'/>
-    <x:maturity code='WG-NOTE' short='NOTE' long='Working Group Note' longer='Working Group Note'/>
-    <x:maturity code='WD' short='WD' long='Working Draft' longer='Working Draft'/>
-    <x:maturity code='FPWD' short='WD' long='Working Draft' longer='First Public Working Draft'/>
-    <x:maturity code='LCWD' short='WD' long='Working Draft' longer='Last Call Working Draft'/>
-    <x:maturity code='FPLCWD' short='WD' long='Working Draft' longer='First Public and Last Call Working Draft'/>
-    <x:maturity code='CR' short='CR' long='Candidate Recommendation' longer='Candidate Recommendation'/>
-    <x:maturity code='PR' short='PR' long='Proposed Recommendation' longer='Proposed Recommendation'/>
-    <x:maturity code='PER' short='PER' long='Proposed Edited Recommendation' longer='Proposed Edited Recommendation'/>
-    <x:maturity code='REC' short='REC' long='Recommendation' longer='Recommendation'/>
-    <x:maturity code='RSCND' short='RSCND' long='Rescinded Recommendation' longer='Rescinded Recommendation'/>
-  </xsl:variable>
-
-  <xsl:variable name='conf-document' select='/'/>
-  <xsl:variable name='conf' select='/*'/>
-
-  <xsl:variable name='maturity' select='$conf/x:maturity'/>
-  <xsl:variable name='maturity-short' select='$MATURITIES/*[@code=$maturity]/@short'/>
-  <xsl:variable name='maturity-long' select='$MATURITIES/*[@code=$maturity]/@long'/>
-  <xsl:variable name='maturity-longer' select='$MATURITIES/*[@code=$maturity]/@longer'/> 
-
-  <xsl:variable name='publication-date' select='if ($conf/x:publication-date) then xs:date($conf/x:publication-date) else xs:date(current-dateTime())' as='xs:date'/>
-
-  <xsl:variable name='this-version' select='if ($maturity = "ED") then $conf/x:versions/x:cvs/@href else $conf/x:versions/x:this/@href'/>
-  <xsl:variable name='this-version-single' select='if ($maturity = "ED") then $conf/x:versions/x:cvs-single/@href else $conf/x:versions/x:this-single/@href'/>
-
-  <xsl:variable name='idl-document' select='document($conf/x:interfaces/@idl, $conf-document)'/>
-  <xsl:variable name='idl' select='$idl-document/*'/>
-
-  <xsl:variable name='empty-defs-document'><xsl:document><x:definitions/></xsl:document></xsl:variable>
-
-  <xsl:variable name='defs-document' select='document($conf/x:definitions/@href, $conf-document)'/>
-  <xsl:variable name='defs' select='x:collate-defs($defs-document, $empty-defs-document, "")/*'/>
-
-  <xsl:variable name='single-chapter' select='not(($conf/x:chapter, $conf/x:appendix, $conf/x:page))'/>
-
-  <xsl:param name='chapters-to-build' select='string-join($conf/(x:index | x:chapter | x:appendix | x:page)/@name, " ")'/>
-  <xsl:variable name='to-build' select='tokenize($chapters-to-build, " ")'/>
-
-  <xsl:param name='local-style-sheets'/>
-
-  <xsl:variable name='publish-dir'>
-    <xsl:choose>
-      <xsl:when test='$conf/x:output/@use-publish-directory != "true"'>/</xsl:when>
-      <xsl:when test='$conf/x:output/@publish-directory'><xsl:value-of select='$conf/x:output/@publish-directory'/>/</xsl:when>
-      <xsl:otherwise>publish/</xsl:otherwise>
-    </xsl:choose>
-  </xsl:variable>
-
-  <xsl:template match='/'>
-    <xsl:if test='not(x:publish-conf)'>
-      <xsl:message terminate='yes'>Input document must be a publish.xml file.</xsl:message>
-    </xsl:if>
-    <xsl:for-each select='$conf/x:index[@name=$to-build]'>
-      <xsl:variable name='title-extra' select='if (@title-extra) then string(@title-extra) else""'/>
-      <xsl:result-document format='chapter' href='../{$publish-dir}{@name}.html'>
-        <xsl:variable name='d' select='document(concat(@name, ".html"), .)/html'/>
-        <xsl:variable name='master-directory' select='if ($conf/x:output/@use-publish-directory = "true") then "../master/" else "../"'/>
-        <xsl:comment>
-          <xsl:text>&#10;  </xsl:text>
-          <xsl:value-of select='$conf/x:title'/>
-          <xsl:value-of select='$title-extra'/>
-          <xsl:text>&#10;&#10;  &#36;Id$&#10;&#10;  Note: This document is generated from </xsl:text>
-          <xsl:value-of select='concat($master-directory, @name, ".html")'/>
-          <xsl:text>.&#10;  Run "make" from the root of the svg2 repository to regenerate it.&#10;  </xsl:text>
-        </xsl:comment>
-        <xsl:text>&#10;</xsl:text>
-        <xsl:apply-templates select='$d'>
-          <xsl:with-param name='chapter-name' select='"index"' tunnel='yes'/>
-          <xsl:with-param name='chapter-number' select='""' tunnel='yes'/>
-          <xsl:with-param name='chapter-type' select='"index"' tunnel='yes'/>
-          <xsl:with-param name='title-extra' select='$title-extra' tunnel='yes'/>
-        </xsl:apply-templates>
-      </xsl:result-document>
-    </xsl:for-each>
-    <xsl:apply-templates select='$conf/x:page'/>
-    <xsl:apply-templates select='$conf/x:chapter'/>
-    <xsl:apply-templates select='$conf/x:appendix'/>
-  </xsl:template>
-
-  <xsl:template match='x:chapter | x:appendix | x:page'>
-    <xsl:if test='@name=$to-build'>
-      <xsl:variable name='chapter-type' select='local-name()'/>
-      <xsl:variable name='chapter-number'>
-        <xsl:choose>
-          <xsl:when test='$chapter-type = "page"'/>
-          <xsl:when test='@number'><xsl:value-of select='@number'/></xsl:when>
-          <xsl:when test='$chapter-type = "appendix"'><xsl:number value='position()' format='A'/></xsl:when>
-          <xsl:otherwise><xsl:value-of select='position()'/></xsl:otherwise>
-        </xsl:choose>
-      </xsl:variable>
-      <xsl:result-document format='chapter' href='../{$publish-dir}{@name}.html'>
-        <xsl:variable name='d' select='document(concat(@name, ".html"), .)/html'/>
-        <xsl:variable name='master-directory' select='if ($conf/x:output/@use-publish-directory = "true") then "../master/" else "../"'/>
-        <xsl:comment>
-          <xsl:text>&#10;  </xsl:text>
-          <xsl:value-of select='$conf/x:title'/>
-          <xsl:text>&#10;  </xsl:text>
-          <xsl:value-of select='if (self::x:chapter) then "Chapter" else "Appendix"'/>
-          <xsl:text> </xsl:text>
-          <xsl:value-of select='$chapter-number'/>
-          <xsl:text>: </xsl:text>
-          <xsl:value-of select='$d/head/title'/>
-          <xsl:text>&#10;&#10;  &#36;Id$&#10;&#10;  Note: This document is generated from </xsl:text>
-          <xsl:value-of select='concat($master-directory, @name, ".html")'/>
-          <xsl:text>.&#10;  Run "make" from the root of the svg2 repository to regenerate it.&#10;  </xsl:text>
-        </xsl:comment>
-        <xsl:text>&#10;</xsl:text>
-        <xsl:apply-templates select='$d'>
-          <xsl:with-param name='chapter-name' select='@name' tunnel='yes'/>
-          <xsl:with-param name='chapter-number' select='$chapter-number' tunnel='yes'/>
-          <xsl:with-param name='chapter-type' select='$chapter-type' tunnel='yes'/>
-          <xsl:with-param name='previous-chapter' select='reverse(preceding-sibling::x:chapter | preceding-sibling::x:appendix | preceding-sibling::x:page)[1]/@name' tunnel='yes'/>
-          <xsl:with-param name='next-chapter' select='(following-sibling::x:chapter | following-sibling::x:appendix | following-sibling::x:page)[1]/@name' tunnel='yes'/>
-        </xsl:apply-templates>
-      </xsl:result-document>
-    </xsl:if>
-  </xsl:template>
-
-  <xsl:template match='/html'>
-    <xsl:param name='chapter-name' tunnel='yes'/>
-    <xsl:param name='chapter-number' tunnel='yes'/>
-    <xsl:param name='chapter-type' tunnel='yes'/>
-    <xsl:param name='previous-chapter' tunnel='yes'/>
-    <xsl:param name='next-chapter' tunnel='yes'/>
-    <xsl:param name='title-extra' tunnel='yes'/>
-
-    <!--
-      First, gather the sections in the chapter so that the table of
-      contents and section numbers can be generated efficiently.
-      -->
-    <xsl:variable name='sections' select='x:gather-sections(if ($single-chapter) then .//div[@class="head"][1]/following-sibling::* else .//h1[1], $chapter-number)'/>
-
-    <html>
-      <head>
-        <meta http-equiv='Content-Type' content='text/html;charset=UTF-8'/>
-        <title>
-          <xsl:choose>
-            <xsl:when test='$chapter-type = "index"'>
-              <xsl:value-of select='$conf/x:title'/><xsl:value-of select='$title-extra'/>
-            </xsl:when>
-            <xsl:otherwise>
-              <xsl:value-of select='head/title'/> &#x2013; <xsl:value-of select='$conf/x:short-title'/>
-            </xsl:otherwise>
-          </xsl:choose>
-        </title>
-        <xsl:apply-templates select='head/*[not(self::link) and not(self::meta) and not(self::title)]'/>
-        <xsl:apply-templates select='head/link[not(@rel="stylesheet" and contains(@href, "StyleSheets/TR") or @media="print")]'/>
-        <link rel='stylesheet' href='{if ($local-style-sheets) then "style/" else "//www.w3.org/StyleSheets/TR/"}W3C-{$maturity-short}{if ($local-style-sheets) then ".css" else ""}' type='text/css' media='screen'/>
-        <script>
-          var n, local = location.protocol == "file:";
-          if (local) {
-            for (n = document.head.firstChild; n; n = n.nextSibling) {
-              if (n.nodeName.toLowerCase() == "link") {
-                if (n.getAttribute("href").indexOf("//") == 0) {
-                  n.href = "https:" + n.getAttribute("href");
-                }
-              }
-            }
-          }
-        </script>
-        <xsl:if test='body//m:*'>
-          <!-- If there were an "MML_SVG" config we should use that, to avoid the overhead of looking for TeX-style math. -->
-          <script data-script-mathjax="">
-            n = document.createElement("script");
-            n.src = (local ? "https:" : location.protocol) + "//d3eoax9i5htok0.cloudfront.net/mathjax/2.0-latest/MathJax.js?config=TeX-AMS-MML_SVG";
-            document.head.appendChild(n);
-          </script>
-        </xsl:if>
-      </head>
-      <body>
-        <xsl:attribute name='class'>
-          <xsl:if test='body/@class != ""'>
-            <xsl:value-of select='concat(body/@class, " ")'/>
-          </xsl:if>
-          <xsl:value-of select='concat("chapter-", $chapter-name)'/>
-        </xsl:attribute>
-        <xsl:variable name='header'>
-          <xsl:call-template name='header'>
-            <xsl:with-param name='previous-chapter' select='$previous-chapter'/>
-            <xsl:with-param name='next-chapter' select='$next-chapter'/>
-          </xsl:call-template>
-        </xsl:variable>
-        <xsl:if test='$chapter-type != "index"'>
-          <div class='header top'>
-            <xsl:copy-of select='$header'/>
-          </div>
-        </xsl:if>
-        <xsl:apply-templates select='body/node()'>
-          <xsl:with-param name='sections' select='$sections' tunnel='yes'/>
-        </xsl:apply-templates>
-        <xsl:if test='$chapter-type != "index" or $conf/(x:chapter | x:appendix | x:page)'>
-          <div class='header bottom'>
-            <xsl:copy-of select='$header'/>
-          </div>
-        </xsl:if>
-        <script src='style/expanders.js' type='text/javascript'><xsl:text> </xsl:text></script>
-      </body>
-    </html>
-  </xsl:template>
-  
-  <xsl:function name='x:gather-sections'>
-    <xsl:param name='n'/>
-    <xsl:param name='chapter-number'/>
-
-    <xsl:document>
-      <x:chapter number='{$chapter-number}' title='{$n}'>
-        <xsl:variable name='ignored-group' select='not(($n/following::*)[1]/self::h2[not(@edit:toc="no")])'/>
-        <xsl:for-each-group select='$n/following::*' group-starting-with='h2[not(@edit:toc="no")]'>
-          <xsl:if test='self::h2[not(@edit:toc="no")]'>
-            <xsl:variable name='pos' select='position() - (if ($ignored-group) then 1 else 0)'/>
-            <xsl:variable name='sec' select='if ($chapter-number) then concat($chapter-number, ".", $pos) else string($pos)'/>
-            <x:section _xml:id='{x:section-id(.)}' number='{$sec}'>
-              <x:title><xsl:copy-of select='node()'/></x:title>
-              <xsl:call-template name='gather-sections-rec'>
-                <xsl:with-param name='level' select='3'/>
-                <xsl:with-param name='sec' select='$sec'/>
-              </xsl:call-template>
-            </x:section>
-          </xsl:if>
-        </xsl:for-each-group>
-      </x:chapter>
-    </xsl:document>
-  </xsl:function>
-
-  <xsl:template name='gather-sections-rec'>
-    <xsl:param name='level' as='xs:integer'/>
-    <xsl:param name='sec' as='xs:string'/>
-    <xsl:variable name='ln' select='concat("h", $level)'/>
-    <xsl:variable name='ignored-group' select='local-name(current-group()[1]) ne $ln or current-group()[1]/@edit:toc = "no"'/>
-    <xsl:for-each-group select='current-group()' group-starting-with='*[local-name() eq $ln and not(@edit:toc="no")]'>
-      <xsl:if test='current-group()[1][local-name() eq $ln and not(@edit:toc="no")]'>
-        <xsl:variable name='pos' select='position() - (if ($ignored-group) then 1 else 0)'/>
-        <xsl:variable name='sec' select='concat($sec, ".", $pos)'/>
-        <x:section _xml:id='{x:section-id(.)}' number='{$sec}'>
-          <x:title><xsl:apply-templates select='node()' mode='no-id'/></x:title>
-          <xsl:if test='$level &lt; 6'>
-            <xsl:call-template name='gather-sections-rec'>
-              <xsl:with-param name='level' select='$level + 1'/>
-              <xsl:with-param name='sec' select='$sec'/>
-            </xsl:call-template>
-          </xsl:if>
-        </x:section>
-      </xsl:if>
-    </xsl:for-each-group>
-  </xsl:template>
-
-  <!-- Generate a Table of Contents below the chapter title -->
-  <xsl:template match='h1'>
-    <xsl:param name='chapter-number' tunnel='yes'/>
-    <xsl:param name='chapter-type' tunnel='yes'/>
-    <xsl:param name='sections' tunnel='yes'/>
-    <h1>
-      <xsl:copy-of select='@*[namespace-uri() = ""]'/>
-      <xsl:if test='$chapter-number'>
-        <xsl:value-of select='if ($chapter-type = "appendix") then concat("Appendix ", $chapter-number, ": ") else if ($chapter-type = "chapter") then concat("Chapter ", $chapter-number, ": ") else ""'/>
-      </xsl:if>
-      <xsl:apply-templates select='node()'/>
-    </h1>
-    <xsl:if test='$chapter-type != "index" and $sections/*/*'>
-      <h2 id='toc' class='contents'>Contents</h2>
-      <xsl:variable name='class' select='if ($chapter-type = "chapter") then "toc" else "toc appendix-toc"'/>
-      <ul class='{$class}'>
-        <li>
-          <ul class='{$class}'>
-            <xsl:apply-templates select='$sections/*/x:section'>
-              <xsl:with-param name='no-num' select='$chapter-type != "chapter"' tunnel='yes'/>
-            </xsl:apply-templates>
-          </ul>
-        </li>
-      </ul>
-    </xsl:if>
-  </xsl:template>
-
-  <xsl:template match='edit:minitoc'>
-    <ul class='toc'>
-      <xsl:for-each select='$conf/x:page'>
-        <li class="no-num"><a href='{@name}.html'><xsl:value-of select='document(concat(@name, ".html"), .)/html/body/h1'/></a></li>
-      </xsl:for-each>
-      <xsl:for-each select='$conf/x:chapter'>
-        <li><a href='{@name}.html'><span class="secno"><xsl:value-of select='position()'/>.</span><xsl:text> </xsl:text><xsl:value-of select='document(concat(@name, ".html"), .)/html/body/h1'/></a></li>
-      </xsl:for-each>
-      <xsl:for-each select='$conf/x:appendix'>
-        <li class="no-num"><a href='{@name}.html'>Appendix <xsl:number value='position()' format='A'/>: <xsl:value-of select='document(concat(@name, ".html"), .)/html/body/h1'/></a></li>
-      </xsl:for-each>
-    </ul>
-  </xsl:template>
-
-  <xsl:template match='edit:fulltoc'>
-    <xsl:param name='sections' tunnel='yes'/>
-    <xsl:choose>
-      <xsl:when test='$single-chapter'>
-        <ul class='toc'>
-          <xsl:apply-templates select='$sections/*/x:section'/>
-        </ul>
-      </xsl:when>
-      <xsl:otherwise>
-        <ul class='toc'>
-          <xsl:for-each select='$conf/x:page[not(@toc)]'>
-            <li><a href='{@name}.html'><xsl:value-of select='document(concat(@name, ".html"), .)/html/body/h1'/></a></li>
-          </xsl:for-each>
-          <xsl:for-each select='$conf/x:chapter'>
-            <xsl:variable name='doc' select='document(concat(@name, ".html"), .)'/>
-            <xsl:variable name='s' select='x:gather-sections($doc//h1[1], position())'/>
-            <li><a href='{@name}.html'><span class='secno'><xsl:value-of select='position()'/>.</span><xsl:text> </xsl:text><xsl:value-of select='$doc/html/body/h1'/></a>
-              <xsl:if test='$s/*/x:section'>
-                <ul class='toc'>
-                  <xsl:apply-templates select='$s/*/x:section'>
-                    <xsl:with-param name='toc-filename' select='concat(@name, ".html")' tunnel='yes'/>
-                  </xsl:apply-templates>
-                </ul>
-              </xsl:if>
-            </li>
-          </xsl:for-each>
-          <xsl:for-each select='$conf/x:appendix'>
-            <xsl:variable name='doc' select='document(concat(@name, ".html"), .)'/>
-            <xsl:variable name='num'>
-              <xsl:number value='position()' format='A'/>
-            </xsl:variable>
-            <xsl:variable name='s' select='x:gather-sections($doc//h1[1], $num)'/>
-            <li class='no-num'><a href='{@name}.html'>Appendix <xsl:value-of select='$num'/>: <xsl:value-of select='$doc/html/body/h1'/></a>
-              <xsl:if test='$s/*/x:section'>
-                <ul class='toc'>
-                  <xsl:apply-templates select='$s/*/x:section'>
-                    <xsl:with-param name='toc-filename' select='concat(@name, ".html")' tunnel='yes'/>
-                    <xsl:with-param name='no-num' select='true()' tunnel='yes'/>
-                  </xsl:apply-templates>
-                </ul>
-              </xsl:if>
-            </li>
-          </xsl:for-each>
-        </ul>
-      </xsl:otherwise>
-    </xsl:choose>
-  </xsl:template>
-
-  <!-- Insert section numbers in <h2>, <h3>, <h4>, <h5> and <h6> elements -->
-  <xsl:template match='h2|h3|h4'>
-    <xsl:param name='sections' tunnel='yes'/>
-    <xsl:param name='chapter-type' tunnel='yes'/>
-    <xsl:variable name='section-number' select='x:section-number($sections, x:section-id(.))'/>
-    <xsl:element namespace='http://www.w3.org/1999/xhtml' name='{local-name()}'>
-      <xsl:copy-of select='@*[namespace-uri() = ""]'/>
-      <xsl:value-of select='if (not($chapter-type = "index" and not($single-chapter)) and $chapter-type != "appendix" and $section-number) then concat($section-number, ". ") else ""'/>
-      <xsl:apply-templates select='node()'/>
-    </xsl:element>
-  </xsl:template>
-
-  <xsl:template match='x:section'>
-    <xsl:param name='toc-filename' tunnel='yes'/>
-    <xsl:param name='no-num' tunnel='yes'/>
-    <xsl:text>&#10;</xsl:text>
-    <li>
-      <a href='{$toc-filename}#{@xml:id}'>
-        <xsl:if test='not($no-num)'>
-          <span class='secno'><xsl:value-of select='@number'/>.</span>
-          <xsl:text> </xsl:text>
-        </xsl:if>
-        <xsl:apply-templates select='x:title/node()'/>
-      </a>
-      <xsl:if test='x:section'>
-        <ul class='toc'>
-          <xsl:apply-templates select='x:section'/>
-        </ul>
-      </xsl:if>
-    </li>
-  </xsl:template>
-
-  <xsl:template match='h:*' mode='no-id'>
-    <xsl:element name='{local-name()}'>
-      <xsl:copy-of select='@*[local-name() != "id" and namespace-uri() = ""]'/>
-      <xsl:apply-templates select='node()'/>
-    </xsl:element>
-  </xsl:template>
-
-  <xsl:template match='h:*'>
-    <xsl:element name='{local-name()}'>
-      <xsl:copy-of select='@*[namespace-uri() = ""]'/>
-      <xsl:apply-templates select='node()'/>
-    </xsl:element>
-  </xsl:template>
-
-  <xsl:template match='edit:completeidl'>
-    <xsl:variable name='modules' select='tokenize(@modules, ", ")'/>
-    <pre class='idl'>
-      <xsl:for-each select='$idl/(idl:module[@scopedname=$modules] | idl:interface | idl:exception)'>
-        <xsl:if test='position() != 1'><xsl:text>&#10;&#10;</xsl:text></xsl:if>
-        <xsl:apply-templates select='.'/>
-      </xsl:for-each>
-    </pre>
-  </xsl:template>
-
-  <xsl:template match='idl:module'>
-    <xsl:text>module </xsl:text>
-    <b><xsl:value-of select='@name'/></b>
-    <xsl:text> {&#10;&#10;</xsl:text>
-    <xsl:for-each select='idl:interface | idl:exception'>
-      <xsl:if test='position() != 1'><xsl:text>&#10;</xsl:text></xsl:if>
-      <xsl:apply-templates select='.'/>
-      <xsl:text>&#10;</xsl:text>
-    </xsl:for-each>
-    <xsl:text>&#10;};</xsl:text>
-  </xsl:template>
-
-  <xsl:template match='edit:interface'>
-    <xsl:variable name='interface-name' select='@name'/>
-    <xsl:variable name='interface' select='$idl//(idl:interface | idl:exception)[@scopedname=$interface-name]'/>
-    <xsl:variable name='interface-desc' select='$interface/idl:description'/>
-    <xsl:apply-templates select='$interface-desc/(h:* | edit:* | text())'>
-      <xsl:with-param name='interface' select='$interface' tunnel='yes'/>
-    </xsl:apply-templates>
-    <pre class='idl'>
-      <xsl:apply-templates select='$interface'/>
-    </pre>
-    <xsl:variable name='associatedConsts' select='if ($interface/self::idl:exception) then root($interface)//idl:const[@associatedexception=$interface-name] else ()'/>
-    <xsl:if test='$interface/(idl:attribute | idl:operation | idl:const | idl:member) | $associatedConsts'>
-      <dl class='interface'>
-        <xsl:if test='$interface/idl:const | $associatedConsts'>
-          <xsl:for-each select='distinct-values(($interface/idl:const/@defgroup, $associatedConsts/self::idl:const/@defgroup))'>
-            <xsl:variable name='defgroup' select='.'/>
-            <dt class='constants-header'>Constants in group “<xsl:value-of select='.'/>”:</dt>
-            <dd>
-              <dl class='constants'>
-                <xsl:apply-templates select='$interface/idl:const[@defgroup=$defgroup] | $associatedConsts/self::idl:const[@defgroup=$defgroup]' mode='prose'>
-                  <xsl:with-param name='interface' select='$interface'/>
-                </xsl:apply-templates>
-              </dl>
-            </dd>
-          </xsl:for-each>
-          <xsl:variable name='ungrouped-consts' select='$interface/idl:const[not(@defgroup)] | $associatedConsts/self::idl:const[not(@defgroup)]'/>
-          <xsl:if test='$ungrouped-consts'>
-            <dt class='constants-header'>
-              <xsl:choose>
-                <xsl:when test='$interface/idl:const/@defgroup | $associatedConsts/self::idl:const/@defgroup'>Other constants:</xsl:when>
-                <xsl:otherwise>Constants:</xsl:otherwise>
-              </xsl:choose>
-            </dt>
-            <dd>
-              <dl class='constants'>
-                <xsl:apply-templates select='$ungrouped-consts' mode='prose'>
-                  <xsl:with-param name='interface' select='$interface'/>
-                </xsl:apply-templates>
-              </dl>
-            </dd>
-          </xsl:if>
-        </xsl:if>
-        <xsl:if test='$interface/idl:attribute'>
-          <dt class='attributes-header'>Attributes:</dt>
-          <dd>
-            <dl class='attributes'>
-              <xsl:apply-templates select='$interface/idl:attribute' mode='prose'>
-                <xsl:with-param name='interface' select='$interface'/>
-              </xsl:apply-templates>
-            </dl>
-          </dd>
-        </xsl:if>
-        <xsl:if test='$interface/idl:member'>
-          <dt class='exception-members-header'>Exception members:</dt>
-          <dd>
-            <dl class='attributes'>
-              <xsl:apply-templates select='$interface/idl:member' mode='prose'>
-                <xsl:with-param name='interface' select='$interface'/>
-              </xsl:apply-templates>
-            </dl>
-          </dd>
-        </xsl:if>
-        <xsl:if test='$interface/idl:operation'>
-          <dt class='operations-header'>Operations:</dt>
-          <dd>
-            <dl class='attributes'>
-              <xsl:apply-templates select='$interface/idl:operation' mode='prose'>
-                <xsl:with-param name='interface' select='$interface'/>
-              </xsl:apply-templates>
-            </dl>
-          </dd>
-        </xsl:if>
-      </dl>
-    </xsl:if>
-  </xsl:template>
-
-  <xsl:template match='idl:interface | idl:exception'>
-    <xsl:variable name='i' select='.'/>
-    <xsl:value-of select='concat(local-name(), " ")'/>
-    <xsl:variable name='name' select='@name'/>
-    <b><xsl:value-of select='@name'/></b>
-    <xsl:if test='idl:extends'>
-      <xsl:text> : </xsl:text>
-      <xsl:apply-templates select='idl:extends[1]'/>
-      <xsl:for-each select='idl:extends[position() &gt; 1]'>
-        <xsl:text>,&#10;             </xsl:text>
-        <xsl:value-of select='replace($name, ".", " ")'/>
-        <xsl:apply-templates select='.'/>
-      </xsl:for-each>
-    </xsl:if>
-    <xsl:text> {&#10;</xsl:text>
-    <xsl:variable name='spaces' select='count((idl:member[1], idl:attribute[1], idl:operation[1], idl:const[@defgroup][1], idl:const[not(@defgroup)][1])) &gt; 1'/>
-    <xsl:if test='idl:const[not(@defgroup)] and $spaces'>
-      <xsl:text>&#10;</xsl:text>
-    </xsl:if>
-    <xsl:for-each select='idl:const[not(@defgroup)]'>
-      <xsl:text>  </xsl:text>
-      <xsl:apply-templates select='.'/>
-      <xsl:text>&#10;</xsl:text>
-    </xsl:for-each>
-    <xsl:for-each select='distinct-values(idl:const/@defgroup)'>
-      <xsl:if test='$spaces'>
-        <xsl:text>&#10;</xsl:text>
-      </xsl:if>
-      <xsl:text>  // </xsl:text>
-      <xsl:value-of select='.'/>
-      <xsl:text>&#10;</xsl:text>
-      <xsl:variable name='defgroup' select='.'/>
-      <xsl:for-each select='$i/idl:const[@defgroup=$defgroup]'>
-        <xsl:text>  </xsl:text>
-        <xsl:apply-templates select='.'/>
-        <xsl:text>&#10;</xsl:text>
-      </xsl:for-each>
-    </xsl:for-each>
-    <xsl:if test='idl:attribute'>
-      <xsl:variable name='indent' select='count(idl:attribute[@readonly="true"]) != 0'/>
-      <xsl:if test='$spaces'>
-        <xsl:text>&#10;</xsl:text>
-      </xsl:if>
-      <xsl:for-each select='idl:attribute'>
-        <xsl:text>  </xsl:text>
-        <xsl:apply-templates select='.'>
-          <xsl:with-param name='indent' select='$indent'/>
-        </xsl:apply-templates>
-        <xsl:text>&#10;</xsl:text>
-      </xsl:for-each>
-    </xsl:if>
-    <xsl:if test='idl:member'>
-      <xsl:for-each select='idl:member'>
-        <xsl:text>  </xsl:text>
-        <xsl:apply-templates select='.'/>
-        <xsl:text>&#10;</xsl:text>
-      </xsl:for-each>
-    </xsl:if>
-    <xsl:if test='idl:operation'>
-      <xsl:if test='$spaces'>
-        <xsl:text>&#10;</xsl:text>
-      </xsl:if>
-      <xsl:for-each select='idl:operation'>
-        <xsl:text>  </xsl:text>
-        <xsl:apply-templates select='.'/>
-        <xsl:text>&#10;</xsl:text>
-      </xsl:for-each>
-    </xsl:if>
-    <xsl:text>};</xsl:text>
-    <xsl:variable name='scopedname' select='@scopedname'/>
-    <xsl:variable name='associatedConsts' select='if (self::idl:exception) then root(.)//idl:const[@associatedexception=$scopedname] else ()'/>
-    <xsl:if test='$associatedConsts'>
-      <xsl:text>&#10;</xsl:text>
-      <xsl:for-each select='$associatedConsts/self::idl:const[not(@defgroup)]'>
-        <xsl:text>&#10;</xsl:text>
-        <xsl:apply-templates select='.'/>
-      </xsl:for-each>
-      <xsl:for-each select='distinct-values($associatedConsts/self::idl:const/@defgroup)'>
-        <xsl:text>&#10;</xsl:text>
-        <xsl:text>// </xsl:text>
-        <xsl:value-of select='.'/>
-        <xsl:variable name='defgroup' select='.'/>
-        <xsl:for-each select='$associatedConsts/self::idl:const[@defgroup=$defgroup]'>
-          <xsl:text>&#10;</xsl:text>
-          <xsl:apply-templates select='.'/>
-        </xsl:for-each>
-      </xsl:for-each>
-    </xsl:if>
-  </xsl:template>
-
-  <xsl:template match='idl:extends'>
-    <xsl:variable name='superintf' select='id(@ref, .)'/>
-    <xsl:variable name='name' select='($superintf/@name, @name)[1]'/>
-    <xsl:choose>
-      <xsl:when test='$defs/x:interface[@name=$superintf/@name]'>
-        <xsl:copy-of select='x:interface-link($superintf/@name, .)'/>
-      </xsl:when>
-      <xsl:otherwise>
-        <xsl:value-of select='$name'/>
-      </xsl:otherwise>
-    </xsl:choose>
-  </xsl:template>
-
-  <xsl:template match='idl:member' mode='prose'>
-    <xsl:param name='interface'/>
-    <xsl:text>&#10;</xsl:text>
-    <dt id='{replace(@scopedname, ":", "_")}' class='exception-member'>
-      <b><xsl:value-of select='@name'/></b>
-      <span class='idl-type-parenthetical'>
-        <xsl:text> (</xsl:text>
-        <xsl:call-template name='idl-type'/>
-        <xsl:text>)</xsl:text>
-      </span>
-    </dt>
-    <dd class='exception-member'>
-      <xsl:variable name='description' select='idl:description'/>
-      <xsl:choose>
-        <xsl:when test='not($description/node())'>&#160;</xsl:when>
-        <xsl:when test='local-name($description/node()[1]) = ""'>
-          <div>
-            <xsl:apply-templates select='$description/node()'>
-              <xsl:with-param name='interface' select='$interface' tunnel='yes'/>
-            </xsl:apply-templates>
-          </div>
-        </xsl:when>
-        <xsl:otherwise>
-          <xsl:apply-templates select='$description/node()'>
-            <xsl:with-param name='interface' select='$interface' tunnel='yes'/>
-          </xsl:apply-templates>
-        </xsl:otherwise>
-      </xsl:choose>
-    </dd>
-  </xsl:template>
-
-  <xsl:template match='idl:member'>
-    <xsl:call-template name='idl-type'/>
-    <xsl:text> </xsl:text>
-    <a href='{substring-before($defs/x:interface[@name=current()/../@name]/@href, "#")}#{replace(@scopedname, ":", "_")}'><xsl:value-of select='@name'/></a>
-    <xsl:text>;</xsl:text>
-  </xsl:template>
-
-  <xsl:template match='idl:attribute' mode='prose'>
-    <xsl:param name='interface'/>
-    <xsl:text>&#10;</xsl:text>
-    <dt id='{replace(@scopedname, ":", "_")}' class='attribute{if (position() = 1) then " first-child" else ""}'>
-      <b><xsl:value-of select='@name'/></b>
-      <span class='idl-type-parenthetical'>
-        <xsl:text> (</xsl:text>
-        <xsl:if test='@readonly="true"'>readonly </xsl:if>
-        <xsl:call-template name='idl-type'/>
-        <xsl:text>)</xsl:text>
-      </span>
-    </dt>
-    <dd class='attribute'>
-      <xsl:variable name='description' select='idl:description'/>
-      <xsl:choose>
-        <xsl:when test='not($description/node())'>&#160;</xsl:when>
-        <xsl:when test='local-name($description/node()[1]) = ""'>
-          <div>
-            <xsl:apply-templates select='$description/node()'>
-              <xsl:with-param name='interface' select='$interface' tunnel='yes'/>
-            </xsl:apply-templates>
-          </div>
-        </xsl:when>
-        <xsl:otherwise>
-          <xsl:apply-templates select='$description/node()'>
-            <xsl:with-param name='interface' select='$interface' tunnel='yes'/>
-          </xsl:apply-templates>
-        </xsl:otherwise>
-      </xsl:choose>
-      <xsl:if test='idl:getraises | idl:setraises'>
-        <dl class='attribute'>
-          <xsl:if test='idl:getraises'>
-            <dt class='exceptions-header'>Exceptions on getting</dt>
-            <dd>
-              <dl class='exceptions'>
-                <xsl:for-each select='idl:getraises'>
-                  <xsl:sort select='@name'/>
-                  <xsl:variable name='getraises' select='.'/>
-                  <xsl:for-each select='idl:description'>
-                    <dt class='exception'>
-                      <xsl:copy-of select='x:interface-link(id($getraises/@ref, .)/@name, .)'/>
-                      <xsl:if test='@code'>, code <xsl:value-of select='@code'/></xsl:if>
-                    </dt>
-                    <dd class='exception'>
-                      <xsl:apply-templates select='node()'/>
-                    </dd>
-                  </xsl:for-each>
-                </xsl:for-each>
-              </dl>
-            </dd>
-          </xsl:if>
-          <xsl:if test='idl:setraises'>
-            <dt class='exceptions-header'>Exceptions on setting</dt>
-            <dd>
-              <dl class='exceptions'>
-                <xsl:for-each select='idl:setraises'>
-                  <xsl:sort select='@name'/>
-                  <xsl:variable name='setraises' select='.'/>
-                  <xsl:for-each select='idl:description'>
-                    <dt class='exception'>
-                      <xsl:copy-of select='x:interface-link(id($setraises/@ref, .)/@name, .)'/>
-                      <xsl:if test='@code'>, code <xsl:value-of select='@code'/></xsl:if>
-                    </dt>
-                    <dd class='exception'>
-                      <xsl:apply-templates select='node()'/>
-                    </dd>
-                  </xsl:for-each>
-                </xsl:for-each>
-              </dl>
-            </dd>
-          </xsl:if>
-        </dl>
-      </xsl:if>
-    </dd>
-  </xsl:template>
-
-  <xsl:template match='idl:attribute'>
-    <xsl:param name='indent' select='true()' as='xs:boolean'/>
-    <xsl:value-of select='if (@readonly="true") then "readonly attribute " else if ($indent) then "         attribute " else "attribute "'/>
-    <xsl:call-template name='idl-type'/>
-    <xsl:text> </xsl:text>
-    <a href='{substring-before($defs/x:interface[@name=current()/../@name]/@href, "#")}#{replace(@scopedname, ":", "_")}'><xsl:value-of select='@name'/></a>
-    <xsl:if test='idl:getraises'>
-      <xsl:text> getraises(</xsl:text>
-      <xsl:for-each select='idl:getraises'>
-        <xsl:if test='position() != 1'>, </xsl:if>
-        <xsl:call-template name='idl-type'>
-          <xsl:with-param name='name' select='id(@ref, .)/@name'/>
-        </xsl:call-template>
-      </xsl:for-each>
-      <xsl:text>)</xsl:text>
-    </xsl:if>
-    <xsl:if test='idl:setraises'>
-      <xsl:text> setraises(</xsl:text>
-      <xsl:for-each select='idl:setraises'>
-        <xsl:if test='position() != 1'>, </xsl:if>
-        <xsl:call-template name='idl-type'>
-          <xsl:with-param name='name' select='id(@ref, .)/@name'/>
-        </xsl:call-template>
-      </xsl:for-each>
-      <xsl:text>)</xsl:text>
-    </xsl:if>
-    <xsl:text>;</xsl:text>
-  </xsl:template>
-
-  <xsl:template match='idl:operation' mode='prose'>
-    <xsl:param name='interface'/>
-    <xsl:param name='op' select='.'/>
-    <xsl:text>&#10;</xsl:text>
-    <dt id='{replace(@scopedname, ":", "_")}' class='operation{if (position() = 1) then " first-child" else ""}'>
-      <xsl:call-template name='idl-type'/>
-      <xsl:text> </xsl:text>
-      <b><xsl:value-of select='@name'/></b>
-      <xsl:text>(</xsl:text>
-      <xsl:for-each select='idl:argument'>
-        <xsl:if test='position() != 1'>, </xsl:if>
-        <xsl:text>in </xsl:text>
-        <xsl:call-template name='idl-type'/>
-        <xsl:text> </xsl:text>
-        <var><xsl:value-of select='@name'/></var>
-      </xsl:for-each>
-      <xsl:text>)</xsl:text>
-    </dt>
-    <dd class='operation'>
-      <xsl:variable name='description' select='idl:description'/>
-      <xsl:choose>
-        <xsl:when test='not($description/node())'>&#160;</xsl:when>
-        <xsl:when test='local-name($description/node()[1]) = ""'>
-          <div>
-            <xsl:apply-templates select='$description/node()'>
-              <xsl:with-param name='interface' select='$interface' tunnel='yes'/>
-            </xsl:apply-templates>
-          </div>
-        </xsl:when>
-        <xsl:otherwise>
-          <xsl:apply-templates select='$description/node()'>
-            <xsl:with-param name='interface' select='$interface' tunnel='yes'/>
-          </xsl:apply-templates>
-        </xsl:otherwise>
-      </xsl:choose>
-      <xsl:if test='not(@type="void") or (idl:argument | idl:raises)'>
-        <dl class='operation'>
-          <xsl:if test='idl:argument'>
-            <dt class='parameters-header'>Parameters</dt>
-            <dd>
-              <ol class='parameters'>
-                <xsl:for-each select='idl:argument'>
-                  <xsl:variable name='argnum' select='position()'/>
-                  <li class='parameter{if (position() = 1) then " first-child" else ""}'>
-                    <div>
-                      <xsl:call-template name='idl-type'/>
-                      <xsl:text> </xsl:text>
-                      <var><xsl:value-of select='@name'/></var>
-                    </div>
-                    <xsl:text> </xsl:text>
-                    <xsl:choose>
-                      <xsl:when test='not(idl:description/node())'>&#160;</xsl:when>
-                      <xsl:when test='local-name(idl:description/node()[1]) = ""'>
-                        <div>
-                          <xsl:apply-templates select='idl:description/node()'>
-                            <xsl:with-param name='interface' select='$interface' tunnel='yes'/>
-                          </xsl:apply-templates>
-                        </div>
-                      </xsl:when>
-                      <xsl:otherwise>
-                        <xsl:apply-templates select='idl:description/node()'>
-                          <xsl:with-param name='interface' select='$interface' tunnel='yes'/>
-                        </xsl:apply-templates>
-                      </xsl:otherwise>
-                    </xsl:choose>
-                  </li>
-                </xsl:for-each>
-              </ol>
-            </dd>
-          </xsl:if>
-          <xsl:if test='not(@type="void")'>
-            <dt class='returns-header'>Returns</dt>
-            <dd>
-              <xsl:choose>
-                <xsl:when test='not(idl:returns/idl:description/node())'>&#160;</xsl:when>
-                <xsl:when test='local-name(idl:returns/idl:description/node()[1]) = ""'>
-                  <div>
-                    <xsl:apply-templates select='idl:returns/idl:description/node()'>
-                      <xsl:with-param name='interface' select='$interface' tunnel='yes'/>
-                    </xsl:apply-templates>
-                  </div>
-                </xsl:when>
-                <xsl:otherwise>
-                  <xsl:apply-templates select='idl:returns/idl:description/node()'>
-                    <xsl:with-param name='interface' select='$interface' tunnel='yes'/>
-                  </xsl:apply-templates>
-                </xsl:otherwise>
-              </xsl:choose>
-            </dd>
-          </xsl:if>
-          <xsl:if test='idl:raises'>
-            <dt class='exceptions-header'>Exceptions</dt>
-            <dd>
-              <dl class='exceptions'>
-                <xsl:for-each select='idl:raises'>
-                  <xsl:sort select='@name'/>
-                  <xsl:variable name='raises' select='.'/>
-                  <xsl:for-each select='idl:description'>
-                    <dt class='exception{if (position() = 1) then " first-child" else ""}'>
-                      <xsl:copy-of select='x:interface-link(id($raises/@ref, .)/@name, .)'/>
-                      <xsl:if test='@code'>, code <xsl:value-of select='@code'/></xsl:if>
-                    </dt>
-                    <dd class='exception'>
-                      <xsl:apply-templates select='node()'>
-                        <xsl:with-param name='interface' select='$interface' tunnel='yes'/>
-                      </xsl:apply-templates>
-                    </dd>
-                  </xsl:for-each>
-                </xsl:for-each>
-              </dl>
-            </dd>
-          </xsl:if>
-        </dl>
-      </xsl:if>
-    </dd>
-  </xsl:template>
-
-  <xsl:template match='idl:operation'>
-    <xsl:call-template name='idl-type'/>
-    <xsl:text> </xsl:text>
-    <a href='{substring-before($defs/x:interface[@name=current()/../@name]/@href, "#")}#{replace(@scopedname, ":", "_")}'><xsl:value-of select='@name'/></a>
-    <xsl:text>(</xsl:text>
-    <xsl:for-each select='idl:argument'>
-      <xsl:if test='position() != 1'>, </xsl:if>
-      <xsl:text>in </xsl:text>
-      <xsl:call-template name='idl-type'/>
-      <xsl:text> </xsl:text>
-      <xsl:value-of select='@name'/>
-    </xsl:for-each>
-    <xsl:text>)</xsl:text>
-    <xsl:if test='idl:raises'>
-      <xsl:text> raises(</xsl:text>
-      <xsl:for-each select='idl:raises'>
-        <xsl:if test='position() != 1'>, </xsl:if>
-        <xsl:call-template name='idl-type'>
-          <xsl:with-param name='name' select='id(@ref, .)/@name'/>
-        </xsl:call-template>
-      </xsl:for-each>
-      <xsl:text>)</xsl:text>
-    </xsl:if>
-    <xsl:text>;</xsl:text>
-  </xsl:template>
-
-  <xsl:template match='idl:const' mode='prose'>
-    <xsl:param name='interface'/>
-    <xsl:text>&#10;</xsl:text>
-    <dt id='{replace(@scopedname, ":", "_")}' class='constant{if (position() = 1) then " first-child" else ""}'>
-      <b><xsl:value-of select='@name'/></b>
-      <span class='idl-type-parenthetical'>
-        <xsl:text> (</xsl:text>
-        <xsl:call-template name='idl-type'/>
-        <xsl:text>)</xsl:text>
-      </span>
-    </dt>
-    <dd class='constant'>
-      <xsl:variable name='description' select='idl:description'/>
-      <xsl:choose>
-        <xsl:when test='not($description/node())'>&#160;</xsl:when>
-        <xsl:when test='local-name($description/node()[1]) = ""'>
-          <div>
-            <xsl:apply-templates select='$description/node()'>
-              <xsl:with-param name='interface' select='$interface' tunnel='yes'/>
-            </xsl:apply-templates>
-          </div>
-        </xsl:when>
-        <xsl:otherwise>
-          <xsl:apply-templates select='$description/node()'>
-            <xsl:with-param name='interface' select='$interface' tunnel='yes'/>
-          </xsl:apply-templates>
-        </xsl:otherwise>
-      </xsl:choose>
-    </dd>
-  </xsl:template>
-
-  <xsl:template match='idl:const'>
-    <xsl:text>const </xsl:text>
-    <xsl:call-template name='idl-type'/>
-    <xsl:text> </xsl:text>
-    <xsl:variable name='ae' select='@associatedexception'/>
-    <xsl:variable name='container' select='if (../self::idl:interface) then ../@scopedname else if ($ae) then $ae else ()'/>
-    <xsl:variable name='x' select='$idl//(idl:interface | idl:exception)[@scopedname=$container]'/>
-    <a href='{substring-before($defs/x:interface[@name=$x/@name]/@href, "#")}#{replace(@scopedname, ":", "_")}'><xsl:value-of select='@name'/></a>
-    <xsl:text> = </xsl:text>
-    <xsl:value-of select='@value'/>
-    <xsl:text>;</xsl:text>
-  </xsl:template>
-
-  <xsl:template name='idl-type'>
-    <xsl:param name='name' select='(idl:type/idl:scopedname/@name, @type)'/>
-    <xsl:choose>
-      <xsl:when test='$defs/x:interface[@name=$name]'>
-        <xsl:copy-of select='x:interface-link($name, .)'/>
-      </xsl:when>
-      <xsl:when test='$defs/x:interface[@name=substring-after($name, "::")]'>
-        <xsl:copy-of select='x:interface-link(substring-after($name, "::"), .)'/>
-      </xsl:when>
-      <xsl:otherwise>
-        <xsl:value-of select='$name'/>
-      </xsl:otherwise>
-    </xsl:choose>
-  </xsl:template>
-
-  <xsl:template name='header'>
-    <xsl:param name='previous-chapter'/>
-    <xsl:param name='next-chapter'/>
-    <span class='namedate'><xsl:value-of select='$conf/x:short-title'/> – <xsl:value-of select='format-date($publication-date, "[D01] [MNn] [Y]", "en", (), ())'/></span>
-    <a href='{$conf/x:index/@name}.html'>Top</a>
-    <xsl:if test='$conf/x:toc'>
-      <xsl:text> ⋅ </xsl:text><a href='{$conf/x:toc/@href}'>Contents</a>
-    </xsl:if>
-    <xsl:if test='$previous-chapter != ""'>
-      <xsl:text> ⋅ </xsl:text><a href='{$previous-chapter}.html'>Previous</a>
-    </xsl:if>
-    <xsl:if test='$next-chapter != ""'>
-      <xsl:text> ⋅ </xsl:text><a href='{$next-chapter}.html'>Next</a>
-    </xsl:if>
-    <xsl:if test='$conf/x:elementindex'>
-      <xsl:text> ⋅ </xsl:text><a href='{$conf/x:elementindex/@href}'>Elements</a>
-    </xsl:if>
-    <xsl:if test='$conf/x:attributeindex'>
-      <xsl:text> ⋅ </xsl:text><a href='{$conf/x:attributeindex/@href}'>Attributes</a>
-    </xsl:if>
-    <xsl:if test='$conf/x:propertyindex'>
-      <xsl:text> ⋅ </xsl:text><a href='{$conf/x:propertyindex/@href}'>Properties</a>
-    </xsl:if>
-  </xsl:template>
-
-  <xsl:template match='span[tokenize(@class, " ") = ("element-name", "attr-name", "property") and starts-with(., "&#39;") and ends-with(., "&#39;")]'>
-    <span>
-      <xsl:copy-of select='@*[namespace-uri() = ""]'/>
-      <xsl:value-of select='concat("‘", substring(., 2, string-length() - 2), "’")'/>
-    </span>
-  </xsl:template>
-
-  <xsl:template match='a[not(@href) and node()]'>
-    <xsl:param name='interface' as='node()?' select='()' tunnel='yes'/>
-    <xsl:param name='context-element' as='xs:string?' select='()' tunnel='yes'/>
-    <xsl:variable name='this' select='normalize-space(.)'/>
-    <xsl:choose>
-      <xsl:when test='$interface/(idl:operation|idl:attribute|idl:const)[@name=$this]'>
-        <xsl:variable name='idlattr' select='$interface/(idl:operation|idl:attribute|idl:const)[@name=$this]'/>
-        <a class='idlattr{if (@class) then " " else ""}{@class}' href='#{replace($idlattr/@scopedname, ":", "_")}'>
-          <xsl:copy-of select='@*[local-name() != "class" and namespace-uri() = ""]'/>
-          <xsl:value-of select='$this'/>
-        </a>
-      </xsl:when>
-      <xsl:when test='$defs/x:interface[@name=$this]'>
-        <a class='idlinterface{if (@class) then " " else ""}{@class}' href='{$defs/x:interface[@name=$this]/@href}'>
-          <xsl:copy-of select='@*[local-name() != "class" and namespace-uri() = ""]'/>
-          <xsl:value-of select='$this'/>
-        </a>
-      </xsl:when>
-      <xsl:when test='matches($this, "^[^:]+::[^:]+$")'>
-        <xsl:variable name='before' select='substring-before($this, "::")'/>
-        <xsl:variable name='after' select='substring-after($this, "::")'/>
-        <xsl:variable name='member' select='$idl//(idl:interface | idl:exception)[@name=substring-before($this, "::")]/(idl:attribute|idl:operation|idl:const|idl:member)[@name=substring-after($this, "::")]'/>
-        <xsl:choose>
-          <xsl:when test='$member'>
-            <a class='idlattr{if (@class) then " " else ""}{@class}' href='{substring-before($defs/(x:interface | x:exception)[@name=$before]/@href, "#")}#{replace($member/@scopedname, ":", "_")}'>
-              <xsl:copy-of select='@*[local-name() != "class" and namespace-uri() = ""]'/>
-              <xsl:if test='@edit:format="expanded"'><xsl:value-of select='$member/../@name'/>::</xsl:if>
-              <xsl:value-of select='$after'/>
-            </a>
-          </xsl:when>
-          <xsl:otherwise>
-            <a style='background: red; color: white' href='data:,'>
-              <xsl:message>Unknown interface member "<xsl:value-of select='$this'/>" at <xsl:value-of select="concat(base-uri(.), ' line ', saxon:line-number())"/>.</xsl:message>
-              <xsl:copy-of select='@*[namespace-uri() = ""]'/>
-              <xsl:apply-templates/>
-            </a>
-          </xsl:otherwise>
-        </xsl:choose>
-      </xsl:when>
-      <xsl:when test='starts-with($this, "&#39;") and ends-with($this, "&#39;")'>
-        <xsl:variable name='name' select='substring($this, 2, string-length() - 2)'/>
-        <xsl:choose>
-          <xsl:when test='contains($name, "/")'>
-            <xsl:variable name='parts' select='tokenize($name, "/")'/>
-            <xsl:copy-of select='x:attribute-link($parts[2], $parts[1], false(), .)'/>
-          </xsl:when>
-          <xsl:when test='contains($name, " ")'>
-            <xsl:variable name='parts' select='tokenize($name, " ")'/>
-            <xsl:choose>
-              <xsl:when test='$parts[2] = "element"'>
-                <xsl:copy-of select='x:element-link($parts[1], .)'/>
-              </xsl:when>
-              <xsl:when test='$parts[2] = "presentationattribute"'>
-                <xsl:copy-of select='x:presentation-attribute-link($parts[1], .)'/>
-              </xsl:when>
-              <xsl:when test='$parts[2] = "attribute"'>
-                <xsl:copy-of select='x:attribute-link($parts[1], $context-element, true(), .)'/>
-              </xsl:when>
-              <xsl:when test='$parts[2] = "property"'>
-                <xsl:copy-of select='x:property-link($parts[1], .)'/>
-              </xsl:when>
-            </xsl:choose>
-          </xsl:when>
-          <xsl:otherwise>
-            <xsl:copy-of select='x:name-link($name, $context-element, .)'/>
-          </xsl:otherwise>
-        </xsl:choose>
-      </xsl:when>
-      <xsl:when test='starts-with($this, "&#60;") and ends-with($this, "&#62;")'>
-        <xsl:variable name='name' select='substring($this, 2, string-length() - 2)'/>
-        <xsl:copy-of select='x:symbol-link($name, .)'/>
-      </xsl:when>
-      <xsl:when test='$defs/x:term[lower-case(@name)=lower-case($this)]'>
-        <xsl:variable name='term' select='$defs/x:term[lower-case(@name)=lower-case($this)]'/>
-        <a href='{$term/@href}'><span class='{if ($term/@class) then $term/@class else "svg-term"}'>
-          <xsl:choose>
-            <xsl:when test="count($term/node())">
-              <xsl:apply-templates select='$term/node()'/>
-            </xsl:when>
-            <xsl:otherwise>
-              <xsl:apply-templates select='node()'/>
-            </xsl:otherwise>
-          </xsl:choose>
-        </span></a>
-      </xsl:when>
-      <xsl:otherwise>
-        <a style='background: red; color: white' href='data:,'>
-          <xsl:message>Unknown term "<xsl:value-of select='$this'/>" at <xsl:value-of select="concat(base-uri(.), ' line ', saxon:line-number())"/>.</xsl:message>
-          <xsl:copy-of select='@*[namespace-uri() = ""]'/>
-          <xsl:apply-templates/>
-        </a>
-      </xsl:otherwise>
-    </xsl:choose>
-  </xsl:template>
-
-  <xsl:template match='edit:example'>
-    <div class="example">
-    <xsl:variable name='text' select='unparsed-text(resolve-uri(@href, base-uri(.)))'/>
-    <pre class='xml'><xsl:value-of select='replace($text, "\s+$", "")'/></pre>
-    <xsl:if test='@image="yes"'>
-      <div class="figure">
-	<img alt="Example {@name}{if (@description) then concat(' €” ', @description) else ''}" src='{replace(@href, "\.svg$", ".png")}'/>
-	<p class="caption">Example <xsl:value-of select="@name"/></p>
-      </div>
-    </xsl:if>
-    <xsl:if test='@link="yes"'>
-      <p class='view-as-svg'><a href='{@href}'>View this example as SVG (SVG-enabled browsers only)</a></p>
-    </xsl:if>
-    </div>
-  </xsl:template>
-
-  <xsl:template match='edit:includefile'>
-    <pre><xsl:value-of select='replace(unparsed-text(resolve-uri(@href, base-uri(.))), "\s+$", "")'/></pre>
-  </xsl:template>
-
-  <xsl:template match='edit:elementsummary'>
-    <!--xsl:param name='context-element' as='xs:string?' select='()' tunnel='yes'/-->
-    <xsl:for-each select='$defs/x:element[@name = current()/@name]'>
-      <xsl:variable name='element' select='.'/>
-      <xsl:variable name='name' select='@name'/>
-      <div class='element-summary'>
-        <div class='element-summary-name'><span class='element-name'>‘<xsl:value-of select='@name'/>’</span></div>
-        <dl>
-          <dt>Categories:</dt>
-          <dd>
-            <xsl:variable name='categories' select='$defs/x:elementcategory[tokenize(@elements, ", ") = current()/@name]'/>
-            <xsl:choose>
-              <xsl:when test='not($categories)'>None</xsl:when>
-              <xsl:otherwise>
-                <xsl:for-each select='$categories'>
-                  <xsl:variable name='text' select='if (position() = 1) then concat(upper-case(substring(@name, 1, 1)), substring(@name, 2)) else @name'/>
-                  <xsl:if test='position() != 1'>, </xsl:if>
-                  <a href='{@href}'><xsl:value-of select='$text'/> element</a>
-                </xsl:for-each>
-              </xsl:otherwise>
-            </xsl:choose>
-          </dd>
-          <dt>Content model:</dt>
-          <dd>
-            <xsl:choose>
-              <xsl:when test='x:contentmodel'>
-                <xsl:apply-templates select='x:contentmodel/node()'/>
-              </xsl:when>
-              <xsl:when test='@contentmodel=("textoranyof", "anyof", "oneormoreof")'>
-                <xsl:value-of select='if (@contentmodel="oneormoreof") then "One or more" else "Any number"'/> of the following elements<xsl:if test='@contentmodel="textoranyof"'> or character data</xsl:if>, in any order:
-                <ul class='no-bullets'>
-                  <xsl:for-each select='tokenize(@elementcategories, ", ")'>
-                    <xsl:variable name='category' select='$defs/x:elementcategory[@name=current()]'/>
-                    <li>
-                      <xsl:choose>
-                        <xsl:when test='$category'>
-                          <a href='{$category/@href}'><xsl:value-of select='.'/> elements</a>
-                          <span class='expanding'>
-                            <xsl:text> — </xsl:text>
-                            <xsl:for-each select='tokenize($category/@elements, ", ")'>
-                              <xsl:sort/>
-                              <xsl:if test='position() != 1'>, </xsl:if>
-                              <xsl:choose>
-                                <xsl:when test='$defs/x:element[@name=current()]'>
-                                  <span class='element-name'>
-                                    <xsl:text>‘</xsl:text>
-                                    <a href='{$defs/x:element[@name=current()]/@href}'><span><xsl:value-of select='.'/></span></a>
-                                    <xsl:text>’</xsl:text>
-                                  </span>
-                                </xsl:when>
-                                <xsl:otherwise>
-                                  <xsl:message>Unknown name "<xsl:value-of select='.'/>" at <xsl:value-of select="concat(base-uri($category), ' line ', saxon:line-number())"/>.</xsl:message>
-                                  <a href='data:,' style='background: red; color: white'>@@ unknown name '<xsl:value-of select='.'/>'</a>
-                                </xsl:otherwise>
-                              </xsl:choose>
-                            </xsl:for-each>
-                          </span>
-                        </xsl:when>
-                        <xsl:otherwise>
-                          <xsl:message>Unknown element category "<xsl:value-of select='.'/>" at <xsl:value-of select="concat(base-uri($element), ' line ', saxon:line-number())"/>.</xsl:message>
-                          <a href='data:,' style='background: red; color: white'>@@ unknown element category '<xsl:value-of select='.'/>'</a>
-                        </xsl:otherwise>
-                      </xsl:choose>
-                    </li>
-                  </xsl:for-each>
-                  <xsl:for-each select='tokenize(@elements, ", ")'>
-                    <xsl:sort/>
-                    <li><xsl:copy-of select='x:element-link(., $element)'/></li>
-                  </xsl:for-each>
-                </ul>
-              </xsl:when>
-              <xsl:when test='@contentmodel="any"'>
-                Any elements or character data.
-              </xsl:when>
-              <xsl:when test='@contentmodel="text"'>
-                Character data.
-              </xsl:when>
-              <xsl:otherwise>Empty.</xsl:otherwise>
-            </xsl:choose>
-          </dd>
-          <dt>Attributes:</dt>
-          <dd>
-            <xsl:choose>
-              <xsl:when test='@attributecategories or @attributes or x:attribute'>
-                <ul class='no-bullets'>
-                  <xsl:for-each select='tokenize(@attributecategories, ", ")'>
-                    <xsl:variable name='category' select='$defs/x:attributecategory[@name=current()]'/>
-                    <xsl:if test='$category/@href'>
-                      <li>
-                        <xsl:choose>
-                          <xsl:when test='$category'>
-                            <a href='{$category/@href}'><xsl:value-of select='.'/> attributes</a>
-                            <span class='expanding'>
-                              <xsl:text> — </xsl:text>
-                              <xsl:variable name='attributes' select='tokenize($category/@attributes, ", ")'/>
-                              <xsl:variable name='presentationattributes' select='tokenize($category/@presentationattributes, ", ")'/>
-                              <xsl:variable name='attributeelements' select='$category/x:attribute/@name'/>
-                              <xsl:for-each select='$attributes'>
-                                <xsl:if test='position() != 1'>, </xsl:if>
-                                <xsl:copy-of select='x:attribute-link(., $name, true(), $category)'/>
-                              </xsl:for-each>
-                              <xsl:for-each select='$presentationattributes'>
-                                <xsl:if test='count($attributes) or position() != 1'>, </xsl:if>
-                                <xsl:copy-of select='x:presentation-attribute-link(., $category)'/>
-                              </xsl:for-each>
-                              <xsl:for-each select='$attributeelements'>
-                                <xsl:if test='count($attributes) or count($presentationattributes) or position() != 1'>, </xsl:if>
-                                <xsl:copy-of select='x:attribute-link(., $name, true(), $category)'/>
-                              </xsl:for-each>
-                            </span>
-                          </xsl:when>
-                          <xsl:otherwise>
-                            <xsl:message>Unknown attribute category "<xsl:value-of select='.'/>" at <xsl:value-of select="concat(base-uri($element), ' line ', saxon:line-number())"/>.</xsl:message>
-                            <a href='data:,' style='background: red; color: white'>@@ unknown attribute category '<xsl:value-of select='.'/>'</a>
-                          </xsl:otherwise>
-                        </xsl:choose>
-                      </li>
-                    </xsl:if>
-                  </xsl:for-each>
-                  <xsl:for-each select='tokenize(@attributecategories, ", ")'>
-                    <xsl:variable name='category' select='$defs/x:attributecategory[@name=current()]'/>
-                    <xsl:if test='$category and not($category/@href)'>
-                      <xsl:variable name='attributes' select='tokenize($category/@attributes, ", ")'/>
-                      <xsl:variable name='presentationattributes' select='tokenize($category/@presentationattributes, ", ")'/>
-                      <xsl:variable name='attributeelements' select='$category/x:attribute/@name'/>
-                      <xsl:for-each select='$attributes'>
-                        <li><xsl:copy-of select='x:attribute-link(., $name, true(), $category)'/></li>
-                      </xsl:for-each>
-                      <xsl:for-each select='$presentationattributes'>
-                        <li><xsl:copy-of select='x:presentation-attribute-link(., $category)'/></li>
-                      </xsl:for-each>
-                      <xsl:for-each select='$attributeelements'>
-                        <li><xsl:copy-of select='x:attribute-link(., $name, true(), $category)'/></li>
-                      </xsl:for-each>
-                    </xsl:if>
-                  </xsl:for-each>
-                  <xsl:for-each select='tokenize(@attributes, ", *")'>
-                    <li><xsl:copy-of select='x:attribute-link(., $name, true(), $element)'/></li>
-                  </xsl:for-each>
-                  <xsl:for-each select='x:attribute'>
-                    <li><xsl:copy-of select='x:attribute-link(@name, $name, true(), $element)'/></li>
-                  </xsl:for-each>
-                </ul>
-              </xsl:when>
-              <xsl:otherwise>None</xsl:otherwise>
-            </xsl:choose>
-          </dd>
-          <dt>DOM Interfaces:</dt>
-          <dd>
-            <ul class='no-bullets'>
-              <xsl:for-each select='tokenize(@interfaces, ", *")'>
-                <li><xsl:copy-of select='x:interface-link(., $element)'/></li>
-              </xsl:for-each>
-            </ul>
-          </dd>
-        </dl>
-      </div>
-    </xsl:for-each>
-  </xsl:template>
-
-  <xsl:template match='edit:with'>
-    <xsl:param name='context-element' select='()' as='xs:string?' tunnel='yes'/>
-    <xsl:variable name='context-element' select='if (@element) then @element else $context-element'/>
-    <xsl:apply-templates select='node()'>
-      <xsl:with-param name='context-element' select='$context-element' tunnel='yes'/>
-    </xsl:apply-templates>
-  </xsl:template>
-
-  <xsl:template match='edit:toc'>[generated toc goes here]</xsl:template>
-
-  <xsl:template match='edit:maturity'><xsl:value-of select='$maturity-long'/></xsl:template>
-
-  <xsl:template match='edit:date'>
-    <xsl:value-of select='format-date($publication-date, "[D01] [MNn] [Y]", "en", (), ())'/>
-  </xsl:template>
-
-  <xsl:template match='edit:thisversion'>
-    <xsl:variable name='url' select='if (@single-page) then $this-version-single else $this-version'/>
-    <a href='{if (@single-page) then "single-page.html" else $url}' class='url'><xsl:value-of select='$url'/></a>
-  </xsl:template>
-
-  <xsl:template match='edit:latestversion'>
-    <xsl:variable name='href' select='$conf/x:versions/x:latest/@href'/>
-    <a href='{$href}' class='url'><xsl:value-of select='$href'/></a>
-  </xsl:template>
-
-  <xsl:template match='edit:includelatesteditorsdraft'>
-    <xsl:if test='$maturity != "ED"'>
-      <xsl:variable name='href' select='$conf/x:versions/x:cvs/@href'/>
-      <dt>Latest editor's draft:</dt>
-      <dd><a href='{$href}' class='url'><xsl:value-of select='$href'/></a></dd>
-    </xsl:if>
-  </xsl:template>
-
-  <xsl:template match='edit:previousversion'>
-    <xsl:variable name='href' select='$conf/x:versions/x:previous/@href'/>
-    <a href='{$href}' class='url'><xsl:value-of select='$href'/></a>
-  </xsl:template>
-
-  <xsl:template match='edit:copyright'>
-    <p class="copyright"><a href="http://www.w3.org/Consortium/Legal/ipr-notice#Copyright">Copyright</a> © <xsl:value-of select='year-from-date($publication-date)'/><xsl:text> </xsl:text><a href="http://www.w3.org/"><acronym title="World Wide Web Consortium">W3C</acronym></a><sup>®</sup> (<a href="http://www.csail.mit.edu/"><acronym title="Massachusetts Institute of Technology">MIT</acronym></a>, <a href="http://www.ercim.eu/"><acronym title="European Research Consortium for Informatics and Mathematics">ERCIM</acronym></a>, <a href="http://www.keio.ac.jp/">Keio</a>), All Rights Reserved. W3C <a href="http://www.w3.org/Consortium/Legal/ipr-notice#Legal_Disclaimer">liability</a>, <a href="http://www.w3.org/Consortium/Legal/ipr-notice#W3C_Trademarks">trademark</a> and <a href="http://www.w3.org/Consortium/Legal/copyright-documents">document use</a> rules apply.</p>
-  </xsl:template>
-
-  <xsl:template match='edit:locallink'>
-    <xsl:variable name='s' select='resolve-uri(@href, $this-version)'/>
-    <a href='{$s}'>
-      <xsl:choose>
-        <xsl:when test='node()'>
-          <xsl:apply-templates/>
-        </xsl:when>
-        <xsl:otherwise>
-          <xsl:value-of select='$s'/>
-        </xsl:otherwise>
-      </xsl:choose>
-    </a>
-  </xsl:template>
-
-  <xsl:template match='edit:attributetable'>
-    <table class='vert property-table' summary='Alphabetic list of attributes'>
-      <tr>
-        <th>Attribute</th>
-        <th>Elements on which the attribute may be specified</th>
-        <th title="Animatable"><a href="animate.html#Animatable">Anim.</a></th>
-      </tr>
-      <xsl:for-each select='$defs//x:attribute'>
-        <xsl:sort select='@name'/>
-        <xsl:sort select='@elements'/>
-        <xsl:choose>
-          <xsl:when test='../self::x:element'>
-            <tr>
-              <td><xsl:copy-of select='x:attribute-link(@name, ../@name, true(), .)'/></td>
-              <td><xsl:copy-of select='x:element-link(../@name, .)'/></td>
-              <td><xsl:copy-of select='if (x:lookup-attribute(@name, ../@name, true())/@animatable="yes") then "✓" else ""'/></td>
-            </tr>
-          </xsl:when>
-          <xsl:when test='../self::x:attributecategory'>
-            <xsl:variable name='attributecategory' select='..'/>
-            <tr>
-              <td><xsl:copy-of select='x:attribute-link(@name, $defs/x:element[tokenize(@attributecategories, ", ")=$attributecategory/@name][1]/@name, true(), .)'/></td>
-              <td>
-                <xsl:for-each select='$defs/x:element[tokenize(@attributecategories, ", ")=$attributecategory/@name]'>
-                  <xsl:sort select='@name'/>
-                  <xsl:if test='not(position()=1)'>, </xsl:if>
-                  <xsl:copy-of select='x:element-link(@name, .)'/>
-                </xsl:for-each>
-              </td>
-              <td><xsl:copy-of select='if (x:lookup-attribute(@name, $defs/x:element[tokenize(@attributecategories, ", ")=$attributecategory/@name][1]/@name, true())/@animatable="yes") then "✓" else ""'/></td>
-            </tr>
-          </xsl:when>
-          <xsl:otherwise>
-            <xsl:variable name='attribute-name' select='@name'/>
-            <xsl:variable name='element-names' select='if (@elements) then tokenize(@elements, ", ") else ../x:element[tokenize(@attributes, ", ") = $attribute-name]/@name'/>
-            <xsl:variable name='element-name' select='$element-names[1]'/>
-            <tr>
-              <td><xsl:copy-of select='x:attribute-link(@name, $element-name, true(), .)'/></td>
-              <td>
-                <xsl:for-each select='$element-names'>
-                  <xsl:sort select='.'/>
-                  <xsl:if test='not(position()=1)'>, </xsl:if>
-                  <xsl:copy-of select='x:element-link(., .)'/>
-                </xsl:for-each>
-              </td>
-              <td><xsl:copy-of select='if (x:lookup-attribute(@name, $element-name, true())/@animatable="yes") then "✓" else ""'/></td>
-            </tr>
-          </xsl:otherwise>
-        </xsl:choose>
-      </xsl:for-each>
-    </table>
-  </xsl:template>
-
-  <xsl:template match='edit:elementindex'>
-    <ul class='element-index' summary='Alphabetic list of elements'>
-      <xsl:for-each select='$defs//x:element'>
-        <xsl:sort select='@name'/>
-	<li><xsl:copy-of select='x:element-link(@name, .)'/></li>
-      </xsl:for-each>
-    </ul>
-  </xsl:template>
-
-  <xsl:template match='edit:elementcategory'>
-    <xsl:variable name='elementcategory' select='$defs/x:elementcategory[@name=current()/@name]'/>
-    <xsl:variable name='all'>
-      <xsl:perform-sort>
-        <xsl:sort select='string(.)'/>
-        <xsl:for-each select='tokenize($elementcategory/@elements, ", ")'>
-          <xsl:copy-of select='x:element-link(., $elementcategory)'/>
-        </xsl:for-each>
-      </xsl:perform-sort>
-    </xsl:variable>
-    <xsl:for-each select='$all/*'>
-      <xsl:if test='position() != 1'>
-        <xsl:choose>
-          <xsl:when test='position() = last()'> and </xsl:when>
-          <xsl:otherwise>, </xsl:otherwise>
-        </xsl:choose>
-      </xsl:if>
-      <xsl:copy-of select='.'/>
-    </xsl:for-each>
-  </xsl:template>
-
-  <xsl:template match='edit:attributecategory'>
-    <xsl:variable name='attributecategory' select='$defs/x:attributecategory[@name=current()/@name]'/>
-    <xsl:variable name='all'>
-      <xsl:perform-sort>
-        <xsl:sort select='string(.)'/>
-        <xsl:for-each select='tokenize($attributecategory/@presentationattributes, ", ")'>
-          <xsl:copy-of select='x:presentation-attribute-link(., $attributecategory)'/>
-        </xsl:for-each>
-        <xsl:for-each select='tokenize($attributecategory/@attributes, ", ")'>
-          <xsl:copy-of select='x:attribute-link(., (), true(), $attributecategory)'/>
-        </xsl:for-each>
-        <xsl:for-each select='$attributecategory/x:attribute'>
-          <span class="attr-name">
-            <xsl:text>‘</xsl:text>
-            <a href="{@href}"><span><xsl:value-of select='@name'/></span></a>
-            <xsl:text>’</xsl:text>
-          </span>
-        </xsl:for-each>
-      </xsl:perform-sort>
-    </xsl:variable>
-    <xsl:for-each select='$all/*'>
-      <xsl:if test='position() != 1'>
-        <xsl:choose>
-          <xsl:when test='position() = last()'> and </xsl:when>
-          <xsl:otherwise>, </xsl:otherwise>
-        </xsl:choose>
-      </xsl:if>
-      <xsl:copy-of select='.'/>
-    </xsl:for-each>
-  </xsl:template>
-
-  <xsl:template match='edit:elementswithattributecategory'>
-    <xsl:variable name='elementswithattributecategory' select='.'/>
-    <xsl:for-each select='$defs/x:element[tokenize(@attributecategories, ", ") = current()/@name]'>
-      <xsl:if test='position() != 1'>
-        <xsl:choose>
-          <xsl:when test='position() = last()'> and </xsl:when>
-          <xsl:otherwise>, </xsl:otherwise>
-        </xsl:choose>
-      </xsl:if>
-      <xsl:copy-of select='x:element-link(@name, $elementswithattributecategory)'/>
-    </xsl:for-each>
-  </xsl:template>
-
-  <xsl:template match='m:* | svg:*'>
-    <xsl:copy>
-      <xsl:copy-of select='@*'/>
-      <xsl:apply-templates/>
-    </xsl:copy>
-  </xsl:template>
-
-  <xsl:template match='*'/>
-
-
-  <xsl:function name='x:section-number'>
-    <xsl:param name='sections'/>
-    <xsl:param name='section-id'/>
-    <xsl:variable name='e' select='id($section-id, $sections)'/>
-    <xsl:if test='$e'>
-      <xsl:value-of select='$e/@number'/>
-    </xsl:if>
-  </xsl:function>
-
-  <xsl:function name='x:section-id' as='xs:string'>
-    <xsl:param name='headerElement'/>
-    <xsl:value-of select='if ($headerElement/@id) then $headerElement/@id
-                          else if ($headerElement/a/@id) then $headerElement/a/@id
-                          else if ($headerElement/a/@name) then $headerElement/a/@name
-                          else if ($headerElement/preceding-sibling::a[1]/@id) then $headerElement/preceding-sibling::a[1]/@id
-                          else $headerElement/preceding-sibling::a[1]/@name'/>
-  </xsl:function>
-
-  <xsl:function name='x:lookup-element' as='element()?'>
-    <xsl:param name='name'/>
-    <xsl:copy-of select='$defs/x:element[@name=$name]'/>
-  </xsl:function>
-
-  <xsl:function name='x:lookup-attribute' as='element()?'>
-    <xsl:param name='name'/>
-    <xsl:param name='element-name'/>
-    <xsl:param name='definitely-attribute'/>
-    <xsl:variable name='element' select='if ($element-name="") then () else $defs/x:element[@name=$element-name]'/>
-    <xsl:variable name='attributes' select='($defs/x:attribute[not(@elements) and @name=$name],
-                                             if ($element) then ($element/x:attribute[@name=$name],
-                                                                 $defs/x:attributecategory[tokenize($element/@attributecategories, ", ") = @name]/x:attribute[@name=$name],
-                                                                 $defs/x:attribute[@name=$name and tokenize(@elements, ", ") = $element-name])
-                                                           else ())'/>
-
-    <xsl:variable name='any-attributes' select='if (not($attributes) and ($definitely-attribute or (not($defs/x:element[@name=$name]) and not($defs/x:property[@name=$name])))) then $defs/(x:attributecategory/x:attribute | x:attribute)[@name=$name] else ()'/>
-    <xsl:variable name='final-attributes' select='if ($attributes) then $attributes else if (count($any-attributes) = 1) then $any-attributes else ()'/>
-    <xsl:choose>
-      <xsl:when test='count($final-attributes) > 1'><x:ambiguous/></xsl:when>
-      <xsl:when test='count($final-attributes)'><xsl:copy-of select='$final-attributes'/></xsl:when>
-    </xsl:choose>
-  </xsl:function>
-
-  <xsl:function name='x:lookup-property' as='element()?'>
-    <xsl:param name='name'/>
-    <xsl:copy-of select='$defs/x:property[@name=$name]'/>
-  </xsl:function>
-
-  <xsl:function name='x:attribute-link' as='element()'>
-    <xsl:param name='name'/>
-    <xsl:param name='element'/>
-    <xsl:param name='prefer-attributes'/>
-    <xsl:param name='referencing-element'/>
-    <xsl:variable name='attribute' select='x:lookup-attribute($name, $element, $prefer-attributes)'/>
-    <xsl:variable name='property' select='if ($prefer-attributes and $attribute) then () else x:lookup-property($name)'/>
-    <xsl:variable name='title' select='if ($property and not($attribute)) then concat("Presentation attribute for property ‘", $name, "’") else ""'/>
-    <xsl:variable name='x' select='($attribute, $property)[1]'/>
-    <xsl:choose>
-      <xsl:when test='$x/self::x:ambiguous'>
-        <xsl:message>Ambiguous attribute "<xsl:value-of select='$name'/>" at <xsl:value-of select="concat(base-uri($referencing-element), ' line ', saxon:line-number())"/>.</xsl:message>
-        <a href='data:,' style='background: red; color: white'>@@ ambiguous attribute '<xsl:value-of select='$name'/>'</a>
-      </xsl:when>
-      <xsl:when test='$x'>
-        <span class="attr-name">
-          <xsl:text>‘</xsl:text>
-          <a href='{$x/@href}'>
-            <xsl:if test='$title != ""'>
-              <xsl:attribute name='title'><xsl:value-of select='$title'/></xsl:attribute>
-            </xsl:if>
-            <span><xsl:value-of select='$name'/></span>
-          </a>
-          <xsl:text>’</xsl:text>
-        </span>
-      </xsl:when>
-      <xsl:otherwise>
-        <xsl:message>Unknown attribute "<xsl:value-of select='$name'/>" at <xsl:value-of select="concat(base-uri($referencing-element), ' line ', saxon:line-number())"/>.</xsl:message>
-        <a href='data:,' style='background: red; color: white'>@@ unknown attribute '<xsl:value-of select='$name'/>'</a>
-      </xsl:otherwise>
-    </xsl:choose>
-  </xsl:function>
-
-  <xsl:function name='x:element-link' as='element()'>
-    <xsl:param name='name'/>
-    <xsl:param name='referencing-element'/>
-    <xsl:variable name='element' select='x:lookup-element($name)'/>
-    <xsl:choose>
-      <xsl:when test='$element/self::x:ambiguous'>
-        <xsl:message>Ambiguous element "<xsl:value-of select='$name'/>" at <xsl:value-of select="concat(base-uri($referencing-element), ' line ', saxon:line-number())"/>.</xsl:message>
-        <a href='data:,' style='background: red; color: white'>@@ ambiguous element '<xsl:value-of select='$name'/>'</a>
-      </xsl:when>
-      <xsl:when test='$element'>
-        <span class="element-name">
-          <xsl:text>‘</xsl:text>
-          <a href='{$element/@href}'><span><xsl:value-of select='$name'/></span></a>
-          <xsl:text>’</xsl:text>
-        </span>
-      </xsl:when>
-      <xsl:otherwise>
-        <xsl:message>Unknown element "<xsl:value-of select='$name'/>" at <xsl:value-of select="concat(base-uri($referencing-element), ' line ', saxon:line-number())"/>.</xsl:message>
-        <a href='data:,' style='background: red; color: white'>@@ unknown element '<xsl:value-of select='$name'/>'</a>
-      </xsl:otherwise>
-    </xsl:choose>
-  </xsl:function>
-
-  <xsl:function name='x:property-link' as='node()*'>
-    <xsl:param name='name'/>
-    <xsl:param name='referencing-element'/>
-    <xsl:variable name='property' select='x:lookup-property($name)'/>
-    <xsl:choose>
-      <xsl:when test='$property'>
-        <xsl:text>‘</xsl:text>
-        <a href='{$property/@href}'><code class='property'><xsl:value-of select='$name'/></code></a>
-        <xsl:text>’</xsl:text>
-      </xsl:when>
-      <xsl:otherwise>
-        <xsl:message>Unknown property "<xsl:value-of select='$name'/>" at <xsl:value-of select="concat(base-uri($referencing-element), ' line ', saxon:line-number())"/>.</xsl:message>
-        <a href='data:,' style='background: red; color: white'>@@ unknown property '<xsl:value-of select='$name'/>'</a>
-      </xsl:otherwise>
-    </xsl:choose>
-  </xsl:function>
-
-  <xsl:function name='x:presentation-attribute-link' as='element()'>
-    <xsl:param name='name'/>
-    <xsl:param name='referencing-element'/>
-    <xsl:variable name='property' select='x:lookup-property($name)'/>
-    <xsl:choose>
-      <xsl:when test='$property'>
-        <span class="attr-name">
-          <xsl:text>‘</xsl:text>
-          <a href='{$property/@href}'>
-            <span title='Presentation attribute for property €˜{$name}€™'>
-              <xsl:value-of select='$name'/>
-            </span>
-          </a>
-          <xsl:text>’</xsl:text>
-        </span>
-      </xsl:when>
-      <xsl:otherwise>
-        <xsl:message>Presentation attribute for unknown property "<xsl:value-of select='$name'/>" at <xsl:value-of select="concat(base-uri($referencing-element), ' line ', saxon:line-number())"/>.</xsl:message>
-        <a href='data:,' style='background: red; color: white'>@@ presentation attribute for unknown property '<xsl:value-of select='$name'/>'</a>
-      </xsl:otherwise>
-    </xsl:choose>
-  </xsl:function>
-
-  <xsl:function name='x:symbol-link' as='element()'>
-    <xsl:param name='name'/>
-    <xsl:param name='referencing-element'/>
-    <xsl:variable name='symbol' select='$defs/x:symbol[@name=$name]'/>
-    <xsl:choose>
-      <xsl:when test='not($symbol)'>
-        <xsl:message>Unknown grammar symbol "<xsl:value-of select='$name'/>" at <xsl:value-of select="concat(base-uri($referencing-element), ' line ', saxon:line-number())"/>.</xsl:message>
-        <a href='data:,' style='background: red; color: white'>@@ unknown symbol '<xsl:value-of select='$name'/>'</a>
-      </xsl:when>
-      <xsl:otherwise>
-        <a href='{$symbol/@href}'>&lt;<xsl:value-of select='$name'/>&gt;</a>
-      </xsl:otherwise>
-    </xsl:choose>
-  </xsl:function>
-
-  <xsl:function name='x:name-link' as='node()*'>
-    <xsl:param name='name'/>
-    <xsl:param name='context-element'/>
-    <xsl:param name='referencing-element'/>
-    <xsl:variable name='element' select='x:lookup-element($name)'/>
-    <xsl:variable name='attribute' select='x:lookup-attribute($name, $context-element, false())'/>
-    <xsl:variable name='property' select='x:lookup-property($name)'/>
-    <xsl:variable name='all' select='($element, $property, $attribute)'/>
-    <xsl:choose>
-      <xsl:when test='$all/self::x:ambiguous or count($all) &gt; 1'>
-        <xsl:message>Ambiguous name "<xsl:value-of select='$name'/>" at <xsl:value-of select="concat(base-uri($referencing-element), ' line ', saxon:line-number())"/>.</xsl:message>
-        <a href='data:,' style='background: red; color: white'>@@ ambiguous name '<xsl:value-of select='$name'/>'</a>
-      </xsl:when>
-      <xsl:when test='not($all)'>
-        <xsl:message>Unknown name "<xsl:value-of select='$name'/>" at <xsl:value-of select="concat(base-uri($referencing-element), ' line ', saxon:line-number())"/>.</xsl:message>
-        <a href='data:,' style='background: red; color: white'>@@ unknown name '<xsl:value-of select='$name'/>'</a>
-      </xsl:when>
-      <xsl:when test='$property'>
-        <xsl:text>‘</xsl:text>
-        <a href='{$property/@href}'><code class='property'><xsl:value-of select='$name'/></code></a>
-        <xsl:text>’</xsl:text>
-      </xsl:when>
-      <xsl:otherwise>
-        <span class='{if ($element) then "element-name" else "attr-name"}'>
-          <xsl:text>‘</xsl:text>
-          <a href='{$all/@href}'><span><xsl:value-of select='$name'/></span></a>
-          <xsl:text>’</xsl:text>
-        </span>
-      </xsl:otherwise>
-    </xsl:choose>
-  </xsl:function>
-
-  <xsl:function name='x:interface-link' as='element()'>
-    <xsl:param name='name'/>
-    <xsl:param name='referencing-element'/>
-    <xsl:variable name='interface' select='$defs/x:interface[@name=$name]'/>
-    <xsl:choose>
-      <xsl:when test='$interface'>
-        <a class='idlinterface' href='{$interface/@href}'>
-          <xsl:value-of select='$name'/>
-        </a>
-      </xsl:when>
-      <xsl:otherwise>
-        <xsl:message>Unknown interface "<xsl:value-of select='$name'/>" at <xsl:value-of select="concat(base-uri($referencing-element), ' line ', saxon:line-number())"/>.</xsl:message>
-        <a href='data:,' style='background: red; color: white'>@@ unknown interface '<xsl:value-of select='$name'/>'</a>
-      </xsl:otherwise>
-    </xsl:choose>
-  </xsl:function>
-
-  <xsl:key name='key-element' match='x:element' use='@name'/>
-  <xsl:key name='key-elementcategory' match='x:elementcategory' use='@name'/>
-  <xsl:key name='key-attribute' match='x:definitions/x:attribute' use='@name'/>
-  <xsl:key name='key-attributecategory' match='x:attributecategory' use='@name'/>
-  <xsl:key name='key-property' match='x:property' use='@name'/>
-  <xsl:key name='key-interface' match='x:interface' use='@name'/>
-  <xsl:key name='key-symbol' match='x:symbol' use='@name'/>
-  <xsl:key name='key-term' match='x:term' use='@name'/>
-
-  <xsl:function name='x:collate-defs' as='node()'>
-    <xsl:param name='currentdoc' as='node()'/>
-    <xsl:param name='resultdoc' as='node()'/>
-    <xsl:param name='base'/>
-    <xsl:variable name='newresultdoc'>
-      <xsl:document>
-        <x:definitions>
-          <xsl:copy-of select='$resultdoc/*/*'/>
-          <xsl:for-each select='$currentdoc/*/*[not(self::x:import) and not(key(concat("key-", local-name(.)), @name, $resultdoc))]'>
-            <xsl:copy>
-              <xsl:copy-of select='@*[local-name() != "href" and namespace-uri() = ""]'/>
-              <xsl:if test='@href'>
-                <xsl:attribute name='href' select='if ($base = "") then @href else resolve-uri(@href, $base)'/>
-              </xsl:if>
-              <xsl:copy-of select='node()'/>
-            </xsl:copy>
-          </xsl:for-each>
-        </x:definitions>
-      </xsl:document>
-    </xsl:variable>
-    <xsl:copy-of select='x:collate-defs-import($newresultdoc, $currentdoc/*/x:import)'/>
-  </xsl:function>
-
-  <xsl:function name='x:collate-defs-import' as='node()'>
-    <xsl:param name='currentdoc' as='node()'/>
-    <xsl:param name='imports' as='element()*'/>
-    <xsl:choose>
-      <xsl:when test='$imports'>
-        <xsl:copy-of select='x:collate-defs-import(x:collate-defs(document($imports[1]/@definitions),
-                                                                  $currentdoc,
-                                                                  if ($maturity = "ED" and $imports[1]/@cvs-href) then $imports[1]/@cvs-href else $imports[1]/@href), subsequence($imports, 2))'/>
-      </xsl:when>
-      <xsl:otherwise>
-        <xsl:copy-of select='$currentdoc'/>
-      </xsl:otherwise>
-    </xsl:choose>
-  </xsl:function>
-</xsl:stylesheet>
diff --git a/saxonb/doc/img/saxonica_logo.gif b/saxonb/doc/img/saxonica_logo.gif
deleted file mode 100644
Binary file saxonb/doc/img/saxonica_logo.gif has changed
diff --git a/saxonb/doc/index.html b/saxonb/doc/index.html
deleted file mode 100644
--- a/saxonb/doc/index.html
+++ /dev/null
@@ -1,56 +0,0 @@
-<!DOCTYPE html
-  PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-   <head>
-      <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
-      <title>Saxonica: XSLT and XQuery Processing: Welcome</title>
-      <meta name="coverage" content="Worldwide">
-      <meta name="copyright" content="Copyright Saxonica Ltd">
-      <meta name="title" content="Saxonica: XSLT and XQuery Processing: About Saxon">
-      <meta name="robots" content="noindex,nofollow">
-      <link rel="stylesheet" href="saxondocs.css" type="text/css">
-   </head>
-   <body class="main">
-      <div id="rhDkBlueArea" style="position:absolute; width:123px; height:800px; z-index:2; right: 0px; top: 0px; border: 1px none #000000; background-color: #C1CEDE; layer-background-color: #C1CEDE; visibility: visible;"></div>
-      <div id="rhMdBlueArea" style="position:absolute; width:217px; height:800px; z-index:2; right: 340px; top: 0px; border: 1px none #000000; background-color: #E4EEF0; layer-background-color: #E4EEF0; visibility: visible;"></div>
-      <div id="lhLightArea" style="position:absolute; width:34px; height:800px; z-index:2; left: 66px; top: 0px; border: 1px none #000000; background-color: #f6fffb; layer-background-color: #E4EEF0; visibility: visible;"></div>
-      <div id="lhDkBlueArea" style="position:absolute; width:66px; height:800px; z-index:2; left: 0px; top: 0px; border: 1px none #000000; background-color: #C1CEDE; layer-background-color: #C1CEDE; visibility: visible;"></div>
-      <div id="LogoArea" style="position:absolute; width:340px; height:72px; z-index:3; right: 0px; top: 0px; border: 1px none #000000; visibility: visible;"><a href="http://www.saxonica.com/"><img src="img/saxonica_logo.gif" width="340" height="72" border="0" alt="Saxonica.com"></a></div>
-
-      <div id="MainTextArea" style="position:absolute; height:100%; z-index:5; left: 130px; right: 260px; top: 110px; border: 1px none #000000; visibility: visible;">
-         <h1>Welcome to Saxon</h1>
-         
-         
-         <p class="subhead">Online Documentation</p>
-         
-         <p>Saxon documentation for the current release is available online:</p>
-         
-         <ul>
-         <li><p><a href="http://www.saxonica.com/documentation/documentation.html" class="bodylink">Saxon Documentation</a></p></li>
-         
-         <li><p><a href="http://www.saxonica.com/documentation/javadoc/index.html" class="bodylink">Javadoc API Documentation</a></p></li>
-         
-         <li><p><a href="http://www.saxonica.com/documentation/dotnetdoc/index.html" class="bodylink">.NET API Documentation</a></p></li>
-         </ul>
-
-         
-         <p class="subhead">Downloads</p>
-         
-         <p>Saxon documentation, together with source code and sample applications
-         can also be downloaded, both for the current release and for earlier releases.
-         </p>
-         
-         <p>The same file <code>saxon-resources8-N.zip</code> covers both Saxon products
-          (Saxon-B and Saxon-SA), and both platforms (Java and .NET).</p>
-          
-         <p>The file also contains sample applications and Saxon-B source code.</p>
-         
-        
-         <ul>
-         <li><p><a class="bodylink" href="http://sourceforge.net/project/showfiles.php?group_id=29872">Saxon-B downloads at SourceForge</a></li>
-         <li><p><a class="bodylink" href="http://www.saxonica.com/">Saxon-SA downloads at www.saxonica.com</a></li>
-         </ul>
-
-      </div>
-   </body>
-</html>
\ No newline at end of file
diff --git a/saxonb/doc/saxondocs.css b/saxonb/doc/saxondocs.css
deleted file mode 100644
--- a/saxonb/doc/saxondocs.css
+++ /dev/null
@@ -1,228 +0,0 @@
-
-
-/* 
-Text blue: #3D5B96
-Dark blue: #c1cede
-Mid blue: #e4eef0 
-Light blue: #f6fffb
-mid green #B1CCC7
-rust #96433D
-*/
-
-/* used for frameset holders */
-.bgnd {
-	margin-top:0;
-	margin-left:0;
-	background: #f6fffb;
-	}
-
-/* used for menu */
-
-.menu {
-	background: #f6fffb;
-	margin-top:20;
-	margin-left:40;
-	SCROLLBAR-FACE-COLOR: #c1cede; 
-	SCROLLBAR-HIGHLIGHT-COLOR: #e4eef0; 
-	SCROLLBAR-SHADOW-COLOR: #e4eef0; 
-	SCROLLBAR-ARROW-COLOR: #f6fffb; 
-	SCROLLBAR-BASE-COLOR: #e4eef0;
-}
-
-/* used for content pages */
-
-.main {
-	background: #e4eef0;
-	margin-top:10px;
-	margin-left:5px;
-	margin-right:5px;
-	margin-bottom:20px;
-	SCROLLBAR-FACE-COLOR: #c1cede; 
-	SCROLLBAR-HIGHLIGHT-COLOR: #e4eef0; 
-	SCROLLBAR-SHADOW-COLOR: #e4eef0; 
-	SCROLLBAR-ARROW-COLOR: #f6fffb; 
-	SCROLLBAR-BASE-COLOR: #e4eef0;
-}
-
-/* used for menu links */
-
-a {
-	font-family: Verdana, Arial, Helvetica, sans-serif;
-	font-size: 8pt;
-	font-style:normal;
-	color: #3D5B96;
-	font-weight: normal;
-	text-decoration: none;
-}
-
-/* used for in body links */
-
-a.bodylink {
-	font-family: Verdana, Arial, Helvetica, sans-serif;
-	font-size: 9pt;
-	font-style:normal;
-	color: #3D5B96;
-	font-weight: normal;
-	text-decoration: underline;
-}
-
-/* used for table of contents level 1 */
-
-a.toc1 {
-	font-family: Verdana, Arial, Helvetica, sans-serif;
-	font-size: 12pt;
-	font-style:normal;
-	color: #3D5B96;
-	font-weight: bold;
-	text-decoration: none;
-}
-
-/* used for table of contents level 2 */
-
-a.toc2 {
-	font-family: Verdana, Arial, Helvetica, sans-serif;
-	font-size: 10pt;
-	font-style:normal;
-	color: #3D5B96;
-	font-weight: normal;
-	text-decoration: none;
-}
-
-/* used for menu heading */
-.title {
-	font-family: Verdana, Arial, Helvetica, sans-serif;
-	font-size: 10pt;
-	font-style:normal;
-	color: #3D5B96;
-	font-weight: bold;
-	text-decoration: none;
-	line-height: 1.3em;
-}
-
-/* used for main page headings */
-
-
-h1 {
-	font-family: Verdana, Arial, Helvetica, sans-serif;
-	font-size: 14pt;
-	font-style: normal;
-	color: #3D5B96;
-	font-weight: bold;
-	text-decoration: none;
-		}
-
-/* used for subheads in pref. to H2 etc, to limit underlining width */
-
-.subhead {
-	font-family: Verdana, Arial, Helvetica, sans-serif;
-	font-size: 10pt;
-	font-style: normal;
-	color: #3D5B96;
-	font-weight: bold;
-	text-decoration: none;
-	border-bottom : thin dashed #3D5B96;
-	padding-right : 5px;
-}
-
-/* used for standard text */
-
-p {
-	font-family: Verdana, Arial, Helvetica, sans-serif;
-	font-size: 9pt;
-	font-style: normal;
-	color: #3D5B96;
-	font-weight: normal;
-	text-decoration: none;
-	line-height: 1.3em;
-	padding-right:15px;
-}
-
-code {
-		font-family: lucida sans typewriter, courier, monospace;
-	font-size: 8pt;
-	font-style: normal;
-	font-weight: normal;
-	text-decoration: none;
-	line-height: 1.3em;
-}
-
-ul {
-	font-family: Verdana, Arial, Helvetica, sans-serif;
-	font-size: 9pt;
-	font-style: normal;
-	color: #3D5B96;
-	font-weight: normal;
-	text-decoration: none;
-}
-
-li {
-	font-family: Verdana, Arial, Helvetica, sans-serif;
-	font-size: 9pt;
-	font-style: normal;
-	color: #3D5B96;
-	font-weight: normal;
-
-}
-
-/* used for text in boxed areas */
-
-.boxed {
-	font-family: Verdana, Arial, Helvetica, sans-serif;
-	font-size: 8pt;
-	font-style: normal;
-	color: #96433D;
-	font-weight: bold;
-	text-decoration: none;
-	margin-top:5px;
-	margin-bottom:5px;
-}
-
-/* used for example code */
-
-.codeblock {
-    background: #B1CCC7;
-    /*background: #e4eef0;*/
-	font-family: lucida sans typewriter, courier, monospace;
-	font-size: 8pt;	
-	font-style: normal;
-	color: #96433D;
-	font-weight: normal;
-	text-decoration: none;
-	padding-right:15px;
-}
-
-/* used for example commands */
-
-.command {
-	font-size: 8pt;	
-	font-style: normal;
-	color: #96433D;
-	font-weight: bold;
-	text-decoration: none;
-	padding-right:15px;
-}
-
-
-
-/* used for links in boxed areas */
-
-a.rust {
-	font-family: Verdana, Arial, Helvetica, sans-serif;
-	font-size: 8pt;
-	font-style:normal;
-	color: #96433D;
-	font-weight: bold;
-	text-decoration: underline;
-}
-
-/* used for links at the end of a page */
-
-a.nav {
-	font-family: Verdana, Arial, Helvetica, sans-serif;
-	font-size: 8pt;
-	font-style:normal;
-	color: #96433D;
-	font-weight: bold;
-}
-
-
diff --git a/saxonb/notices/APACHE.txt b/saxonb/notices/APACHE.txt
deleted file mode 100644
--- a/saxonb/notices/APACHE.txt
+++ /dev/null
@@ -1,13 +0,0 @@
-Apache Ant
-Copyright 1999-2006 The Apache Software Foundation
-
-This product includes software developed by
-The Apache Software Foundation (http://www.apache.org/).
-
-This product includes also software developed by :
-  - the W3C consortium (http://www.w3c.org) ,
-  - the SAX project (http://www.saxproject.org)
-
-The <sync> task is based on code Copyright (c) 2002, Landmark
-Graphics Corp that has been kindly donated to the Apache Software
-Foundation.
diff --git a/saxonb/notices/CERN.txt b/saxonb/notices/CERN.txt
deleted file mode 100644
--- a/saxonb/notices/CERN.txt
+++ /dev/null
@@ -1,7 +0,0 @@
-Copyright  1999 CERN - European Organization for Nuclear Research.<br/><br/>
-
-Permission to use, copy, modify, distribute and sell this software and its documentation for any purpose
-is hereby granted without fee, provided that the above copyright notice appear in all copies and
-that both that copyright notice and this permission notice appear in supporting documentation.
-CERN makes no representations about the suitability of this software for any purpose.
-It is provided "as is" without expressed or implied warranty.
\ No newline at end of file
diff --git a/saxonb/notices/FRIJTERS.txt b/saxonb/notices/FRIJTERS.txt
deleted file mode 100644
--- a/saxonb/notices/FRIJTERS.txt
+++ /dev/null
@@ -1,22 +0,0 @@
-Copyright (C) 2002-2007 Jeroen Frijters
-
-  This software is provided 'as-is', without any express or implied
-  warranty.  In no event will the authors be held liable for any damages
-  arising from the use of this software.
-  
-  Permission is granted to anyone to use this software for any purpose,
-  including commercial applications, and to alter it and redistribute it
-  freely, subject to the following restrictions:
-  
-  1. The origin of this software must not be misrepresented; you must not
-     claim that you wrote the original software. If you use this software
-     in a product, an acknowledgment in the product documentation would be
-     appreciated but is not required.
-     
-  2. Altered source versions must be plainly marked as such, and must not be
-     misrepresented as being the original software.
-     
-  3. This notice may not be removed or altered from any source distribution.
-  
-  Jeroen Frijters
-  jeroen@frijters.net
diff --git a/saxonb/notices/GPL+CLASSPATH.txt b/saxonb/notices/GPL+CLASSPATH.txt
deleted file mode 100644
--- a/saxonb/notices/GPL+CLASSPATH.txt
+++ /dev/null
@@ -1,347 +0,0 @@
-The GNU General Public License (GPL)
-
-Version 2, June 1991
-
-Copyright (C) 1989, 1991 Free Software Foundation, Inc.
-59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-
-Everyone is permitted to copy and distribute verbatim copies of this license
-document, but changing it is not allowed.
-
-Preamble
-
-The licenses for most software are designed to take away your freedom to share
-and change it.  By contrast, the GNU General Public License is intended to
-guarantee your freedom to share and change free software--to make sure the
-software is free for all its users.  This General Public License applies to
-most of the Free Software Foundation's software and to any other program whose
-authors commit to using it.  (Some other Free Software Foundation software is
-covered by the GNU Library General Public License instead.) You can apply it to
-your programs, too.
-
-When we speak of free software, we are referring to freedom, not price.  Our
-General Public Licenses are designed to make sure that you have the freedom to
-distribute copies of free software (and charge for this service if you wish),
-that you receive source code or can get it if you want it, that you can change
-the software or use pieces of it in new free programs; and that you know you
-can do these things.
-
-To protect your rights, we need to make restrictions that forbid anyone to deny
-you these rights or to ask you to surrender the rights.  These restrictions
-translate to certain responsibilities for you if you distribute copies of the
-software, or if you modify it.
-
-For example, if you distribute copies of such a program, whether gratis or for
-a fee, you must give the recipients all the rights that you have.  You must
-make sure that they, too, receive or can get the source code.  And you must
-show them these terms so they know their rights.
-
-We protect your rights with two steps: (1) copyright the software, and (2)
-offer you this license which gives you legal permission to copy, distribute
-and/or modify the software.
-
-Also, for each author's protection and ours, we want to make certain that
-everyone understands that there is no warranty for this free software.  If the
-software is modified by someone else and passed on, we want its recipients to
-know that what they have is not the original, so that any problems introduced
-by others will not reflect on the original authors' reputations.
-
-Finally, any free program is threatened constantly by software patents.  We
-wish to avoid the danger that redistributors of a free program will
-individually obtain patent licenses, in effect making the program proprietary.
-To prevent this, we have made it clear that any patent must be licensed for
-everyone's free use or not licensed at all.
-
-The precise terms and conditions for copying, distribution and modification
-follow.
-
-TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
-
-0. This License applies to any program or other work which contains a notice
-placed by the copyright holder saying it may be distributed under the terms of
-this General Public License.  The "Program", below, refers to any such program
-or work, and a "work based on the Program" means either the Program or any
-derivative work under copyright law: that is to say, a work containing the
-Program or a portion of it, either verbatim or with modifications and/or
-translated into another language.  (Hereinafter, translation is included
-without limitation in the term "modification".) Each licensee is addressed as
-"you".
-
-Activities other than copying, distribution and modification are not covered by
-this License; they are outside its scope.  The act of running the Program is
-not restricted, and the output from the Program is covered only if its contents
-constitute a work based on the Program (independent of having been made by
-running the Program).  Whether that is true depends on what the Program does.
-
-1. You may copy and distribute verbatim copies of the Program's source code as
-you receive it, in any medium, provided that you conspicuously and
-appropriately publish on each copy an appropriate copyright notice and
-disclaimer of warranty; keep intact all the notices that refer to this License
-and to the absence of any warranty; and give any other recipients of the
-Program a copy of this License along with the Program.
-
-You may charge a fee for the physical act of transferring a copy, and you may
-at your option offer warranty protection in exchange for a fee.
-
-2. You may modify your copy or copies of the Program or any portion of it, thus
-forming a work based on the Program, and copy and distribute such modifications
-or work under the terms of Section 1 above, provided that you also meet all of
-these conditions:
-
-    a) You must cause the modified files to carry prominent notices stating
-    that you changed the files and the date of any change.
-
-    b) You must cause any work that you distribute or publish, that in whole or
-    in part contains or is derived from the Program or any part thereof, to be
-    licensed as a whole at no charge to all third parties under the terms of
-    this License.
-
-    c) If the modified program normally reads commands interactively when run,
-    you must cause it, when started running for such interactive use in the
-    most ordinary way, to print or display an announcement including an
-    appropriate copyright notice and a notice that there is no warranty (or
-    else, saying that you provide a warranty) and that users may redistribute
-    the program under these conditions, and telling the user how to view a copy
-    of this License.  (Exception: if the Program itself is interactive but does
-    not normally print such an announcement, your work based on the Program is
-    not required to print an announcement.)
-
-These requirements apply to the modified work as a whole.  If identifiable
-sections of that work are not derived from the Program, and can be reasonably
-considered independent and separate works in themselves, then this License, and
-its terms, do not apply to those sections when you distribute them as separate
-works.  But when you distribute the same sections as part of a whole which is a
-work based on the Program, the distribution of the whole must be on the terms
-of this License, whose permissions for other licensees extend to the entire
-whole, and thus to each and every part regardless of who wrote it.
-
-Thus, it is not the intent of this section to claim rights or contest your
-rights to work written entirely by you; rather, the intent is to exercise the
-right to control the distribution of derivative or collective works based on
-the Program.
-
-In addition, mere aggregation of another work not based on the Program with the
-Program (or with a work based on the Program) on a volume of a storage or
-distribution medium does not bring the other work under the scope of this
-License.
-
-3. You may copy and distribute the Program (or a work based on it, under
-Section 2) in object code or executable form under the terms of Sections 1 and
-2 above provided that you also do one of the following:
-
-    a) Accompany it with the complete corresponding machine-readable source
-    code, which must be distributed under the terms of Sections 1 and 2 above
-    on a medium customarily used for software interchange; or,
-
-    b) Accompany it with a written offer, valid for at least three years, to
-    give any third party, for a charge no more than your cost of physically
-    performing source distribution, a complete machine-readable copy of the
-    corresponding source code, to be distributed under the terms of Sections 1
-    and 2 above on a medium customarily used for software interchange; or,
-
-    c) Accompany it with the information you received as to the offer to
-    distribute corresponding source code.  (This alternative is allowed only
-    for noncommercial distribution and only if you received the program in
-    object code or executable form with such an offer, in accord with
-    Subsection b above.)
-
-The source code for a work means the preferred form of the work for making
-modifications to it.  For an executable work, complete source code means all
-the source code for all modules it contains, plus any associated interface
-definition files, plus the scripts used to control compilation and installation
-of the executable.  However, as a special exception, the source code
-distributed need not include anything that is normally distributed (in either
-source or binary form) with the major components (compiler, kernel, and so on)
-of the operating system on which the executable runs, unless that component
-itself accompanies the executable.
-
-If distribution of executable or object code is made by offering access to copy
-from a designated place, then offering equivalent access to copy the source
-code from the same place counts as distribution of the source code, even though
-third parties are not compelled to copy the source along with the object code.
-
-4. You may not copy, modify, sublicense, or distribute the Program except as
-expressly provided under this License.  Any attempt otherwise to copy, modify,
-sublicense or distribute the Program is void, and will automatically terminate
-your rights under this License.  However, parties who have received copies, or
-rights, from you under this License will not have their licenses terminated so
-long as such parties remain in full compliance.
-
-5. You are not required to accept this License, since you have not signed it.
-However, nothing else grants you permission to modify or distribute the Program
-or its derivative works.  These actions are prohibited by law if you do not
-accept this License.  Therefore, by modifying or distributing the Program (or
-any work based on the Program), you indicate your acceptance of this License to
-do so, and all its terms and conditions for copying, distributing or modifying
-the Program or works based on it.
-
-6. Each time you redistribute the Program (or any work based on the Program),
-the recipient automatically receives a license from the original licensor to
-copy, distribute or modify the Program subject to these terms and conditions.
-You may not impose any further restrictions on the recipients' exercise of the
-rights granted herein.  You are not responsible for enforcing compliance by
-third parties to this License.
-
-7. If, as a consequence of a court judgment or allegation of patent
-infringement or for any other reason (not limited to patent issues), conditions
-are imposed on you (whether by court order, agreement or otherwise) that
-contradict the conditions of this License, they do not excuse you from the
-conditions of this License.  If you cannot distribute so as to satisfy
-simultaneously your obligations under this License and any other pertinent
-obligations, then as a consequence you may not distribute the Program at all.
-For example, if a patent license would not permit royalty-free redistribution
-of the Program by all those who receive copies directly or indirectly through
-you, then the only way you could satisfy both it and this License would be to
-refrain entirely from distribution of the Program.
-
-If any portion of this section is held invalid or unenforceable under any
-particular circumstance, the balance of the section is intended to apply and
-the section as a whole is intended to apply in other circumstances.
-
-It is not the purpose of this section to induce you to infringe any patents or
-other property right claims or to contest validity of any such claims; this
-section has the sole purpose of protecting the integrity of the free software
-distribution system, which is implemented by public license practices.  Many
-people have made generous contributions to the wide range of software
-distributed through that system in reliance on consistent application of that
-system; it is up to the author/donor to decide if he or she is willing to
-distribute software through any other system and a licensee cannot impose that
-choice.
-
-This section is intended to make thoroughly clear what is believed to be a
-consequence of the rest of this License.
-
-8. If the distribution and/or use of the Program is restricted in certain
-countries either by patents or by copyrighted interfaces, the original
-copyright holder who places the Program under this License may add an explicit
-geographical distribution limitation excluding those countries, so that
-distribution is permitted only in or among countries not thus excluded.  In
-such case, this License incorporates the limitation as if written in the body
-of this License.
-
-9. The Free Software Foundation may publish revised and/or new versions of the
-General Public License from time to time.  Such new versions will be similar in
-spirit to the present version, but may differ in detail to address new problems
-or concerns.
-
-Each version is given a distinguishing version number.  If the Program
-specifies a version number of this License which applies to it and "any later
-version", you have the option of following the terms and conditions either of
-that version or of any later version published by the Free Software Foundation.
-If the Program does not specify a version number of this License, you may
-choose any version ever published by the Free Software Foundation.
-
-10. If you wish to incorporate parts of the Program into other free programs
-whose distribution conditions are different, write to the author to ask for
-permission.  For software which is copyrighted by the Free Software Foundation,
-write to the Free Software Foundation; we sometimes make exceptions for this.
-Our decision will be guided by the two goals of preserving the free status of
-all derivatives of our free software and of promoting the sharing and reuse of
-software generally.
-
-NO WARRANTY
-
-11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR
-THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.  EXCEPT WHEN OTHERWISE
-STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE
-PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED,
-INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
-FITNESS FOR A PARTICULAR PURPOSE.  THE ENTIRE RISK AS TO THE QUALITY AND
-PERFORMANCE OF THE PROGRAM IS WITH YOU.  SHOULD THE PROGRAM PROVE DEFECTIVE,
-YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
-
-12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL
-ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE
-PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
-GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR
-INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA
-BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
-FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER
-OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
-
-END OF TERMS AND CONDITIONS
-
-How to Apply These Terms to Your New Programs
-
-If you develop a new program, and you want it to be of the greatest possible
-use to the public, the best way to achieve this is to make it free software
-which everyone can redistribute and change under these terms.
-
-To do so, attach the following notices to the program.  It is safest to attach
-them to the start of each source file to most effectively convey the exclusion
-of warranty; and each file should have at least the "copyright" line and a
-pointer to where the full notice is found.
-
-    One line to give the program's name and a brief idea of what it does.
-
-    Copyright (C) <year> <name of author>
-
-    This program is free software; you can redistribute it and/or modify it
-    under the terms of the GNU General Public License as published by the Free
-    Software Foundation; either version 2 of the License, or (at your option)
-    any later version.
-
-    This program is distributed in the hope that it will be useful, but WITHOUT
-    ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-    FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
-    more details.
-
-    You should have received a copy of the GNU General Public License along
-    with this program; if not, write to the Free Software Foundation, Inc., 59
-    Temple Place, Suite 330, Boston, MA 02111-1307 USA
-
-Also add information on how to contact you by electronic and paper mail.
-
-If the program is interactive, make it output a short notice like this when it
-starts in an interactive mode:
-
-    Gnomovision version 69, Copyright (C) year name of author Gnomovision comes
-    with ABSOLUTELY NO WARRANTY; for details type 'show w'.  This is free
-    software, and you are welcome to redistribute it under certain conditions;
-    type 'show c' for details.
-
-The hypothetical commands 'show w' and 'show c' should show the appropriate
-parts of the General Public License.  Of course, the commands you use may be
-called something other than 'show w' and 'show c'; they could even be
-mouse-clicks or menu items--whatever suits your program.
-
-You should also get your employer (if you work as a programmer) or your school,
-if any, to sign a "copyright disclaimer" for the program, if necessary.  Here
-is a sample; alter the names:
-
-    Yoyodyne, Inc., hereby disclaims all copyright interest in the program
-    'Gnomovision' (which makes passes at compilers) written by James Hacker.
-
-    signature of Ty Coon, 1 April 1989
-
-    Ty Coon, President of Vice
-
-This General Public License does not permit incorporating your program into
-proprietary programs.  If your program is a subroutine library, you may
-consider it more useful to permit linking proprietary applications with the
-library.  If this is what you want to do, use the GNU Library General Public
-License instead of this License.
-
-
-"CLASSPATH" EXCEPTION TO THE GPL
-
-Certain source files distributed by Sun Microsystems, Inc.  are subject to
-the following clarification and special exception to the GPL, but only where
-Sun has expressly included in the particular source file's header the words
-"Sun designates this particular file as subject to the "Classpath" exception
-as provided by Sun in the LICENSE file that accompanied this code."
-
-    Linking this library statically or dynamically with other modules is making
-    a combined work based on this library.  Thus, the terms and conditions of
-    the GNU General Public License cover the whole combination.
-
-    As a special exception, the copyright holders of this library give you
-    permission to link this library with independent modules to produce an
-    executable, regardless of the license terms of these independent modules,
-    and to copy and distribute the resulting executable under terms of your
-    choice, provided that you also meet, for each linked independent module,
-    the terms and conditions of the license of that module.  An independent
-    module is a module which is not derived from or based on this library.  If
-    you modify this library, you may extend this exception to your version of
-    the library, but you are not obligated to do so.  If you do not wish to do
-    so, delete this exception statement from your version.
diff --git a/saxonb/notices/JAMESCLARK.txt b/saxonb/notices/JAMESCLARK.txt
deleted file mode 100644
--- a/saxonb/notices/JAMESCLARK.txt
+++ /dev/null
@@ -1,25 +0,0 @@
-Copyright (c) 1998, 1999 James Clark
-
-Permission is hereby granted, free of charge, to any person obtaining
-a copy of this software and associated documentation files (the
-"Software"), to deal in the Software without restriction, including
-without limitation the rights to use, copy, modify, merge, publish,
-distribute, sublicense, and/or sell copies of the Software, and to
-permit persons to whom the Software is furnished to do so, subject to
-the following conditions:
-
-The above copyright notice and this permission notice shall be included
-in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED ``AS IS'', WITHOUT WARRANTY OF ANY KIND, EXPRESS
-OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-IN NO EVENT SHALL JAMES CLARK BE LIABLE FOR ANY CLAIM, DAMAGES OR
-OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
-ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
-OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of James Clark shall
-not be used in advertising or otherwise to promote the sale, use or
-other dealings in this Software without prior written authorization
-from James Clark.
diff --git a/saxonb/notices/LEGAL.txt b/saxonb/notices/LEGAL.txt
deleted file mode 100644
--- a/saxonb/notices/LEGAL.txt
+++ /dev/null
@@ -1,33 +0,0 @@
-LEGAL NOTICE
-
-This notice is issued to fulfil the requirements of the Mozilla Public License version 1.0 ("MPL 1.0")
-sections 3.4(a) and 3.6. MPL 1.0 can be found at http://www.mozilla.org/MPL/MPL-1.0.html. 
-
-Section 3.4(a) of MPL 1.0 states that any third party intellectual property rights in particular 
-functionality or code must be notified in a text file named LEGAL that is issued with the source code. Saxon 
-includes a number of such third party components, and the relevant claims are included in notices included
-in the same directory as this notice. Although MPL 1.0 requires this notice to be included only with source
-code, some of the third parties may also require notices to be included with executable code. Therefore, Saxon
-executable code must not be distributed separately from this notice and all the accompanying third
-party notices. The term "Distribution" here includes making the code available for download, and its 
-inclusion in download repositories such as Maven.
-
-Section 3.6 of MPL 1.0 states:
-
-You may distribute Covered Code in Executable form only if the requirements of Section 3.1-3.5 have 
-been met for that Covered Code, and if You include a notice stating that the Source Code version of 
-the Covered Code is available under the terms of this License, including a description of how and 
-where You have fulfilled the obligations of Section 3.2.
-
-Section 3.2 requires the Source Code of Covered Code to be made available via an accepted Electronic
-Distribution Mechanism.
-
-The Source Code version of the Covered Code (that is, the source code of Saxon-B) is available under the 
-terms of the Mozilla Public License version 1.0, and may be obtained from the Subversion repository 
-for the Saxon project on SourceForge, at https://sourceforge.net/svn/?group_id=29872. 
-The precise version of the Subversion source for a particular Saxon maintenance release can be 
-determined by referring to the release notes for the particular release in the SourceForge download area.
-
-Note that MPL 1.0 requires that any modifications to this source code must be made available under the terms
-of the MPL "to anyone to whom you made an executable version available". As a courtesy, it is also requested 
-that you make such modifications available to Saxonica Limited.
\ No newline at end of file
diff --git a/saxonb/notices/LICENSE.txt b/saxonb/notices/LICENSE.txt
deleted file mode 100644
--- a/saxonb/notices/LICENSE.txt
+++ /dev/null
@@ -1,15 +0,0 @@
-The contents of these file are subject to the Mozilla Public License Version 1.0 (the "License"); 
-you may not use these files except in compliance with the License. You may obtain a copy of the 
-License at http://www.mozilla.org/MPL/
-
-Software distributed under the License is distributed on an "AS IS" basis, 
-WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the 
-specific language governing rights and limitations under the License.
-
-The Original Code is all Saxon modules labelled with a notice referring to this license.
-
-The Initial Developer of the Original Code is Michael Kay, except where otherwise specified in an individual module.
-
-Portions created by other named contributors are copyright as identified in the relevant module. All Rights Reserved.
-
-Contributor(s) are listed in the documentation: see notices/contributors. 
\ No newline at end of file
diff --git a/saxonb/notices/THAI.txt b/saxonb/notices/THAI.txt
deleted file mode 100644
--- a/saxonb/notices/THAI.txt
+++ /dev/null
@@ -1,31 +0,0 @@
-Copyright (c) 2001-2003 Thai Open Source Software Center Ltd
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are
-met:
-
-    Redistributions of source code must retain the above copyright
-    notice, this list of conditions and the following disclaimer.
-
-    Redistributions in binary form must reproduce the above copyright
-    notice, this list of conditions and the following disclaimer in
-    the documentation and/or other materials provided with the
-    distribution.
-
-    Neither the name of the Thai Open Source Software Center Ltd nor
-    the names of its contributors may be used to endorse or promote
-    products derived from this software without specific prior written
-    permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR
-CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
-EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
-PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
-PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
-LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
-NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
diff --git a/saxonb/notices/UNICODE.txt b/saxonb/notices/UNICODE.txt
deleted file mode 100644
--- a/saxonb/notices/UNICODE.txt
+++ /dev/null
@@ -1,29 +0,0 @@
-COPYRIGHT AND PERMISSION NOTICE
-Copyright  1991-2007 Unicode, Inc. All rights reserved. Distributed under the Terms of Use 
-in http://www.unicode.org/copyright.html.
-
-Permission is hereby granted, free of charge, to any person obtaining a copy of the Unicode 
-data files and any associated documentation (the "Data Files") or Unicode software and any 
-associated documentation (the "Software") to deal in the Data Files or Software without 
-restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, 
-and/or sell copies of the Data Files or Software, and to permit persons to whom the Data Files or 
-Software are furnished to do so, provided that (a) the above copyright notice(s) and this 
-permission notice appear with all copies of the Data Files or Software, (b) both the above 
-copyright notice(s) and this permission notice appear in associated documentation, and 
-(c) there is clear notice in each modified Data File or in the Software as well as in the 
-documentation associated with the Data File(s) or Software that the data or software has 
-been modified.
-
-THE DATA FILES AND SOFTWARE ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 
-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF THIRD PARTY RIGHTS. 
-IN NO EVENT SHALL THE COPYRIGHT HOLDER OR HOLDERS INCLUDED IN THIS NOTICE 
-BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL INDIRECT OR CONSEQUENTIAL DAMAGES, 
-OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, 
-WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, 
-ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THE DATA 
-FILES OR SOFTWARE.
-
-Except as contained in this notice, the name of a copyright holder shall not be used 
-in advertising or otherwise to promote the sale, use or other dealings in these 
-Data Files or Software without prior written authorization of the copyright holder.
diff --git a/saxonb/saxon9-dom.jar b/saxonb/saxon9-dom.jar
deleted file mode 100644
Binary file saxonb/saxon9-dom.jar has changed
diff --git a/saxonb/saxon9-dom4j.jar b/saxonb/saxon9-dom4j.jar
deleted file mode 100644
Binary file saxonb/saxon9-dom4j.jar has changed
diff --git a/saxonb/saxon9-jdom.jar b/saxonb/saxon9-jdom.jar
deleted file mode 100644
Binary file saxonb/saxon9-jdom.jar has changed
diff --git a/saxonb/saxon9-s9api.jar b/saxonb/saxon9-s9api.jar
deleted file mode 100644
Binary file saxonb/saxon9-s9api.jar has changed
diff --git a/saxonb/saxon9-sql.jar b/saxonb/saxon9-sql.jar
deleted file mode 100644
Binary file saxonb/saxon9-sql.jar has changed
diff --git a/saxonb/saxon9-xom.jar b/saxonb/saxon9-xom.jar
deleted file mode 100644
Binary file saxonb/saxon9-xom.jar has changed
diff --git a/saxonb/saxon9-xpath.jar b/saxonb/saxon9-xpath.jar
deleted file mode 100644
Binary file saxonb/saxon9-xpath.jar has changed
diff --git a/saxonb/saxon9-xqj.jar b/saxonb/saxon9-xqj.jar
deleted file mode 100644
Binary file saxonb/saxon9-xqj.jar has changed
diff --git a/saxonb/saxon9.jar b/saxonb/saxon9.jar
deleted file mode 100644
Binary file saxonb/saxon9.jar has changed

Received on Tuesday, 21 August 2012 05:07:07 UTC