Updated serialization options to indent report; updated encoding to match stylesheets.
Work on coverage reporting. It's still buggy, and won't work for large transformations due to memory issues, but it's a start.
Removed a couple of errors in regular expressions that were spoiling the algorithm matching text to node in the coverage report.
ant script for running XSpec
Fixed bug that prevented the use of shared scenarios.
Fixed xspec.rnc to allow <x:like> elements within scenarios.
Added support for <label> element as well as label attribute.
Changed behaviour when reporting results of large documents; these now get output as separate documents rather than embedded in the report, otherwise (for large results) Ant has problems opening the report to check whether the tests have succeeded or not. (It's also better for viewing the report, as these are now links to XML files rather than embedded serialised XML.)
Fixed a problem with the generation of external result documents, in that it was adding XSpec markup to them. Now not.
Fixed bug where 'report' output format wasn't provided.
Added XSpec namespaces to list of omitted namespaces.  Re Issue 6.
Standardised on 'x' prefix for XSpec namespace.  Re Issue 6.
Tidying up echoing of @label and @pending during a test run.
Fixed bug whereby element content wasn't compared if its value was '...', even if it contained element (or other) content.
Removed debugging messages!
Fix for bug that you get if you select something (eg a string) with curly braces in it.
Fixed problem with namespace prefixes in generate-xspec-tests.xsl stylesheet.
Added two summaries of results for instant gratification.  Added two
'callback' functions for handling @pending and separator between
scenario texts so can be customised by using a stylesheet that imports
this stylesheet, e.g.:

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="2.0"
                xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
                xmlns:xs="http://www.w3.org/2001/XMLSchema"
                xmlns:x="http://www.jenitennison.com/xslt/xspec"
                exclude-result-prefixes="x xs"
                xmlns="http://www.w3.org/1999/xhtml">

<xsl:import href="format-xspec-report.xsl" />

<xsl:param name="ticket-url" select="'https://example.com/ticket/%d'"/>

<xsl:function name="x:pending-callback" as="node()*">
  <!-- returns formatted output for $pending. -->
  <xsl:param name="pending" as="xs:string?"/>
  <xsl:if test="$pending">
    <xsl:text>(</xsl:text>
    <strong>
      <!-- Turn ticket numbers into links to tickets. -->
      <xsl:analyze-string
        select="$pending"
        regex="#(\d+)">
        <xsl:matching-substring>
          <xsl:variable name="ticket-number"
            select="regex-group(1)"/>
          <a href="{replace($ticket-url, '%d', $ticket-number)}">#<xsl:value-of select="$ticket-number"/></a>
        </xsl:matching-substring>
        <xsl:non-matching-substring>
          <xsl:value-of select="."/>
        </xsl:non-matching-substring>
      </xsl:analyze-string>
    </strong>
    <xsl:text>) </xsl:text>
  </xsl:if>
</xsl:function>

<xsl:function name="x:separator-callback" as="node()*">
  <!-- returns formatted output for separator between scenarios. -->
  <span class="separator"><xsl:text> / </xsl:text></span>
</xsl:function>

</xsl:stylesheet>
Now merges adjacent text nodes when comparing actual and expected results
Added support for XQuery.