Commit merge
authorMichael Kay <mike@saxonica.com>
Sun, 14 Feb 2016 06:50:09 +0000
changeset 1242 6dcc7f162584
parent 1241 64470a88695c (current diff)
parent 1229 e270be25ddc5 (diff)
child 1243 663ee4c866e8
Commit merge
tests/insn/result-document/_result-document-test-set.xml
--- a/.hgignore	Sun Feb 14 06:43:51 2016 +0000
+++ b/.hgignore	Sun Feb 14 06:50:09 2016 +0000
@@ -17,3 +17,5 @@
 exselt/*
 xgesprch.xml
 xgespräch.xml
+tests/sandp/tempresult.xml
+tests/insn/sort/sort-0001.xsl
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/admin/overview-report.html	Sun Feb 14 06:50:09 2016 +0000
@@ -0,0 +1,3097 @@
+<?xml version="1.0" encoding="UTF-8"?><html>
+   <head>
+      <title>Report XSLT test coverage</title>
+      <style type="text/css">
+         * { font-family:Helvetica, Arial, Verdana, sans-serif; }
+         h1 {font-size: 20pt; }
+         table {border-collapse: collapse; border:1px solid black;}
+         thead th {text-align: middle; border: 1px solid black }
+         tbody th {text-align: left; border: 1px solid black; }
+         
+         td,
+         th + th,
+         td + th
+         { 
+         width: 60px; 
+         border: 1px solid black;
+         border-right: 1px dotted grey;
+         border-left:  1px dotted grey;
+         padding: 2px;
+         text-align: center;
+         }
+         .head th { text-align: left } 
+         th + th,
+         td + th {
+         border-right: none;                        
+         }
+         /*th + td,
+         th + td + td {  
+         border-left: none; 
+         border-right: none 
+         }*/
+         th + td + td + td + td + td,
+         th + td + td + td + td + td + td + td + td + td { 
+         font-weight: bold;                        
+         }
+         
+      </style>
+   </head>
+   <body>
+      <h1>Report XSLT test coverage</h1>
+      <div>
+         <table>
+            <thead>
+               <tr class="head">
+                  <th>Name</th>
+                  <th>1.0+</th>
+                  <th colspan="3">XSLT 2.0</th>
+                  <th colspan="2">XSLT 3.0</th>
+                  <th colspan="2">Unspecified</th>
+               </tr>
+            </thead>
+            <tbody>
+               <tr class="head">
+                  <th> </th>
+                  <th>all</th>
+                  <th>all</th>
+                  <th>only</th>
+                  <th>plus+</th>
+                  <th>all</th>
+                  <th>plus+</th>
+                  <th>wrong</th>
+                  <th>total</th>
+               </tr>
+               <tr>
+                  <th>
+                     <a href="https://dvcs.w3.org/hg/xslt30-test/file/tip/tests/attr/as/_as-test-set.xml" title="Tests as">attr -&gt; as</a>
+                  </th>
+                  <th>0</th>
+                  <th>194</th>
+                  <td>0</td>
+                  <td>194</td>
+                  <th>194</th>
+                  <td>0</td>
+                  <td>0</td>
+                  <td>194</td>
+               </tr>
+               <tr>
+                  <th>
+                     <a href="https://dvcs.w3.org/hg/xslt30-test/file/tip/tests/attr/avt/_avt-test-set.xml" title="Tests Attribute Value Templates">attr -&gt; avt</a>
+                  </th>
+                  <th>14</th>
+                  <th>32</th>
+                  <td>0</td>
+                  <td>18</td>
+                  <th>32</th>
+                  <td>0</td>
+                  <td>0</td>
+                  <td>32</td>
+               </tr>
+               <tr>
+                  <th>
+                     <a href="https://dvcs.w3.org/hg/xslt30-test/file/tip/tests/attr/declared-modes/_declared-modes-test-set.xml" title="Tests the effect of the declared-modes attribute on xsl:package (or its absence)">attr -&gt; declared-modes</a>
+                  </th>
+                  <th>0</th>
+                  <th>0</th>
+                  <td>0</td>
+                  <td>0</td>
+                  <th>14</th>
+                  <td>14</td>
+                  <td>0</td>
+                  <td>14</td>
+               </tr>
+               <tr>
+                  <th>
+                     <a href="https://dvcs.w3.org/hg/xslt30-test/file/tip/tests/attr/expand-text/_expand-text-test-set.xml" title="Tests the XSLT 3.0 expand-text attribute and content value templates">attr -&gt; expand-text</a>
+                  </th>
+                  <th>0</th>
+                  <th>0</th>
+                  <td>0</td>
+                  <td>0</td>
+                  <th>32</th>
+                  <td>32</td>
+                  <td>0</td>
+                  <td>32</td>
+               </tr>
+               <tr>
+                  <th>
+                     <a href="https://dvcs.w3.org/hg/xslt30-test/file/tip/tests/attr/match/_match-test-set.xml" title="Tests match">attr -&gt; match</a>
+                  </th>
+                  <th>41</th>
+                  <th>182</th>
+                  <td>8</td>
+                  <td>133</td>
+                  <th>241</th>
+                  <td>67</td>
+                  <td>0</td>
+                  <td>249</td>
+               </tr>
+               <tr>
+                  <th>
+                     <a href="https://dvcs.w3.org/hg/xslt30-test/file/tip/tests/attr/mode/_mode-test-set.xml" title="Tests the use of modes in xsl:template and xsl:apply-templates">attr -&gt; mode</a>
+                  </th>
+                  <th>15</th>
+                  <th>31</th>
+                  <td>0</td>
+                  <td>16</td>
+                  <th>135</th>
+                  <td>104</td>
+                  <td>0</td>
+                  <td>137</td>
+               </tr>
+               <tr>
+                  <th>
+                     <a href="https://dvcs.w3.org/hg/xslt30-test/file/tip/tests/attr/select/_select-test-set.xml" title="Tests select">attr -&gt; select</a>
+                  </th>
+                  <th>85</th>
+                  <th>156</th>
+                  <td>1</td>
+                  <td>70</td>
+                  <th>156</th>
+                  <td>1</td>
+                  <td>0</td>
+                  <td>157</td>
+               </tr>
+               <tr>
+                  <th>
+                     <a href="https://dvcs.w3.org/hg/xslt30-test/file/tip/tests/attr/shadow/_shadow-test-set.xml" title="Tests Shadow Attributes (Static AVTs)">attr -&gt; shadow</a>
+                  </th>
+                  <th>0</th>
+                  <th>0</th>
+                  <td>0</td>
+                  <td>0</td>
+                  <th>7</th>
+                  <td>7</td>
+                  <td>0</td>
+                  <td>7</td>
+               </tr>
+               <tr>
+                  <th>
+                     <a href="https://dvcs.w3.org/hg/xslt30-test/file/tip/tests/attr/static/_static-test-set.xml" title="Tests static attributes on xsl:variable and xsl:param declarations">attr -&gt; static</a>
+                  </th>
+                  <th>0</th>
+                  <th>0</th>
+                  <td>0</td>
+                  <td>0</td>
+                  <th>37</th>
+                  <td>37</td>
+                  <td>0</td>
+                  <td>37</td>
+               </tr>
+               <tr>
+                  <th>
+                     <a href="https://dvcs.w3.org/hg/xslt30-test/file/tip/tests/attr/streamable/_streamable-test-set.xml" title="Tests streamable apply-templates and modes">attr -&gt; streamable</a>
+                  </th>
+                  <th>0</th>
+                  <th>0</th>
+                  <td>0</td>
+                  <td>0</td>
+                  <th>52</th>
+                  <td>52</td>
+                  <td>0</td>
+                  <td>125</td>
+               </tr>
+               <tr>
+                  <th>
+                     <a href="https://dvcs.w3.org/hg/xslt30-test/file/tip/tests/attr/strip-type-annotations/_strip-type-annotations-test-set.xml" title="Tests strip-type-annotations">attr -&gt; strip-type-annotations</a>
+                  </th>
+                  <th>0</th>
+                  <th>26</th>
+                  <td>0</td>
+                  <td>26</td>
+                  <th>26</th>
+                  <td>0</td>
+                  <td>0</td>
+                  <td>26</td>
+               </tr>
+               <tr>
+                  <th>
+                     <a href="https://dvcs.w3.org/hg/xslt30-test/file/tip/tests/attr/tunnel/_tunnel-test-set.xml" title="Tests tunnel">attr -&gt; tunnel</a>
+                  </th>
+                  <th>0</th>
+                  <th>54</th>
+                  <td>0</td>
+                  <td>54</td>
+                  <th>58</th>
+                  <td>4</td>
+                  <td>0</td>
+                  <td>58</td>
+               </tr>
+               <tr>
+                  <th>
+                     <a href="https://dvcs.w3.org/hg/xslt30-test/file/tip/tests/attr/use-when/_use-when-test-set.xml" title="Tests use-when">attr -&gt; use-when</a>
+                  </th>
+                  <th>1</th>
+                  <th>83</th>
+                  <td>3</td>
+                  <td>79</td>
+                  <th>99</th>
+                  <td>19</td>
+                  <td>0</td>
+                  <td>102</td>
+               </tr>
+               <tr>
+                  <th>
+                     <a href="https://dvcs.w3.org/hg/xslt30-test/file/tip/tests/attr/validation/_validation-test-set.xml" title="Tests validation">attr -&gt; validation</a>
+                  </th>
+                  <th>1</th>
+                  <th>41</th>
+                  <td>4</td>
+                  <td>36</td>
+                  <th>44</th>
+                  <td>7</td>
+                  <td>0</td>
+                  <td>48</td>
+               </tr>
+               <tr>
+                  <th>
+                     <a href="https://dvcs.w3.org/hg/xslt30-test/file/tip/tests/attr/version/_version-test-set.xml" title="Tests version">attr -&gt; version</a>
+                  </th>
+                  <th>13</th>
+                  <th>32</th>
+                  <td>1</td>
+                  <td>18</td>
+                  <th>31</th>
+                  <td>0</td>
+                  <td>0</td>
+                  <td>32</td>
+               </tr>
+               <tr>
+                  <th>
+                     <a href="https://dvcs.w3.org/hg/xslt30-test/file/tip/tests/attr/xpath-default-namespace/_xpath-default-namespace-test-set.xml" title="Tests xpath-default-namespace">attr -&gt; xpath-default-namespace</a>
+                  </th>
+                  <th>4</th>
+                  <th>25</th>
+                  <td>0</td>
+                  <td>21</td>
+                  <th>25</th>
+                  <td>0</td>
+                  <td>0</td>
+                  <td>25</td>
+               </tr>
+               <tr>
+                  <th>
+                     <a href="https://dvcs.w3.org/hg/xslt30-test/file/tip/tests/decl/accept/_accept-test-set.xml" title="Tests xsl:accept in XSLT 3.0">decl -&gt; accept</a>
+                  </th>
+                  <th>0</th>
+                  <th>0</th>
+                  <td>0</td>
+                  <td>0</td>
+                  <th>10</th>
+                  <td>10</td>
+                  <td>0</td>
+                  <td>10</td>
+               </tr>
+               <tr>
+                  <th>
+                     <a href="https://dvcs.w3.org/hg/xslt30-test/file/tip/tests/decl/accumulator/_accumulator-test-set.xml" title="Tests accumulator">decl -&gt; accumulator</a>
+                  </th>
+                  <th>0</th>
+                  <th>0</th>
+                  <td>0</td>
+                  <td>0</td>
+                  <th>28</th>
+                  <td>28</td>
+                  <td>0</td>
+                  <td>53</td>
+               </tr>
+               <tr>
+                  <th>
+                     <a href="https://dvcs.w3.org/hg/xslt30-test/file/tip/tests/decl/attribute-set/_attribute-set-test-set.xml" title="Tests xsl:attribute-set">decl -&gt; attribute-set</a>
+                  </th>
+                  <th>36</th>
+                  <th>43</th>
+                  <td>1</td>
+                  <td>6</td>
+                  <th>46</th>
+                  <td>4</td>
+                  <td>0</td>
+                  <td>47</td>
+               </tr>
+               <tr>
+                  <th>
+                     <a href="https://dvcs.w3.org/hg/xslt30-test/file/tip/tests/decl/character-map/_character-map-test-set.xml" title="Tests the xsl:character-map declaration">decl -&gt; character-map</a>
+                  </th>
+                  <th>0</th>
+                  <th>24</th>
+                  <td>0</td>
+                  <td>24</td>
+                  <th>24</th>
+                  <td>0</td>
+                  <td>0</td>
+                  <td>24</td>
+               </tr>
+               <tr>
+                  <th>
+                     <a href="https://dvcs.w3.org/hg/xslt30-test/file/tip/tests/decl/context-item/_context-item-test-set.xml" title="Tests xsl:context-item">decl -&gt; context-item</a>
+                  </th>
+                  <th>0</th>
+                  <th>0</th>
+                  <td>0</td>
+                  <td>0</td>
+                  <th>28</th>
+                  <td>28</td>
+                  <td>0</td>
+                  <td>28</td>
+               </tr>
+               <tr>
+                  <th>
+                     <a href="https://dvcs.w3.org/hg/xslt30-test/file/tip/tests/decl/expose/_expose-test-set.xml" title="Tests xsl:expose in XSLT 3.0">decl -&gt; expose</a>
+                  </th>
+                  <th>0</th>
+                  <th>0</th>
+                  <td>0</td>
+                  <td>0</td>
+                  <th>19</th>
+                  <td>19</td>
+                  <td>0</td>
+                  <td>19</td>
+               </tr>
+               <tr>
+                  <th>
+                     <a href="https://dvcs.w3.org/hg/xslt30-test/file/tip/tests/decl/function/_function-test-set.xml" title="Tests function">decl -&gt; function</a>
+                  </th>
+                  <th>0</th>
+                  <th>49</th>
+                  <td>6</td>
+                  <td>43</td>
+                  <th>81</th>
+                  <td>38</td>
+                  <td>0</td>
+                  <td>87</td>
+               </tr>
+               <tr>
+                  <th>
+                     <a href="https://dvcs.w3.org/hg/xslt30-test/file/tip/tests/decl/global-context-item/_global-context-item-test-set.xml" title="Tests xsl:global-context-item">decl -&gt; global-context-item</a>
+                  </th>
+                  <th>0</th>
+                  <th>0</th>
+                  <td>0</td>
+                  <td>0</td>
+                  <th>3</th>
+                  <td>3</td>
+                  <td>0</td>
+                  <td>3</td>
+               </tr>
+               <tr>
+                  <th>
+                     <a href="https://dvcs.w3.org/hg/xslt30-test/file/tip/tests/decl/import-schema/_import-schema-test-set.xml" title="Tests import-schema">decl -&gt; import-schema</a>
+                  </th>
+                  <th>0</th>
+                  <th>193</th>
+                  <td>0</td>
+                  <td>193</td>
+                  <th>195</th>
+                  <td>2</td>
+                  <td>0</td>
+                  <td>195</td>
+               </tr>
+               <tr>
+                  <th>
+                     <a href="https://dvcs.w3.org/hg/xslt30-test/file/tip/tests/decl/import/_import-test-set.xml" title="Tests import">decl -&gt; import</a>
+                  </th>
+                  <th>12</th>
+                  <th>35</th>
+                  <td>0</td>
+                  <td>23</td>
+                  <th>38</th>
+                  <td>3</td>
+                  <td>0</td>
+                  <td>42</td>
+               </tr>
+               <tr>
+                  <th>
+                     <a href="https://dvcs.w3.org/hg/xslt30-test/file/tip/tests/decl/include/_include-test-set.xml" title="Tests include">decl -&gt; include</a>
+                  </th>
+                  <th>3</th>
+                  <th>13</th>
+                  <td>0</td>
+                  <td>10</td>
+                  <th>14</th>
+                  <td>1</td>
+                  <td>0</td>
+                  <td>16</td>
+               </tr>
+               <tr>
+                  <th>
+                     <a href="https://dvcs.w3.org/hg/xslt30-test/file/tip/tests/decl/namespace-alias/_namespace-alias-test-set.xml" title="Tests namespace">decl -&gt; namespace-alias</a>
+                  </th>
+                  <th>6</th>
+                  <th>15</th>
+                  <td>0</td>
+                  <td>9</td>
+                  <th>15</th>
+                  <td>0</td>
+                  <td>0</td>
+                  <td>15</td>
+               </tr>
+               <tr>
+                  <th>
+                     <a href="https://dvcs.w3.org/hg/xslt30-test/file/tip/tests/decl/output/_output-test-set.xml" title="Tests the xsl:output declaration, and hence serialization generally">decl -&gt; output</a>
+                  </th>
+                  <th>0</th>
+                  <th>141</th>
+                  <td>8</td>
+                  <td>133</td>
+                  <th>207</th>
+                  <td>74</td>
+                  <td>0</td>
+                  <td>215</td>
+               </tr>
+               <tr>
+                  <th>
+                     <a href="https://dvcs.w3.org/hg/xslt30-test/file/tip/tests/decl/override/_override-test-set.xml" title="Tests xsl:override in XSLT 3.0">decl -&gt; override</a>
+                  </th>
+                  <th>0</th>
+                  <th>0</th>
+                  <td>0</td>
+                  <td>0</td>
+                  <th>60</th>
+                  <td>60</td>
+                  <td>0</td>
+                  <td>60</td>
+               </tr>
+               <tr>
+                  <th>
+                     <a href="https://dvcs.w3.org/hg/xslt30-test/file/tip/tests/decl/package/_package-test-set.xml" title="Tests xsl:package in XSLT 3.0">decl -&gt; package</a>
+                  </th>
+                  <th>0</th>
+                  <th>0</th>
+                  <td>0</td>
+                  <td>0</td>
+                  <th>42</th>
+                  <td>42</td>
+                  <td>0</td>
+                  <td>42</td>
+               </tr>
+               <tr>
+                  <th>
+                     <a href="https://dvcs.w3.org/hg/xslt30-test/file/tip/tests/decl/param/_param-test-set.xml" title="Tests the xsl:param element">decl -&gt; param</a>
+                  </th>
+                  <th>0</th>
+                  <th>25</th>
+                  <td>0</td>
+                  <td>25</td>
+                  <th>29</th>
+                  <td>4</td>
+                  <td>0</td>
+                  <td>29</td>
+               </tr>
+               <tr>
+                  <th>
+                     <a href="https://dvcs.w3.org/hg/xslt30-test/file/tip/tests/decl/strip-space/_strip-space-test-set.xml" title="Tests whitespace">decl -&gt; strip-space</a>
+                  </th>
+                  <th>21</th>
+                  <th>21</th>
+                  <td>0</td>
+                  <td>0</td>
+                  <th>22</th>
+                  <td>1</td>
+                  <td>0</td>
+                  <td>23</td>
+               </tr>
+               <tr>
+                  <th>
+                     <a href="https://dvcs.w3.org/hg/xslt30-test/file/tip/tests/decl/template/_template-test-set.xml" title="Tests template">decl -&gt; template</a>
+                  </th>
+                  <th>5</th>
+                  <th>6</th>
+                  <td>0</td>
+                  <td>1</td>
+                  <th>6</th>
+                  <td>0</td>
+                  <td>0</td>
+                  <td>6</td>
+               </tr>
+               <tr>
+                  <th>
+                     <a href="https://dvcs.w3.org/hg/xslt30-test/file/tip/tests/decl/use-package/_use-package-test-set.xml" title="Tests xsl:use-package in XSLT 3.0">decl -&gt; use-package</a>
+                  </th>
+                  <th>0</th>
+                  <th>0</th>
+                  <td>0</td>
+                  <td>0</td>
+                  <th>30</th>
+                  <td>30</td>
+                  <td>0</td>
+                  <td>30</td>
+               </tr>
+               <tr>
+                  <th>
+                     <a href="https://dvcs.w3.org/hg/xslt30-test/file/tip/tests/decl/variable/_variable-test-set.xml" title="Tests local and global variables">decl -&gt; variable</a>
+                  </th>
+                  <th>71</th>
+                  <th>99</th>
+                  <td>0</td>
+                  <td>28</td>
+                  <th>101</th>
+                  <td>2</td>
+                  <td>0</td>
+                  <td>101</td>
+               </tr>
+               <tr>
+                  <th>
+                     <a href="https://dvcs.w3.org/hg/xslt30-test/file/tip/tests/expr/axes/_axes-test-set.xml" title="Tests axes">expr -&gt; axes</a>
+                  </th>
+                  <th>182</th>
+                  <th>202</th>
+                  <td>0</td>
+                  <td>20</td>
+                  <th>202</th>
+                  <td>0</td>
+                  <td>0</td>
+                  <td>202</td>
+               </tr>
+               <tr>
+                  <th>
+                     <a href="https://dvcs.w3.org/hg/xslt30-test/file/tip/tests/expr/castable/_castable-test-set.xml" title="Tests castable">expr -&gt; castable</a>
+                  </th>
+                  <th>0</th>
+                  <th>4</th>
+                  <td>0</td>
+                  <td>4</td>
+                  <th>4</th>
+                  <td>0</td>
+                  <td>0</td>
+                  <td>4</td>
+               </tr>
+               <tr>
+                  <th>
+                     <a href="https://dvcs.w3.org/hg/xslt30-test/file/tip/tests/expr/data-manipulation/_data-manipulation-test-set.xml" title="Tests data-manipulation">expr -&gt; data-manipulation</a>
+                  </th>
+                  <th>28</th>
+                  <th>28</th>
+                  <td>0</td>
+                  <td>0</td>
+                  <th>28</th>
+                  <td>0</td>
+                  <td>0</td>
+                  <td>28</td>
+               </tr>
+               <tr>
+                  <th>
+                     <a href="https://dvcs.w3.org/hg/xslt30-test/file/tip/tests/expr/expression/_expression-test-set.xml" title="Tests expression">expr -&gt; expression</a>
+                  </th>
+                  <th>54</th>
+                  <th>104</th>
+                  <td>0</td>
+                  <td>50</td>
+                  <th>108</th>
+                  <td>4</td>
+                  <td>0</td>
+                  <td>108</td>
+               </tr>
+               <tr>
+                  <th>
+                     <a href="https://dvcs.w3.org/hg/xslt30-test/file/tip/tests/expr/for/_for-test-set.xml" title="Tests for">expr -&gt; for</a>
+                  </th>
+                  <th>0</th>
+                  <th>4</th>
+                  <td>0</td>
+                  <td>4</td>
+                  <th>4</th>
+                  <td>0</td>
+                  <td>0</td>
+                  <td>4</td>
+               </tr>
+               <tr>
+                  <th>
+                     <a href="https://dvcs.w3.org/hg/xslt30-test/file/tip/tests/expr/higher-order-functions/_higher-order-functions-test-set.xml" title="Tests higher-order-functions">expr -&gt; higher-order-functions</a>
+                  </th>
+                  <th>0</th>
+                  <th>0</th>
+                  <td>0</td>
+                  <td>0</td>
+                  <th>69</th>
+                  <td>69</td>
+                  <td>0</td>
+                  <td>70</td>
+               </tr>
+               <tr>
+                  <th>
+                     <a href="https://dvcs.w3.org/hg/xslt30-test/file/tip/tests/expr/math/_math-test-set.xml" title="Tests math">expr -&gt; math</a>
+                  </th>
+                  <th>108</th>
+                  <th>143</th>
+                  <td>1</td>
+                  <td>34</td>
+                  <th>146</th>
+                  <td>4</td>
+                  <td>0</td>
+                  <td>147</td>
+               </tr>
+               <tr>
+                  <th>
+                     <a href="https://dvcs.w3.org/hg/xslt30-test/file/tip/tests/expr/nodetest/_nodetest-test-set.xml" title="Tests nodetest">expr -&gt; nodetest</a>
+                  </th>
+                  <th>2</th>
+                  <th>38</th>
+                  <td>0</td>
+                  <td>36</td>
+                  <th>38</th>
+                  <td>0</td>
+                  <td>0</td>
+                  <td>38</td>
+               </tr>
+               <tr>
+                  <th>
+                     <a href="https://dvcs.w3.org/hg/xslt30-test/file/tip/tests/expr/path/_path-test-set.xml" title="Tests path">expr -&gt; path</a>
+                  </th>
+                  <th>10</th>
+                  <th>10</th>
+                  <td>0</td>
+                  <td>0</td>
+                  <th>10</th>
+                  <td>0</td>
+                  <td>0</td>
+                  <td>10</td>
+               </tr>
+               <tr>
+                  <th>
+                     <a href="https://dvcs.w3.org/hg/xslt30-test/file/tip/tests/expr/predicate/_predicate-test-set.xml" title="Tests predicate">expr -&gt; predicate</a>
+                  </th>
+                  <th>52</th>
+                  <th>54</th>
+                  <td>0</td>
+                  <td>2</td>
+                  <th>54</th>
+                  <td>0</td>
+                  <td>0</td>
+                  <td>54</td>
+               </tr>
+               <tr>
+                  <th>
+                     <a href="https://dvcs.w3.org/hg/xslt30-test/file/tip/tests/expr/treat-as/_treat-as-test-set.xml" title="Tests treat-as">expr -&gt; treat-as</a>
+                  </th>
+                  <th>0</th>
+                  <th>4</th>
+                  <td>0</td>
+                  <td>4</td>
+                  <th>4</th>
+                  <td>0</td>
+                  <td>0</td>
+                  <td>4</td>
+               </tr>
+               <tr>
+                  <th>
+                     <a href="https://dvcs.w3.org/hg/xslt30-test/file/tip/tests/expr/type-expr/_type-expr-test-set.xml" title="Tests type-expr">expr -&gt; type-expr</a>
+                  </th>
+                  <th>0</th>
+                  <th>4</th>
+                  <td>0</td>
+                  <td>4</td>
+                  <th>4</th>
+                  <td>0</td>
+                  <td>0</td>
+                  <td>4</td>
+               </tr>
+               <tr>
+                  <th>
+                     <a href="https://dvcs.w3.org/hg/xslt30-test/file/tip/tests/expr/type-functions/_type-functions-test-set.xml" title="Tests type-functions">expr -&gt; type-functions</a>
+                  </th>
+                  <th>0</th>
+                  <th>9</th>
+                  <td>1</td>
+                  <td>8</td>
+                  <th>9</th>
+                  <td>1</td>
+                  <td>0</td>
+                  <td>10</td>
+               </tr>
+               <tr>
+                  <th>
+                     <a href="https://dvcs.w3.org/hg/xslt30-test/file/tip/tests/expr/xpath-compat/_xpath-compat-test-set.xml" title="Tests xpath-compat">expr -&gt; xpath-compat</a>
+                  </th>
+                  <th>0</th>
+                  <th>18</th>
+                  <td>0</td>
+                  <td>18</td>
+                  <th>18</th>
+                  <td>0</td>
+                  <td>0</td>
+                  <td>18</td>
+               </tr>
+               <tr>
+                  <th>
+                     <a href="https://dvcs.w3.org/hg/xslt30-test/file/tip/tests/fn/accessor/_accessor-test-set.xml" title="Tests accessor">fn -&gt; accessor</a>
+                  </th>
+                  <th>0</th>
+                  <th>37</th>
+                  <td>1</td>
+                  <td>36</td>
+                  <th>37</th>
+                  <td>1</td>
+                  <td>0</td>
+                  <td>38</td>
+               </tr>
+               <tr>
+                  <th>
+                     <a href="https://dvcs.w3.org/hg/xslt30-test/file/tip/tests/fn/available-system-properties/_available-system-properties-test-set.xml" title="">fn -&gt; available-system-properties</a>
+                  </th>
+                  <th>0</th>
+                  <th>0</th>
+                  <td>0</td>
+                  <td>0</td>
+                  <th>29</th>
+                  <td>29</td>
+                  <td>0</td>
+                  <td>29</td>
+               </tr>
+               <tr>
+                  <th>
+                     <a href="https://dvcs.w3.org/hg/xslt30-test/file/tip/tests/fn/base-uri/_base-uri-test-set.xml" title="Tests base-uri">fn -&gt; base-uri</a>
+                  </th>
+                  <th>0</th>
+                  <th>48</th>
+                  <td>0</td>
+                  <td>48</td>
+                  <th>48</th>
+                  <td>0</td>
+                  <td>0</td>
+                  <td>48</td>
+               </tr>
+               <tr>
+                  <th>
+                     <a href="https://dvcs.w3.org/hg/xslt30-test/file/tip/tests/fn/collation/_collation-test-set.xml" title="Tests collation">fn -&gt; collation</a>
+                  </th>
+                  <th>0</th>
+                  <th>5</th>
+                  <td>0</td>
+                  <td>5</td>
+                  <th>5</th>
+                  <td>0</td>
+                  <td>0</td>
+                  <td>5</td>
+               </tr>
+               <tr>
+                  <th>
+                     <a href="https://dvcs.w3.org/hg/xslt30-test/file/tip/tests/fn/collection/_collection-test-set.xml" title="Tests collection">fn -&gt; collection</a>
+                  </th>
+                  <th>0</th>
+                  <th>4</th>
+                  <td>0</td>
+                  <td>4</td>
+                  <th>4</th>
+                  <td>0</td>
+                  <td>0</td>
+                  <td>4</td>
+               </tr>
+               <tr>
+                  <th>
+                     <a href="https://dvcs.w3.org/hg/xslt30-test/file/tip/tests/fn/copy-of/_copy-of-test-set.xml" title="Tests the XSLT 3.0 copy-of() function">fn -&gt; copy-of</a>
+                  </th>
+                  <th>0</th>
+                  <th>0</th>
+                  <td>0</td>
+                  <td>0</td>
+                  <th>13</th>
+                  <td>13</td>
+                  <td>0</td>
+                  <td>13</td>
+               </tr>
+               <tr>
+                  <th>
+                     <a href="https://dvcs.w3.org/hg/xslt30-test/file/tip/tests/fn/core-function/_core-function-test-set.xml" title="Tests core-function">fn -&gt; core-function</a>
+                  </th>
+                  <th>85</th>
+                  <th>90</th>
+                  <td>0</td>
+                  <td>5</td>
+                  <th>90</th>
+                  <td>0</td>
+                  <td>0</td>
+                  <td>90</td>
+               </tr>
+               <tr>
+                  <th>
+                     <a href="https://dvcs.w3.org/hg/xslt30-test/file/tip/tests/fn/current-output-uri/_current-output-uri-test-set.xml" title="Tests current-output-uri() function in XSLT 3.0">fn -&gt; current-output-uri</a>
+                  </th>
+                  <th>0</th>
+                  <th>0</th>
+                  <td>0</td>
+                  <td>0</td>
+                  <th>5</th>
+                  <td>5</td>
+                  <td>0</td>
+                  <td>5</td>
+               </tr>
+               <tr>
+                  <th>
+                     <a href="https://dvcs.w3.org/hg/xslt30-test/file/tip/tests/fn/deep-equal/_deep-equal-test-set.xml" title="Tests deep-equal">fn -&gt; deep-equal</a>
+                  </th>
+                  <th>0</th>
+                  <th>2</th>
+                  <td>0</td>
+                  <td>2</td>
+                  <th>2</th>
+                  <td>0</td>
+                  <td>0</td>
+                  <td>2</td>
+               </tr>
+               <tr>
+                  <th>
+                     <a href="https://dvcs.w3.org/hg/xslt30-test/file/tip/tests/fn/document/_document-test-set.xml" title="Tests the fn:document function">fn -&gt; document</a>
+                  </th>
+                  <th>9</th>
+                  <th>64</th>
+                  <td>0</td>
+                  <td>55</td>
+                  <th>64</th>
+                  <td>0</td>
+                  <td>0</td>
+                  <td>64</td>
+               </tr>
+               <tr>
+                  <th>
+                     <a href="https://dvcs.w3.org/hg/xslt30-test/file/tip/tests/fn/extension-functions/_extension-functions-test-set.xml" title="Tests extension-functions">fn -&gt; extension-functions</a>
+                  </th>
+                  <th>0</th>
+                  <th>5</th>
+                  <td>0</td>
+                  <td>5</td>
+                  <th>5</th>
+                  <td>0</td>
+                  <td>0</td>
+                  <td>5</td>
+               </tr>
+               <tr>
+                  <th>
+                     <a href="https://dvcs.w3.org/hg/xslt30-test/file/tip/tests/fn/format-date-en/_format-date-en-test-set.xml" title="Tests format-date-en">fn -&gt; format-date-en</a>
+                  </th>
+                  <th>0</th>
+                  <th>33</th>
+                  <td>0</td>
+                  <td>33</td>
+                  <th>33</th>
+                  <td>0</td>
+                  <td>0</td>
+                  <td>33</td>
+               </tr>
+               <tr>
+                  <th>
+                     <a href="https://dvcs.w3.org/hg/xslt30-test/file/tip/tests/fn/format-date/_format-date-test-set.xml" title="Tests format-date">fn -&gt; format-date</a>
+                  </th>
+                  <th>0</th>
+                  <th>35</th>
+                  <td>0</td>
+                  <td>35</td>
+                  <th>35</th>
+                  <td>0</td>
+                  <td>0</td>
+                  <td>35</td>
+               </tr>
+               <tr>
+                  <th>
+                     <a href="https://dvcs.w3.org/hg/xslt30-test/file/tip/tests/fn/format-number/_format-number-test-set.xml" title="Tests format-number">fn -&gt; format-number</a>
+                  </th>
+                  <th>37</th>
+                  <th>69</th>
+                  <td>3</td>
+                  <td>29</td>
+                  <th>70</th>
+                  <td>4</td>
+                  <td>0</td>
+                  <td>73</td>
+               </tr>
+               <tr>
+                  <th>
+                     <a href="https://dvcs.w3.org/hg/xslt30-test/file/tip/tests/fn/function-available/_function-available-test-set.xml" title="Tests the function-available() function">fn -&gt; function-available</a>
+                  </th>
+                  <th>1</th>
+                  <th>7</th>
+                  <td>0</td>
+                  <td>6</td>
+                  <th>8</th>
+                  <td>1</td>
+                  <td>0</td>
+                  <td>8</td>
+               </tr>
+               <tr>
+                  <th>
+                     <a href="https://dvcs.w3.org/hg/xslt30-test/file/tip/tests/fn/id/_id-test-set.xml" title="Tests id">fn -&gt; id</a>
+                  </th>
+                  <th>26</th>
+                  <th>40</th>
+                  <td>0</td>
+                  <td>14</td>
+                  <th>40</th>
+                  <td>0</td>
+                  <td>0</td>
+                  <td>40</td>
+               </tr>
+               <tr>
+                  <th>
+                     <a href="https://dvcs.w3.org/hg/xslt30-test/file/tip/tests/fn/json-to-xml/_json-to-xml-test-set.xml" title="json-to-xml() function">fn -&gt; json-to-xml</a>
+                  </th>
+                  <th>0</th>
+                  <th>0</th>
+                  <td>0</td>
+                  <td>0</td>
+                  <th>47</th>
+                  <td>47</td>
+                  <td>0</td>
+                  <td>55</td>
+               </tr>
+               <tr>
+                  <th>
+                     <a href="https://dvcs.w3.org/hg/xslt30-test/file/tip/tests/fn/key/_key-test-set.xml" title="Test xsl:key and the key() function">fn -&gt; key</a>
+                  </th>
+                  <th>55</th>
+                  <th>87</th>
+                  <td>0</td>
+                  <td>32</td>
+                  <th>89</th>
+                  <td>2</td>
+                  <td>0</td>
+                  <td>89</td>
+               </tr>
+               <tr>
+                  <th>
+                     <a href="https://dvcs.w3.org/hg/xslt30-test/file/tip/tests/fn/normalize-unicode/_normalize-unicode-test-set.xml" title=" Test the fn:normalize-unicode() function introduced in XPath 2.0, together with the&#xA;      normalization-form option on serialization. ">fn -&gt; normalize-unicode</a>
+                  </th>
+                  <th>0</th>
+                  <th>18</th>
+                  <td>0</td>
+                  <td>18</td>
+                  <th>18</th>
+                  <td>0</td>
+                  <td>0</td>
+                  <td>18</td>
+               </tr>
+               <tr>
+                  <th>
+                     <a href="https://dvcs.w3.org/hg/xslt30-test/file/tip/tests/fn/position/_position-test-set.xml" title="Tests the position() function">fn -&gt; position</a>
+                  </th>
+                  <th>173</th>
+                  <th>205</th>
+                  <td>0</td>
+                  <td>32</td>
+                  <th>205</th>
+                  <td>0</td>
+                  <td>0</td>
+                  <td>205</td>
+               </tr>
+               <tr>
+                  <th>
+                     <a href="https://dvcs.w3.org/hg/xslt30-test/file/tip/tests/fn/resolve-uri/_resolve-uri-test-set.xml" title="Tests resolve-uri() and other functionality related to resolution of relative URIs">fn -&gt; resolve-uri</a>
+                  </th>
+                  <th>0</th>
+                  <th>22</th>
+                  <td>0</td>
+                  <td>22</td>
+                  <th>22</th>
+                  <td>0</td>
+                  <td>0</td>
+                  <td>22</td>
+               </tr>
+               <tr>
+                  <th>
+                     <a href="https://dvcs.w3.org/hg/xslt30-test/file/tip/tests/fn/root/_root-test-set.xml" title="Tests root">fn -&gt; root</a>
+                  </th>
+                  <th>0</th>
+                  <th>10</th>
+                  <td>0</td>
+                  <td>10</td>
+                  <th>10</th>
+                  <td>0</td>
+                  <td>0</td>
+                  <td>10</td>
+               </tr>
+               <tr>
+                  <th>
+                     <a href="https://dvcs.w3.org/hg/xslt30-test/file/tip/tests/fn/snapshot/_snapshot-test-set.xml" title="Tests the snapshot() function (unstreamed)">fn -&gt; snapshot</a>
+                  </th>
+                  <th>0</th>
+                  <th>0</th>
+                  <td>0</td>
+                  <td>0</td>
+                  <th>17</th>
+                  <td>17</td>
+                  <td>0</td>
+                  <td>17</td>
+               </tr>
+               <tr>
+                  <th>
+                     <a href="https://dvcs.w3.org/hg/xslt30-test/file/tip/tests/fn/stream-available/_stream-available-test-set.xml" title="Tests stream-available() function in XSLT 3.0">fn -&gt; stream-available</a>
+                  </th>
+                  <th>0</th>
+                  <th>0</th>
+                  <td>0</td>
+                  <td>0</td>
+                  <th>6</th>
+                  <td>6</td>
+                  <td>0</td>
+                  <td>6</td>
+               </tr>
+               <tr>
+                  <th>
+                     <a href="https://dvcs.w3.org/hg/xslt30-test/file/tip/tests/fn/system-property/_system-property-test-set.xml" title="Tests system-property">fn -&gt; system-property</a>
+                  </th>
+                  <th>1</th>
+                  <th>11</th>
+                  <td>0</td>
+                  <td>10</td>
+                  <th>184</th>
+                  <td>173</td>
+                  <td>0</td>
+                  <td>184</td>
+               </tr>
+               <tr>
+                  <th>
+                     <a href="https://dvcs.w3.org/hg/xslt30-test/file/tip/tests/fn/type-available/_type-available-test-set.xml" title="Tests the type-available() function">fn -&gt; type-available</a>
+                  </th>
+                  <th>0</th>
+                  <th>4</th>
+                  <td>1</td>
+                  <td>3</td>
+                  <th>4</th>
+                  <td>1</td>
+                  <td>0</td>
+                  <td>5</td>
+               </tr>
+               <tr>
+                  <th>
+                     <a href="https://dvcs.w3.org/hg/xslt30-test/file/tip/tests/fn/unparsed-entity-uri/_unparsed-entity-uri-test-set.xml" title="Tests the unparsed-entity-uri function">fn -&gt; unparsed-entity-uri</a>
+                  </th>
+                  <th>0</th>
+                  <th>1</th>
+                  <td>0</td>
+                  <td>1</td>
+                  <th>1</th>
+                  <td>0</td>
+                  <td>0</td>
+                  <td>1</td>
+               </tr>
+               <tr>
+                  <th>
+                     <a href="https://dvcs.w3.org/hg/xslt30-test/file/tip/tests/fn/unparsed-text-lines/_unparsed-text-lines-test-set.xml" title="Tests unparsed-text-lines">fn -&gt; unparsed-text-lines</a>
+                  </th>
+                  <th>0</th>
+                  <th>0</th>
+                  <td>0</td>
+                  <td>0</td>
+                  <th>6</th>
+                  <td>6</td>
+                  <td>0</td>
+                  <td>6</td>
+               </tr>
+               <tr>
+                  <th>
+                     <a href="https://dvcs.w3.org/hg/xslt30-test/file/tip/tests/fn/unparsed-text/_unparsed-text-test-set.xml" title="Tests the fn:unparsed-text() function">fn -&gt; unparsed-text</a>
+                  </th>
+                  <th>0</th>
+                  <th>5</th>
+                  <td>0</td>
+                  <td>5</td>
+                  <th>5</th>
+                  <td>0</td>
+                  <td>0</td>
+                  <td>5</td>
+               </tr>
+               <tr>
+                  <th>
+                     <a href="https://dvcs.w3.org/hg/xslt30-test/file/tip/tests/fn/xml-to-json/_xml-to-json-test-set.xml" title="xml-to-json() function">fn -&gt; xml-to-json</a>
+                  </th>
+                  <th>0</th>
+                  <th>0</th>
+                  <td>0</td>
+                  <td>0</td>
+                  <th>28</th>
+                  <td>28</td>
+                  <td>0</td>
+                  <td>28</td>
+               </tr>
+               <tr>
+                  <th>
+                     <a href="https://dvcs.w3.org/hg/xslt30-test/file/tip/tests/insn/analyze-string/_analyze-string-test-set.xml" title="Tests regex">insn -&gt; analyze-string</a>
+                  </th>
+                  <th>0</th>
+                  <th>39</th>
+                  <td>5</td>
+                  <td>34</td>
+                  <th>42</th>
+                  <td>8</td>
+                  <td>0</td>
+                  <td>47</td>
+               </tr>
+               <tr>
+                  <th>
+                     <a href="https://dvcs.w3.org/hg/xslt30-test/file/tip/tests/insn/apply-templates/_apply-templates-test-set.xml" title="Tests the xsl:apply-templates instruction. In practice, as indicated by the test names,&#xA;      most of the tests concern conflict resolution.">insn -&gt; apply-templates</a>
+                  </th>
+                  <th>8</th>
+                  <th>32</th>
+                  <td>2</td>
+                  <td>22</td>
+                  <th>36</th>
+                  <td>6</td>
+                  <td>0</td>
+                  <td>48</td>
+               </tr>
+               <tr>
+                  <th>
+                     <a href="https://dvcs.w3.org/hg/xslt30-test/file/tip/tests/insn/assert/_assert-test-set.xml" title="Tests the xsl:assert instruction introduced in XSLT 3.0">insn -&gt; assert</a>
+                  </th>
+                  <th>0</th>
+                  <th>0</th>
+                  <td>0</td>
+                  <td>0</td>
+                  <th>8</th>
+                  <td>8</td>
+                  <td>0</td>
+                  <td>9</td>
+               </tr>
+               <tr>
+                  <th>
+                     <a href="https://dvcs.w3.org/hg/xslt30-test/file/tip/tests/insn/attribute/_attribute-test-set.xml" title="Tests the xsl:attribute instruction">insn -&gt; attribute</a>
+                  </th>
+                  <th>12</th>
+                  <th>22</th>
+                  <td>0</td>
+                  <td>10</td>
+                  <th>22</th>
+                  <td>0</td>
+                  <td>0</td>
+                  <td>22</td>
+               </tr>
+               <tr>
+                  <th>
+                     <a href="https://dvcs.w3.org/hg/xslt30-test/file/tip/tests/insn/call-template/_call-template-test-set.xml" title="Tests call-template">insn -&gt; call-template</a>
+                  </th>
+                  <th>20</th>
+                  <th>34</th>
+                  <td>1</td>
+                  <td>13</td>
+                  <th>35</th>
+                  <td>2</td>
+                  <td>0</td>
+                  <td>36</td>
+               </tr>
+               <tr>
+                  <th>
+                     <a href="https://dvcs.w3.org/hg/xslt30-test/file/tip/tests/insn/choose/_choose-test-set.xml" title="Tests choose">insn -&gt; choose</a>
+                  </th>
+                  <th>25</th>
+                  <th>48</th>
+                  <td>0</td>
+                  <td>23</td>
+                  <th>48</th>
+                  <td>0</td>
+                  <td>0</td>
+                  <td>48</td>
+               </tr>
+               <tr>
+                  <th>
+                     <a href="https://dvcs.w3.org/hg/xslt30-test/file/tip/tests/insn/construct-node/_construct-node-test-set.xml" title="Tests instructions that create text, comment, processing-instruction etc nodes">insn -&gt; construct-node</a>
+                  </th>
+                  <th>4</th>
+                  <th>33</th>
+                  <td>0</td>
+                  <td>29</td>
+                  <th>34</th>
+                  <td>1</td>
+                  <td>0</td>
+                  <td>34</td>
+               </tr>
+               <tr>
+                  <th>
+                     <a href="https://dvcs.w3.org/hg/xslt30-test/file/tip/tests/insn/copy/_copy-test-set.xml" title="Tests copy">insn -&gt; copy</a>
+                  </th>
+                  <th>53</th>
+                  <th>89</th>
+                  <td>0</td>
+                  <td>36</td>
+                  <th>120</th>
+                  <td>31</td>
+                  <td>0</td>
+                  <td>120</td>
+               </tr>
+               <tr>
+                  <th>
+                     <a href="https://dvcs.w3.org/hg/xslt30-test/file/tip/tests/insn/element/_element-test-set.xml" title="Tests the xsl:element instruction">insn -&gt; element</a>
+                  </th>
+                  <th>0</th>
+                  <th>18</th>
+                  <td>0</td>
+                  <td>18</td>
+                  <th>28</th>
+                  <td>10</td>
+                  <td>0</td>
+                  <td>28</td>
+               </tr>
+               <tr>
+                  <th>
+                     <a href="https://dvcs.w3.org/hg/xslt30-test/file/tip/tests/insn/evaluate/_evaluate-test-set.xml" title="Tests xsl:evaluate, tests are dependent on the evaluation feature in 26.6 of the spec">insn -&gt; evaluate</a>
+                  </th>
+                  <th>0</th>
+                  <th>0</th>
+                  <td>0</td>
+                  <td>0</td>
+                  <th>31</th>
+                  <td>31</td>
+                  <td>0</td>
+                  <td>45</td>
+               </tr>
+               <tr>
+                  <th>
+                     <a href="https://dvcs.w3.org/hg/xslt30-test/file/tip/tests/insn/for-each-group/_for-each-group-test-set.xml" title="Tests the xsl:for-each-group instruction">insn -&gt; for-each-group</a>
+                  </th>
+                  <th>0</th>
+                  <th>49</th>
+                  <td>3</td>
+                  <td>46</td>
+                  <th>69</th>
+                  <td>23</td>
+                  <td>0</td>
+                  <td>72</td>
+               </tr>
+               <tr>
+                  <th>
+                     <a href="https://dvcs.w3.org/hg/xslt30-test/file/tip/tests/insn/iterate/_iterate-test-set.xml" title="Tests the xsl:iterate instruction introduced in XSLT 3.0">insn -&gt; iterate</a>
+                  </th>
+                  <th>0</th>
+                  <th>0</th>
+                  <td>0</td>
+                  <td>0</td>
+                  <th>34</th>
+                  <td>34</td>
+                  <td>0</td>
+                  <td>34</td>
+               </tr>
+               <tr>
+                  <th>
+                     <a href="https://dvcs.w3.org/hg/xslt30-test/file/tip/tests/insn/lre/_lre-test-set.xml" title="Tests lre">insn -&gt; lre</a>
+                  </th>
+                  <th>18</th>
+                  <th>23</th>
+                  <td>0</td>
+                  <td>5</td>
+                  <th>30</th>
+                  <td>7</td>
+                  <td>0</td>
+                  <td>30</td>
+               </tr>
+               <tr>
+                  <th>
+                     <a href="https://dvcs.w3.org/hg/xslt30-test/file/tip/tests/insn/merge/_merge-test-set.xml" title="Tests the xsl:merge instruction">insn -&gt; merge</a>
+                  </th>
+                  <th>0</th>
+                  <th>0</th>
+                  <td>0</td>
+                  <td>0</td>
+                  <th>59</th>
+                  <td>59</td>
+                  <td>0</td>
+                  <td>80</td>
+               </tr>
+               <tr>
+                  <th>
+                     <a href="https://dvcs.w3.org/hg/xslt30-test/file/tip/tests/insn/message/_message-test-set.xml" title="Tests message">insn -&gt; message</a>
+                  </th>
+                  <th>1</th>
+                  <th>24</th>
+                  <td>0</td>
+                  <td>23</td>
+                  <th>34</th>
+                  <td>10</td>
+                  <td>0</td>
+                  <td>34</td>
+               </tr>
+               <tr>
+                  <th>
+                     <a href="https://dvcs.w3.org/hg/xslt30-test/file/tip/tests/insn/next-match/_next-match-test-set.xml" title="Tests xsl:next-match">insn -&gt; next-match</a>
+                  </th>
+                  <th>0</th>
+                  <th>26</th>
+                  <td>0</td>
+                  <td>26</td>
+                  <th>26</th>
+                  <td>0</td>
+                  <td>0</td>
+                  <td>26</td>
+               </tr>
+               <tr>
+                  <th>
+                     <a href="https://dvcs.w3.org/hg/xslt30-test/file/tip/tests/insn/number/_number-test-set.xml" title="Tests the xsl:number instruction">insn -&gt; number</a>
+                  </th>
+                  <th>189</th>
+                  <th>254</th>
+                  <td>0</td>
+                  <td>65</td>
+                  <th>262</th>
+                  <td>8</td>
+                  <td>0</td>
+                  <td>262</td>
+               </tr>
+               <tr>
+                  <th>
+                     <a href="https://dvcs.w3.org/hg/xslt30-test/file/tip/tests/insn/on-empty/_on-empty-test-set.xml" title="&#xA;      Tests sequence constructors containing xsl:on-empty instructions&#xA;   ">insn -&gt; on-empty</a>
+                  </th>
+                  <th>0</th>
+                  <th>0</th>
+                  <td>0</td>
+                  <td>0</td>
+                  <th>12</th>
+                  <td>12</td>
+                  <td>0</td>
+                  <td>12</td>
+               </tr>
+               <tr>
+                  <th>
+                     <a href="https://dvcs.w3.org/hg/xslt30-test/file/tip/tests/insn/on-non-empty/_on-non-empty-test-set.xml" title="&#xA;      Tests sequence constructors containing xsl:on-non-empty instructions&#xA;   ">insn -&gt; on-non-empty</a>
+                  </th>
+                  <th>0</th>
+                  <th>0</th>
+                  <td>0</td>
+                  <td>0</td>
+                  <th>14</th>
+                  <td>14</td>
+                  <td>0</td>
+                  <td>14</td>
+               </tr>
+               <tr>
+                  <th>
+                     <a href="https://dvcs.w3.org/hg/xslt30-test/file/tip/tests/insn/result-document/_result-document-test-set.xml" title=" Tests the xsl:result-document instruction. Note: most of the tests concern&#xA;      serialization; very few actually generate multiple output documents. ">insn -&gt; result-document</a>
+                  </th>
+                  <th>0</th>
+                  <th>73</th>
+                  <td>11</td>
+                  <td>62</td>
+                  <th>121</th>
+                  <td>59</td>
+                  <td>0</td>
+                  <td>132</td>
+               </tr>
+               <tr>
+                  <th>
+                     <a href="https://dvcs.w3.org/hg/xslt30-test/file/tip/tests/insn/sequence/_sequence-test-set.xml" title="&#xA;      Tests the xsl:sequence instruction and other expressions that&#xA;      construct sequences&#xA;   ">insn -&gt; sequence</a>
+                  </th>
+                  <th>3</th>
+                  <th>87</th>
+                  <td>4</td>
+                  <td>80</td>
+                  <th>87</th>
+                  <td>4</td>
+                  <td>0</td>
+                  <td>91</td>
+               </tr>
+               <tr>
+                  <th>
+                     <a href="https://dvcs.w3.org/hg/xslt30-test/file/tip/tests/insn/sort/_sort-test-set.xml" title="Tests sort">insn -&gt; sort</a>
+                  </th>
+                  <th>32</th>
+                  <th>74</th>
+                  <td>0</td>
+                  <td>42</td>
+                  <th>79</th>
+                  <td>5</td>
+                  <td>0</td>
+                  <td>79</td>
+               </tr>
+               <tr>
+                  <th>
+                     <a href="https://dvcs.w3.org/hg/xslt30-test/file/tip/tests/insn/stream/_stream-test-set.xml" title="&#xA;   &#x9;&#x9;Tests the xsl:stream instruction introduced in XSLT 3.0.&#xA;   &#x9;&#x9;The tests in this section focus on variants of the xsl:stream instruction itself,&#xA;   &#x9;&#x9;and not on testing the streamability of its content.&#xA;   ">insn -&gt; stream</a>
+                  </th>
+                  <th>0</th>
+                  <th>0</th>
+                  <td>0</td>
+                  <td>0</td>
+                  <th>17</th>
+                  <td>17</td>
+                  <td>0</td>
+                  <td>23</td>
+               </tr>
+               <tr>
+                  <th>
+                     <a href="https://dvcs.w3.org/hg/xslt30-test/file/tip/tests/insn/try/_try-test-set.xml" title="Tests try">insn -&gt; try</a>
+                  </th>
+                  <th>0</th>
+                  <th>5</th>
+                  <td>5</td>
+                  <td>0</td>
+                  <th>26</th>
+                  <td>26</td>
+                  <td>0</td>
+                  <td>31</td>
+               </tr>
+               <tr>
+                  <th>
+                     <a href="https://dvcs.w3.org/hg/xslt30-test/file/tip/tests/insn/where-populated/_where-populated-test-set.xml" title="Tests xsl:where-populated instruction introduced in XSLT 3.0 (unstreamed).">insn -&gt; where-populated</a>
+                  </th>
+                  <th>0</th>
+                  <th>0</th>
+                  <td>0</td>
+                  <td>0</td>
+                  <th>23</th>
+                  <td>23</td>
+                  <td>0</td>
+                  <td>23</td>
+               </tr>
+               <tr>
+                  <th>
+                     <a href="https://dvcs.w3.org/hg/xslt30-test/file/tip/tests/insn/xsl-document/_xsl-document-test-set.xml" title="Tests the xsl:document instruction, and construction of document nodes">insn -&gt; xsl-document</a>
+                  </th>
+                  <th>0</th>
+                  <th>25</th>
+                  <td>0</td>
+                  <td>25</td>
+                  <th>25</th>
+                  <td>0</td>
+                  <td>0</td>
+                  <td>25</td>
+               </tr>
+               <tr>
+                  <th>
+                     <a href="https://dvcs.w3.org/hg/xslt30-test/file/tip/tests/misc/backwards/_backwards-test-set.xml" title="Tests backwards compatibility with XSLT 1.0">misc -&gt; backwards</a>
+                  </th>
+                  <th>1</th>
+                  <th>44</th>
+                  <td>0</td>
+                  <td>43</td>
+                  <th>45</th>
+                  <td>1</td>
+                  <td>0</td>
+                  <td>45</td>
+               </tr>
+               <tr>
+                  <th>
+                     <a href="https://dvcs.w3.org/hg/xslt30-test/file/tip/tests/misc/bug/_bug-test-set.xml" title="A collection of miscellaneous tests garnered from interesting bug&#xA;      reports">misc -&gt; bug</a>
+                  </th>
+                  <th>53</th>
+                  <th>84</th>
+                  <td>1</td>
+                  <td>30</td>
+                  <th>83</th>
+                  <td>0</td>
+                  <td>0</td>
+                  <td>86</td>
+               </tr>
+               <tr>
+                  <th>
+                     <a href="https://dvcs.w3.org/hg/xslt30-test/file/tip/tests/misc/built-in-templates/_built-in-templates-test-set.xml" title="Tests built-in-templates">misc -&gt; built-in-templates</a>
+                  </th>
+                  <th>0</th>
+                  <th>4</th>
+                  <td>0</td>
+                  <td>4</td>
+                  <th>4</th>
+                  <td>0</td>
+                  <td>0</td>
+                  <td>4</td>
+               </tr>
+               <tr>
+                  <th>
+                     <a href="https://dvcs.w3.org/hg/xslt30-test/file/tip/tests/misc/catalog/_catalog-test-set.xml" title="Tests that the test catalog is valid">misc -&gt; catalog</a>
+                  </th>
+                  <th>0</th>
+                  <th>3</th>
+                  <td>0</td>
+                  <td>3</td>
+                  <th>9</th>
+                  <td>6</td>
+                  <td>0</td>
+                  <td>9</td>
+               </tr>
+               <tr>
+                  <th>
+                     <a href="https://dvcs.w3.org/hg/xslt30-test/file/tip/tests/misc/collations/_collations-test-set.xml" title="Tests collations">misc -&gt; collations</a>
+                  </th>
+                  <th>2</th>
+                  <th>34</th>
+                  <td>0</td>
+                  <td>32</td>
+                  <th>34</th>
+                  <td>0</td>
+                  <td>0</td>
+                  <td>34</td>
+               </tr>
+               <tr>
+                  <th>
+                     <a href="https://dvcs.w3.org/hg/xslt30-test/file/tip/tests/misc/embedded-stylesheet/_embedded-stylesheet-test-set.xml" title="Tests embedded-stylesheet">misc -&gt; embedded-stylesheet</a>
+                  </th>
+                  <th>0</th>
+                  <th>18</th>
+                  <td>0</td>
+                  <td>18</td>
+                  <th>18</th>
+                  <td>0</td>
+                  <td>0</td>
+                  <td>18</td>
+               </tr>
+               <tr>
+                  <th>
+                     <a href="https://dvcs.w3.org/hg/xslt30-test/file/tip/tests/misc/error/_error-test-set.xml" title="&#xA;                Tests error conditions. &#xA;                This test set should include a test for every error code (however, coverage of new XSLT 3.0 errors is incomplete).&#xA;            ">misc -&gt; error</a>
+                  </th>
+                  <th>0</th>
+                  <th>417</th>
+                  <td>26</td>
+                  <td>391</td>
+                  <th>544</th>
+                  <td>153</td>
+                  <td>0</td>
+                  <td>570</td>
+               </tr>
+               <tr>
+                  <th>
+                     <a href="https://dvcs.w3.org/hg/xslt30-test/file/tip/tests/misc/initial-function/_initial-function-test-set.xml" title="Tests Call Function XSLT invocation">misc -&gt; initial-function</a>
+                  </th>
+                  <th>0</th>
+                  <th>0</th>
+                  <td>0</td>
+                  <td>0</td>
+                  <th>6</th>
+                  <td>6</td>
+                  <td>0</td>
+                  <td>6</td>
+               </tr>
+               <tr>
+                  <th>
+                     <a href="https://dvcs.w3.org/hg/xslt30-test/file/tip/tests/misc/initial-mode/_initial-mode-test-set.xml" title="Tests initial-mode">misc -&gt; initial-mode</a>
+                  </th>
+                  <th>1</th>
+                  <th>3</th>
+                  <td>0</td>
+                  <td>2</td>
+                  <th>4</th>
+                  <td>1</td>
+                  <td>0</td>
+                  <td>4</td>
+               </tr>
+               <tr>
+                  <th>
+                     <a href="https://dvcs.w3.org/hg/xslt30-test/file/tip/tests/misc/initial-template/_initial-template-test-set.xml" title="Tests Call-Template XSLT invocation">misc -&gt; initial-template</a>
+                  </th>
+                  <th>0</th>
+                  <th>5</th>
+                  <td>3</td>
+                  <td>2</td>
+                  <th>5</th>
+                  <td>3</td>
+                  <td>0</td>
+                  <td>8</td>
+               </tr>
+               <tr>
+                  <th>
+                     <a href="https://dvcs.w3.org/hg/xslt30-test/file/tip/tests/misc/regex-classes/_regex-classes-test-set.xml" title="&#xA;      Tests regular expression character classes and Unicode blocks.&#xA;      The tests in this test-set may take a little time to execute...&#xA;   ">misc -&gt; regex-classes</a>
+                  </th>
+                  <th>0</th>
+                  <th>120</th>
+                  <td>0</td>
+                  <td>120</td>
+                  <th>120</th>
+                  <td>0</td>
+                  <td>0</td>
+                  <td>120</td>
+               </tr>
+               <tr>
+                  <th>
+                     <a href="https://dvcs.w3.org/hg/xslt30-test/file/tip/tests/misc/regex-syntax-xslt20/_regex-syntax-xslt20-test-set.xml" title="&#xA;      Tests regex-syntax for XSLT20 processors. For XSLT 3.0, see the regular regex-syntax folder.&#xA;      These tests are not maintained (unless bugs are raised against them), they are here for convenience&#xA;      of XSLT 2.0 processor testing.&#xA;      &#xA;      See Bug 20845 for details why we split these tests.&#xA;   ">misc -&gt; regex-syntax-xslt20</a>
+                  </th>
+                  <th>0</th>
+                  <th>983</th>
+                  <td>983</td>
+                  <td>0</td>
+                  <th>0</th>
+                  <td>0</td>
+                  <td>0</td>
+                  <td>987</td>
+               </tr>
+               <tr>
+                  <th>
+                     <a href="https://dvcs.w3.org/hg/xslt30-test/file/tip/tests/misc/regex-syntax/_regex-syntax-test-set.xml" title="Tests regex-syntax">misc -&gt; regex-syntax</a>
+                  </th>
+                  <th>0</th>
+                  <th>0</th>
+                  <td>0</td>
+                  <td>0</td>
+                  <th>987</th>
+                  <td>987</td>
+                  <td>0</td>
+                  <td>987</td>
+               </tr>
+               <tr>
+                  <th>
+                     <a href="https://dvcs.w3.org/hg/xslt30-test/file/tip/tests/misc/regex/_regex-test-set.xml" title="Tests regex">misc -&gt; regex</a>
+                  </th>
+                  <th>0</th>
+                  <th>49</th>
+                  <td>0</td>
+                  <td>49</td>
+                  <th>49</th>
+                  <td>0</td>
+                  <td>0</td>
+                  <td>49</td>
+               </tr>
+               <tr>
+                  <th>
+                     <a href="https://dvcs.w3.org/hg/xslt30-test/file/tip/tests/misc/whitespace/_whitespace-test-set.xml" title="Tests whitespace">misc -&gt; whitespace</a>
+                  </th>
+                  <th>25</th>
+                  <th>28</th>
+                  <td>0</td>
+                  <td>3</td>
+                  <th>28</th>
+                  <td>0</td>
+                  <td>0</td>
+                  <td>28</td>
+               </tr>
+               <tr>
+                  <th>
+                     <a href="https://dvcs.w3.org/hg/xslt30-test/file/tip/tests/misc/xml-version/_xml-version-test-set.xml" title=" Tests support for XML 1.1. Note that the test catalog itself is an XML 1.0&#xA;      document. ">misc -&gt; xml-version</a>
+                  </th>
+                  <th>15</th>
+                  <th>34</th>
+                  <td>0</td>
+                  <td>19</td>
+                  <th>42</th>
+                  <td>8</td>
+                  <td>0</td>
+                  <td>42</td>
+               </tr>
+               <tr>
+                  <th>
+                     <a href="https://dvcs.w3.org/hg/xslt30-test/file/tip/tests/misc/xslt-compat/_xslt-compat-test-set.xml" title="Tests xslt-compat">misc -&gt; xslt-compat</a>
+                  </th>
+                  <th>0</th>
+                  <th>13</th>
+                  <td>0</td>
+                  <td>13</td>
+                  <th>13</th>
+                  <td>0</td>
+                  <td>0</td>
+                  <td>13</td>
+               </tr>
+               <tr>
+                  <th>
+                     <a href="https://dvcs.w3.org/hg/xslt30-test/file/tip/tests/sandp/xp-striding-climbing-consuming/_xp-striding-climbing-consumingA-test-set.xml" title="&#xA;                    CP: Striding, RP: Climbing, RS: Consuming&#xA;                    Attribute, namespace, parent or ancestor(-or-self) axis on child, descendant(-or-self) axis selecting elements is climbing and remains consuming&#xA;                ">sandp -&gt; xp-striding-climbing-consumingA</a>
+                  </th>
+                  <th>0</th>
+                  <th>0</th>
+                  <td>0</td>
+                  <td>0</td>
+                  <th>35</th>
+                  <td>35</td>
+                  <td>0</td>
+                  <td>35</td>
+               </tr>
+               <tr>
+                  <th>
+                     <a href="https://dvcs.w3.org/hg/xslt30-test/file/tip/tests/sandp/xp-striding-climbing-consuming/_xp-striding-climbing-consumingB-test-set.xml" title="&#xA;                    CP: Striding, RP: Climbing, RS: Consuming&#xA;                    Parent or ancestor(-or-self) axis on child axis selecting non U{element, document}} is climbing and remains consuming, provided rh side selects U{element, document}&#xA;                ">sandp -&gt; xp-striding-climbing-consumingB</a>
+                  </th>
+                  <th>0</th>
+                  <th>0</th>
+                  <td>0</td>
+                  <td>0</td>
+                  <th>23</th>
+                  <td>23</td>
+                  <td>0</td>
+                  <td>23</td>
+               </tr>
+               <tr>
+                  <th>
+                     <a href="https://dvcs.w3.org/hg/xslt30-test/file/tip/tests/sandp/xp-striding-climbing-motionless/_xp-striding-climbing-motionlessA-test-set.xml" title="&#xA;                    CP: Striding, RP: Climbing, RS: Motionless&#xA;                    Climbing axis parent, ancestor or ancestor-or-self on self or climbing axis is climbing and motionless&#xA;                ">sandp -&gt; xp-striding-climbing-motionlessA</a>
+                  </th>
+                  <th>0</th>
+                  <th>0</th>
+                  <td>0</td>
+                  <td>0</td>
+                  <th>85</th>
+                  <td>85</td>
+                  <td>0</td>
+                  <td>85</td>
+               </tr>
+               <tr>
+                  <th>
+                     <a href="https://dvcs.w3.org/hg/xslt30-test/file/tip/tests/sandp/xp-striding-climbing-motionless/_xp-striding-climbing-motionlessB-test-set.xml" title="&#xA;                    CP: Striding, RP: Climbing, RS: Motionless&#xA;                    Self axis on climbing axis, provided node type is same, inherits the climbing axis: climbing and motionless&#xA;                ">sandp -&gt; xp-striding-climbing-motionlessB</a>
+                  </th>
+                  <th>0</th>
+                  <th>0</th>
+                  <td>0</td>
+                  <td>0</td>
+                  <th>70</th>
+                  <td>70</td>
+                  <td>0</td>
+                  <td>70</td>
+               </tr>
+               <tr>
+                  <th>
+                     <a href="https://dvcs.w3.org/hg/xslt30-test/file/tip/tests/sandp/xp-striding-climbing-motionless/_xp-striding-climbing-motionlessC-test-set.xml" title="&#xA;                    CP: Striding, RP: Climbing, RS: Motionless&#xA;                    Climbing axis attribute, namespace on self or climbing axis with U{element}} is climbing and motionless&#xA;                ">sandp -&gt; xp-striding-climbing-motionlessC</a>
+                  </th>
+                  <th>0</th>
+                  <th>0</th>
+                  <td>0</td>
+                  <td>0</td>
+                  <th>32</th>
+                  <td>32</td>
+                  <td>0</td>
+                  <td>32</td>
+               </tr>
+               <tr>
+                  <th>
+                     <a href="https://dvcs.w3.org/hg/xslt30-test/file/tip/tests/sandp/xp-striding-crawling-consuming/_xp-striding-crawling-consumingA-test-set.xml" title="&#xA;                    CP: Striding, RP: Crawling, RS: Consuming&#xA;                    A descendant(-or-self) axis on a child or descendant(-or-self) axis is crawling and consuming (scanning expression)&#xA;                ">sandp -&gt; xp-striding-crawling-consumingA</a>
+                  </th>
+                  <th>0</th>
+                  <th>0</th>
+                  <td>0</td>
+                  <td>0</td>
+                  <th>34</th>
+                  <td>34</td>
+                  <td>0</td>
+                  <td>34</td>
+               </tr>
+               <tr>
+                  <th>
+                     <a href="https://dvcs.w3.org/hg/xslt30-test/file/tip/tests/sandp/xp-striding-crawling-consuming/_xp-striding-crawling-consumingB-test-set.xml" title="&#xA;                    CP: Striding, RP: Crawling, RS: Consuming&#xA;                    A child axis on a descendant(-or-self) axis is crawling and consuming (scanning expression)&#xA;                ">sandp -&gt; xp-striding-crawling-consumingB</a>
+                  </th>
+                  <th>0</th>
+                  <th>0</th>
+                  <td>0</td>
+                  <td>0</td>
+                  <th>16</th>
+                  <td>16</td>
+                  <td>0</td>
+                  <td>16</td>
+               </tr>
+               <tr>
+                  <th>
+                     <a href="https://dvcs.w3.org/hg/xslt30-test/file/tip/tests/sandp/xp-striding-crawling-consuming/_xp-striding-crawling-consumingC-test-set.xml" title="&#xA;                    CP: Striding, RP: Crawling, RS: Consuming&#xA;                    A self axis on a descendant(-or-self) axis is crawling and consuming&#xA;                ">sandp -&gt; xp-striding-crawling-consumingC</a>
+                  </th>
+                  <th>0</th>
+                  <th>0</th>
+                  <td>0</td>
+                  <td>0</td>
+                  <th>16</th>
+                  <td>16</td>
+                  <td>0</td>
+                  <td>16</td>
+               </tr>
+               <tr>
+                  <th>
+                     <a href="https://dvcs.w3.org/hg/xslt30-test/file/tip/tests/sandp/xp-striding-grounded-consuming/_xp-striding-grounded-consumingA-test-set.xml" title="&#xA;                    CP: Striding, RP: Grounded, RS: Consuming&#xA;                    Attribute or namespace axis on child or descendant(-or-self) axis that is not in U{element}} is grounded (selects nothing) and remains consuming&#xA;                ">sandp -&gt; xp-striding-grounded-consumingA</a>
+                  </th>
+                  <th>0</th>
+                  <th>0</th>
+                  <td>0</td>
+                  <td>0</td>
+                  <th>18</th>
+                  <td>18</td>
+                  <td>0</td>
+                  <td>18</td>
+               </tr>
+               <tr>
+                  <th>
+                     <a href="https://dvcs.w3.org/hg/xslt30-test/file/tip/tests/sandp/xp-striding-grounded-consuming/_xp-striding-grounded-consumingB-test-set.xml" title="&#xA;                    CP: Striding, RP: Grounded, RS: Consuming&#xA;                    Self axis selecting other node-type on child, descendant(-or-self) etc axis is grounded (selects nothing) and remains consuming&#xA;                ">sandp -&gt; xp-striding-grounded-consumingB</a>
+                  </th>
+                  <th>0</th>
+                  <th>0</th>
+                  <td>0</td>
+                  <td>0</td>
+                  <th>58</th>
+                  <td>58</td>
+                  <td>0</td>
+                  <td>58</td>
+               </tr>
+               <tr>
+                  <th>
+                     <a href="https://dvcs.w3.org/hg/xslt30-test/file/tip/tests/sandp/xp-striding-grounded-consuming/_xp-striding-grounded-consumingC-test-set.xml" title="&#xA;                    CP: Striding, RP: Grounded, RS: Consuming&#xA;                    Any axis with nodetest that never selects anything on a child or descendant(-or-self) axis is grounded (selects nothing) and remains consuming&#xA;                ">sandp -&gt; xp-striding-grounded-consumingC</a>
+                  </th>
+                  <th>0</th>
+                  <th>0</th>
+                  <td>0</td>
+                  <td>0</td>
+                  <th>53</th>
+                  <td>53</td>
+                  <td>0</td>
+                  <td>53</td>
+               </tr>
+               <tr>
+                  <th>
+                     <a href="https://dvcs.w3.org/hg/xslt30-test/file/tip/tests/sandp/xp-striding-grounded-motionless/_xp-striding-grounded-motionlessA-test-set.xml" title="&#xA;                    CP: Striding, RP: Grounded, RS: Motionless&#xA;                    Any step expression on empty selection is always grounded&#xA;                ">sandp -&gt; xp-striding-grounded-motionlessA</a>
+                  </th>
+                  <th>0</th>
+                  <th>0</th>
+                  <td>0</td>
+                  <td>0</td>
+                  <th>87</th>
+                  <td>87</td>
+                  <td>0</td>
+                  <td>87</td>
+               </tr>
+               <tr>
+                  <th>
+                     <a href="https://dvcs.w3.org/hg/xslt30-test/file/tip/tests/sandp/xp-striding-grounded-motionless/_xp-striding-grounded-motionlessB-test-set.xml" title="&#xA;                    CP: Striding, RP: Grounded, RS: Motionless&#xA;                    Step expressions child, namespace, attribute and descendant on a childless node kind selects nothing, is always grounded&#xA;                ">sandp -&gt; xp-striding-grounded-motionlessB</a>
+                  </th>
+                  <th>0</th>
+                  <th>0</th>
+                  <td>0</td>
+                  <td>0</td>
+                  <th>43</th>
+                  <td>43</td>
+                  <td>0</td>
+                  <td>43</td>
+               </tr>
+               <tr>
+                  <th>
+                     <a href="https://dvcs.w3.org/hg/xslt30-test/file/tip/tests/sandp/xp-striding-grounded-motionless/_xp-striding-grounded-motionlessC-test-set.xml" title="&#xA;                    CP: Striding, RP: Grounded, RS: Motionless&#xA;                    Self-axis that changes axes selects nothing, so grounded/motionless&#xA;                ">sandp -&gt; xp-striding-grounded-motionlessC</a>
+                  </th>
+                  <th>0</th>
+                  <th>0</th>
+                  <td>0</td>
+                  <td>0</td>
+                  <th>19</th>
+                  <td>19</td>
+                  <td>0</td>
+                  <td>19</td>
+               </tr>
+               <tr>
+                  <th>
+                     <a href="https://dvcs.w3.org/hg/xslt30-test/file/tip/tests/sandp/xp-striding-grounded-motionless/_xp-striding-grounded-motionlessD-test-set.xml" title="&#xA;                    CP: Striding, RP: Grounded, RS: Motionless&#xA;                    Descendant-or-self on childless motionless nodes with different node type selects nothing, so grounded/motionless&#xA;                ">sandp -&gt; xp-striding-grounded-motionlessD</a>
+                  </th>
+                  <th>0</th>
+                  <th>0</th>
+                  <td>0</td>
+                  <td>0</td>
+                  <th>33</th>
+                  <td>33</td>
+                  <td>0</td>
+                  <td>33</td>
+               </tr>
+               <tr>
+                  <th>
+                     <a href="https://dvcs.w3.org/hg/xslt30-test/file/tip/tests/sandp/xp-striding-grounded-motionless/_xp-striding-grounded-motionlessE-test-set.xml" title="&#xA;                    CP: Striding, RP: Grounded, RS: Motionless&#xA;                    ancestor, parent, following, preceding etc axes on document node selects nothing, so grounded/motionless&#xA;                ">sandp -&gt; xp-striding-grounded-motionlessE</a>
+                  </th>
+                  <th>0</th>
+                  <th>0</th>
+                  <td>0</td>
+                  <td>0</td>
+                  <th>4</th>
+                  <td>4</td>
+                  <td>0</td>
+                  <td>4</td>
+               </tr>
+               <tr>
+                  <th>
+                     <a href="https://dvcs.w3.org/hg/xslt30-test/file/tip/tests/sandp/xp-striding-grounded-motionless/_xp-striding-grounded-motionlessF-test-set.xml" title="&#xA;                    CP: Striding, RP: Grounded, RS: Motionless&#xA;                    Self axis on parent or ancestor axis which is not on U{element, document}} selects nothingness&#xA;                ">sandp -&gt; xp-striding-grounded-motionlessF</a>
+                  </th>
+                  <th>0</th>
+                  <th>0</th>
+                  <td>0</td>
+                  <td>0</td>
+                  <th>18</th>
+                  <td>18</td>
+                  <td>0</td>
+                  <td>18</td>
+               </tr>
+               <tr>
+                  <th>
+                     <a href="https://dvcs.w3.org/hg/xslt30-test/file/tip/tests/sandp/xp-striding-grounded-motionless/_xp-striding-grounded-motionlessG-test-set.xml" title="&#xA;                    CP: Striding, RP: Grounded, RS: Motionless&#xA;                    Self axis on ancestor-or-self axis which is not on U{element, document}} and not on same axis as lh side selects nothingness&#xA;                ">sandp -&gt; xp-striding-grounded-motionlessG</a>
+                  </th>
+                  <th>0</th>
+                  <th>0</th>
+                  <td>0</td>
+                  <td>0</td>
+                  <th>19</th>
+                  <td>19</td>
+                  <td>0</td>
+                  <td>19</td>
+               </tr>
+               <tr>
+                  <th>
+                     <a href="https://dvcs.w3.org/hg/xslt30-test/file/tip/tests/sandp/xp-striding-grounded-motionless/_xp-striding-grounded-motionlessH-test-set.xml" title="&#xA;                    CP: Striding, RP: Grounded, RS: Motionless&#xA;                    Ancestor-or-self axis not selecting U{element, document}} from self or ancestor-or-self axis selects nothing (if of unequal nodes), so grounded/motionless&#xA;                ">sandp -&gt; xp-striding-grounded-motionlessH</a>
+                  </th>
+                  <th>0</th>
+                  <th>0</th>
+                  <td>0</td>
+                  <td>0</td>
+                  <th>38</th>
+                  <td>38</td>
+                  <td>0</td>
+                  <td>38</td>
+               </tr>
+               <tr>
+                  <th>
+                     <a href="https://dvcs.w3.org/hg/xslt30-test/file/tip/tests/sandp/xp-striding-roaming-free-ranging/_xp-striding-roaming-free-rangingA-test-set.xml" title="&#xA;                    CP: Striding, RP: Roaming, RS: Free-ranging&#xA;                    Any step expression selecting streamed nodes on the following(-sibling) or preceding(-sibling) axis is roaming and free-ranging&#xA;                ">sandp -&gt; xp-striding-roaming-free-rangingA</a>
+                  </th>
+                  <th>0</th>
+                  <th>0</th>
+                  <td>0</td>
+                  <td>0</td>
+                  <th>52</th>
+                  <td>52</td>
+                  <td>0</td>
+                  <td>52</td>
+               </tr>
+               <tr>
+                  <th>
+                     <a href="https://dvcs.w3.org/hg/xslt30-test/file/tip/tests/sandp/xp-striding-roaming-free-ranging/_xp-striding-roaming-free-rangingB-test-set.xml" title="&#xA;                    CP: Striding, RP: Roaming, RS: Free-ranging&#xA;                    Any step expression selecting streamed nodes on the following(-sibling) or preceding(-sibling) axis is roaming and free-ranging&#xA;                ">sandp -&gt; xp-striding-roaming-free-rangingB</a>
+                  </th>
+                  <th>0</th>
+                  <th>0</th>
+                  <td>0</td>
+                  <td>0</td>
+                  <th>81</th>
+                  <td>81</td>
+                  <td>0</td>
+                  <td>81</td>
+               </tr>
+               <tr>
+                  <th>
+                     <a href="https://dvcs.w3.org/hg/xslt30-test/file/tip/tests/sandp/xp-striding-roaming-free-ranging/_xp-striding-roaming-free-rangingC-test-set.xml" title="&#xA;                    CP: Striding, RP: Roaming, RS: Free-ranging&#xA;                    A child or descendant(-or-self) selection after a climbing expr that selects U{element, document}} is roaming/free-ranging&#xA;                ">sandp -&gt; xp-striding-roaming-free-rangingC</a>
+                  </th>
+                  <th>0</th>
+                  <th>0</th>
+                  <td>0</td>
+                  <td>0</td>
+                  <th>27</th>
+                  <td>27</td>
+                  <td>0</td>
+                  <td>27</td>
+               </tr>
+               <tr>
+                  <th>
+                     <a href="https://dvcs.w3.org/hg/xslt30-test/file/tip/tests/sandp/xp-striding-striding-consuming/_xp-striding-striding-consumingA-test-set.xml" title="&#xA;                    CP: Striding, RP: Striding, RS: Consuming&#xA;                    Child axis on child or self axis with striding context selecting elements is striding and consuming&#xA;                ">sandp -&gt; xp-striding-striding-consumingA</a>
+                  </th>
+                  <th>0</th>
+                  <th>0</th>
+                  <td>0</td>
+                  <td>0</td>
+                  <th>26</th>
+                  <td>26</td>
+                  <td>0</td>
+                  <td>26</td>
+               </tr>
+               <tr>
+                  <th>
+                     <a href="https://dvcs.w3.org/hg/xslt30-test/file/tip/tests/sandp/xp-striding-striding-consuming/_xp-striding-striding-consumingB-test-set.xml" title="&#xA;                    CP: Striding, RP: Striding, RS: Consuming&#xA;                    Self axis on child axis with striding context selecting elements is striding and consuming&#xA;                ">sandp -&gt; xp-striding-striding-consumingB</a>
+                  </th>
+                  <th>0</th>
+                  <th>0</th>
+                  <td>0</td>
+                  <td>0</td>
+                  <th>18</th>
+                  <td>18</td>
+                  <td>0</td>
+                  <td>18</td>
+               </tr>
+               <tr>
+                  <th>
+                     <a href="https://dvcs.w3.org/hg/xslt30-test/file/tip/tests/sandp/xp-striding-striding-motionless/_xp-striding-striding-motionlessA-test-set.xml" title="&#xA;                    CP: Striding, RP: Striding, RS: Motionless&#xA;                    Self axis on self axis remains striding and motionless if both sides select the same nodes&#xA;                ">sandp -&gt; xp-striding-striding-motionlessA</a>
+                  </th>
+                  <th>0</th>
+                  <th>0</th>
+                  <td>0</td>
+                  <td>0</td>
+                  <th>14</th>
+                  <td>14</td>
+                  <td>0</td>
+                  <td>14</td>
+               </tr>
+               <tr>
+                  <th>
+                     <a href="https://dvcs.w3.org/hg/xslt30-test/file/tip/tests/strm/sf-avg/_sf-avg-test-set.xml" title="avg() function with streaming">strm -&gt; sf-avg</a>
+                  </th>
+                  <th>0</th>
+                  <th>0</th>
+                  <td>0</td>
+                  <td>0</td>
+                  <th>33</th>
+                  <td>33</td>
+                  <td>0</td>
+                  <td>33</td>
+               </tr>
+               <tr>
+                  <th>
+                     <a href="https://dvcs.w3.org/hg/xslt30-test/file/tip/tests/strm/sf-boolean/_sf-boolean-test-set.xml" title="boolean() function with streaming. ">strm -&gt; sf-boolean</a>
+                  </th>
+                  <th>0</th>
+                  <th>0</th>
+                  <td>0</td>
+                  <td>0</td>
+                  <th>27</th>
+                  <td>27</td>
+                  <td>0</td>
+                  <td>27</td>
+               </tr>
+               <tr>
+                  <th>
+                     <a href="https://dvcs.w3.org/hg/xslt30-test/file/tip/tests/strm/sf-codepoints-to-string/_sf-codepoints-to-string-test-set.xml" title="Tests the xsl:stream instruction introduced in XSLT 3.0 with fn:codepoints-to-string().">strm -&gt; sf-codepoints-to-string</a>
+                  </th>
+                  <th>0</th>
+                  <th>0</th>
+                  <td>0</td>
+                  <td>0</td>
+                  <th>4</th>
+                  <td>4</td>
+                  <td>0</td>
+                  <td>4</td>
+               </tr>
+               <tr>
+                  <th>
+                     <a href="https://dvcs.w3.org/hg/xslt30-test/file/tip/tests/strm/sf-copy-of/_sf-copy-of-test-set.xml" title="fn:copy-of() with streaming">strm -&gt; sf-copy-of</a>
+                  </th>
+                  <th>0</th>
+                  <th>0</th>
+                  <td>0</td>
+                  <td>0</td>
+                  <th>10</th>
+                  <td>10</td>
+                  <td>0</td>
+                  <td>10</td>
+               </tr>
+               <tr>
+                  <th>
+                     <a href="https://dvcs.w3.org/hg/xslt30-test/file/tip/tests/strm/sf-count/_sf-count-test-set.xml" title="count() function with streaming">strm -&gt; sf-count</a>
+                  </th>
+                  <th>0</th>
+                  <th>0</th>
+                  <td>0</td>
+                  <td>0</td>
+                  <th>23</th>
+                  <td>23</td>
+                  <td>0</td>
+                  <td>23</td>
+               </tr>
+               <tr>
+                  <th>
+                     <a href="https://dvcs.w3.org/hg/xslt30-test/file/tip/tests/strm/sf-current/_sf-current-test-set.xml" title="current() function with streaming">strm -&gt; sf-current</a>
+                  </th>
+                  <th>0</th>
+                  <th>0</th>
+                  <td>0</td>
+                  <td>0</td>
+                  <th>7</th>
+                  <td>7</td>
+                  <td>0</td>
+                  <td>7</td>
+               </tr>
+               <tr>
+                  <th>
+                     <a href="https://dvcs.w3.org/hg/xslt30-test/file/tip/tests/strm/sf-deep-equal/_sf-deep-equal-test-set.xml" title="deep-equal() function with streaming">strm -&gt; sf-deep-equal</a>
+                  </th>
+                  <th>0</th>
+                  <th>0</th>
+                  <td>0</td>
+                  <td>0</td>
+                  <th>35</th>
+                  <td>35</td>
+                  <td>0</td>
+                  <td>35</td>
+               </tr>
+               <tr>
+                  <th>
+                     <a href="https://dvcs.w3.org/hg/xslt30-test/file/tip/tests/strm/sf-distinct-values/_sf-distinct-values-test-set.xml" title="Tests the xsl:stream instruction with distinct-values()">strm -&gt; sf-distinct-values</a>
+                  </th>
+                  <th>0</th>
+                  <th>0</th>
+                  <td>0</td>
+                  <td>0</td>
+                  <th>11</th>
+                  <td>11</td>
+                  <td>0</td>
+                  <td>11</td>
+               </tr>
+               <tr>
+                  <th>
+                     <a href="https://dvcs.w3.org/hg/xslt30-test/file/tip/tests/strm/sf-empty/_sf-empty-test-set.xml" title="empty() function with streaming">strm -&gt; sf-empty</a>
+                  </th>
+                  <th>0</th>
+                  <th>0</th>
+                  <td>0</td>
+                  <td>0</td>
+                  <th>23</th>
+                  <td>23</td>
+                  <td>0</td>
+                  <td>23</td>
+               </tr>
+               <tr>
+                  <th>
+                     <a href="https://dvcs.w3.org/hg/xslt30-test/file/tip/tests/strm/sf-exactly-one/_sf-exactly-one-test-set.xml" title="exactly-one() function with streaming">strm -&gt; sf-exactly-one</a>
+                  </th>
+                  <th>0</th>
+                  <th>0</th>
+                  <td>0</td>
+                  <td>0</td>
+                  <th>8</th>
+                  <td>8</td>
+                  <td>0</td>
+                  <td>8</td>
+               </tr>
+               <tr>
+                  <th>
+                     <a href="https://dvcs.w3.org/hg/xslt30-test/file/tip/tests/strm/sf-exists/_sf-exists-test-set.xml" title="exists() function with streaming">strm -&gt; sf-exists</a>
+                  </th>
+                  <th>0</th>
+                  <th>0</th>
+                  <td>0</td>
+                  <td>0</td>
+                  <th>23</th>
+                  <td>23</td>
+                  <td>0</td>
+                  <td>23</td>
+               </tr>
+               <tr>
+                  <th>
+                     <a href="https://dvcs.w3.org/hg/xslt30-test/file/tip/tests/strm/sf-filter/_sf-filter-test-set.xml" title="fn:filter() function with streaming">strm -&gt; sf-filter</a>
+                  </th>
+                  <th>0</th>
+                  <th>0</th>
+                  <td>0</td>
+                  <td>0</td>
+                  <th>3</th>
+                  <td>3</td>
+                  <td>0</td>
+                  <td>3</td>
+               </tr>
+               <tr>
+                  <th>
+                     <a href="https://dvcs.w3.org/hg/xslt30-test/file/tip/tests/strm/sf-fold-left/_sf-fold-left-test-set.xml" title="fold-left() function with streaming">strm -&gt; sf-fold-left</a>
+                  </th>
+                  <th>0</th>
+                  <th>0</th>
+                  <td>0</td>
+                  <td>0</td>
+                  <th>20</th>
+                  <td>20</td>
+                  <td>0</td>
+                  <td>20</td>
+               </tr>
+               <tr>
+                  <th>
+                     <a href="https://dvcs.w3.org/hg/xslt30-test/file/tip/tests/strm/sf-fold-right/_sf-fold-right-test-set.xml" title="&#xA;   &#x9;fold-right() function with streaming: the function is streamable if the operand&#xA;   &#x9;is grounded, despite being processed from right-to-left: see bug 24125.&#xA;   ">strm -&gt; sf-fold-right</a>
+                  </th>
+                  <th>0</th>
+                  <th>0</th>
+                  <td>0</td>
+                  <td>0</td>
+                  <th>1</th>
+                  <td>1</td>
+                  <td>0</td>
+                  <td>1</td>
+               </tr>
+               <tr>
+                  <th>
+                     <a href="https://dvcs.w3.org/hg/xslt30-test/file/tip/tests/strm/sf-has-children/_sf-has-children-test-set.xml" title="has-children() function with streaming">strm -&gt; sf-has-children</a>
+                  </th>
+                  <th>0</th>
+                  <th>0</th>
+                  <td>0</td>
+                  <td>0</td>
+                  <th>1</th>
+                  <td>1</td>
+                  <td>0</td>
+                  <td>1</td>
+               </tr>
+               <tr>
+                  <th>
+                     <a href="https://dvcs.w3.org/hg/xslt30-test/file/tip/tests/strm/sf-head/_sf-head-test-set.xml" title="head() function with streaming">strm -&gt; sf-head</a>
+                  </th>
+                  <th>0</th>
+                  <th>0</th>
+                  <td>0</td>
+                  <td>0</td>
+                  <th>22</th>
+                  <td>22</td>
+                  <td>0</td>
+                  <td>22</td>
+               </tr>
+               <tr>
+                  <th>
+                     <a href="https://dvcs.w3.org/hg/xslt30-test/file/tip/tests/strm/sf-index-of/_sf-index-of-test-set.xml" title="Tests xsl:stream instruction introduced in XSLT 3.0 with xsl:result-document.">strm -&gt; sf-index-of</a>
+                  </th>
+                  <th>0</th>
+                  <th>0</th>
+                  <td>0</td>
+                  <td>0</td>
+                  <th>9</th>
+                  <td>9</td>
+                  <td>0</td>
+                  <td>9</td>
+               </tr>
+               <tr>
+                  <th>
+                     <a href="https://dvcs.w3.org/hg/xslt30-test/file/tip/tests/strm/sf-innermost/_sf-innermost-test-set.xml" title="innermost() function with streaming">strm -&gt; sf-innermost</a>
+                  </th>
+                  <th>0</th>
+                  <th>0</th>
+                  <td>0</td>
+                  <td>0</td>
+                  <th>2</th>
+                  <td>2</td>
+                  <td>0</td>
+                  <td>2</td>
+               </tr>
+               <tr>
+                  <th>
+                     <a href="https://dvcs.w3.org/hg/xslt30-test/file/tip/tests/strm/sf-insert-before/_sf-insert-before-test-set.xml" title="insert-before() function with streaming">strm -&gt; sf-insert-before</a>
+                  </th>
+                  <th>0</th>
+                  <th>0</th>
+                  <td>0</td>
+                  <td>0</td>
+                  <th>44</th>
+                  <td>44</td>
+                  <td>0</td>
+                  <td>44</td>
+               </tr>
+               <tr>
+                  <th>
+                     <a href="https://dvcs.w3.org/hg/xslt30-test/file/tip/tests/strm/sf-max/_sf-max-test-set.xml" title="max() function with streaming">strm -&gt; sf-max</a>
+                  </th>
+                  <th>0</th>
+                  <th>0</th>
+                  <td>0</td>
+                  <td>0</td>
+                  <th>38</th>
+                  <td>38</td>
+                  <td>0</td>
+                  <td>38</td>
+               </tr>
+               <tr>
+                  <th>
+                     <a href="https://dvcs.w3.org/hg/xslt30-test/file/tip/tests/strm/sf-min/_sf-min-test-set.xml" title="min() function with streaming">strm -&gt; sf-min</a>
+                  </th>
+                  <th>0</th>
+                  <th>0</th>
+                  <td>0</td>
+                  <td>0</td>
+                  <th>38</th>
+                  <td>38</td>
+                  <td>0</td>
+                  <td>38</td>
+               </tr>
+               <tr>
+                  <th>
+                     <a href="https://dvcs.w3.org/hg/xslt30-test/file/tip/tests/strm/sf-not/_sf-not-test-set.xml" title="not() function with streaming. ">strm -&gt; sf-not</a>
+                  </th>
+                  <th>0</th>
+                  <th>0</th>
+                  <td>0</td>
+                  <td>0</td>
+                  <th>27</th>
+                  <td>27</td>
+                  <td>0</td>
+                  <td>27</td>
+               </tr>
+               <tr>
+                  <th>
+                     <a href="https://dvcs.w3.org/hg/xslt30-test/file/tip/tests/strm/sf-one-or-more/_sf-one-or-more-test-set.xml" title="one-or-more() function with streaming">strm -&gt; sf-one-or-more</a>
+                  </th>
+                  <th>0</th>
+                  <th>0</th>
+                  <td>0</td>
+                  <td>0</td>
+                  <th>30</th>
+                  <td>30</td>
+                  <td>0</td>
+                  <td>30</td>
+               </tr>
+               <tr>
+                  <th>
+                     <a href="https://dvcs.w3.org/hg/xslt30-test/file/tip/tests/strm/sf-outermost/_sf-outermost-test-set.xml" title="outermost() function with streaming">strm -&gt; sf-outermost</a>
+                  </th>
+                  <th>0</th>
+                  <th>0</th>
+                  <td>0</td>
+                  <td>0</td>
+                  <th>26</th>
+                  <td>26</td>
+                  <td>0</td>
+                  <td>26</td>
+               </tr>
+               <tr>
+                  <th>
+                     <a href="https://dvcs.w3.org/hg/xslt30-test/file/tip/tests/strm/sf-remove/_sf-remove-test-set.xml" title="remove() function with streaming">strm -&gt; sf-remove</a>
+                  </th>
+                  <th>0</th>
+                  <th>0</th>
+                  <td>0</td>
+                  <td>0</td>
+                  <th>22</th>
+                  <td>22</td>
+                  <td>0</td>
+                  <td>22</td>
+               </tr>
+               <tr>
+                  <th>
+                     <a href="https://dvcs.w3.org/hg/xslt30-test/file/tip/tests/strm/sf-reverse/_sf-reverse-test-set.xml" title="reverse() function with streaming">strm -&gt; sf-reverse</a>
+                  </th>
+                  <th>0</th>
+                  <th>0</th>
+                  <td>0</td>
+                  <td>0</td>
+                  <th>2</th>
+                  <td>2</td>
+                  <td>0</td>
+                  <td>2</td>
+               </tr>
+               <tr>
+                  <th>
+                     <a href="https://dvcs.w3.org/hg/xslt30-test/file/tip/tests/strm/sf-snapshot/_sf-snapshot-test-set.xml" title="Tests the snapshot() function under streaming">strm -&gt; sf-snapshot</a>
+                  </th>
+                  <th>0</th>
+                  <th>0</th>
+                  <td>0</td>
+                  <td>0</td>
+                  <th>24</th>
+                  <td>24</td>
+                  <td>0</td>
+                  <td>24</td>
+               </tr>
+               <tr>
+                  <th>
+                     <a href="https://dvcs.w3.org/hg/xslt30-test/file/tip/tests/strm/sf-string-join/_sf-string-join-test-set.xml" title="Tests the xsl:stream instruction with string-join()">strm -&gt; sf-string-join</a>
+                  </th>
+                  <th>0</th>
+                  <th>0</th>
+                  <td>0</td>
+                  <td>0</td>
+                  <th>3</th>
+                  <td>3</td>
+                  <td>0</td>
+                  <td>3</td>
+               </tr>
+               <tr>
+                  <th>
+                     <a href="https://dvcs.w3.org/hg/xslt30-test/file/tip/tests/strm/sf-subsequence/_sf-subsequence-test-set.xml" title="subsequence() function with streaming">strm -&gt; sf-subsequence</a>
+                  </th>
+                  <th>0</th>
+                  <th>0</th>
+                  <td>0</td>
+                  <td>0</td>
+                  <th>44</th>
+                  <td>44</td>
+                  <td>0</td>
+                  <td>44</td>
+               </tr>
+               <tr>
+                  <th>
+                     <a href="https://dvcs.w3.org/hg/xslt30-test/file/tip/tests/strm/sf-sum/_sf-sum-test-set.xml" title="sum() function with streaming">strm -&gt; sf-sum</a>
+                  </th>
+                  <th>0</th>
+                  <th>0</th>
+                  <td>0</td>
+                  <td>0</td>
+                  <th>35</th>
+                  <td>35</td>
+                  <td>0</td>
+                  <td>35</td>
+               </tr>
+               <tr>
+                  <th>
+                     <a href="https://dvcs.w3.org/hg/xslt30-test/file/tip/tests/strm/sf-tail/_sf-tail-test-set.xml" title="tail() function with streaming">strm -&gt; sf-tail</a>
+                  </th>
+                  <th>0</th>
+                  <th>0</th>
+                  <td>0</td>
+                  <td>0</td>
+                  <th>22</th>
+                  <td>22</td>
+                  <td>0</td>
+                  <td>22</td>
+               </tr>
+               <tr>
+                  <th>
+                     <a href="https://dvcs.w3.org/hg/xslt30-test/file/tip/tests/strm/sf-trace/_sf-trace-test-set.xml" title="trace() function with streaming">strm -&gt; sf-trace</a>
+                  </th>
+                  <th>0</th>
+                  <th>0</th>
+                  <td>0</td>
+                  <td>0</td>
+                  <th>22</th>
+                  <td>22</td>
+                  <td>0</td>
+                  <td>22</td>
+               </tr>
+               <tr>
+                  <th>
+                     <a href="https://dvcs.w3.org/hg/xslt30-test/file/tip/tests/strm/sf-unordered/_sf-unordered-test-set.xml" title="unordered() function with streaming">strm -&gt; sf-unordered</a>
+                  </th>
+                  <th>0</th>
+                  <th>0</th>
+                  <td>0</td>
+                  <td>0</td>
+                  <th>22</th>
+                  <td>22</td>
+                  <td>0</td>
+                  <td>22</td>
+               </tr>
+               <tr>
+                  <th>
+                     <a href="https://dvcs.w3.org/hg/xslt30-test/file/tip/tests/strm/sf-zero-or-one/_sf-zero-or-one-test-set.xml" title="zero-or-one() function with streaming">strm -&gt; sf-zero-or-one</a>
+                  </th>
+                  <th>0</th>
+                  <th>0</th>
+                  <td>0</td>
+                  <td>0</td>
+                  <th>7</th>
+                  <td>7</td>
+                  <td>0</td>
+                  <td>7</td>
+               </tr>
+               <tr>
+                  <th>
+                     <a href="https://dvcs.w3.org/hg/xslt30-test/file/tip/tests/strm/si-LRE/_si-lre-test-set.xml" title="Literal result elements with streaming">strm -&gt; si-LRE</a>
+                  </th>
+                  <th>0</th>
+                  <th>0</th>
+                  <td>0</td>
+                  <td>0</td>
+                  <th>69</th>
+                  <td>69</td>
+                  <td>0</td>
+                  <td>90</td>
+               </tr>
+               <tr>
+                  <th>
+                     <a href="https://dvcs.w3.org/hg/xslt30-test/file/tip/tests/strm/si-apply-imports/_si-apply-imports-test-set.xml" title="xsl:next-match with streaming">strm -&gt; si-apply-imports</a>
+                  </th>
+                  <th>0</th>
+                  <th>0</th>
+                  <td>0</td>
+                  <td>0</td>
+                  <th>3</th>
+                  <td>3</td>
+                  <td>0</td>
+                  <td>3</td>
+               </tr>
+               <tr>
+                  <th>
+                     <a href="https://dvcs.w3.org/hg/xslt30-test/file/tip/tests/strm/si-apply-templates/_si-apply-templates-test-set.xml" title="Tests xsl:stream instruction introduced in XSLT 3.0 with xsl:apply-templates.">strm -&gt; si-apply-templates</a>
+                  </th>
+                  <th>0</th>
+                  <th>0</th>
+                  <td>0</td>
+                  <td>0</td>
+                  <th>5</th>
+                  <td>5</td>
+                  <td>0</td>
+                  <td>5</td>
+               </tr>
+               <tr>
+                  <th>
+                     <a href="https://dvcs.w3.org/hg/xslt30-test/file/tip/tests/strm/si-attribute/_si-attribute-test-set.xml" title="xsl:attribute instruction with streaming">strm -&gt; si-attribute</a>
+                  </th>
+                  <th>0</th>
+                  <th>0</th>
+                  <td>0</td>
+                  <td>0</td>
+                  <th>45</th>
+                  <td>45</td>
+                  <td>0</td>
+                  <td>45</td>
+               </tr>
+               <tr>
+                  <th>
+                     <a href="https://dvcs.w3.org/hg/xslt30-test/file/tip/tests/strm/si-call-template/_si-call-template-test-set.xml" title="xsl:call-template instruction with streaming">strm -&gt; si-call-template</a>
+                  </th>
+                  <th>0</th>
+                  <th>0</th>
+                  <td>0</td>
+                  <td>0</td>
+                  <th>2</th>
+                  <td>2</td>
+                  <td>0</td>
+                  <td>2</td>
+               </tr>
+               <tr>
+                  <th>
+                     <a href="https://dvcs.w3.org/hg/xslt30-test/file/tip/tests/strm/si-choose/_si-choose-test-set.xml" title="xsl:choose and other conditional expressions with streaming">strm -&gt; si-choose</a>
+                  </th>
+                  <th>0</th>
+                  <th>0</th>
+                  <td>0</td>
+                  <td>0</td>
+                  <th>8</th>
+                  <td>8</td>
+                  <td>0</td>
+                  <td>8</td>
+               </tr>
+               <tr>
+                  <th>
+                     <a href="https://dvcs.w3.org/hg/xslt30-test/file/tip/tests/strm/si-copy-of/_si-copy-of-test-set.xml" title="xsl:copy-of with streaming">strm -&gt; si-copy-of</a>
+                  </th>
+                  <th>0</th>
+                  <th>0</th>
+                  <td>0</td>
+                  <td>0</td>
+                  <th>19</th>
+                  <td>19</td>
+                  <td>0</td>
+                  <td>44</td>
+               </tr>
+               <tr>
+                  <th>
+                     <a href="https://dvcs.w3.org/hg/xslt30-test/file/tip/tests/strm/si-copy/_si-copy-test-set.xml" title="xsl:copy with streaming">strm -&gt; si-copy</a>
+                  </th>
+                  <th>0</th>
+                  <th>0</th>
+                  <td>0</td>
+                  <td>0</td>
+                  <th>35</th>
+                  <td>35</td>
+                  <td>0</td>
+                  <td>62</td>
+               </tr>
+               <tr>
+                  <th>
+                     <a href="https://dvcs.w3.org/hg/xslt30-test/file/tip/tests/strm/si-document/_si-document-test-set.xml" title="xsl:document with streaming">strm -&gt; si-document</a>
+                  </th>
+                  <th>0</th>
+                  <th>0</th>
+                  <td>0</td>
+                  <td>0</td>
+                  <th>14</th>
+                  <td>14</td>
+                  <td>0</td>
+                  <td>39</td>
+               </tr>
+               <tr>
+                  <th>
+                     <a href="https://dvcs.w3.org/hg/xslt30-test/file/tip/tests/strm/si-element/_si-element-test-set.xml" title="xsl:element with streaming">strm -&gt; si-element</a>
+                  </th>
+                  <th>0</th>
+                  <th>0</th>
+                  <td>0</td>
+                  <td>0</td>
+                  <th>71</th>
+                  <td>71</td>
+                  <td>0</td>
+                  <td>92</td>
+               </tr>
+               <tr>
+                  <th>
+                     <a href="https://dvcs.w3.org/hg/xslt30-test/file/tip/tests/strm/si-for-each-group/_si-for-each-group-test-set.xml" title="xsl:for-each with streaming">strm -&gt; si-for-each-group</a>
+                  </th>
+                  <th>0</th>
+                  <th>0</th>
+                  <td>0</td>
+                  <td>0</td>
+                  <th>68</th>
+                  <td>68</td>
+                  <td>0</td>
+                  <td>68</td>
+               </tr>
+               <tr>
+                  <th>
+                     <a href="https://dvcs.w3.org/hg/xslt30-test/file/tip/tests/strm/si-for-each/_si-for-each-test-set.xml" title="xsl:for-each with streaming">strm -&gt; si-for-each</a>
+                  </th>
+                  <th>0</th>
+                  <th>0</th>
+                  <td>0</td>
+                  <td>0</td>
+                  <th>19</th>
+                  <td>19</td>
+                  <td>0</td>
+                  <td>19</td>
+               </tr>
+               <tr>
+                  <th>
+                     <a href="https://dvcs.w3.org/hg/xslt30-test/file/tip/tests/strm/si-fork/_si-fork-test-set.xml" title="xsl:value-of instruction with streaming">strm -&gt; si-fork</a>
+                  </th>
+                  <th>0</th>
+                  <th>0</th>
+                  <td>0</td>
+                  <td>0</td>
+                  <th>12</th>
+                  <td>12</td>
+                  <td>0</td>
+                  <td>12</td>
+               </tr>
+               <tr>
+                  <th>
+                     <a href="https://dvcs.w3.org/hg/xslt30-test/file/tip/tests/strm/si-iterate/_si-iterate-test-set.xml" title="xsl:iterate with streaming">strm -&gt; si-iterate</a>
+                  </th>
+                  <th>0</th>
+                  <th>0</th>
+                  <td>0</td>
+                  <td>0</td>
+                  <th>26</th>
+                  <td>26</td>
+                  <td>0</td>
+                  <td>26</td>
+               </tr>
+               <tr>
+                  <th>
+                     <a href="https://dvcs.w3.org/hg/xslt30-test/file/tip/tests/strm/si-map/_si-map-test-set.xml" title="xsl:map with streaming">strm -&gt; si-map</a>
+                  </th>
+                  <th>0</th>
+                  <th>0</th>
+                  <td>0</td>
+                  <td>0</td>
+                  <th>12</th>
+                  <td>12</td>
+                  <td>0</td>
+                  <td>12</td>
+               </tr>
+               <tr>
+                  <th>
+                     <a href="https://dvcs.w3.org/hg/xslt30-test/file/tip/tests/strm/si-merge/_si-merge-test-set.xml" title="xsl:merge instruction with streaming">strm -&gt; si-merge</a>
+                  </th>
+                  <th>0</th>
+                  <th>0</th>
+                  <td>0</td>
+                  <td>0</td>
+                  <th>6</th>
+                  <td>6</td>
+                  <td>0</td>
+                  <td>6</td>
+               </tr>
+               <tr>
+                  <th>
+                     <a href="https://dvcs.w3.org/hg/xslt30-test/file/tip/tests/strm/si-next-match/_si-next-match-test-set.xml" title="xsl:next-match with streaming">strm -&gt; si-next-match</a>
+                  </th>
+                  <th>0</th>
+                  <th>0</th>
+                  <td>0</td>
+                  <td>0</td>
+                  <th>1</th>
+                  <td>1</td>
+                  <td>0</td>
+                  <td>2</td>
+               </tr>
+               <tr>
+                  <th>
+                     <a href="https://dvcs.w3.org/hg/xslt30-test/file/tip/tests/strm/si-on-empty/_si-on-empty-test-set.xml" title="Tests xsl:stream instruction introduced in XSLT 3.0 with xsl:on-empty.">strm -&gt; si-on-empty</a>
+                  </th>
+                  <th>0</th>
+                  <th>0</th>
+                  <td>0</td>
+                  <td>0</td>
+                  <th>33</th>
+                  <td>33</td>
+                  <td>0</td>
+                  <td>33</td>
+               </tr>
+               <tr>
+                  <th>
+                     <a href="https://dvcs.w3.org/hg/xslt30-test/file/tip/tests/strm/si-on-non-empty/_si-on-non-empty-test-set.xml" title="Tests xsl:stream instruction introduced in XSLT 3.0 with xsl:on-non-empty.">strm -&gt; si-on-non-empty</a>
+                  </th>
+                  <th>0</th>
+                  <th>0</th>
+                  <td>0</td>
+                  <td>0</td>
+                  <th>35</th>
+                  <td>35</td>
+                  <td>0</td>
+                  <td>35</td>
+               </tr>
+               <tr>
+                  <th>
+                     <a href="https://dvcs.w3.org/hg/xslt30-test/file/tip/tests/strm/si-result-document/_si-result-document-test-set.xml" title="Tests xsl:stream instruction with xsl:result-document.">strm -&gt; si-result-document</a>
+                  </th>
+                  <th>0</th>
+                  <th>0</th>
+                  <td>0</td>
+                  <td>0</td>
+                  <th>15</th>
+                  <td>15</td>
+                  <td>0</td>
+                  <td>40</td>
+               </tr>
+               <tr>
+                  <th>
+                     <a href="https://dvcs.w3.org/hg/xslt30-test/file/tip/tests/strm/si-try/_si-try-test-set.xml" title="xsl:try/xsl:catch instruction with streaming">strm -&gt; si-try</a>
+                  </th>
+                  <th>0</th>
+                  <th>0</th>
+                  <td>0</td>
+                  <td>0</td>
+                  <th>46</th>
+                  <td>46</td>
+                  <td>0</td>
+                  <td>46</td>
+               </tr>
+               <tr>
+                  <th>
+                     <a href="https://dvcs.w3.org/hg/xslt30-test/file/tip/tests/strm/si-value-of/_si-value-of-test-set.xml" title="xsl:value-of instruction with streaming">strm -&gt; si-value-of</a>
+                  </th>
+                  <th>0</th>
+                  <th>0</th>
+                  <td>0</td>
+                  <td>0</td>
+                  <th>36</th>
+                  <td>36</td>
+                  <td>0</td>
+                  <td>36</td>
+               </tr>
+               <tr>
+                  <th>
+                     <a href="https://dvcs.w3.org/hg/xslt30-test/file/tip/tests/strm/si-where-populated/_si-where-populated-test-set.xml" title="Tests xsl:stream instruction introduced in XSLT 3.0 with xsl:where-populated.">strm -&gt; si-where-populated</a>
+                  </th>
+                  <th>0</th>
+                  <th>0</th>
+                  <td>0</td>
+                  <td>0</td>
+                  <th>21</th>
+                  <td>21</td>
+                  <td>0</td>
+                  <td>21</td>
+               </tr>
+               <tr>
+                  <th>
+                     <a href="https://dvcs.w3.org/hg/xslt30-test/file/tip/tests/strm/su-unclassified/_su-unclassified-test-set.xml" title="Streamable stylesheet functions: category &#34;unclassified&#34;">strm -&gt; su-unclassified</a>
+                  </th>
+                  <th>0</th>
+                  <th>0</th>
+                  <td>0</td>
+                  <td>0</td>
+                  <th>3</th>
+                  <td>3</td>
+                  <td>0</td>
+                  <td>3</td>
+               </tr>
+               <tr>
+                  <th>
+                     <a href="https://dvcs.w3.org/hg/xslt30-test/file/tip/tests/strm/sx-ArithmeticExpr/_sx-ArithmeticExpr-test-set.xml" title="Arithmetic expressions with streaming">strm -&gt; sx-ArithmeticExpr</a>
+                  </th>
+                  <th>0</th>
+                  <th>0</th>
+                  <td>0</td>
+                  <td>0</td>
+                  <th>8</th>
+                  <td>8</td>
+                  <td>0</td>
+                  <td>8</td>
+               </tr>
+               <tr>
+                  <th>
+                     <a href="https://dvcs.w3.org/hg/xslt30-test/file/tip/tests/strm/sx-CommaExpr/_sx-CommaExpr-test-set.xml" title="comma expression function with streaming">strm -&gt; sx-CommaExpr</a>
+                  </th>
+                  <th>0</th>
+                  <th>0</th>
+                  <td>0</td>
+                  <td>0</td>
+                  <th>46</th>
+                  <td>46</td>
+                  <td>0</td>
+                  <td>46</td>
+               </tr>
+               <tr>
+                  <th>
+                     <a href="https://dvcs.w3.org/hg/xslt30-test/file/tip/tests/strm/sx-ExceptExpr/_sx-ExceptExpr-test-set.xml" title="except expression function with streaming">strm -&gt; sx-ExceptExpr</a>
+                  </th>
+                  <th>0</th>
+                  <th>0</th>
+                  <td>0</td>
+                  <td>0</td>
+                  <th>47</th>
+                  <td>47</td>
+                  <td>0</td>
+                  <td>47</td>
+               </tr>
+               <tr>
+                  <th>
+                     <a href="https://dvcs.w3.org/hg/xslt30-test/file/tip/tests/strm/sx-ForExpr/_sx-ForExpr-test-set.xml" title="for expressions  with streaming">strm -&gt; sx-ForExpr</a>
+                  </th>
+                  <th>0</th>
+                  <th>0</th>
+                  <td>0</td>
+                  <td>0</td>
+                  <th>5</th>
+                  <td>5</td>
+                  <td>0</td>
+                  <td>5</td>
+               </tr>
+               <tr>
+                  <th>
+                     <a href="https://dvcs.w3.org/hg/xslt30-test/file/tip/tests/strm/sx-FunctionCall/_sx-FunctionCall-test-set.xml" title="Tests the xsl:stream instruction with calls to user-defined functions.">strm -&gt; sx-FunctionCall</a>
+                  </th>
+                  <th>0</th>
+                  <th>0</th>
+                  <td>0</td>
+                  <td>0</td>
+                  <th>2</th>
+                  <td>2</td>
+                  <td>0</td>
+                  <td>2</td>
+               </tr>
+               <tr>
+                  <th>
+                     <a href="https://dvcs.w3.org/hg/xslt30-test/file/tip/tests/strm/sx-GeneralComp-eq/_sx-GeneralComp-eq-test-set.xml" title="&#34;=&#34; operator with streaming">strm -&gt; sx-GeneralComp-eq</a>
+                  </th>
+                  <th>0</th>
+                  <th>0</th>
+                  <td>0</td>
+                  <td>0</td>
+                  <th>52</th>
+                  <td>52</td>
+                  <td>0</td>
+                  <td>52</td>
+               </tr>
+               <tr>
+                  <th>
+                     <a href="https://dvcs.w3.org/hg/xslt30-test/file/tip/tests/strm/sx-GeneralComp-ge/_sx-GeneralComp-ge-test-set.xml" title="&#34;&gt;=&#34; operator with streaming">strm -&gt; sx-GeneralComp-ge</a>
+                  </th>
+                  <th>0</th>
+                  <th>0</th>
+                  <td>0</td>
+                  <td>0</td>
+                  <th>52</th>
+                  <td>52</td>
+                  <td>0</td>
+                  <td>52</td>
+               </tr>
+               <tr>
+                  <th>
+                     <a href="https://dvcs.w3.org/hg/xslt30-test/file/tip/tests/strm/sx-GeneralComp-gt/_sx-GeneralComp-gt-test-set.xml" title="&#34;&gt;&#34; operator with streaming">strm -&gt; sx-GeneralComp-gt</a>
+                  </th>
+                  <th>0</th>
+                  <th>0</th>
+                  <td>0</td>
+                  <td>0</td>
+                  <th>52</th>
+                  <td>52</td>
+                  <td>0</td>
+                  <td>52</td>
+               </tr>
+               <tr>
+                  <th>
+                     <a href="https://dvcs.w3.org/hg/xslt30-test/file/tip/tests/strm/sx-GeneralComp-le/_sx-GeneralComp-le-test-set.xml" title="&#34;&lt;=&#34; operator with streaming">strm -&gt; sx-GeneralComp-le</a>
+                  </th>
+                  <th>0</th>
+                  <th>0</th>
+                  <td>0</td>
+                  <td>0</td>
+                  <th>52</th>
+                  <td>52</td>
+                  <td>0</td>
+                  <td>52</td>
+               </tr>
+               <tr>
+                  <th>
+                     <a href="https://dvcs.w3.org/hg/xslt30-test/file/tip/tests/strm/sx-GeneralComp-lt/_sx-GeneralComp-lt-test-set.xml" title="&#34;&gt;&#34; operator with streaming">strm -&gt; sx-GeneralComp-lt</a>
+                  </th>
+                  <th>0</th>
+                  <th>0</th>
+                  <td>0</td>
+                  <td>0</td>
+                  <th>52</th>
+                  <td>52</td>
+                  <td>0</td>
+                  <td>52</td>
+               </tr>
+               <tr>
+                  <th>
+                     <a href="https://dvcs.w3.org/hg/xslt30-test/file/tip/tests/strm/sx-GeneralComp-ne/_sx-GeneralComp-ne-test-set.xml" title="&#34;!=&#34; operator with streaming">strm -&gt; sx-GeneralComp-ne</a>
+                  </th>
+                  <th>0</th>
+                  <th>0</th>
+                  <td>0</td>
+                  <td>0</td>
+                  <th>52</th>
+                  <td>52</td>
+                  <td>0</td>
+                  <td>52</td>
+               </tr>
+               <tr>
+                  <th>
+                     <a href="https://dvcs.w3.org/hg/xslt30-test/file/tip/tests/strm/sx-IfExpr/_sx-IfExpr-test-set.xml" title="if() expression function with streaming">strm -&gt; sx-IfExpr</a>
+                  </th>
+                  <th>0</th>
+                  <th>0</th>
+                  <td>0</td>
+                  <td>0</td>
+                  <th>66</th>
+                  <td>66</td>
+                  <td>0</td>
+                  <td>66</td>
+               </tr>
+               <tr>
+                  <th>
+                     <a href="https://dvcs.w3.org/hg/xslt30-test/file/tip/tests/strm/sx-InstanceofExpr/_sx-InstanceofExpr-test-set.xml" title="&#34;instance of&#34; expression with streaming">strm -&gt; sx-InstanceofExpr</a>
+                  </th>
+                  <th>0</th>
+                  <th>0</th>
+                  <td>0</td>
+                  <td>0</td>
+                  <th>23</th>
+                  <td>23</td>
+                  <td>0</td>
+                  <td>23</td>
+               </tr>
+               <tr>
+                  <th>
+                     <a href="https://dvcs.w3.org/hg/xslt30-test/file/tip/tests/strm/sx-IntersectExpr/_sx-IntersectExpr-test-set.xml" title="intersect expression function with streaming">strm -&gt; sx-IntersectExpr</a>
+                  </th>
+                  <th>0</th>
+                  <th>0</th>
+                  <td>0</td>
+                  <td>0</td>
+                  <th>46</th>
+                  <td>46</td>
+                  <td>0</td>
+                  <td>46</td>
+               </tr>
+               <tr>
+                  <th>
+                     <a href="https://dvcs.w3.org/hg/xslt30-test/file/tip/tests/strm/sx-MapExpr/_sx-MapExpr-test-set.xml" title="XPath map{} constructor expression with streaming">strm -&gt; sx-MapExpr</a>
+                  </th>
+                  <th>0</th>
+                  <th>0</th>
+                  <td>0</td>
+                  <td>0</td>
+                  <th>11</th>
+                  <td>11</td>
+                  <td>0</td>
+                  <td>11</td>
+               </tr>
+               <tr>
+                  <th>
+                     <a href="https://dvcs.w3.org/hg/xslt30-test/file/tip/tests/strm/sx-QuantifiedExpr/_sx-QuantifiedExpr-test-set.xml" title="Some/Every expressions with streaming">strm -&gt; sx-QuantifiedExpr</a>
+                  </th>
+                  <th>0</th>
+                  <th>0</th>
+                  <td>0</td>
+                  <td>0</td>
+                  <th>10</th>
+                  <td>10</td>
+                  <td>0</td>
+                  <td>10</td>
+               </tr>
+               <tr>
+                  <th>
+                     <a href="https://dvcs.w3.org/hg/xslt30-test/file/tip/tests/strm/sx-SimpleMappingExpr/_sx-SimpleMappingExpr-test-set.xml" title="Bang operator with streaming">strm -&gt; sx-SimpleMappingExpr</a>
+                  </th>
+                  <th>0</th>
+                  <th>0</th>
+                  <td>0</td>
+                  <td>0</td>
+                  <th>11</th>
+                  <td>11</td>
+                  <td>0</td>
+                  <td>11</td>
+               </tr>
+               <tr>
+                  <th>
+                     <a href="https://dvcs.w3.org/hg/xslt30-test/file/tip/tests/strm/sx-TreatExpr/_sx-TreatExpr-test-set.xml" title="&#34;treat as&#34; expression with streaming">strm -&gt; sx-TreatExpr</a>
+                  </th>
+                  <th>0</th>
+                  <th>0</th>
+                  <td>0</td>
+                  <td>0</td>
+                  <th>23</th>
+                  <td>23</td>
+                  <td>0</td>
+                  <td>23</td>
+               </tr>
+               <tr>
+                  <th>
+                     <a href="https://dvcs.w3.org/hg/xslt30-test/file/tip/tests/strm/sx-UnionExpr/_sx-UnionExpr-test-set.xml" title="union expression function with streaming">strm -&gt; sx-UnionExpr</a>
+                  </th>
+                  <th>0</th>
+                  <th>0</th>
+                  <td>0</td>
+                  <td>0</td>
+                  <th>46</th>
+                  <td>46</td>
+                  <td>0</td>
+                  <td>46</td>
+               </tr>
+               <tr>
+                  <th>
+                     <a href="https://dvcs.w3.org/hg/xslt30-test/file/tip/tests/type/boolean/_boolean-test-set.xml" title="Tests boolean">type -&gt; boolean</a>
+                  </th>
+                  <th>89</th>
+                  <th>112</th>
+                  <td>0</td>
+                  <td>23</td>
+                  <th>112</th>
+                  <td>0</td>
+                  <td>0</td>
+                  <td>112</td>
+               </tr>
+               <tr>
+                  <th>
+                     <a href="https://dvcs.w3.org/hg/xslt30-test/file/tip/tests/type/date/_date-test-set.xml" title="Tests date">type -&gt; date</a>
+                  </th>
+                  <th>0</th>
+                  <th>98</th>
+                  <td>0</td>
+                  <td>98</td>
+                  <th>138</th>
+                  <td>40</td>
+                  <td>0</td>
+                  <td>138</td>
+               </tr>
+               <tr>
+                  <th>
+                     <a href="https://dvcs.w3.org/hg/xslt30-test/file/tip/tests/type/maps/_maps-test-set.xml" title="Tests maps">type -&gt; maps</a>
+                  </th>
+                  <th>0</th>
+                  <th>0</th>
+                  <td>0</td>
+                  <td>0</td>
+                  <th>37</th>
+                  <td>37</td>
+                  <td>0</td>
+                  <td>37</td>
+               </tr>
+               <tr>
+                  <th>
+                     <a href="https://dvcs.w3.org/hg/xslt30-test/file/tip/tests/type/namespace/_namespace-test-set.xml" title="Tests namespace">type -&gt; namespace</a>
+                  </th>
+                  <th>140</th>
+                  <th>209</th>
+                  <td>0</td>
+                  <td>69</td>
+                  <th>217</th>
+                  <td>8</td>
+                  <td>0</td>
+                  <td>217</td>
+               </tr>
+               <tr>
+                  <th>
+                     <a href="https://dvcs.w3.org/hg/xslt30-test/file/tip/tests/type/node/_node-test-set.xml" title="Tests node">type -&gt; node</a>
+                  </th>
+                  <th>23</th>
+                  <th>32</th>
+                  <td>0</td>
+                  <td>9</td>
+                  <th>32</th>
+                  <td>0</td>
+                  <td>0</td>
+                  <td>32</td>
+               </tr>
+               <tr>
+                  <th>
+                     <a href="https://dvcs.w3.org/hg/xslt30-test/file/tip/tests/type/notation/_notation-test-set.xml" title="Tests notation">type -&gt; notation</a>
+                  </th>
+                  <th>0</th>
+                  <th>19</th>
+                  <td>0</td>
+                  <td>19</td>
+                  <th>23</th>
+                  <td>4</td>
+                  <td>0</td>
+                  <td>23</td>
+               </tr>
+               <tr>
+                  <th>
+                     <a href="https://dvcs.w3.org/hg/xslt30-test/file/tip/tests/type/string/_string-test-set.xml" title="Tests string">type -&gt; string</a>
+                  </th>
+                  <th>121</th>
+                  <th>133</th>
+                  <td>0</td>
+                  <td>12</td>
+                  <th>133</th>
+                  <td>0</td>
+                  <td>0</td>
+                  <td>133</td>
+               </tr>
+               <tr>
+                  <th>
+                     <a href="https://dvcs.w3.org/hg/xslt30-test/file/tip/tests/type/type/_type-test-set.xml" title="Tests type">type -&gt; type</a>
+                  </th>
+                  <th>1</th>
+                  <th>77</th>
+                  <td>1</td>
+                  <td>75</td>
+                  <th>78</th>
+                  <td>2</td>
+                  <td>0</td>
+                  <td>79</td>
+               </tr>
+            </tbody>
+         </table>
+      </div>
+   </body>
+</html>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/admin/report-output-xml-generate.xsl	Sun Feb 14 06:50:09 2016 +0000
@@ -0,0 +1,133 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+    xmlns:xs="http://www.w3.org/2001/XMLSchema"
+    xmlns:math="http://www.w3.org/2005/xpath-functions/math"
+    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    xmlns:f="urn:function"
+    xmlns="http://www.w3.org/2012/10/xslt-test-catalog"
+    xpath-default-namespace="http://www.w3.org/2012/10/xslt-test-catalog"
+    version="3.0">
+    
+    <xsl:output indent="yes"/>
+    
+    <xsl:template match="/">
+        <report 
+            xmlns:xs="http://www.w3.org/2001/XMLSchema"
+            xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+            <xsl:apply-templates select="doc('../catalog.xml')" mode="catalog"/>
+        </report>
+    </xsl:template>
+    
+    <xsl:template match="/" mode="catalog">
+        <xsl:variable name="all">
+            <xsl:apply-templates select="catalog/test-set" mode="#current" />
+        </xsl:variable>
+        <xsl:apply-templates select="$all/test-set
+            (:[test-case-information[xslt3[@count-specific + @count-forward > 0]]]:)" mode="report"/>
+    </xsl:template>
+    
+    <xsl:template match="test-set" mode="report">
+         <xsl:copy-of select="." />
+    </xsl:template>
+    
+    
+    
+    <xsl:template match="test-set" mode="catalog">
+        <xsl:apply-templates select="doc(concat('../', @file))" mode="test-set" />
+    </xsl:template>
+    
+    <xsl:function name="f:count">
+        <xsl:param name="testset" />
+        <xsl:param name="versions" />
+        <xsl:sequence select="
+            count($testset/test-case/dependencies[spec[let $v := normalize-space(@value) return ($versions ! ($v = .))[. = true()][1]]]) + 
+            count($testset/test-case[.[not(dependencies)]/(/)/test-set/dependencies[spec[let $v := normalize-space(@value) return ($versions ! ($v = .))[. = true()][1]]]])" />
+    </xsl:function>
+    
+    <xsl:template match="/" mode="test-set">
+        <xsl:variable name="sandp" select="test-set/dependencies/sweep_and_posture/@satisfied = 'true'" />
+        <test-set name="{test-set/@name}" uri="https://dvcs.w3.org/hg/xslt30-test/file/tip/{substring-after(base-uri(), 'XT3/')}" description="{test-set/description}">
+            <test-case-information count="{count(test-set/test-case)}" >
+                <xslt1 count-total="{f:count(test-set, ('XSLT10', 'XSLT10+'))}"
+                    count-specific="{f:count(test-set, ('XSLT10'))}"
+                    count-backward="0"
+                    count-forward="{f:count(test-set, ('XSLT10+'))}">
+                    
+                </xslt1>
+                <xslt2 count-total="{f:count(test-set, ('XSLT20', 'XSLT20+', 'XSLT10+'))}"
+                    count-specific="{f:count(test-set, ('XSLT20'))}"
+                    count-backward="{f:count(test-set, ('XSLT10+'))}"
+                    count-forward="{f:count(test-set, ('XSLT20+'))}">
+                    
+                </xslt2>
+                <xslt3 
+                    count-total="{if($sandp) then count(test-set/test-case) else f:count(test-set, ('XSLT30', 'XSLT30+', 'XSLT20+', 'XSLT10+'))}"
+                    count-specific="{if($sandp) then count(test-set/test-case) else f:count(test-set, ('XSLT30'))}"
+                    count-backward="{f:count(test-set, ('XSLT20+', 'XSLT10+'))}"
+                    count-forward="{if($sandp) then count(test-set/test-case) else f:count(test-set, ('XSLT30+'))}">
+                    <coverage>
+                        <xsl:variable name="xsl-elements">
+                            <xsl:apply-templates select="test-set/test-case[1]/test/stylesheet/@file" mode="#current" />
+                        </xsl:variable>
+                        <xsl:for-each select="distinct-values($xsl-elements/xsl-elements/@found/tokenize(., ' '))">
+                            <element name="xsl:{.}" count="{count($xsl-elements/xsl-elements[contains(@found, current())])}" />
+                        </xsl:for-each>                        
+                    </coverage>
+                </xslt3>
+                <other 
+                    count-nospec="{if(test-set/dependencies) then 0 else count(test-set/test-case[not(dependencies/spec)])}" 
+                    count-total="{count(test-set/test-case)}" />
+                    
+            </test-case-information>
+        </test-set>
+    </xsl:template>
+    
+    <xsl:template match="/" mode="test-set" use-when="false()">
+        <test-set name="{test-set/@name}" uri="{base-uri()}" description="{test-set/description}">
+            <test-case-information count="{count(test-set/test-case)}" >
+                <xslt1 count-total="{count(test-set/test-case/dependencies[spec[@value='XSLT10' or @value='XSLT10+']])}"
+                    count-specific="{count(test-set/test-case/dependencies[spec[@value='XSLT10']])}"
+                    count-backward="0"
+                    count-forward="{count(test-set/test-case/dependencies[spec[@value='XSLT10+']])}">
+                    
+                </xslt1>
+                <xslt2 count-total="{count(test-set/test-case/dependencies[spec[@value='XSLT20' or @value='XSLT20+' or @value='XSLT10+']])}"
+                    count-specific="{count(test-set/test-case/dependencies[spec[@value='XSLT20']])}"
+                    count-backward="{count(test-set/test-case/dependencies[spec[@value='XSLT10+']])}"
+                    count-forward="{count(test-set/test-case/dependencies[spec[@value='XSLT20+']])}">
+                    
+                </xslt2>
+                <xslt3 count-total="{count(test-set/test-case/dependencies[spec[@value='XSLT30' or @value='XSLT30+' or @value='XSLT20+' or @value='XSLT10+']])}" 
+                    count-specific="{count(test-set/test-case/dependencies[spec[@value='XSLT30']])}" 
+                    count-backward="{count(test-set/test-case/dependencies[spec[@value='XSLT20+' or @value='XSLT10+']])}" 
+                    count-forward="{count(test-set/test-case/dependencies[spec[@value='XSLT30+']])}">
+                    <coverage>
+                        <xsl:variable name="xsl-elements">
+                            <xsl:apply-templates select="test-set/test-case[1]/test/stylesheet/@file" mode="#current" />
+                        </xsl:variable>
+                        <xsl:for-each select="distinct-values($xsl-elements/xsl-elements/@found/tokenize(., ' '))">
+                            <element name="xsl:{.}" count="{count($xsl-elements/xsl-elements[contains(@found, current())])}" />
+                        </xsl:for-each>                        
+                    </coverage>
+                </xslt3>
+                <other count-nospec="{count(test-set/test-case/dependencies[not(spec)])}" 
+                    count-wrongvalue="{count(test-set/test-case/dependencies[spec[not(starts-with(@value,'XSLT3') or starts-with(@value,'XSLT2') or starts-with(@value,'XSLT1'))]])}" />
+                    
+            </test-case-information>
+        </test-set>
+    </xsl:template>
+    
+    <xsl:template match="@file" mode="test-set">
+        <xsl:variable name="base-path" select="replace(base-uri(.), '[^/]+$', '')" />
+       <xsl:try>
+           <xsl:apply-templates select="doc(concat($base-path, .))" mode="test-xslfile" />
+           <xsl:catch>
+               <xsl-elements error-in-file="{concat($base-path, .)}" error="" />
+           </xsl:catch>
+       </xsl:try>
+    </xsl:template>
+    
+    <xsl:template match="/" mode="test-xslfile">
+        <xsl-elements found="{distinct-values(//xsl:*/local-name())}" />
+    </xsl:template>
+</xsl:stylesheet>
\ No newline at end of file
--- a/catalog.xml	Sun Feb 14 06:43:51 2016 +0000
+++ b/catalog.xml	Sun Feb 14 06:50:09 2016 +0000
@@ -142,6 +142,7 @@
       <test-set name="regex" file="tests/misc/regex/_regex-test-set.xml"/>
       <test-set name="regex-syntax" file="tests/misc/regex-syntax/_regex-syntax-test-set.xml"/>
       <test-set name="regex-syntax-xslt20" file="tests/misc/regex-syntax-xslt20/_regex-syntax-xslt20-test-set.xml"/>
+      <test-set name="seqtor" file="tests/misc/seqtor/_seqtor-test-set.xml"/>
       <test-set name="whitespace" file="tests/misc/whitespace/_whitespace-test-set.xml"/>
       <test-set name="xml-version" file="tests/misc/xml-version/_xml-version-test-set.xml"/>
       <test-set name="xslt-compat" file="tests/misc/xslt-compat/_xslt-compat-test-set.xml"/>
--- a/tests/attr/mode/_mode-test-set.xml	Sun Feb 14 06:43:51 2016 +0000
+++ b/tests/attr/mode/_mode-test-set.xml	Sun Feb 14 06:50:09 2016 +0000
@@ -2268,7 +2268,6 @@
       </dependencies>
       <test>
          <package file="mode-1701.xsl" role="principal"/>
-         <initial-mode name="a"/>
       </test>
       <result>
          <assert>/ok</assert>
@@ -2284,7 +2283,6 @@
       </dependencies>
       <test>
          <package file="mode-1702.xsl" role="principal"/>
-         <initial-mode name="a"/>
       </test>
       <result>
          <assert>/ok</assert>
--- a/tests/attr/mode/mode-1507.xsl	Sun Feb 14 06:43:51 2016 +0000
+++ b/tests/attr/mode/mode-1507.xsl	Sun Feb 14 06:50:09 2016 +0000
@@ -6,7 +6,7 @@
   xmlns:xs="http://www.w3.org/2001/XMLSchema"
   exclude-result-prefixes="xs">
   
-  <xsl:mode visibility="public"/>
+  <xsl:mode visibility="public" />
   
   <xsl:template match="unstreamable" name="main">
     <xsl:value-of select="a+b+c"/>
--- a/tests/attr/mode/mode-1705.xsl	Sun Feb 14 06:43:51 2016 +0000
+++ b/tests/attr/mode/mode-1705.xsl	Sun Feb 14 06:50:09 2016 +0000
@@ -7,7 +7,7 @@
   declared-modes="yes"
   default-mode="a">
   
-  <xsl:mode name="a"/>
+  <xsl:mode name="a" visibility="public"/>
   <xsl:mode/>  
 
   <xsl:template match="/">
--- a/tests/attr/mode/mode-1707.xsl	Sun Feb 14 06:43:51 2016 +0000
+++ b/tests/attr/mode/mode-1707.xsl	Sun Feb 14 06:50:09 2016 +0000
@@ -5,7 +5,7 @@
   xmlns:xs="http://www.w3.org/2001/XMLSchema"
   exclude-result-prefixes="xs">
   
-  <xsl:mode name="a"/>
+  <xsl:mode name="a" visibility="public"/>
   <xsl:mode/>  
   
   <xsl:template match="/" default-mode="a">
--- a/tests/attr/mode/mode-1710.xsl	Sun Feb 14 06:43:51 2016 +0000
+++ b/tests/attr/mode/mode-1710.xsl	Sun Feb 14 06:50:09 2016 +0000
@@ -6,7 +6,7 @@
   exclude-result-prefixes="xs"
   default-mode="a">
   
-  <xsl:mode name="a"/>
+  <xsl:mode name="a" visibility="public"/>
   <xsl:mode/>  
   
   <xsl:template match="/">
--- a/tests/attr/mode/mode-1712.xsl	Sun Feb 14 06:43:51 2016 +0000
+++ b/tests/attr/mode/mode-1712.xsl	Sun Feb 14 06:50:09 2016 +0000
@@ -6,7 +6,7 @@
   exclude-result-prefixes="xs"
   default-mode="a">
   
-  <xsl:mode name="a"/>
+  <xsl:mode name="a" visibility="public"/>
   <xsl:mode/>  
   
   <xsl:template match="/">
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/attr/use-when/use-when-0600-generate.xsl	Sun Feb 14 06:50:09 2016 +0000
@@ -0,0 +1,112 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsl:transform xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
+    xmlns:xs="http://www.w3.org/2001/XMLSchema"
+    xmlns:map="http://www.w3.org/2005/xpath-functions/map"
+    xmlns:ext="http://example.com/extension-instructions-dont-exist"
+    xmlns:my="http://myfunctions"
+    xmlns:alias="http://alias-for-xslt"
+    version="3.0">
+    
+    <!-- Purpose:  Generates tests based on allowed functions in static signatures
+    -->
+    
+    <xsl:output indent="yes" />
+
+    <xsl:namespace-alias stylesheet-prefix="alias" result-prefix="xsl"/>
+    
+    <xsl:mode on-no-match="shallow-skip" />
+    
+    <ext:non-existing>not an extension instruction, this is a data element</ext:non-existing>
+    
+    <xsl:function name="my:stylesheet-function">hello</xsl:function>
+    
+    <xsl:variable name="allowed">
+        <function name="element-available" arity="1" success-value="{true()}" >
+            <arguments-success>
+                <arg>xsl:fork</arg>
+            </arguments-success>
+            <arguments-fail>
+                <arg>ext:non-existing</arg>
+            </arguments-fail>
+        </function>
+        <function name="function-available" arity="1" success-value="{true()}" >
+            <arguments-success>
+                <arg>fn:concat</arg>
+            </arguments-success>
+            <arguments-success>
+                <arg>concat</arg>
+            </arguments-success>
+            <arguments-success>
+                <arg>xs:dateTime</arg>
+            </arguments-success>
+            <arguments-fail>
+                <arg>my:stylesheet-function</arg>
+            </arguments-fail>
+            <arguments-fail>
+                <arg>fn:no-exist</arg>
+            </arguments-fail>
+        </function>
+        <function name="function-available" arity="2" success-value="{true()}" >
+            <arguments-success>
+                <arg>fn:concat</arg>
+                <arg as="xs:integer">4</arg>
+            </arguments-success>
+            <arguments-success>
+                <arg>concat</arg>
+                <arg as="xs:integer">5</arg>
+            </arguments-success>
+            <arguments-success>
+                <arg>xs:dateTime</arg>
+                <arg as="xs:integer">1</arg>
+            </arguments-success>
+            <arguments-fail>
+                <arg>my:stylesheet-function</arg>
+                <arg as="xs:integer">0</arg>
+            </arguments-fail>
+            <arguments-fail>
+                <arg>fn:no-exist</arg>
+                <arg as="xs:integer">6</arg>
+            </arguments-fail>
+        </function>
+    </xsl:variable>
+
+    <xsl:template name="xsl:initial-template">
+        <xsl:result-document href="use-when-0600.xsl">
+            <alias:transform xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
+                 xmlns:xs="http://www.w3.org/2001/XMLSchema"
+                 xmlns:map="http://www.w3.org/2005/xpath-functions/map"
+                 xmlns:ext="http://example.com/extension-instructions-dont-exist"
+                 xmlns:my="http://myfunctions"
+                 xmlns:alias="http://alias-for-xslt"
+                 version="3.0">
+                
+                <alias:template name="xsl:initial-template">
+                    <xsl:apply-templates select="$allowed" />
+                </alias:template>
+            </alias:transform>
+        </xsl:result-document>
+    </xsl:template>
+    
+    <xsl:template match="function">
+        <function>
+            <xsl:attribute name="alias:use-when">
+                <xsl:value-of select="@name" />
+                <xsl:value-of select="'#' || @arity" />
+                <xsl:value-of select="' castable as function(*)'" />
+            </xsl:attribute>
+        </function>
+    </xsl:template>
+    
+    <xsl:template match="@name">
+        
+    </xsl:template>
+    
+    <xsl:template match="@arity">
+        <xsl:value-of select="'#' || ." />
+    </xsl:template>
+    
+    <xsl:template match="@success-value">
+        <xsl:value-of select="'= ()'" />
+    </xsl:template>
+
+</xsl:transform>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/fn/stream-available/_generate-stream-available-tests.xsl	Sun Feb 14 06:50:09 2016 +0000
@@ -0,0 +1,108 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+    xmlns:xs="http://www.w3.org/2001/XMLSchema"
+    xmlns:math="http://www.w3.org/2005/xpath-functions/math" xmlns:f="functions"
+    exclude-result-prefixes="xs math f" version="3.0">
+
+    <!-- 
+        Author: Abel Braaksma
+        Date: 2015-09-15
+        generates tests, this is part of merging F# tests into the XSLT test format 
+        
+        NOTE: the resulting test-case set is deliberately not in the test-case namespace (to make copy/paste cleaner and easier)
+    -->
+    
+    <xsl:output indent="yes" />
+    
+    <xsl:variable name="methods" select="'static', 'dynamic', 'no-namespace', 'eqname', 'wrong-namespace', 'other-namespace-prefix', 'qname'" />
+    
+    <!-- single quotes -->
+    <xsl:variable name="q" static="yes" select="function($x) { '''' || $x || '''' } " />
+
+    <xsl:template name="xsl:initial-template">
+        <tests>
+            <!-- xsl:product, xsl:vendor etc are ignored on purpose -->
+            <xsl:apply-templates select="
+                   '',
+                   'egpe.xml',
+                   'dtd-only.xml',
+                   'unfinished.xml',
+                   'plaintext.txt',
+                   'non-existing.xml'"
+            />
+        </tests>
+    </xsl:template>
+
+    <xsl:template match=".[. = 'xsl:version']">
+        <xsl:variable name="num" select="'10' || position()" />
+        <xsl:copy-of select="$methods ! (f:create(current(), '3.0', ., $num || codepoints-to-string(position() + 96)))" />
+    </xsl:template>
+
+    <xsl:template match=".[. = 'xsl:xpath-version']">
+        <xsl:variable name="num" select="'10' || position()" />
+        <xsl:text>&#xA;</xsl:text>
+        <xsl:copy-of select="$methods ! (f:create(current(), ('3.0', '3.1'), ., $num || codepoints-to-string(position() + 96)))" />
+    </xsl:template>
+
+    <xsl:template match=".[. = 'xsl:xsd-version']">
+        <xsl:variable name="num" select="'10' || position()" />
+        <xsl:text>&#xA;</xsl:text>
+        <xsl:copy-of select="$methods ! (f:create(current(), ('1.0', '1.1'), ., $num || codepoints-to-string(position() + 96)))" />
+    </xsl:template>
+
+    <xsl:template match=".">
+        <xsl:variable name="num" select="'10' || position()" />
+        <xsl:text>&#xA;</xsl:text>
+        <xsl:copy-of select="$methods ! (f:create(current(), ('yes', 'no'), ., $num || codepoints-to-string(position() + 96)))" />
+    </xsl:template>
+
+    <!-- creator function that, well, creates the test-case -->
+    <xsl:function name="f:create" expand-text="yes">
+        <xsl:param name="property" />
+        <xsl:param name="result" />
+        <xsl:param name="method" />
+        <xsl:param name="count" />
+        
+        <xsl:variable name="corrected-result" select="
+            if($method = ('no-namespace', 'wrong-namespace')) then '''''' 
+            else if($method = 'qname') then '''irrelevant-raises-error'''
+            else string-join($result ! $q(.), ', ')" />
+        
+        <xsl:variable name="xpath-for-testresult" as="xs:string+">
+            <xsl:sequence select="
+                let $or-empty := if($corrected-result = '''''') then '''empty''' else $corrected-result
+                return
+                    if($method = 'qname') then ('''fail''', (1 to 4) ! '''exception''')
+                    else if($method = 'dynamic') then ('''fail''', '''exception''','''exception''',  $or-empty, '''exception''')
+                    else ('''success''', (1 to 4) ! $or-empty)" />
+        </xsl:variable>
+        
+        <xsl:value-of select="'&#xA;&#xA;'" />
+        <test-case name="stream-available-{$count}">
+            <!-- wrong indent is here on purpose -->
+            <description>
+          Stream-available '{$property}' with a '{$method}' context, testing result = '{$corrected-result}'
+          See for a more detailed description of the parameters and how this test works, the file stream-available-100.xsl
+      </description>
+            <created by="Abel Braaksma" on="2015-09-30" />
+            <dependencies>
+                <spec value="XSLT30+" />
+            </dependencies>
+            <test>
+                <stylesheet file="stream-available-100.xsl" />
+                <param static="yes" name="property" select="'{$property}'" />
+                <param static="yes" name="result" select="{$corrected-result (: already quoted :) }" />
+                <param static="yes" name="method" select="'{$method}'" />
+            </test>
+            <result>
+                <all-of>
+                    <assert>/result/@total = {$xpath-for-testresult[1]}</assert>
+                    <xsl:for-each select="$xpath-for-testresult[position() > 1]">
+                        <xsl:variable name="call" select="let $p := position() return ('staticcall', 'letcall', 'dyncall', 'anoncall')[$p]" />
+                        <assert>/result/{$call}/@result/tokenize(., ' ') = ({.})</assert>                    
+                    </xsl:for-each>
+                </all-of>
+            </result>
+        </test-case>
+    </xsl:function>
+</xsl:stylesheet>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/fn/stream-available/stream-available-100.xsl	Sun Feb 14 06:50:09 2016 +0000
@@ -0,0 +1,244 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsl:stylesheet 
+    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+    xmlns:xpath="http://www.w3.org/2005/xpath-functions"
+    xmlns:xs="http://www.w3.org/2001/XMLSchema"
+    xmlns:math="http://www.w3.org/2005/xpath-functions/math"
+    xmlns:f="http://w3c-tests"
+    exclude-result-prefixes="xs math f xpath"
+    version="3.0">
+    
+    <!--
+        Author: Abel Braaksma
+        Date: 2015-09-15
+        Base file for testing system-properties, this is by en large an XSLT way of writing certain F# tests we have 
+        (it's a little bit alarming that a handful of F# lines end up so wieldy, perhaps it can be done easier, but it
+        does the job: testing a variety of scenarios for each stream-available).
+        
+        Usage (call with default initial template):
+        $property:     the argument to be used in stream-available, including 'xsl:'
+        $result:       the items to test for, i.e. '' or '3.0', '3.1'
+        $method:       see below for details on the method. $result should be '' for no-namespace and wrong-namespace
+        
+        If any of these tests fail, the result contains more info on what expressions failed.
+        
+        In the case of a not-satisfies (not($is-valid)) in the static context, the result
+        will contain a detailed XML that shows what expression returned what result. The $is-valid param
+        simply tests the value of the stream-available in the static context for consistency. Once valid
+        the rest of the test tests the system property in a variety of other contexts and calling scenarios.
+        
+        Available methods and their intentions:
+        ‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾
+        all:                    all tests test results of stream-available calls for allowed values,
+                                all tests have a static call, a prefixed static call, an eqname static call
+                                a dynamic call in static context, a dynamic call in dynamic context, a 
+                                call inside a let-binding, and a static and dynamic call inside an anon function
+                                all tests test the variants both in static and in dynamic evaluation contexts
+                                
+        static:                 uses static string 'xsl:propname' in a normal evaluation context
+                                (body of a function) 
+        dynamic:                uses static string 'xsl:propname' in an xsl:evaluate context (includes 
+                                expected exceptions)
+        no-namespace:           strips the prefix from 'xsl:propname' and sets the default namespace to the 
+                                XSLT namespace (all props should return empty strings)
+        eqname:                 changes 'xsl:propname' into equiv. EQName, and then the same as static
+        wrong-namespace:        tests 'xsl:propname' but switches locally to a different binding for 'xsl' 
+                                prefix and expects all results to be empty. This also tests namespace scope
+                                of inline function declarations and static bindings
+        other-namespace-prefix: tests 'xyz:propname' with 'xyz' prefix locally bound to a different namespace
+                                This is the positive variant of namespace scoping of 'wrong-namespace' above.
+        integer                 attempts to call the function with a invalid argument, here an integer, which should fail
+        
+    -->
+    
+    <xsl:output indent="yes" />
+    
+    <xsl:param name="property" static="yes" select="'xsl:version'"/>
+    <xsl:param name="result" static="yes" select="''"/>
+    <xsl:param name="method" static="yes" select="'no-namespace'"/>
+    
+    <!-- helper to escape single quotes, or to quote a string -->
+    <xsl:variable name="e" static="yes" select="replace(?, '''', '''''')" />
+    <xsl:variable name="q" static="yes" select="function($x) { '''' || $x || '''' } " />
+    <xsl:variable name="r" static="yes" select="function($x) { '(' || string-join(($x ! $q(.)), ', ') || ')' } " />
+    <xsl:variable name="uses-namespaces" static="yes" select="contains($method, 'namespace')" />
+    <xsl:variable name="prefixes" static="yes" select="'', 'xpath:', 'Q{http://www.w3.org/2005/xpath-functions}'" />
+    <xsl:variable name="apply" static="yes" select="function($f, $arg) { '(' || string-join($prefixes ! concat(., $f, ($arg ! ('(' || . || ')'), '#1')[1]), ', ') || ')' }" />
+
+    <!-- whether tests are expected to raise errors when used in XPaths in static context -->
+    <xsl:variable name="raises" static="yes" select="$method = 'integer'" />
+
+    <!-- for use with tests that use a dynamic function call -->
+    <xsl:variable name="sysfun" static="yes" _select="{$apply('stream-available', ())}" use-when="not($uses-namespaces)"/>
+    
+    <!-- this prevents incorrect closure of lexical value-space -->
+    <xslt:variable name="sysfun" static="yes" _select="{$apply('stream-available', ())}" use-when="$uses-namespaces" 
+        xmlns:xsl="http://WRONG.w3.org/1999/XSL/Transform"
+        xmlns:xyz="http://www.w3.org/1999/XSL/Transform"
+        xmlns:xslt="http://www.w3.org/1999/XSL/Transform"/>
+    
+
+    <xsl:variable name="argument" static="yes" select="
+        if($method = 'static') then $q($property)
+        else if($method = 'dynamic') then $q($property)
+        else if($method = 'no-namespace') then $q(replace($property, '[^:]+:', ''))
+        else if($method = 'eqname') then $q(replace($property, '[^:]+:', 'Q{http://www.w3.org/1999/XSL/Transform}'))
+        else if($method = 'wrong-namespace') then $q($property)
+        else if($method = 'other-namespace-prefix') then $q(replace($property, '[^:]+:', 'xyz:'))
+        else if($method = 'integer') then 'QName(''http://www.w3.org/1999/XSL/Transform'', ' || $q(replace($property, '[^:]+:', 'xyz:')) || ')'
+        else error(QName('', 'ERR0001'), 'Test case configuration error: wrong value for $type')" />
+    
+    <!-- creates expr-as-string: stream-available('xsl:xxxxx') -->
+    <xsl:variable name="_staticcall" static="yes" select="$apply('stream-available', $argument)" />
+    
+    <!-- creates expr-as-string: (let $var := 'xsl:xxxxx' return stream-available($var)) -->
+    <xsl:variable name="_letcall" static="yes" _select="'(let $var := {$e($argument)} return {$apply('stream-available', '$var')})'" />
+    
+    <!-- creates expr-as-string: $sysfun('xsl:xxxxx') -->
+    <xsl:variable name="_dyncall" static="yes" _select="'(for $i in (1 to 3) return $sysfun[$i]( { $e($argument) } ))'" />
+    
+    
+    <!-- creates expr-as-string (tests multiple call types from anon function):
+        (let $f := function() { 
+            if(stream-available('xsl:version') = $sysfun(' xsl:version ')) 
+            then (let $var := 'xsl:version' return stream-available($var)) 
+            else 'unsuccessful' } 
+         return $f()) -->
+    <xsl:variable name="_anoncall" static="yes" _select="'(let $f := function() {{ if({ ($e($_staticcall)) } = { $e($_dyncall) }) then { $e($_letcall) } else ''unsuccessful'' }} return $f())' " />
+    
+    <!-- tests whether the system property is valid in a static context -->
+    <xsl:variable name="is-valid" 
+        _select='{$_staticcall} = {$_anoncall} and {$_staticcall } = { $r($result) }' 
+        static="yes" 
+        use-when="not($raises) and not($uses-namespaces)"/>
+    
+    <!-- namespaces must be in-scope when the expr-to-string is evaluated -->
+    <xslt:variable name="is-valid" 
+        _select='{$_staticcall} = {$_anoncall} and {$_staticcall } = { $r($result) }' 
+        static="yes" 
+        use-when="not($raises) and $uses-namespaces"  
+        xmlns:xsl="http://WRONG.w3.org/1999/XSL/Transform" 
+        xmlns:xslt="http://www.w3.org/1999/XSL/Transform" 
+        xmlns:xyz="http://www.w3.org/1999/XSL/Transform"/>
+    
+    <!-- we cannot capture an exception in XPath and we cannot call a stylesheet function in the static context, so we cannot test exception in static expression unless we break the rest of the test -->
+    <xsl:variable name="is-valid" select='true()' static="yes" use-when="$raises"/>
+    
+    <xsl:template name="xsl:initial-template" expand-text="true" use-when="$is-valid" >
+        <xsl:variable name="test" select="f:test()" />
+        <result total="{if(every $val in $test satisfies $val = $result) then 'success' else 'fail'}" count="{count($test)}">
+            <!-- note: this shadows global $e, this is intentional, but is not part of the test -->
+            <xsl:variable name="e" select="$test ! (if(. = '') then 'empty' else .)" />
+            <staticcall expr="{$_staticcall}" result="{$e[1], $e[2], $e[3]}" />
+            <letcall    expr="{$_letcall}"    result="{$e[4], $e[5], $e[6]}"  />
+            <dyncall    expr="{$_dyncall}"    result="{$e[7], $e[8], $e[9]}"  />
+            <anoncall   expr="{$_anoncall}"   result="{$e[10]}"  />
+        </result>
+    </xsl:template>
+
+    <!-- helper for analysis, with proper test results, you never get here -->
+    <xsl:template name="xsl:initial-template" use-when="not($is-valid) and not($uses-namespaces)">
+        <result total="unexpected-result" count="unknown" namespace="no">
+            <description>!!!Result of evaluations is not as expected, see following elements for details</description>
+            <staticcall expr="{$_staticcall}"><xsl:attribute name="result" _select="{$_staticcall}" /></staticcall>
+            <letcall expr="{$_letcall}"><xsl:attribute name="result" _select="{$_letcall}"  /></letcall>
+            <dyncall expr="{$_dyncall}"><xsl:attribute name="result" _select="{$_dyncall}"  /></dyncall>
+            <anoncall expr="{$_anoncall}"><xsl:attribute name="result" _select="{$_anoncall}"  /></anoncall>
+        </result>
+    </xsl:template>
+    
+    <!-- helper for analysis, with proper test results, you never get here -->
+    <other:template name="other:initial-template" use-when="not($is-valid) and $uses-namespaces"  
+        xmlns:xsl="http://WRONG.w3.org/1999/XSL/Transform" 
+        xmlns:other="http://www.w3.org/1999/XSL/Transform" 
+        xmlns:xyz="http://www.w3.org/1999/XSL/Transform"
+        exclude-result-prefixes="#all">
+        <result total="unexpected-result" count="unknown" namespace="yes">
+            <description>!!!Result of evaluations is not as expected, see following elements for details</description>
+            <staticcall expr="{$_staticcall}"><other:attribute name="result" _select="{$_staticcall}"/></staticcall>
+            <letcall expr="{$_letcall}"><other:attribute name="result" _select="{$_letcall}"/></letcall>
+            <dyncall expr="{$_dyncall}"><other:attribute name="result" _select="{$_dyncall}" /></dyncall>
+            <anoncall expr="{$_anoncall}"><other:attribute name="result" _select="{$_anoncall}" /></anoncall>
+        </result>
+    </other:template>
+    
+    <!-- 
+        what follows are variants of the test based on the method chosen 
+    -->
+    <xsl:function name="f:test" use-when="$method='integer'">
+        <xsl:variable name="caught" select="'exception'" />
+        <xsl:sequence select="tokenize($_staticcall, ',') ! f:evaluate-or-catch(.)" />
+        <xsl:sequence select="tokenize($_letcall, ',') ! f:evaluate-or-catch(.)" />
+        <xsl:sequence select="tokenize($_dyncall, ',') ! f:evaluate-or-catch(.)" />
+        <xsl:sequence select="f:evaluate-or-catch($_anoncall)" />           
+    </xsl:function>
+
+    <!-- tests stream-available in no-namespace, $result should be set to '', no error -->
+    <xsl:function name="f:test" use-when="$method='other-namespace-prefix'" xmlns:xyz="http://www.w3.org/1999/XSL/Transform">
+        <xsl:sequence _select="{$_letcall}" />
+        <xsl:sequence _select="{$_dyncall}" />
+        <xsl:sequence _select="{$_staticcall}" />
+        <xsl:sequence _select="{$_anoncall}" />        
+    </xsl:function>
+
+    <!-- tests stream-available in no-namespace, $result should be set to '', no error -->
+    <xsl:function name="f:test" use-when="$method='no-namespace'">
+        <xsl:sequence _select="{$_letcall}" xmlns="http://www.w3.org/1999/XSL/Transform"/>
+        <xsl:sequence _select="{$_dyncall}" xmlns="http://www.w3.org/1999/XSL/Transform"/>
+        <xsl:sequence _select="{$_staticcall}" xmlns="http://www.w3.org/1999/XSL/Transform"/>
+        <xsl:sequence _select="{$_anoncall}" xmlns="http://www.w3.org/1999/XSL/Transform"/>        
+    </xsl:function>
+    
+    <!-- tests stream-available in wrong/invalid namespace, $result should be set to '', no error -->
+    <xsl:function name="f:test" use-when="$method='wrong-namespace'">
+        <xslt:sequence _select="{$_staticcall}" xmlns:xsl="http://WRONG.w3.org/1999/XSL/Transform" xmlns:xslt="http://www.w3.org/1999/XSL/Transform"/>
+        <xslt:sequence _select="{$_letcall}" xmlns:xsl="http://WRONG.w3.org/1999/XSL/Transform" xmlns:xslt="http://www.w3.org/1999/XSL/Transform"/>
+        <xslt:sequence _select="{$_dyncall}" xmlns:xsl="http://WRONG.w3.org/1999/XSL/Transform" xmlns:xslt="http://www.w3.org/1999/XSL/Transform"/>
+        <xslt:sequence _select="{$_anoncall}" xmlns:xsl="http://WRONG.w3.org/1999/XSL/Transform" xmlns:xslt="http://www.w3.org/1999/XSL/Transform"/>        
+    </xsl:function>
+    
+    <xsl:function name="f:test" use-when="$method='static' or $method = 'eqname'">
+        <xsl:sequence _select="{$_letcall}, {$_dyncall}, {$_staticcall}, {$_anoncall}" />
+    </xsl:function>
+    
+    <xsl:function name="f:test" use-when="$method = 'dynamic'">
+        <xsl:variable name="caught" select="'exception'" />
+        
+        <xsl:sequence select="tokenize($_staticcall, ',') ! f:evaluate-or-catch(.)" />
+        <xsl:sequence select="tokenize($_letcall, ',') ! f:evaluate-or-catch(.)" />
+
+        <!--
+            note (1): it should not be necessary to rename the variable 
+            note (2): there are no rules that ban a function item bound to a function that 
+            itself is not statically available inside an evaluation context, so we assume here 
+            that it does NOT raise an error 
+        -->
+        <xsl:evaluate xpath="replace($_dyncall, 'sysfun', 'sysfun2')" >
+            <xsl:with-param name="sysfun2" select="$sysfun" />
+        </xsl:evaluate>
+        
+        <xsl:sequence select="tokenize($_staticcall, ',') ! f:evaluate-or-catch(.)" />
+        <xsl:try>
+            <xsl:evaluate xpath="$_staticcall"/>
+            <xsl:catch errors="*:XPST0017" select="$caught" />            
+        </xsl:try>
+
+        <xsl:sequence select="f:evaluate-or-catch(replace($_anoncall, 'sysfun', 'sysfun2'))" />
+
+    </xsl:function>
+    
+    <xsl:function name="f:evaluate-or-catch">
+        <xsl:param name="xpath" />
+        <xsl:try>
+            <xsl:evaluate xpath="$_letcall" >
+                <!-- req. by anoncall -->
+                <xsl:with-param name="sysfun2" select="$sysfun" />
+            </xsl:evaluate>
+            <!-- for stream-available inside xsl:evaluate -->
+            <xsl:catch errors="*:XPST0017" select="'exception'" />
+            <!-- for QName as argument -->             
+            <xsl:catch errors="*:XPST0004" select="'exception'" />            
+        </xsl:try>
+    </xsl:function>
+    
+</xsl:stylesheet>
\ No newline at end of file
--- a/tests/insn/on-empty/_on-empty-test-set.xml	Sun Feb 14 06:43:51 2016 +0000
+++ b/tests/insn/on-empty/_on-empty-test-set.xml	Sun Feb 14 06:50:09 2016 +0000
@@ -6,6 +6,10 @@
       Tests sequence constructors containing xsl:on-empty instructions
    </description>
    
+   <dependencies>
+      <spec value="XSLT30+"/>
+   </dependencies>
+   
 
    
    <environment name="on-empty-A">
@@ -23,9 +27,6 @@
       <description>Simple use of xsl:on-empty with no other instructions</description>
       <created by="Michael Kay" on="2014-12-22"/>
       <environment ref="on-empty-A"/>
-      <dependencies>
-         <spec value="XSLT30+"/>
-      </dependencies>
       <test>
          <stylesheet file="on-empty-001.xsl"/>
       </test>
@@ -38,9 +39,6 @@
       <description>Simple use of xsl:on-empty with other instructions yielding empty</description>
       <created by="Michael Kay" on="2014-12-22"/>
       <environment ref="on-empty-A"/>
-      <dependencies>
-         <spec value="XSLT30+"/>
-      </dependencies>
       <test>
          <stylesheet file="on-empty-002.xsl"/>
       </test>
@@ -54,9 +52,6 @@
       <created by="Michael Kay" on="2014-12-22"/>
       <modified by="Michael Kay" on="2015-08-16" change="bug 28888 makes this an error"/>
       <environment ref="on-empty-A"/>
-      <dependencies>
-         <spec value="XSLT30+"/>
-      </dependencies>
       <test>
          <stylesheet file="on-empty-003.xsl"/>
       </test>
@@ -70,9 +65,6 @@
       <created by="Michael Kay" on="2014-12-22"/>
       <modified by="Michael Kay" on="2015-08-16" change="bug 28888 makes this an error"/>
       <environment ref="on-empty-A"/>
-      <dependencies>
-         <spec value="XSLT30+"/>
-      </dependencies>
       <test>
          <stylesheet file="on-empty-004.xsl"/>
       </test>
@@ -86,9 +78,6 @@
       <created by="Michael Kay" on="2014-12-22"/>
       <modified by="Michael Kay" on="2015-08-24" change="strip whitespace to give cleaner results comparison"/>
       <environment ref="on-empty-A"/>
-      <dependencies>
-         <spec value="XSLT30+"/>
-      </dependencies>
       <test>
          <stylesheet file="on-empty-005.xsl"/>
       </test>
@@ -102,9 +91,6 @@
       <created by="Michael Kay" on="2014-12-22"/>
       <modified by="Michael Kay" on="2015-08-16" change="modified so it's not an error under bug 28888"/>
       <environment ref="on-empty-A"/>
-      <dependencies>
-         <spec value="XSLT30+"/>
-      </dependencies>
       <test>
          <stylesheet file="on-empty-006.xsl"/>
       </test>
@@ -117,9 +103,6 @@
       <description>xsl:on-empty followed by significant text nodes</description>
       <created by="Michael Kay" on="2015-08-16"/>
       <environment ref="on-empty-A"/>
-      <dependencies>
-         <spec value="XSLT30+"/>
-      </dependencies>
       <test>
          <stylesheet file="on-empty-007.xsl"/>
       </test>
@@ -132,9 +115,6 @@
       <description>Stereotypical use case for xsl:on-empty</description>
       <created by="Michael Kay" on="2014-12-22"/>
       <environment ref="on-empty-A"/>
-      <dependencies>
-         <spec value="XSLT30+"/>
-      </dependencies>
       <test>
          <stylesheet file="on-empty-008.xsl"/>
       </test>
@@ -147,9 +127,6 @@
       <description>Stereotypical use case for xsl:on-empty</description>
       <created by="Michael Kay" on="2014-12-22"/>
       <environment ref="on-empty-A"/>
-      <dependencies>
-         <spec value="XSLT30+"/>
-      </dependencies>
       <test>
          <stylesheet file="on-empty-009.xsl"/>
       </test>
@@ -162,9 +139,6 @@
       <description>Use xsl:on-empty with xsl:sort</description>
       <created by="Michael Kay" on="2014-12-22"/>
       <environment ref="on-empty-A"/>
-      <dependencies>
-         <spec value="XSLT30+"/>
-      </dependencies>
       <test>
          <stylesheet file="on-empty-010.xsl"/>
       </test>
@@ -177,9 +151,6 @@
       <description>Zero length text nodes count as empty (bug 28888)</description>
       <created by="Michael Kay" on="2015-08-16"/>
       <environment ref="on-empty-A"/>
-      <dependencies>
-         <spec value="XSLT30+"/>
-      </dependencies>
       <test>
          <stylesheet file="on-empty-011.xsl"/>
       </test>
@@ -192,9 +163,6 @@
       <description>Empty document nodes count as empty (bug 28888)</description>
       <created by="Michael Kay" on="2015-08-16"/>
       <environment ref="on-empty-A"/>
-      <dependencies>
-         <spec value="XSLT30+"/>
-      </dependencies>
       <test>
          <stylesheet file="on-empty-012.xsl"/>
       </test>
@@ -203,5 +171,813 @@
       </result>
    </test-case>
 
+   <test-case name="on-empty-100">
+      <description>Basic test with on-empty</description>
+      <created by="Abel Braaksma" on="2016-01-12"/>
+      <test>
+         <stylesheet file="on-empty-100.xsl"/>
+      </test>
+      <result>
+         <assert-xml><![CDATA[<empty>we are the champions!</empty>]]></assert-xml>
+      </result>
+   </test-case>
+
+   <test-case name="on-empty-101">
+      <description>Basic test with on-empty with numeric</description>
+      <created by="Abel Braaksma" on="2016-01-12"/>
+      <dependencies>
+         <spec value="XSLT30+"/>
+      </dependencies>
+      <test>
+         <stylesheet file="on-empty-101.xsl"/>
+      </test>
+      <result>
+         <assert-xml><![CDATA[<empty>42</empty>]]></assert-xml>
+      </result>
+   </test-case>
+
+   <test-case name="on-empty-101a">
+      <description>Basic test with on-empty with sequence</description>
+      <created by="Abel Braaksma" on="2016-01-12"/>
+      <dependencies>
+         <spec value="XSLT30+"/>
+      </dependencies>
+      <test>
+         <stylesheet file="on-empty-101a.xsl"/>
+      </test>
+      <result>
+         <assert-xml><![CDATA[<empty>1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0</empty>]]></assert-xml>
+      </result>
+   </test-case>
+
+   <test-case name="on-empty-101b">
+      <description>Basic test with on-empty with base64</description>
+      <created by="Abel Braaksma" on="2016-01-12"/>
+      <dependencies>
+         <spec value="XSLT30+"/>
+      </dependencies>
+      <test>
+         <stylesheet file="on-empty-101b.xsl"/>
+      </test>
+      <result>
+         <assert-xml><![CDATA[<empty>dkaieKDsiws85eks</empty>]]></assert-xml>
+      </result>
+   </test-case>
+
+   <test-case name="on-empty-101c">
+      <description>Basic test with on-empty with element</description>
+      <created by="Abel Braaksma" on="2016-01-12"/>
+      <dependencies>
+         <spec value="XSLT30+"/>
+      </dependencies>
+      <test>
+         <stylesheet file="on-empty-101c.xsl"/>
+      </test>
+      <result>
+         <assert-xml><![CDATA[<empty><this><is><empty/></is></this></empty>]]></assert-xml>
+      </result>
+   </test-case>
+
+   <test-case name="on-empty-101d">
+      <description>Basic test with on-empty with document</description>
+      <created by="Abel Braaksma" on="2016-01-12"/>
+      <dependencies>
+         <spec value="XSLT30+"/>
+      </dependencies>
+      <test>
+         <stylesheet file="on-empty-101d.xsl"/>
+      </test>
+      <result>
+         <assert-xml><![CDATA[<empty><document/></empty>]]></assert-xml>
+      </result>
+   </test-case>
+
+   <test-case name="on-empty-102">
+      <description>Basic test with on-empty with numeric</description>
+      <created by="Abel Braaksma" on="2016-01-12"/>
+      <dependencies>
+         <spec value="XSLT30+"/>
+      </dependencies>
+      <test>
+         <stylesheet file="on-empty-102.xsl"/>
+      </test>
+      <result>
+         <assert-xml><![CDATA[<empty>42</empty>]]></assert-xml>
+      </result>
+   </test-case>
+
+   <test-case name="on-empty-102a">
+      <description>Basic test with on-empty with sequence</description>
+      <created by="Abel Braaksma" on="2016-01-12"/>
+      <dependencies>
+         <spec value="XSLT30+"/>
+      </dependencies>
+      <test>
+         <stylesheet file="on-empty-102a.xsl"/>
+      </test>
+      <result>
+         <assert-xml><![CDATA[<empty>1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0</empty>]]></assert-xml>
+      </result>
+   </test-case>
+
+   <test-case name="on-empty-102b">
+      <description>Basic test with on-empty with base64</description>
+      <created by="Abel Braaksma" on="2016-01-12"/>
+      <dependencies>
+         <spec value="XSLT30+"/>
+      </dependencies>
+      <test>
+         <stylesheet file="on-empty-102b.xsl"/>
+      </test>
+      <result>
+         <assert-xml><![CDATA[<empty>dkaieKDsiws85eks</empty>]]></assert-xml>
+      </result>
+   </test-case>
+
+   <test-case name="on-empty-102c">
+      <description>Basic test with on-empty with element</description>
+      <created by="Abel Braaksma" on="2016-01-12"/>
+      <dependencies>
+         <spec value="XSLT30+"/>
+      </dependencies>
+      <test>
+         <stylesheet file="on-empty-102c.xsl"/>
+      </test>
+      <result>
+         <assert-xml><![CDATA[<empty><this><is><empty/></is></this></empty>]]></assert-xml>
+      </result>
+   </test-case>
+
+   <test-case name="on-empty-102d">
+      <description>Basic test with on-empty with document</description>
+      <created by="Abel Braaksma" on="2016-01-12"/>
+      <dependencies>
+         <spec value="XSLT30+"/>
+      </dependencies>
+      <test>
+         <stylesheet file="on-empty-102d.xsl"/>
+      </test>
+      <result>
+         <assert-xml><![CDATA[<empty><document/></empty>]]></assert-xml>
+      </result>
+   </test-case>
+
+   <test-case name="on-empty-103">
+      <description>Basic test with on-empty with numeric, not empty</description>
+      <created by="Abel Braaksma" on="2016-01-12"/>
+      <dependencies>
+         <spec value="XSLT30+"/>
+      </dependencies>
+      <test>
+         <stylesheet file="on-empty-103.xsl"/>
+      </test>
+      <result>
+         <assert-xml><![CDATA[<empty>not so empty</empty>]]></assert-xml>
+      </result>
+   </test-case>
+
+   <test-case name="on-empty-103a">
+      <description>Basic test with on-empty with sequence, not empty</description>
+      <created by="Abel Braaksma" on="2016-01-12"/>
+      <dependencies>
+         <spec value="XSLT30+"/>
+      </dependencies>
+      <test>
+         <stylesheet file="on-empty-103a.xsl"/>
+      </test>
+      <result>
+         <assert-xml><![CDATA[<empty>not so empty</empty>]]></assert-xml>
+      </result>
+   </test-case>
+
+   <test-case name="on-empty-103b">
+      <description>Basic test with on-empty with base64, not empty</description>
+      <created by="Abel Braaksma" on="2016-01-12"/>
+      <dependencies>
+         <spec value="XSLT30+"/>
+      </dependencies>
+      <test>
+         <stylesheet file="on-empty-103b.xsl"/>
+      </test>
+      <result>
+         <assert-xml><![CDATA[<empty>not so empty</empty>]]></assert-xml>
+      </result>
+   </test-case>
+
+   <test-case name="on-empty-103c">
+      <description>Basic test with on-empty with element, not empty</description>
+      <created by="Abel Braaksma" on="2016-01-12"/>
+      <dependencies>
+         <spec value="XSLT30+"/>
+      </dependencies>
+      <test>
+         <stylesheet file="on-empty-103c.xsl"/>
+      </test>
+      <result>
+         <assert-xml><![CDATA[<empty>not so empty</empty>]]></assert-xml>
+      </result>
+   </test-case>
+
+   <test-case name="on-empty-103d">
+      <description>Basic test with on-empty with document, not empty</description>
+      <created by="Abel Braaksma" on="2016-01-12"/>
+      <dependencies>
+         <spec value="XSLT30+"/>
+      </dependencies>
+      <test>
+         <stylesheet file="on-empty-103d.xsl"/>
+      </test>
+      <result>
+         <assert-xml><![CDATA[<empty>not so empty</empty>]]></assert-xml>
+      </result>
+   </test-case>
+   
+   <test-case name="on-empty-104">
+      <description>Basic test with on-empty with numeric and significant space</description>
+      <created by="Abel Braaksma" on="2016-01-12"/>
+      <dependencies>
+         <spec value="XSLT30+"/>
+      </dependencies>
+      <test>
+         <stylesheet file="on-empty-104.xsl"/>
+      </test>
+      <result>
+         <assert-xml><![CDATA[<empty> </empty>]]></assert-xml>
+      </result>
+   </test-case>
+
+   <test-case name="on-empty-104a">
+      <description>Basic test with on-empty with sequence and significant space</description>
+      <created by="Abel Braaksma" on="2016-01-12"/>
+      <dependencies>
+         <spec value="XSLT30+"/>
+      </dependencies>
+      <test>
+         <stylesheet file="on-empty-104a.xsl"/>
+      </test>
+      <result>
+         <assert-xml><![CDATA[<empty> </empty>]]></assert-xml>
+      </result>
+   </test-case>
+
+   <test-case name="on-empty-104b">
+      <description>Basic test with on-empty with base64 and significant space</description>
+      <created by="Abel Braaksma" on="2016-01-12"/>
+      <dependencies>
+         <spec value="XSLT30+"/>
+      </dependencies>
+      <test>
+         <stylesheet file="on-empty-104b.xsl"/>
+      </test>
+      <result>
+         <assert-xml><![CDATA[<empty> </empty>]]></assert-xml>
+      </result>
+   </test-case>
+
+   <test-case name="on-empty-104c">
+      <description>Basic test with on-empty with element and significant space</description>
+      <created by="Abel Braaksma" on="2016-01-12"/>
+      <dependencies>
+         <spec value="XSLT30+"/>
+      </dependencies>
+      <test>
+         <stylesheet file="on-empty-104c.xsl"/>
+      </test>
+      <result>
+         <assert-xml><![CDATA[<empty> </empty>]]></assert-xml>
+      </result>
+   </test-case>
+
+   <test-case name="on-empty-104d">
+      <description>Basic test with on-empty with document and significant space</description>
+      <created by="Abel Braaksma" on="2016-01-12"/>
+      <dependencies>
+         <spec value="XSLT30+"/>
+      </dependencies>
+      <test>
+         <stylesheet file="on-empty-104d.xsl"/>
+      </test>
+      <result>
+         <assert-xml><![CDATA[<empty> </empty>]]></assert-xml>
+      </result>
+   </test-case>
+   
+   <test-case name="on-empty-105">
+      <description>Basic test with on-empty with numeric and three empty comments, not considered empty</description>
+      <created by="Abel Braaksma" on="2016-01-12"/>
+      <dependencies>
+         <spec value="XSLT30+"/>
+      </dependencies>
+      <test>
+         <stylesheet file="on-empty-105.xsl"/>
+      </test>
+      <result>
+         <assert-xml><![CDATA[<empty><!----><!----><!----></empty>]]></assert-xml>
+      </result>
+   </test-case>
+
+   <test-case name="on-empty-105a">
+      <description>Basic test with on-empty with sequence and three empty comments, not considered empty</description>
+      <created by="Abel Braaksma" on="2016-01-12"/>
+      <dependencies>
+         <spec value="XSLT30+"/>
+      </dependencies>
+      <test>
+         <stylesheet file="on-empty-105a.xsl"/>
+      </test>
+      <result>
+         <assert-xml><![CDATA[<empty><!----><!----><!----></empty>]]></assert-xml>
+      </result>
+   </test-case>
+
+   <test-case name="on-empty-105b">
+      <description>Basic test with on-empty with base64 and three empty comments, not considered empty</description>
+      <created by="Abel Braaksma" on="2016-01-12"/>
+      <dependencies>
+         <spec value="XSLT30+"/>
+      </dependencies>
+      <test>
+         <stylesheet file="on-empty-105b.xsl"/>
+      </test>
+      <result>
+         <assert-xml><![CDATA[<empty><!----><!----><!----></empty>]]></assert-xml>
+      </result>
+   </test-case>
+
+   <test-case name="on-empty-105c">
+      <description>Basic test with on-empty with element and three empty comments, not considered empty</description>
+      <created by="Abel Braaksma" on="2016-01-12"/>
+      <dependencies>
+         <spec value="XSLT30+"/>
+      </dependencies>
+      <test>
+         <stylesheet file="on-empty-105c.xsl"/>
+      </test>
+      <result>
+         <assert-xml><![CDATA[<empty><!----><!----><!----></empty>]]></assert-xml>
+      </result>
+   </test-case>
+
+   <test-case name="on-empty-105d">
+      <description>Basic test with on-empty with document and three empty comments, not considered empty</description>
+      <created by="Abel Braaksma" on="2016-01-12"/>
+      <dependencies>
+         <spec value="XSLT30+"/>
+      </dependencies>
+      <test>
+         <stylesheet file="on-empty-105d.xsl"/>
+      </test>
+      <result>
+         <assert-xml><![CDATA[<empty><!----><!----><!----></empty>]]></assert-xml>
+      </result>
+   </test-case>
+   
+   <test-case name="on-empty-106">
+      <description>Basic test with on-empty with numeric and an attribute constructor canceling making the content non-empty</description>
+      <created by="Abel Braaksma" on="2016-01-12"/>
+      <dependencies>
+         <spec value="XSLT30+"/>
+      </dependencies>
+      <test>
+         <stylesheet file="on-empty-106.xsl"/>
+      </test>
+      <result>
+         <assert-xml><![CDATA[<empty what-is="fourty-two"/>]]></assert-xml>
+      </result>
+   </test-case>
+
+   <test-case name="on-empty-106a">
+      <description>Basic test with on-empty with sequence and an attribute constructor canceling making the content non-empty</description>
+      <created by="Abel Braaksma" on="2016-01-12"/>
+      <dependencies>
+         <spec value="XSLT30+"/>
+      </dependencies>
+      <test>
+         <stylesheet file="on-empty-106a.xsl"/>
+      </test>
+      <result>
+         <assert-xml><![CDATA[<empty what-is="fourty-two"/>]]></assert-xml>
+      </result>
+   </test-case>
+
+   <test-case name="on-empty-106b">
+      <description>Basic test with on-empty with base64 and an attribute constructor canceling making the content non-empty</description>
+      <created by="Abel Braaksma" on="2016-01-12"/>
+      <dependencies>
+         <spec value="XSLT30+"/>
+      </dependencies>
+      <test>
+         <stylesheet file="on-empty-106b.xsl"/>
+      </test>
+      <result>
+         <assert-xml><![CDATA[<empty what-is="fourty-two"/>]]></assert-xml>
+      </result>
+   </test-case>
+
+   <test-case name="on-empty-106c">
+      <description>Basic test with on-empty with element and an attribute constructor canceling making the content non-empty</description>
+      <created by="Abel Braaksma" on="2016-01-12"/>
+      <dependencies>
+         <spec value="XSLT30+"/>
+      </dependencies>
+      <test>
+         <stylesheet file="on-empty-106c.xsl"/>
+      </test>
+      <result>
+         <assert-xml><![CDATA[<empty what-is="fourty-two"/>]]></assert-xml>
+      </result>
+   </test-case>
+
+   <test-case name="on-empty-106d">
+      <description>Basic test with on-empty with document and an attribute constructor canceling making the content non-empty</description>
+      <created by="Abel Braaksma" on="2016-01-12"/>
+      <dependencies>
+         <spec value="XSLT30+"/>
+      </dependencies>
+      <test>
+         <stylesheet file="on-empty-106d.xsl"/>
+      </test>
+      <result>
+         <assert-xml><![CDATA[<empty what-is="fourty-two"/>]]></assert-xml>
+      </result>
+   </test-case>
+   
+   <test-case name="on-empty-107">
+      <description>Basic test with on-empty with numeric and a namespace</description>
+      <created by="Abel Braaksma" on="2016-01-12"/>
+      <dependencies>
+         <spec value="XSLT30+"/>
+      </dependencies>
+      <test>
+         <stylesheet file="on-empty-107.xsl"/>
+      </test>
+      <result>
+         <assert-xml><![CDATA[<empty xmlns:test="http://testme"/>]]></assert-xml>
+      </result>
+   </test-case>
+
+   <test-case name="on-empty-107a">
+      <description>Basic test with on-empty with sequence and a namespace</description>
+      <created by="Abel Braaksma" on="2016-01-12"/>
+      <dependencies>
+         <spec value="XSLT30+"/>
+      </dependencies>
+      <test>
+         <stylesheet file="on-empty-107a.xsl"/>
+      </test>
+      <result>
+         <assert-xml><![CDATA[<empty xmlns:test="http://testme"/>]]></assert-xml>
+      </result>
+   </test-case>
+
+   <test-case name="on-empty-107b">
+      <description>Basic test with on-empty with base64 and a namespace</description>
+      <created by="Abel Braaksma" on="2016-01-12"/>
+      <dependencies>
+         <spec value="XSLT30+"/>
+      </dependencies>
+      <test>
+         <stylesheet file="on-empty-107b.xsl"/>
+      </test>
+      <result>
+         <assert-xml><![CDATA[<empty xmlns:test="http://testme"/>]]></assert-xml>
+      </result>
+   </test-case>
+
+   <test-case name="on-empty-107c">
+      <description>Basic test with on-empty with element and a namespace</description>
+      <created by="Abel Braaksma" on="2016-01-12"/>
+      <dependencies>
+         <spec value="XSLT30+"/>
+      </dependencies>
+      <test>
+         <stylesheet file="on-empty-107c.xsl"/>
+      </test>
+      <result>
+         <assert-xml><![CDATA[<empty xmlns:test="http://testme"/>]]></assert-xml>
+      </result>
+   </test-case>
+
+   <test-case name="on-empty-107d">
+      <description>Basic test with on-empty with document and a namespace</description>
+      <created by="Abel Braaksma" on="2016-01-12"/>
+      <dependencies>
+         <spec value="XSLT30+"/>
+      </dependencies>
+      <test>
+         <stylesheet file="on-empty-107d.xsl"/>
+      </test>
+      <result>
+         <assert-xml><![CDATA[<empty xmlns:test="http://testme"/>]]></assert-xml>
+      </result>
+   </test-case>
+   
+   <test-case name="on-empty-108">
+      <description>Basic test with on-empty with numeric and a use-attributes, leaving the content empty</description>
+      <created by="Abel Braaksma" on="2016-01-12"/>
+      <dependencies>
+         <spec value="XSLT30+"/>
+      </dependencies>
+      <test>
+         <stylesheet file="on-empty-108.xsl"/>
+      </test>
+      <result>
+         <assert-xml><![CDATA[<empty what-is="fourty-two">42</empty>]]></assert-xml>
+      </result>
+   </test-case>
+
+   <test-case name="on-empty-108a">
+      <description>Basic test with on-empty with sequence and a use-attributes, leaving the content empty</description>
+      <created by="Abel Braaksma" on="2016-01-12"/>
+      <dependencies>
+         <spec value="XSLT30+"/>
+      </dependencies>
+      <test>
+         <stylesheet file="on-empty-108a.xsl"/>
+      </test>
+      <result>
+         <assert-xml><![CDATA[<empty what-is="fourty-two">1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0</empty>]]></assert-xml>
+      </result>
+   </test-case>
+
+   <test-case name="on-empty-108b">
+      <description>Basic test with on-empty with base64 and a use-attributes, leaving the content empty</description>
+      <created by="Abel Braaksma" on="2016-01-12"/>
+      <dependencies>
+         <spec value="XSLT30+"/>
+      </dependencies>
+      <test>
+         <stylesheet file="on-empty-108b.xsl"/>
+      </test>
+      <result>
+         <assert-xml><![CDATA[<empty what-is="fourty-two">dkaieKDsiws85eks</empty>]]></assert-xml>
+      </result>
+   </test-case>
+
+   <test-case name="on-empty-108c">
+      <description>Basic test with on-empty with element and a use-attributes, leaving the content empty</description>
+      <created by="Abel Braaksma" on="2016-01-12"/>
+      <dependencies>
+         <spec value="XSLT30+"/>
+      </dependencies>
+      <test>
+         <stylesheet file="on-empty-108c.xsl"/>
+      </test>
+      <result>
+         <assert-xml><![CDATA[<empty what-is="fourty-two"><this><is><empty/></is></this></empty>]]></assert-xml>
+      </result>
+   </test-case>
+
+   <test-case name="on-empty-108d">
+      <description>Basic test with on-empty with document and a use-attributes, leaving the content empty</description>
+      <created by="Abel Braaksma" on="2016-01-12"/>
+      <dependencies>
+         <spec value="XSLT30+"/>
+      </dependencies>
+      <test>
+         <stylesheet file="on-empty-108d.xsl"/>
+      </test>
+      <result>
+         <assert-xml><![CDATA[<empty what-is="fourty-two"><document/></empty>]]></assert-xml>
+      </result>
+   </test-case>
+   
+   <test-case name="on-empty-109">
+      <description>Basic test with on-empty with numeric and an attribute, leaving the content empty</description>
+      <created by="Abel Braaksma" on="2016-01-12"/>
+      <dependencies>
+         <spec value="XSLT30+"/>
+      </dependencies>
+      <test>
+         <stylesheet file="on-empty-109.xsl"/>
+      </test>
+      <result>
+         <assert-xml><![CDATA[<empty what-is="fourty-two">42</empty>]]></assert-xml>
+      </result>
+   </test-case>
+
+   <test-case name="on-empty-109a">
+      <description>Basic test with on-empty with sequence and an attribute, leaving the content empty</description>
+      <created by="Abel Braaksma" on="2016-01-12"/>
+      <dependencies>
+         <spec value="XSLT30+"/>
+      </dependencies>
+      <test>
+         <stylesheet file="on-empty-109a.xsl"/>
+      </test>
+      <result>
+         <assert-xml><![CDATA[<empty what-is="fourty-two">1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0</empty>]]></assert-xml>
+      </result>
+   </test-case>
+
+   <test-case name="on-empty-109b">
+      <description>Basic test with on-empty with base64 and an attribute, leaving the content empty</description>
+      <created by="Abel Braaksma" on="2016-01-12"/>
+      <dependencies>
+         <spec value="XSLT30+"/>
+      </dependencies>
+      <test>
+         <stylesheet file="on-empty-109b.xsl"/>
+      </test>
+      <result>
+         <assert-xml><![CDATA[<empty what-is="fourty-two">dkaieKDsiws85eks</empty>]]></assert-xml>
+      </result>
+   </test-case>
+
+   <test-case name="on-empty-109c">
+      <description>Basic test with on-empty with element and an attribute, leaving the content empty</description>
+      <created by="Abel Braaksma" on="2016-01-12"/>
+      <dependencies>
+         <spec value="XSLT30+"/>
+      </dependencies>
+      <test>
+         <stylesheet file="on-empty-109c.xsl"/>
+      </test>
+      <result>
+         <assert-xml><![CDATA[<empty what-is="fourty-two"><this><is><empty/></is></this></empty>]]></assert-xml>
+      </result>
+   </test-case>
+
+   <test-case name="on-empty-109d">
+      <description>Basic test with on-empty with document and an attribute, leaving the content empty</description>
+      <created by="Abel Braaksma" on="2016-01-12"/>
+      <dependencies>
+         <spec value="XSLT30+"/>
+      </dependencies>
+      <test>
+         <stylesheet file="on-empty-109d.xsl"/>
+      </test>
+      <result>
+         <assert-xml><![CDATA[<empty what-is="fourty-two"><document/></empty>]]></assert-xml>
+      </result>
+   </test-case>
+   
+   <test-case name="on-empty-110">
+      <description>Test with on-empty, nested and significant space</description>
+      <created by="Abel Braaksma" on="2016-01-12"/>
+      <dependencies>
+         <spec value="XSLT30+"/>
+      </dependencies>
+      <test>
+         <stylesheet file="on-empty-110.xsl"/>
+      </test>
+      <result>
+         <assert-xml><![CDATA[<empty><empty><empty>42</empty></empty></empty>]]></assert-xml>
+      </result>
+   </test-case>
+   
+   <test-case name="on-empty-111">
+      <description>Test with on-empty, nested with variables and significant space</description>
+      <created by="Abel Braaksma" on="2016-01-12"/>
+      <dependencies>
+         <spec value="XSLT30+"/>
+      </dependencies>
+      <test>
+         <stylesheet file="on-empty-111.xsl"/>
+      </test>
+      <result>
+         <assert-xml><![CDATA[<empty><empty>42</empty></empty>]]></assert-xml>
+      </result>
+   </test-case>
+
+   <test-case name="on-empty-112">
+      <description>Test with on-empty, combined with for-each</description>
+      <created by="Abel Braaksma" on="2016-01-12"/>
+      <dependencies>
+         <spec value="XSLT30+"/>
+      </dependencies>
+      <test>
+         <stylesheet file="on-empty-112.xsl"/>
+      </test>
+      <result>
+         <assert-xml><![CDATA[<empty>123456789|111213141516171819 |212223242526272829 |313233343536373839 |414243444546474849 |515253545556575859 |616263646566676869 |717273747576777879 |818283848586878889 |919293949596979899 |</empty>]]></assert-xml>
+      </result>
+   </test-case>
+
+   <test-case name="on-empty-113a">
+      <description>Test with on-empty, combined with for-each</description>
+      <created by="Abel Braaksma" on="2016-01-12"/>
+      <dependencies>
+         <spec value="XSLT30+"/>
+      </dependencies>
+      <test>
+         <stylesheet file="on-empty-113a.xsl"/>
+      </test>
+      <result>
+         <assert-string-value>START-->1|3|5|7|9|11|13|15|17|19|21|23|25|27|29|31|33|35|37|39|41|43|45|47|49|51|53|55|57|59|61|63|65|67|69|71|73|75|77|79|81|83|85|87|89|91|93|95|97|99&lt;-- END</assert-string-value>
+      </result>
+   </test-case>
+   
+   <test-case name="on-empty-113b">
+      <description>Test with on-empty, combined with for-each, subtle variant in spaces generated from the -a version of the test</description>
+      <created by="Abel Braaksma" on="2016-01-12"/>
+      <dependencies>
+         <spec value="XSLT30+"/>
+      </dependencies>
+      <test>
+         <stylesheet file="on-empty-113b.xsl"/>
+      </test>
+      <result>
+         <assert-string-value>START-->1 |3 |5 |7 |9 |11 |13 |15 |17 |19 |21 |23 |25 |27 |29 |31 |33 |35 |37 |39 |41 |43 |45 |47 |49 |51 |53 |55 |57 |59 |61 |63 |65 |67 |69 |71 |73 |75 |77 |79 |81 |83 |85 |87 |89 |91 |93 |95 |97 |99&lt;-- END</assert-string-value>
+      </result>
+   </test-case>
+   
+   <test-case name="on-empty-114a">
+      <description>Test with on-empty, combined with for-each and on-non-empty to test subtle differences in spaces generated</description>
+      <created by="Abel Braaksma" on="2016-01-12"/>
+      <dependencies>
+         <spec value="XSLT30+"/>
+      </dependencies>
+      <test>
+         <stylesheet file="on-empty-114a.xsl"/>
+      </test>
+      <result>
+         <assert-string-value>START-->1 | 3 | 5 | 7 | 9 | 11 | 13 | 15 | 17 | 19 | 21 | 23 | 25 | 27 | 29 | 31 | 33 | 35 | 37 | 39 | 41 | 43 | 45 | 47 | 49 | 51 | 53 | 55 | 57 | 59 | 61 | 63 | 65 | 67 | 69 | 71 | 73 | 75 | 77 | 79 | 81 | 83 | 85 | 87 | 89 | 91 | 93 | 95 | 97 | 99 &lt;-- END</assert-string-value>
+      </result>
+   </test-case>
+   
+   <test-case name="on-empty-114b">
+      <description>Test with on-empty, combined with for-each and on-non-empty to test subtle differences in spaces generated, combare with -a version</description>
+      <created by="Abel Braaksma" on="2016-01-12"/>
+      <dependencies>
+         <spec value="XSLT30+"/>
+      </dependencies>
+      <test>
+         <stylesheet file="on-empty-114b.xsl"/>
+      </test>
+      <result>
+         <assert-string-value>START-->1  |3  |5  |7  |9  |11  |13  |15  |17  |19  |21  |23  |25  |27  |29  |31  |33  |35  |37  |39  |41  |43  |45  |47  |49  |51  |53  |55  |57  |59  |61  |63  |65  |67  |69  |71  |73  |75  |77  |79  |81  |83  |85  |87  |89  |91  |93  |95  |97  |99 &lt;-- END</assert-string-value>
+      </result>
+   </test-case>
+   
+   <test-case name="on-empty-115a">
+      <description>Test with on-empty, nested with variables and significant space in simple content seqtor: xsl:comment</description>
+      <created by="Abel Braaksma" on="2016-01-12"/>
+      <dependencies>
+         <spec value="XSLT30+"/>
+      </dependencies>
+      <test>
+         <stylesheet file="on-empty-115a.xsl"/>
+      </test>
+      <result>
+         <assert-xml><![CDATA[<!-- -->]]></assert-xml>
+      </result>
+   </test-case>
+
+   <test-case name="on-empty-115b">
+      <description>Test with on-empty, nested with variables and significant space in simple content seqtor: xsl:namespace</description>
+      <created by="Abel Braaksma" on="2016-01-12"/>
+      <dependencies>
+         <spec value="XSLT30+"/>
+      </dependencies>
+      <test>
+         <stylesheet file="on-empty-115b.xsl"/>
+      </test>
+      <result>
+         <assert-xml><![CDATA[<foo xmlns:bar=" "/>]]></assert-xml>
+      </result>
+   </test-case>
+
+   <test-case name="on-empty-115c">
+      <description>Test with on-empty, nested with variables and significant space in simple content seqtor: xsl:attribute</description>
+      <created by="Abel Braaksma" on="2016-01-12"/>
+      <dependencies>
+         <spec value="XSLT30+"/>
+      </dependencies>
+      <test>
+         <stylesheet file="on-empty-115c.xsl"/>
+      </test>
+      <result>
+         <assert-xml><![CDATA[<foo bar=" "/>]]></assert-xml>
+      </result>
+   </test-case>
+
+   <test-case name="on-empty-115d">
+      <description>Test with on-empty, nested with variables and significant space in simple content seqtor: xsl:processing-instruction</description>
+      <created by="Abel Braaksma" on="2016-01-12"/>
+      <dependencies>
+         <spec value="XSLT30+"/>
+      </dependencies>
+      <test>
+         <stylesheet file="on-empty-115d.xsl"/>
+      </test>
+      <result>
+         <assert-xml><![CDATA[<?foo ?>]]></assert-xml>
+      </result>
+   </test-case>
+
+   <test-case name="on-empty-115e">
+      <description>Test with on-empty, nested with variables and significant space in simple content seqtor: xsl:value-of (text node)</description>
+      <created by="Abel Braaksma" on="2016-01-12"/>
+      <dependencies>
+         <spec value="XSLT30+"/>
+      </dependencies>
+      <test>
+         <stylesheet file="on-empty-115e.xsl"/>
+      </test>
+      <result>
+         <assert-xml><![CDATA[<foo> </foo>]]></assert-xml>
+      </result>
+   </test-case>
 
 </test-set>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/insn/on-empty/on-empty-100.xsl	Sun Feb 14 06:50:09 2016 +0000
@@ -0,0 +1,10 @@
+<xsl:stylesheet version="3.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+    <!-- basic tests with xsl:on-empty -->
+  
+    <xsl:template name="xsl:initial-template">
+        <empty>
+            <xsl:on-empty select="'we are the champions!'"/> 
+        </empty>
+    </xsl:template>
+
+</xsl:stylesheet>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/insn/on-empty/on-empty-101.xsl	Sun Feb 14 06:50:09 2016 +0000
@@ -0,0 +1,10 @@
+<xsl:stylesheet version="3.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+    <!-- basic tests with xsl:on-empty -->
+  
+    <xsl:template name="xsl:initial-template">
+        <empty>            
+            <xsl:on-empty select="42"/> 
+        </empty>
+    </xsl:template>
+
+</xsl:stylesheet>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/insn/on-empty/on-empty-101a.xsl	Sun Feb 14 06:50:09 2016 +0000
@@ -0,0 +1,10 @@
+<xsl:stylesheet version="3.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+    <!-- basic tests with xsl:on-empty -->
+  
+    <xsl:template name="xsl:initial-template">
+        <empty>            
+            <xsl:on-empty select="for $i in 1 to 100 return $i mod 2"/> 
+        </empty>
+    </xsl:template>
+
+</xsl:stylesheet>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/insn/on-empty/on-empty-101b.xsl	Sun Feb 14 06:50:09 2016 +0000
@@ -0,0 +1,10 @@
+<xsl:stylesheet version="3.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xs="http://www.w3.org/2001/XMLSchema" exclude-result-prefixes="xs">
+    <!-- basic tests with xsl:on-empty -->
+  
+    <xsl:template name="xsl:initial-template">
+        <empty>            
+            <xsl:on-empty select="xs:base64Binary('dkaieKDsiws85eks')"/> 
+        </empty>
+    </xsl:template>
+
+</xsl:stylesheet>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/insn/on-empty/on-empty-101c.xsl	Sun Feb 14 06:50:09 2016 +0000
@@ -0,0 +1,12 @@
+<xsl:stylesheet version="3.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+    <!-- basic tests with xsl:on-empty -->
+  
+    <xsl:template name="xsl:initial-template">
+        <empty>            
+            <xsl:on-empty>
+                <this><is><empty/></is></this>
+            </xsl:on-empty> 
+        </empty>
+    </xsl:template>
+
+</xsl:stylesheet>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/insn/on-empty/on-empty-101d.xsl	Sun Feb 14 06:50:09 2016 +0000
@@ -0,0 +1,14 @@
+<xsl:stylesheet version="3.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+    <!-- basic tests with xsl:on-empty -->
+  
+    <xsl:template name="xsl:initial-template">
+        <empty>            
+            <xsl:on-empty>
+                <xsl:document>
+                    <document />
+                </xsl:document>
+            </xsl:on-empty> 
+        </empty>
+    </xsl:template>
+
+</xsl:stylesheet>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/insn/on-empty/on-empty-102.xsl	Sun Feb 14 06:50:09 2016 +0000
@@ -0,0 +1,15 @@
+<xsl:stylesheet version="3.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+    <!-- basic tests with xsl:on-empty -->
+  
+    <xsl:template name="xsl:initial-template">
+        <empty>
+            <!-- comment is still empty -->
+            <xsl:text><!-- empty text node --></xsl:text>
+            <xsl:value-of select="(1 to 10)[position() = 11]" />
+            <xsl:for-each select="20 to 30"><xsl:text><!--nothing --></xsl:text></xsl:for-each>
+            <?pi not a part ?>
+            <xsl:on-empty select="42"/> 
+        </empty>
+    </xsl:template>
+
+</xsl:stylesheet>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/insn/on-empty/on-empty-102a.xsl	Sun Feb 14 06:50:09 2016 +0000
@@ -0,0 +1,15 @@
+<xsl:stylesheet version="3.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+    <!-- basic tests with xsl:on-empty -->
+  
+    <xsl:template name="xsl:initial-template">
+        <empty>
+            <!-- comment is still empty -->
+            <xsl:text><!-- empty text node --></xsl:text>
+            <xsl:value-of select="(1 to 10)[position() = 11]" />
+            <xsl:for-each select="20 to 30"><xsl:text><!--nothing --></xsl:text></xsl:for-each>
+            <?pi not a part ?>
+            <xsl:on-empty select="for $i in 1 to 100 return $i mod 2"/> 
+        </empty>
+    </xsl:template>
+
+</xsl:stylesheet>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/insn/on-empty/on-empty-102b.xsl	Sun Feb 14 06:50:09 2016 +0000
@@ -0,0 +1,15 @@
+<xsl:stylesheet version="3.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xs="http://www.w3.org/2001/XMLSchema" exclude-result-prefixes="xs">
+    <!-- basic tests with xsl:on-empty -->
+  
+    <xsl:template name="xsl:initial-template">
+        <empty>
+            <!-- comment is still empty -->
+            <xsl:text><!-- empty text node --></xsl:text>
+            <xsl:value-of select="(1 to 10)[position() = 11]" />
+            <xsl:for-each select="20 to 30"><xsl:text><!--nothing --></xsl:text></xsl:for-each>
+            <?pi not a part ?>
+            <xsl:on-empty select="xs:base64Binary('dkaieKDsiws85eks')"/> 
+        </empty>
+    </xsl:template>
+
+</xsl:stylesheet>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/insn/on-empty/on-empty-102c.xsl	Sun Feb 14 06:50:09 2016 +0000
@@ -0,0 +1,17 @@
+<xsl:stylesheet version="3.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+    <!-- basic tests with xsl:on-empty -->
+  
+    <xsl:template name="xsl:initial-template">
+        <empty>
+            <!-- comment is still empty -->
+            <xsl:text><!-- empty text node --></xsl:text>
+            <xsl:value-of select="(1 to 10)[position() = 11]" />
+            <xsl:for-each select="20 to 30"><xsl:text><!--nothing --></xsl:text></xsl:for-each>
+            <?pi not a part ?>
+            <xsl:on-empty>
+                <this><is><empty/></is></this>
+            </xsl:on-empty> 
+        </empty>
+    </xsl:template>
+
+</xsl:stylesheet>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/insn/on-empty/on-empty-102d.xsl	Sun Feb 14 06:50:09 2016 +0000
@@ -0,0 +1,19 @@
+<xsl:stylesheet version="3.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+    <!-- basic tests with xsl:on-empty -->
+  
+    <xsl:template name="xsl:initial-template">
+        <empty>
+            <!-- comment is still empty -->
+            <xsl:text><!-- empty text node --></xsl:text>
+            <xsl:value-of select="(1 to 10)[position() = 11]" />
+            <xsl:for-each select="20 to 30"><xsl:text><!--nothing --></xsl:text></xsl:for-each>
+            <?pi not a part ?>
+            <xsl:on-empty>
+                <xsl:document>
+                    <document />
+                </xsl:document>
+            </xsl:on-empty> 
+        </empty>
+    </xsl:template>
+
+</xsl:stylesheet>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/insn/on-empty/on-empty-103.xsl	Sun Feb 14 06:50:09 2016 +0000
@@ -0,0 +1,11 @@
+<xsl:stylesheet version="3.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+    <!-- basic tests with xsl:on-empty -->
+  
+    <xsl:template name="xsl:initial-template">
+        <empty>
+            <xsl:text>not so empty</xsl:text>
+            <xsl:on-empty select="42"/> 
+        </empty>
+    </xsl:template>
+
+</xsl:stylesheet>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/insn/on-empty/on-empty-103a.xsl	Sun Feb 14 06:50:09 2016 +0000
@@ -0,0 +1,11 @@
+<xsl:stylesheet version="3.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+    <!-- basic tests with xsl:on-empty -->
+  
+    <xsl:template name="xsl:initial-template">
+        <empty>
+            <xsl:text>not so empty</xsl:text>
+            <xsl:on-empty select="for $i in 1 to 100 return $i mod 2"/> 
+        </empty>
+    </xsl:template>
+
+</xsl:stylesheet>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/insn/on-empty/on-empty-103b.xsl	Sun Feb 14 06:50:09 2016 +0000
@@ -0,0 +1,11 @@
+<xsl:stylesheet version="3.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xs="http://www.w3.org/2001/XMLSchema" exclude-result-prefixes="xs">
+    <!-- basic tests with xsl:on-empty -->
+  
+    <xsl:template name="xsl:initial-template">
+        <empty>
+            <xsl:text>not so empty</xsl:text>
+            <xsl:on-empty select="xs:base64Binary('dkaieKDsiws85eks')"/> 
+        </empty>
+    </xsl:template>
+
+</xsl:stylesheet>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/insn/on-empty/on-empty-103c.xsl	Sun Feb 14 06:50:09 2016 +0000
@@ -0,0 +1,13 @@
+<xsl:stylesheet version="3.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+    <!-- basic tests with xsl:on-empty -->
+  
+    <xsl:template name="xsl:initial-template">
+        <empty>
+            <xsl:text>not so empty</xsl:text>
+            <xsl:on-empty>
+                <this><is><empty/></is></this>
+            </xsl:on-empty> 
+        </empty>
+    </xsl:template>
+
+</xsl:stylesheet>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/insn/on-empty/on-empty-103d.xsl	Sun Feb 14 06:50:09 2016 +0000
@@ -0,0 +1,15 @@
+<xsl:stylesheet version="3.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+    <!-- basic tests with xsl:on-empty -->
+  
+    <xsl:template name="xsl:initial-template">
+        <empty>
+            <xsl:text>not so empty</xsl:text>
+            <xsl:on-empty>
+                <xsl:document>
+                    <document />
+                </xsl:document>
+            </xsl:on-empty> 
+        </empty>
+    </xsl:template>
+
+</xsl:stylesheet>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/insn/on-empty/on-empty-104.xsl	Sun Feb 14 06:50:09 2016 +0000
@@ -0,0 +1,11 @@
+<xsl:stylesheet version="3.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+    <!-- basic tests with xsl:on-empty -->
+  
+    <xsl:template name="xsl:initial-template">
+        <empty>
+            <xsl:text><!-- significant space --> <!-- is not empty --></xsl:text>
+            <xsl:on-empty select="42"/> 
+        </empty>
+    </xsl:template>
+
+</xsl:stylesheet>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/insn/on-empty/on-empty-104a.xsl	Sun Feb 14 06:50:09 2016 +0000
@@ -0,0 +1,11 @@
+<xsl:stylesheet version="3.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+    <!-- basic tests with xsl:on-empty -->
+  
+    <xsl:template name="xsl:initial-template">
+        <empty>
+            <xsl:text><!-- significant space --> <!-- is not empty --></xsl:text>
+            <xsl:on-empty select="for $i in 1 to 100 return $i mod 2"/> 
+        </empty>
+    </xsl:template>
+
+</xsl:stylesheet>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/insn/on-empty/on-empty-104b.xsl	Sun Feb 14 06:50:09 2016 +0000
@@ -0,0 +1,11 @@
+<xsl:stylesheet version="3.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xs="http://www.w3.org/2001/XMLSchema" exclude-result-prefixes="xs">
+    <!-- basic tests with xsl:on-empty -->
+  
+    <xsl:template name="xsl:initial-template">
+        <empty>
+            <xsl:text><!-- significant space --> <!-- is not empty --></xsl:text>
+            <xsl:on-empty select="xs:base64Binary('dkaieKDsiws85eks')"/> 
+        </empty>
+    </xsl:template>
+
+</xsl:stylesheet>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/insn/on-empty/on-empty-104c.xsl	Sun Feb 14 06:50:09 2016 +0000
@@ -0,0 +1,13 @@
+<xsl:stylesheet version="3.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+    <!-- basic tests with xsl:on-empty -->
+  
+    <xsl:template name="xsl:initial-template">
+        <empty>
+            <xsl:text><!-- significant space --> <!-- is not empty --></xsl:text>
+            <xsl:on-empty>
+                <this><is><empty/></is></this>
+            </xsl:on-empty> 
+        </empty>
+    </xsl:template>
+
+</xsl:stylesheet>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/insn/on-empty/on-empty-104d.xsl	Sun Feb 14 06:50:09 2016 +0000
@@ -0,0 +1,15 @@
+<xsl:stylesheet version="3.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+    <!-- basic tests with xsl:on-empty -->
+  
+    <xsl:template name="xsl:initial-template">
+        <empty>
+            <xsl:text><!-- significant space --> <!-- is not empty --></xsl:text>
+            <xsl:on-empty>
+                <xsl:document>
+                    <document />
+                </xsl:document>
+            </xsl:on-empty> 
+        </empty>
+    </xsl:template>
+
+</xsl:stylesheet>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/insn/on-empty/on-empty-105.xsl	Sun Feb 14 06:50:09 2016 +0000
@@ -0,0 +1,16 @@
+<xsl:stylesheet version="3.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+    <!-- basic tests with xsl:on-empty -->
+  
+    <xsl:template name="xsl:initial-template">
+        <empty>
+            <xsl:variable name="comments" as="comment()*">
+                <xsl:comment select="''"></xsl:comment>
+                <xsl:comment select="''"><!-- empty comment --></xsl:comment>
+                <xsl:comment></xsl:comment>
+            </xsl:variable>
+            <xsl:copy-of select="$comments" />
+            <xsl:on-empty select="42"/> 
+        </empty>
+    </xsl:template>
+
+</xsl:stylesheet>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/insn/on-empty/on-empty-105a.xsl	Sun Feb 14 06:50:09 2016 +0000
@@ -0,0 +1,16 @@
+<xsl:stylesheet version="3.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+    <!-- basic tests with xsl:on-empty -->
+  
+    <xsl:template name="xsl:initial-template">
+        <empty>
+            <xsl:variable name="comments" as="comment()*">
+                <xsl:comment select="''"></xsl:comment>
+                <xsl:comment select="''"><!-- empty comment --></xsl:comment>
+                <xsl:comment></xsl:comment>
+            </xsl:variable>
+            <xsl:copy-of select="$comments" />
+            <xsl:on-empty select="for $i in 1 to 100 return $i mod 2"/> 
+        </empty>
+    </xsl:template>
+
+</xsl:stylesheet>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/insn/on-empty/on-empty-105b.xsl	Sun Feb 14 06:50:09 2016 +0000
@@ -0,0 +1,16 @@
+<xsl:stylesheet version="3.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xs="http://www.w3.org/2001/XMLSchema" exclude-result-prefixes="xs">
+    <!-- basic tests with xsl:on-empty -->
+  
+    <xsl:template name="xsl:initial-template">
+        <empty>
+            <xsl:variable name="comments" as="comment()*">
+                <xsl:comment select="''"></xsl:comment>
+                <xsl:comment select="''"><!-- empty comment --></xsl:comment>
+                <xsl:comment></xsl:comment>
+            </xsl:variable>
+            <xsl:copy-of select="$comments" />
+            <xsl:on-empty select="xs:base64Binary('dkaieKDsiws85eks')"/> 
+        </empty>
+    </xsl:template>
+
+</xsl:stylesheet>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/insn/on-empty/on-empty-105c.xsl	Sun Feb 14 06:50:09 2016 +0000
@@ -0,0 +1,18 @@
+<xsl:stylesheet version="3.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+    <!-- basic tests with xsl:on-empty -->
+  
+    <xsl:template name="xsl:initial-template">
+        <empty>
+            <xsl:variable name="comments" as="comment()*">
+                <xsl:comment select="''"></xsl:comment>
+                <xsl:comment select="''"><!-- empty comment --></xsl:comment>
+                <xsl:comment></xsl:comment>
+            </xsl:variable>
+            <xsl:copy-of select="$comments" />
+            <xsl:on-empty>
+                <this><is><empty/></is></this>
+            </xsl:on-empty> 
+        </empty>
+    </xsl:template>
+
+</xsl:stylesheet>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/insn/on-empty/on-empty-105d.xsl	Sun Feb 14 06:50:09 2016 +0000
@@ -0,0 +1,20 @@
+<xsl:stylesheet version="3.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+    <!-- basic tests with xsl:on-empty -->
+  
+    <xsl:template name="xsl:initial-template">
+        <empty>
+            <xsl:variable name="comments" as="comment()*">
+                <xsl:comment select="''"></xsl:comment>
+                <xsl:comment select="''"><!-- empty comment --></xsl:comment>
+                <xsl:comment></xsl:comment>
+            </xsl:variable>
+            <xsl:copy-of select="$comments" />
+            <xsl:on-empty>
+                <xsl:document>
+                    <document />
+                </xsl:document>
+            </xsl:on-empty> 
+        </empty>
+    </xsl:template>
+
+</xsl:stylesheet>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/insn/on-empty/on-empty-106.xsl	Sun Feb 14 06:50:09 2016 +0000
@@ -0,0 +1,11 @@
+<xsl:stylesheet version="3.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+    <!-- basic tests with xsl:on-empty -->
+  
+    <xsl:template name="xsl:initial-template">
+        <empty>
+            <xsl:attribute name="what-is">fourty-two</xsl:attribute>
+            <xsl:on-empty select="42"/> 
+        </empty>
+    </xsl:template>
+
+</xsl:stylesheet>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/insn/on-empty/on-empty-106a.xsl	Sun Feb 14 06:50:09 2016 +0000
@@ -0,0 +1,11 @@
+<xsl:stylesheet version="3.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+    <!-- basic tests with xsl:on-empty -->
+  
+    <xsl:template name="xsl:initial-template">
+        <empty>
+            <xsl:attribute name="what-is">fourty-two</xsl:attribute>
+            <xsl:on-empty select="for $i in 1 to 100 return $i mod 2"/> 
+        </empty>
+    </xsl:template>
+
+</xsl:stylesheet>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/insn/on-empty/on-empty-106b.xsl	Sun Feb 14 06:50:09 2016 +0000
@@ -0,0 +1,11 @@
+<xsl:stylesheet version="3.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xs="http://www.w3.org/2001/XMLSchema" exclude-result-prefixes="xs">
+    <!-- basic tests with xsl:on-empty -->
+  
+    <xsl:template name="xsl:initial-template">
+        <empty>
+            <xsl:attribute name="what-is">fourty-two</xsl:attribute>
+            <xsl:on-empty select="xs:base64Binary('dkaieKDsiws85eks')"/> 
+        </empty>
+    </xsl:template>
+
+</xsl:stylesheet>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/insn/on-empty/on-empty-106c.xsl	Sun Feb 14 06:50:09 2016 +0000
@@ -0,0 +1,13 @@
+<xsl:stylesheet version="3.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+    <!-- basic tests with xsl:on-empty -->
+  
+    <xsl:template name="xsl:initial-template">
+        <empty>
+            <xsl:attribute name="what-is">fourty-two</xsl:attribute>
+            <xsl:on-empty>
+                <this><is><empty/></is></this>
+            </xsl:on-empty> 
+        </empty>
+    </xsl:template>
+
+</xsl:stylesheet>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/insn/on-empty/on-empty-106d.xsl	Sun Feb 14 06:50:09 2016 +0000
@@ -0,0 +1,15 @@
+<xsl:stylesheet version="3.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+    <!-- basic tests with xsl:on-empty -->
+  
+    <xsl:template name="xsl:initial-template">
+        <empty>
+            <xsl:attribute name="what-is">fourty-two</xsl:attribute>
+            <xsl:on-empty>
+                <xsl:document>
+                    <document />
+                </xsl:document>
+            </xsl:on-empty> 
+        </empty>
+    </xsl:template>
+
+</xsl:stylesheet>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/insn/on-empty/on-empty-107.xsl	Sun Feb 14 06:50:09 2016 +0000
@@ -0,0 +1,11 @@
+<xsl:stylesheet version="3.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+    <!-- basic tests with xsl:on-empty -->
+  
+    <xsl:template name="xsl:initial-template">
+        <empty>
+            <xsl:namespace name="test">http://testme</xsl:namespace>
+            <xsl:on-empty select="42"/> 
+        </empty>
+    </xsl:template>
+
+</xsl:stylesheet>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/insn/on-empty/on-empty-107a.xsl	Sun Feb 14 06:50:09 2016 +0000
@@ -0,0 +1,11 @@
+<xsl:stylesheet version="3.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+    <!-- basic tests with xsl:on-empty -->
+  
+    <xsl:template name="xsl:initial-template">
+        <empty>
+            <xsl:namespace name="test">http://testme</xsl:namespace>
+            <xsl:on-empty select="for $i in 1 to 100 return $i mod 2"/> 
+        </empty>
+    </xsl:template>
+
+</xsl:stylesheet>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/insn/on-empty/on-empty-107b.xsl	Sun Feb 14 06:50:09 2016 +0000
@@ -0,0 +1,11 @@
+<xsl:stylesheet version="3.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xs="http://www.w3.org/2001/XMLSchema" exclude-result-prefixes="xs">
+    <!-- basic tests with xsl:on-empty -->
+  
+    <xsl:template name="xsl:initial-template">
+        <empty>
+            <xsl:namespace name="test">http://testme</xsl:namespace>
+            <xsl:on-empty select="xs:base64Binary('dkaieKDsiws85eks')"/> 
+        </empty>
+    </xsl:template>
+
+</xsl:stylesheet>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/insn/on-empty/on-empty-107c.xsl	Sun Feb 14 06:50:09 2016 +0000
@@ -0,0 +1,13 @@
+<xsl:stylesheet version="3.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+    <!-- basic tests with xsl:on-empty -->
+  
+    <xsl:template name="xsl:initial-template">
+        <empty>
+            <xsl:namespace name="test">http://testme</xsl:namespace>
+            <xsl:on-empty>
+                <this><is><empty/></is></this>
+            </xsl:on-empty> 
+        </empty>
+    </xsl:template>
+
+</xsl:stylesheet>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/insn/on-empty/on-empty-107d.xsl	Sun Feb 14 06:50:09 2016 +0000
@@ -0,0 +1,15 @@
+<xsl:stylesheet version="3.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+    <!-- basic tests with xsl:on-empty -->
+  
+    <xsl:template name="xsl:initial-template">
+        <empty>
+            <xsl:namespace name="test">http://testme</xsl:namespace>
+            <xsl:on-empty>
+                <xsl:document>
+                    <document />
+                </xsl:document>
+            </xsl:on-empty> 
+        </empty>
+    </xsl:template>
+
+</xsl:stylesheet>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/insn/on-empty/on-empty-108.xsl	Sun Feb 14 06:50:09 2016 +0000
@@ -0,0 +1,14 @@
+<xsl:stylesheet version="3.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+    <!-- basic tests with xsl:on-empty -->
+    
+    <xsl:attribute-set name="a">
+        <xsl:attribute name="what-is">fourty-two</xsl:attribute>
+    </xsl:attribute-set>
+  
+    <xsl:template name="xsl:initial-template">
+        <empty xsl:use-attribute-sets="a">
+            <xsl:on-empty select="42"/> 
+        </empty>
+    </xsl:template>
+
+</xsl:stylesheet>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/insn/on-empty/on-empty-108a.xsl	Sun Feb 14 06:50:09 2016 +0000
@@ -0,0 +1,15 @@
+<xsl:stylesheet version="3.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+    <!-- basic tests with xsl:on-empty -->
+
+    <xsl:attribute-set name="a">
+        <xsl:attribute name="what-is">fourty-two</xsl:attribute>
+    </xsl:attribute-set>
+  
+
+    <xsl:template name="xsl:initial-template">
+        <empty xsl:use-attribute-sets="a">
+            <xsl:on-empty select="for $i in 1 to 100 return $i mod 2"/> 
+        </empty>
+    </xsl:template>
+
+</xsl:stylesheet>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/insn/on-empty/on-empty-108b.xsl	Sun Feb 14 06:50:09 2016 +0000
@@ -0,0 +1,14 @@
+<xsl:stylesheet version="3.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xs="http://www.w3.org/2001/XMLSchema" exclude-result-prefixes="xs">
+    <!-- basic tests with xsl:on-empty -->
+  
+    <xsl:attribute-set name="a">
+        <xsl:attribute name="what-is">fourty-two</xsl:attribute>
+    </xsl:attribute-set>
+  
+    <xsl:template name="xsl:initial-template">
+        <empty xsl:use-attribute-sets="a">
+            <xsl:on-empty select="xs:base64Binary('dkaieKDsiws85eks')"/> 
+        </empty>
+    </xsl:template>
+
+</xsl:stylesheet>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/insn/on-empty/on-empty-108c.xsl	Sun Feb 14 06:50:09 2016 +0000
@@ -0,0 +1,17 @@
+<xsl:stylesheet version="3.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+    <!-- basic tests with xsl:on-empty -->
+  
+    <xsl:attribute-set name="a">
+        <xsl:attribute name="what-is">fourty-two</xsl:attribute>
+    </xsl:attribute-set>
+  
+
+    <xsl:template name="xsl:initial-template">
+        <empty xsl:use-attribute-sets="a">
+            <xsl:on-empty>
+                <this><is><empty/></is></this>
+            </xsl:on-empty> 
+        </empty>
+    </xsl:template>
+
+</xsl:stylesheet>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/insn/on-empty/on-empty-108d.xsl	Sun Feb 14 06:50:09 2016 +0000
@@ -0,0 +1,18 @@
+<xsl:stylesheet version="3.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+    <!-- basic tests with xsl:on-empty -->
+  
+    <xsl:attribute-set name="a">
+        <xsl:attribute name="what-is">fourty-two</xsl:attribute>
+    </xsl:attribute-set>
+  
+    <xsl:template name="xsl:initial-template">
+        <empty xsl:use-attribute-sets="a">
+            <xsl:on-empty>
+                <xsl:document>
+                    <document />
+                </xsl:document>
+            </xsl:on-empty> 
+        </empty>
+    </xsl:template>
+
+</xsl:stylesheet>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/insn/on-empty/on-empty-109.xsl	Sun Feb 14 06:50:09 2016 +0000
@@ -0,0 +1,10 @@
+<xsl:stylesheet version="3.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+    <!-- basic tests with xsl:on-empty -->
+  
+    <xsl:template name="xsl:initial-template">
+        <empty what-is="fourty-two">
+            <xsl:on-empty select="42"/> 
+        </empty>
+    </xsl:template>
+
+</xsl:stylesheet>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/insn/on-empty/on-empty-109a.xsl	Sun Feb 14 06:50:09 2016 +0000
@@ -0,0 +1,10 @@
+<xsl:stylesheet version="3.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+    <!-- basic tests with xsl:on-empty -->
+  
+    <xsl:template name="xsl:initial-template">
+        <empty what-is="fourty-two">
+            <xsl:on-empty select="for $i in 1 to 100 return $i mod 2"/> 
+        </empty>
+    </xsl:template>
+
+</xsl:stylesheet>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/insn/on-empty/on-empty-109b.xsl	Sun Feb 14 06:50:09 2016 +0000
@@ -0,0 +1,10 @@
+<xsl:stylesheet version="3.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xs="http://www.w3.org/2001/XMLSchema" exclude-result-prefixes="xs">
+    <!-- basic tests with xsl:on-empty -->
+  
+    <xsl:template name="xsl:initial-template">
+        <empty what-is="fourty-two">
+            <xsl:on-empty select="xs:base64Binary('dkaieKDsiws85eks')"/> 
+        </empty>
+    </xsl:template>
+
+</xsl:stylesheet>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/insn/on-empty/on-empty-109c.xsl	Sun Feb 14 06:50:09 2016 +0000
@@ -0,0 +1,12 @@
+<xsl:stylesheet version="3.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+    <!-- basic tests with xsl:on-empty -->
+  
+    <xsl:template name="xsl:initial-template">
+        <empty what-is="fourty-two">
+            <xsl:on-empty>
+                <this><is><empty/></is></this>
+            </xsl:on-empty> 
+        </empty>
+    </xsl:template>
+
+</xsl:stylesheet>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/insn/on-empty/on-empty-109d.xsl	Sun Feb 14 06:50:09 2016 +0000
@@ -0,0 +1,14 @@
+<xsl:stylesheet version="3.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+    <!-- basic tests with xsl:on-empty -->
+  
+    <xsl:template name="xsl:initial-template">
+        <empty what-is="fourty-two">
+            <xsl:on-empty>
+                <xsl:document>
+                    <document />
+                </xsl:document>
+            </xsl:on-empty> 
+        </empty>
+    </xsl:template>
+
+</xsl:stylesheet>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/insn/on-empty/on-empty-110.xsl	Sun Feb 14 06:50:09 2016 +0000
@@ -0,0 +1,16 @@
+<xsl:stylesheet version="3.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+    <!-- basic tests with xsl:on-empty, nested -->
+  
+    <xsl:template name="xsl:initial-template">
+        <empty>
+            <empty>
+                <empty>            
+                    <xsl:on-empty select="42"/> 
+                </empty>
+                <xsl:on-empty select="42"/> 
+            </empty>
+            <xsl:on-empty select="42"/> 
+        </empty>
+    </xsl:template>
+
+</xsl:stylesheet>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/insn/on-empty/on-empty-111.xsl	Sun Feb 14 06:50:09 2016 +0000
@@ -0,0 +1,33 @@
+<xsl:stylesheet version="3.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+    <!-- basic tests with xsl:on-empty, nested in variables -->
+  
+    <xsl:template name="xsl:initial-template">
+        <xsl:variable name="empty">
+            <empty>
+                <xsl:variable name="empty">
+                    <xsl:variable name="empty">
+                        <empty>
+                            <!-- kicks in, creates <empty>42</empty> -->
+                            <xsl:on-empty select="42"/> 
+                        </empty>
+                        <!-- does not kick in -->
+                        <xsl:on-empty select="42"/> 
+                    </xsl:variable>
+                    <!-- returns <empty>42</empty> -->
+                    <xsl:sequence select="$empty/empty" />
+                    <!-- does not kick in -->
+                    <xsl:on-empty select="42"/> 
+                </xsl:variable>
+                <!-- returns <empty>42</empty> -->
+                <xsl:sequence select="$empty/empty" />
+                <!-- does not kick in -->
+                <xsl:on-empty select="42"/> 
+            </empty>
+        </xsl:variable>
+        <!-- returns <empty><empty>42</empty></empty> -->
+        <xsl:sequence select="$empty/empty" />
+        <!-- does not kick in -->
+        <xsl:on-empty select="42"/>
+    </xsl:template>
+
+</xsl:stylesheet>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/insn/on-empty/on-empty-112.xsl	Sun Feb 14 06:50:09 2016 +0000
@@ -0,0 +1,13 @@
+<xsl:stylesheet version="3.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+    <!-- basic tests with xsl:on-empty in combination with other constructs -->
+  
+    <xsl:template name="xsl:initial-template">
+        <empty> 
+            <xsl:for-each select="1 to 100">
+                <xsl:value-of select="if(. mod 10) then . else ''" />
+                <xsl:on-empty select="'|'"/> 
+            </xsl:for-each>
+        </empty>
+    </xsl:template>
+
+</xsl:stylesheet>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/insn/on-empty/on-empty-113a.xsl	Sun Feb 14 06:50:09 2016 +0000
@@ -0,0 +1,17 @@
+<xsl:stylesheet version="3.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+    <!-- basic tests with xsl:on-empty in combination with other constructs -->
+    
+    <xsl:output method="text" />
+  
+    <xsl:template match="/" name="xsl:initial-template">
+        <xsl:for-each select="1 to 100">
+            <xsl:text expand-text="yes">{ if(. = 1) then 'START-->' else ''}</xsl:text>
+            <xsl:sequence select="''" />
+            <xsl:value-of select="if(. mod 2) then . else ''" />
+            <xsl:text expand-text="yes">{''}</xsl:text>
+            <xsl:text expand-text="yes">{ if(. = 100) then '&lt;-- END' else ''}</xsl:text>
+            <xsl:on-empty select="'|'" />
+        </xsl:for-each>
+    </xsl:template>
+
+</xsl:stylesheet>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/insn/on-empty/on-empty-113b.xsl	Sun Feb 14 06:50:09 2016 +0000
@@ -0,0 +1,17 @@
+<xsl:stylesheet version="3.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+    <!-- basic tests with xsl:on-empty in combination with other constructs -->
+    
+    <xsl:output method="text" />
+  
+    <xsl:template match="/" name="xsl:initial-template">
+        <xsl:for-each select="1 to 100">
+            <xsl:text expand-text="yes">{ if(. = 1) then 'START-->' else ''}</xsl:text>
+            <xsl:sequence select="''" />
+            <xsl:value-of select="if(. mod 2) then . else ''" />
+            <xsl:text expand-text="yes">{''}</xsl:text>
+            <xsl:sequence select="if(. = 100) then '&lt;-- END' else ''" />
+            <xsl:on-empty select="'|'" />
+        </xsl:for-each>
+    </xsl:template>
+
+</xsl:stylesheet>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/insn/on-empty/on-empty-114a.xsl	Sun Feb 14 06:50:09 2016 +0000
@@ -0,0 +1,18 @@
+<xsl:stylesheet version="3.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+    <!-- basic tests with xsl:on-empty in combination with other constructs -->
+    
+    <xsl:output method="text" />
+  
+    <xsl:template match="/" name="xsl:initial-template">
+        <xsl:for-each select="1 to 100">
+            <xsl:on-non-empty select="''" />
+            <xsl:text expand-text="yes">{ if(. = 1) then 'START-->' else ''}</xsl:text>
+            <xsl:sequence select="''" />
+            <xsl:value-of select="if(. mod 2) then . else ''" />
+            <xsl:text expand-text="yes">{''}</xsl:text>
+            <xsl:sequence select="if(. = 100) then '&lt;-- END' else ''" />
+            <xsl:on-empty select="'|'" />
+        </xsl:for-each>
+    </xsl:template>
+
+</xsl:stylesheet>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/insn/on-empty/on-empty-114b.xsl	Sun Feb 14 06:50:09 2016 +0000
@@ -0,0 +1,18 @@
+<xsl:stylesheet version="3.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+    <!-- basic tests with xsl:on-empty in combination with other constructs -->
+    
+    <xsl:output method="text" />
+  
+    <xsl:template match="/" name="xsl:initial-template">
+        <xsl:for-each select="1 to 100">
+            <xsl:text expand-text="yes">{ if(. = 1) then 'START-->' else ''}</xsl:text>
+            <xsl:sequence select="''" />
+            <xsl:value-of select="if(. mod 2) then . else ''" />
+            <xsl:text expand-text="yes">{''}</xsl:text>
+            <xsl:sequence select="if(. = 100) then '&lt;-- END' else ''" />
+            <xsl:on-non-empty select="''" />
+            <xsl:on-empty select="'|'" />
+        </xsl:for-each>
+    </xsl:template>
+
+</xsl:stylesheet>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/insn/on-empty/on-empty-115a.xsl	Sun Feb 14 06:50:09 2016 +0000
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+    xmlns:xs="http://www.w3.org/2001/XMLSchema"
+    xmlns:math="http://www.w3.org/2005/xpath-functions/math"
+    exclude-result-prefixes="xs math"
+    version="3.0">
+    
+    <xsl:template match="/" name="xsl:initial-template">
+        <xsl:variable name="non-empty">
+            <xsl:sequence select="''" />
+            <xsl:sequence select="''" />
+        </xsl:variable>
+        
+        <xsl:comment>
+            <xsl:copy-of select="$non-empty"/>
+            <xsl:on-empty>WRONG! the document node contains a space, it is not empty!!!</xsl:on-empty>
+        </xsl:comment>
+    </xsl:template>
+    
+</xsl:stylesheet>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/insn/on-empty/on-empty-115b.xsl	Sun Feb 14 06:50:09 2016 +0000
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+    xmlns:xs="http://www.w3.org/2001/XMLSchema"
+    xmlns:math="http://www.w3.org/2005/xpath-functions/math"
+    exclude-result-prefixes="xs math"
+    version="3.0">
+    
+    <xsl:template match="/" name="xsl:initial-template">
+        <xsl:variable name="non-empty">
+            <xsl:sequence select="''" />
+            <xsl:sequence select="''" />
+        </xsl:variable>
+        
+        <foo>
+            <xsl:namespace name="bar">
+                <xsl:copy-of select="$non-empty"/>
+                <xsl:on-empty>WRONG! the document node contains a space, it is not empty!!!</xsl:on-empty>
+            </xsl:namespace>
+        </foo>
+    </xsl:template>
+    
+</xsl:stylesheet>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/insn/on-empty/on-empty-115c.xsl	Sun Feb 14 06:50:09 2016 +0000
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+    xmlns:xs="http://www.w3.org/2001/XMLSchema"
+    xmlns:math="http://www.w3.org/2005/xpath-functions/math"
+    exclude-result-prefixes="xs math"
+    version="3.0">
+    
+    <xsl:template match="/" name="xsl:initial-template">
+        <xsl:variable name="non-empty">
+            <xsl:sequence select="''" />
+            <xsl:sequence select="''" />
+        </xsl:variable>
+        
+        <foo>
+            <xsl:attribute name="bar">
+                <xsl:copy-of select="$non-empty"/>
+                <xsl:on-empty>WRONG! the document node contains a space, it is not empty!!!</xsl:on-empty>
+            </xsl:attribute>
+        </foo>
+    </xsl:template>
+    
+</xsl:stylesheet>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/insn/on-empty/on-empty-115d.xsl	Sun Feb 14 06:50:09 2016 +0000
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+    xmlns:xs="http://www.w3.org/2001/XMLSchema"
+    xmlns:math="http://www.w3.org/2005/xpath-functions/math"
+    exclude-result-prefixes="xs math"
+    version="3.0">
+    
+    <xsl:template match="/" name="xsl:initial-template">
+        <xsl:variable name="non-empty">
+            <xsl:sequence select="''" />
+            <xsl:sequence select="''" />
+        </xsl:variable>
+        
+        <xsl:processing-instruction name="foo">
+            <xsl:copy-of select="$non-empty"/>
+            <xsl:on-empty>WRONG! the document node contains a space, it is not empty!!!</xsl:on-empty>
+        </xsl:processing-instruction>
+    </xsl:template>
+    
+</xsl:stylesheet>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/insn/on-empty/on-empty-115e.xsl	Sun Feb 14 06:50:09 2016 +0000
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+    xmlns:xs="http://www.w3.org/2001/XMLSchema"
+    xmlns:math="http://www.w3.org/2005/xpath-functions/math"
+    exclude-result-prefixes="xs math"
+    version="3.0">
+    
+    <xsl:template match="/" name="xsl:initial-template">
+        <xsl:variable name="non-empty">
+            <xsl:sequence select="''" />
+            <xsl:sequence select="''" />
+        </xsl:variable>
+        
+        <foo>
+            <xsl:value-of>
+                <xsl:copy-of select="$non-empty"/>
+                <xsl:on-empty>WRONG! the document node contains a space, it is not empty!!!</xsl:on-empty>
+            </xsl:value-of>
+        </foo>
+    </xsl:template>
+    
+</xsl:stylesheet>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/insn/on-empty/on-empty-900.xsl	Sun Feb 14 06:50:09 2016 +0000
@@ -0,0 +1,11 @@
+<xsl:stylesheet version="3.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+    <!-- basic tests with xsl:on-empty error, multiple -->
+  
+    <xsl:template name="xsl:initial-template">
+        <empty>            
+            <xsl:on-empty select="()"/> 
+            <xsl:on-empty select="42"/> 
+        </empty>
+    </xsl:template>
+
+</xsl:stylesheet>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/insn/on-empty/on-empty-901.xsl	Sun Feb 14 06:50:09 2016 +0000
@@ -0,0 +1,16 @@
+<xsl:stylesheet version="3.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+    <!-- basic tests with xsl:on-empty, error w/siblings -->
+  
+    <xsl:template name="xsl:initial-template">
+        <empty>
+            <xsl:on-empty select="42"/> 
+            <empty>
+                <xsl:on-empty select="42"/> 
+                <empty>            
+                    <xsl:on-empty select="42"/> 
+                </empty>
+            </empty>
+        </empty>
+    </xsl:template>
+
+</xsl:stylesheet>
--- a/tests/insn/result-document/_result-document-test-set.xml	Sun Feb 14 06:43:51 2016 +0000
+++ b/tests/insn/result-document/_result-document-test-set.xml	Sun Feb 14 06:50:09 2016 +0000
@@ -931,6 +931,7 @@
       <created by="Michael Kay" on="2012-12-06"/>
       <modified by="Abel Braaksma" on="2013-12-10"
          change="@html-version occured in xslt3.0 spec, stylesheet @version=3.0"/>
+      <modified by="Abel Braaksma" on="2016-02-07" change="Wrong error code, 'five' is a faulty decimal value and should not raise SEPM0016 but XPSE0020, see #29423"/>
       <environment ref="result-document-02"/>
       <dependencies>
          <spec value="XSLT30+"/>
@@ -940,7 +941,7 @@
          <stylesheet file="result-document-0243.xsl"/>
       </test>
       <result>
-         <error code="SEPM0016"/>
+         <error code="XTSE0020"/>
       </result>
    </test-case>
 
@@ -1884,6 +1885,7 @@
       <dependencies>
          <spec value="XSLT30+"/>
          <feature value="serialization" satisfied="true"/>
+         <feature value="XPath_3.1" satisfied="true"/>
       </dependencies>
       <test>
          <stylesheet file="result-document-0303.xsl"/>
@@ -1902,9 +1904,11 @@
       <description>With xsl:result-document, no href, use Adaptive serialization</description>
       <created by="Michael Kay" on="2015-09-29"/>
       <modified by="Michael Kay" on="2015-10-13" change="correct expected result"/>
+      <modified by="Abel Braaksma" on="2016-02-07" change="Dependency on XP31"/>
       <dependencies>
          <spec value="XSLT30+"/>
          <feature value="serialization" satisfied="true"/>
+         <feature value="XPath_3.1" satisfied="true"/>
       </dependencies>
       <test>
          <stylesheet file="result-document-0304.xsl"/>
--- a/tests/misc/initial-function/_initial-function-test-set.xml	Sun Feb 14 06:43:51 2016 +0000
+++ b/tests/misc/initial-function/_initial-function-test-set.xml	Sun Feb 14 06:50:09 2016 +0000
@@ -11,9 +11,6 @@
       <created by="John Lumley" on="2014-08-19"/>
       <modified by="John Lumley" on="2014-09-24"
          change="Dependency changed from XT20+ to XT30+ [Bug 26891]"/>
-      <dependencies>
-         <spec value="XSLT30+"/>
-      </dependencies>
       <test>
          <stylesheet file="initial-function-001.xsl"/>
          <initial-function xmlns:my="http://my.net/" name="my:foo">
@@ -33,9 +30,6 @@
       <created by="John Lumley" on="2014-08-19"/>
       <modified by="John Lumley" on="2014-09-24"
          change="Dependency changed from XT20+ to XT30+ [Bug 26891]"/>
-      <dependencies>
-         <spec value="XSLT30+"/>
-      </dependencies>
       <test>
          <stylesheet file="initial-function-001.xsl"/>
          <initial-function xmlns:my="http://my.net/" name="my:bar">
@@ -51,15 +45,458 @@
          </all-of>
       </result>
    </test-case>
+   
+   <test-case name="initial-function-100a">
+      <description>Test return type of initial function, which should typically not be a document node</description>
+      <created by="Abel Braaksma" on="2015-11-19"/>
+      <test>
+         <stylesheet file="initial-function-100.xsl"/>
+         <initial-function xmlns:f="urn:functions" name="f:test">
+            <param select="'http://testme'" as="xs:anyURI"/>
+         </initial-function>
+         <output tree="no" serialize="no"/>
+      </test>
+      <result>
+         <assert-type>xs:anyURI</assert-type>
+      </result>
+   </test-case>
+
+   <test-case name="initial-function-100b">
+      <description>Test return type of initial function, which should typically not be a document node</description>
+      <created by="Abel Braaksma" on="2015-11-19"/>
+      <test>
+         <stylesheet file="initial-function-100.xsl"/>
+         <initial-function xmlns:f="urn:functions" name="f:test">
+            <param select="986572" as="xs:integer"/>
+         </initial-function>
+         <output tree="no" serialize="no"/>
+      </test>
+      <result>
+         <assert-type>xs:integer</assert-type>
+      </result>
+   </test-case>
+
+   <test-case name="initial-function-100c">
+      <description>Test return type of initial function, which should typically not be a document node</description>
+      <created by="Abel Braaksma" on="2015-11-19"/>
+      <test>
+         <stylesheet file="initial-function-100.xsl"/>
+         <initial-function xmlns:f="urn:functions" name="f:test">
+            <param select="986572" as="xs:double"/>
+         </initial-function>
+         <output tree="no" serialize="no"/>
+      </test>
+      <result>
+         <assert-type>xs:double</assert-type>
+      </result>
+   </test-case>
+   
+   <test-case name="initial-function-100d">
+      <description>Test return type of initial function, which should typically not be a document node</description>
+      <created by="Abel Braaksma" on="2015-11-19"/>
+      <test>
+         <stylesheet file="initial-function-100.xsl"/>
+         <initial-function xmlns:f="urn:functions" name="f:test">
+            <param select="986572" as="xs:decimal"/>
+         </initial-function>
+         <output tree="no" serialize="no"/>
+      </test>
+      <result>
+         <assert-type>xs:decimal</assert-type>
+      </result>
+   </test-case>
+
+   <test-case name="initial-function-100e">
+      <description>Test return type of initial function, which should typically not be a document node</description>
+      <created by="Abel Braaksma" on="2015-11-19"/>
+      <test>
+         <stylesheet file="initial-function-100.xsl"/>
+         <initial-function xmlns:f="urn:functions" name="f:test">
+            <param select="'one', 'two'" as="xs:string*"/>
+         </initial-function>
+         <output tree="no" serialize="no"/>
+      </test>
+      <result>
+         <all-of>
+            <assert-type>xs:string*</assert-type>
+            <assert-count>2</assert-count>
+         </all-of>
+      </result>
+   </test-case>
+
+   <test-case name="initial-function-100f">
+      <description>Test return type of initial function, which should typically not be a document node</description>
+      <created by="Abel Braaksma" on="2015-11-19"/>
+      <test>
+         <stylesheet file="initial-function-100.xsl"/>
+         <initial-function xmlns:f="urn:functions" name="f:test">
+            <param select="1e-10" as="xs:float"/>
+         </initial-function>
+         <output tree="no" serialize="no"/>
+      </test>
+      <result>
+         <assert-type>xs:float</assert-type>
+      </result>
+   </test-case>
+
+   <test-case name="initial-function-100g">
+      <description>Test return type of initial function, which should typically not be a document node</description>
+      <created by="Abel Braaksma" on="2015-11-19"/>
+      <test>
+         <stylesheet file="initial-function-100.xsl"/>
+         <initial-function xmlns:f="urn:functions" name="f:test">
+            <param select="'sometoken'" as="xs:token"/>
+         </initial-function>
+         <output tree="no" serialize="no"/>
+      </test>
+      <result>
+         <assert-type>xs:token</assert-type>
+      </result>
+   </test-case>
+
+   <test-case name="initial-function-100h">
+      <description>Test return type of initial function, which should typically not be a document node</description>
+      <created by="Abel Braaksma" on="2015-11-19"/>
+      <test>
+         <stylesheet file="initial-function-100.xsl"/>
+         <initial-function xmlns:f="urn:functions" name="f:test">
+            <param select="QName('urn:foo', 'bar')" as="xs:QName"/>
+         </initial-function>
+         <output tree="no" serialize="no"/>
+      </test>
+      <result>
+         <assert-type>xs:QName</assert-type>
+      </result>
+   </test-case>
+
+   <test-case name="initial-function-100i">
+      <description>Test return type of initial function, which should typically not be a document node</description>
+      <created by="Abel Braaksma" on="2015-11-19"/>
+      <test>
+         <stylesheet file="initial-function-100.xsl"/>
+         <initial-function xmlns:f="urn:functions" name="f:test">
+            <param select="1 + 2 + 3 + 4" as="item()"/>
+         </initial-function>
+         <output tree="no" serialize="no"/>
+      </test>
+      <result>
+         <assert-type>xs:integer</assert-type>
+      </result>
+   </test-case>
+
+   <test-case name="initial-function-101a">
+      <description>Test different naming schemes and influence of static expressions in the name</description>
+      <created by="Abel Braaksma" on="2015-11-19"/>
+      <test>
+         <stylesheet file="initial-function-101.xsl"/>
+         <initial-function xmlns:f="urn:functions" name="f:square1">
+            <param select="12" as="xs:integer"/>
+         </initial-function>
+         <output tree="no" serialize="no"/>
+      </test>
+      <result>
+         <assert-eq>144</assert-eq>
+      </result>
+   </test-case>
+
+   <test-case name="initial-function-101b">
+      <description>Test different naming schemes and influence of static expressions in the name</description>
+      <created by="Abel Braaksma" on="2015-11-19"/>
+      <test>
+         <stylesheet file="initial-function-101.xsl"/>
+         <initial-function xmlns:f="urn:functions" name="f:square2">
+            <param select="12" as="xs:integer"/>
+         </initial-function>
+         <output tree="no" serialize="no"/>
+      </test>
+      <result>
+         <assert-eq>144</assert-eq>
+      </result>
+   </test-case>
+
+   <test-case name="initial-function-101c">
+      <description>Test different naming schemes and influence of static expressions in the name</description>
+      <created by="Abel Braaksma" on="2015-11-19"/>
+      <test>
+         <stylesheet file="initial-function-101.xsl"/>
+         <initial-function xmlns:f="urn:functions" name="f:square3">
+            <param select="12" as="xs:integer"/>
+         </initial-function>
+         <output tree="no" serialize="no"/>
+      </test>
+      <result>
+         <assert-eq>144</assert-eq>
+      </result>
+   </test-case>
+
+   <test-case name="initial-function-101d">
+      <description>Test different naming schemes and influence of static expressions in the name</description>
+      <created by="Abel Braaksma" on="2015-11-19"/>
+      <test>
+         <stylesheet file="initial-function-101.xsl"/>
+         <initial-function xmlns:f="urn:functions" name="f:square4">
+            <param select="12" as="xs:integer"/>
+         </initial-function>
+         <output tree="no" serialize="no"/>
+      </test>
+      <result>
+         <assert-eq>144</assert-eq>
+      </result>
+   </test-case>
+
+   <test-case name="initial-function-101e">
+      <description>Test different naming schemes and influence of static expressions in the name</description>
+      <created by="Abel Braaksma" on="2015-11-19"/>
+      <test>
+         <stylesheet file="initial-function-101.xsl"/>
+         <initial-function xmlns:f="urn:functions" name="f:square5">
+            <param select="12" as="xs:integer"/>
+         </initial-function>
+         <output tree="no" serialize="no"/>
+      </test>
+      <result>
+         <assert-eq>144</assert-eq>
+      </result>
+   </test-case>
+
+   <test-case name="initial-function-101f">
+      <description>Test different naming schemes and influence of static expressions in the name: name with static param</description>
+      <created by="Abel Braaksma" on="2015-11-19"/>
+      <test>
+         <stylesheet file="initial-function-101.xsl"/>
+         <param name="function-name" static="yes" select="'f:dynamically-statically-defined-name'" />
+         <initial-function xmlns:f="urn:functions" name="f:dynamically-statically-defined-name">
+            <param select="12" as="xs:integer"/>
+         </initial-function>
+         <output tree="no" serialize="no"/>
+      </test>
+      <result>
+         <assert-eq>144</assert-eq>
+      </result>
+   </test-case>
+
+   <test-case name="initial-function-101g">
+      <description>Test different naming schemes and influence of static expressions in the name: name with static param</description>
+      <created by="Abel Braaksma" on="2015-11-19"/>
+      <test>
+         <stylesheet file="initial-function-101.xsl"/>
+         <param name="function-name" static="yes" select="'Q{urn:test}myfunction'" />
+         <initial-function name="Q{urn:test}myfunction">
+            <param select="12" as="xs:integer"/>
+         </initial-function>
+         <output tree="no" serialize="no"/>
+      </test>
+      <result>
+         <assert-eq>144</assert-eq>
+      </result>
+   </test-case>
+
+   <test-case name="initial-function-101h">
+      <description>Test different naming schemes and influence of static expressions in the name: name with static param</description>
+      <created by="Abel Braaksma" on="2015-11-19"/>
+      <test>
+         <stylesheet file="initial-function-101.xsl"/>
+         <param name="function-name" static="yes" select="'Q{urn:test}myfunction'" />
+         <initial-function xmlns:someweirdprefixtest="urn:test" name="someweirdprefixtest:myfunction">
+            <param select="12" as="xs:integer"/>
+         </initial-function>
+         <output tree="no" serialize="no"/>
+      </test>
+      <result>
+         <assert-eq>144</assert-eq>
+      </result>
+   </test-case>
+
+   <test-case name="initial-function-102a">
+      <description>Test different naming schemes and influence of static expressions in the name, error scenario function not found</description>
+      <created by="Abel Braaksma" on="2015-11-19"/>
+      <test>
+         <stylesheet file="initial-function-101.xsl"/>
+         <initial-function xmlns:f="http:functions" name="f:square1">
+            <param select="12" as="xs:integer"/>
+         </initial-function>
+         <output tree="no" serialize="no"/>
+      </test>
+      <result>
+         <error code="XTDE0041"/>
+      </result>
+   </test-case>
+
+   <test-case name="initial-function-102b">
+      <description>Test different naming schemes and influence of static expressions in the name, error scenario, invalid argument</description>
+      <created by="Abel Braaksma" on="2015-11-19"/>
+      <test>
+         <stylesheet file="initial-function-101.xsl"/>
+         <initial-function xmlns:f="urn:functions" name="f:square2">
+            <param select="'s12'" as="xs:string"/>
+         </initial-function>
+         <output tree="no" serialize="no"/>
+      </test>
+      <result>
+         <error code="FORG0001"/>
+      </result>
+   </test-case>
+
+   <test-case name="initial-function-102c">
+      <description>Test different naming schemes and influence of static expressions in the name, error scenario, overflow (or not)</description>
+      <created by="Abel Braaksma" on="2015-11-19"/>
+      <test>
+         <stylesheet file="initial-function-101.xsl"/>
+         <initial-function xmlns:f="urn:functions" name="f:square3">
+            <param select="9223372036854775807" as="xs:integer"/>
+         </initial-function>
+         <output tree="no" serialize="no"/>
+      </test>
+      <result>
+         <any-of>
+            <error code="FOAR0002"/>
+            <assert-eq>85070591730234615847396907784232501249</assert-eq>
+         </any-of>
+      </result>
+   </test-case>
+
+   <test-case name="initial-function-102d">
+      <description>Test different naming schemes and influence of static expressions in the name, error scenario, no prefix</description>
+      <created by="Abel Braaksma" on="2015-11-19"/>
+      <test>
+         <stylesheet file="initial-function-101.xsl"/>
+         <initial-function name="square4">
+            <param select="12" as="xs:integer"/>
+         </initial-function>
+         <output tree="no" serialize="no"/>
+      </test>
+      <result>
+         <error code="XTDE0041"/>
+      </result>
+   </test-case>
+
+   <test-case name="initial-function-102e">
+      <description>Test different naming schemes and influence of static expressions in the name, error, unprefixed names are always in no namespace</description>
+      <created by="Abel Braaksma" on="2015-11-19"/>
+      <test>
+         <stylesheet file="initial-function-101.xsl"/>
+         <t:initial-function xmlns:t="http://www.w3.org/2012/10/xslt-test-catalog" xmlns="urn:functions" name="square5">
+            <t:param select="12" as="xs:integer"/>
+         </t:initial-function>
+         <output tree="no" serialize="no"/>
+      </test>
+      <result>
+         <error code="XTDE0041"/>
+      </result>
+   </test-case>
+
+   <test-case name="initial-function-102f">
+      <description>Test different naming schemes and influence of static expressions in the name, error scenario: setting the @name attribute to an already existing name through static param</description>
+      <created by="Abel Braaksma" on="2015-11-19"/>
+      <test>
+         <stylesheet file="initial-function-101.xsl"/>
+         <param name="function-name" static="yes" select="'f:square1'" />
+         <initial-function xmlns:f="urn:functions" name="f:square1">
+            <param select="12" as="xs:integer"/>
+         </initial-function>
+         <output tree="no" serialize="no"/>
+      </test>
+      <result>
+         <error code="XTSE0770"/>
+      </result>
+   </test-case>
+
+   <test-case name="initial-function-102g">
+      <description>Test different naming schemes and influence of static expressions in the name, error scenario: correct name, higher and wrong arity</description>
+      <created by="Abel Braaksma" on="2015-11-19"/>
+      <test>
+         <stylesheet file="initial-function-101.xsl"/>
+         <param name="function-name" static="yes" select="'f:new'" />
+         <initial-function xmlns:f="urn:functions" name="f:new">
+            <param select="12" as="xs:integer"/>
+            <param select="12" as="xs:integer"/>
+         </initial-function>
+         <output tree="no" serialize="no"/>
+      </test>
+      <result>
+         <error code="XTDE0041"/>
+      </result>
+   </test-case>
+
+   <test-case name="initial-function-102h">
+      <description>Test different naming schemes and influence of static expressions in the name, error scenario: correct name, lower and wrong arity</description>
+      <created by="Abel Braaksma" on="2015-11-19"/>
+      <test>
+         <stylesheet file="initial-function-101.xsl"/>
+         <param name="function-name" static="yes" select="'f:new'" />
+         <initial-function xmlns:f="urn:functions" name="f:new">
+            <param select="12" as="xs:integer"/>
+            <param select="12" as="xs:integer"/>
+         </initial-function>
+         <output tree="no" serialize="no"/>
+      </test>
+      <result>
+         <error code="XTDE0041"/>
+      </result>
+   </test-case>
+
+   <test-case name="initial-function-102i">
+      <description>Test different naming schemes and influence of static expressions in the name, error scenario: interesting edge case, what happens if we set the name to a reserved name and namespace?</description>
+      <created by="Abel Braaksma" on="2015-11-19"/>
+      <test>
+         <stylesheet file="initial-function-101.xsl"/>
+         <param name="function-name" static="yes" select="'{http://www.w3.org/1999/XSL/Transform}current'" />
+         <initial-function xmlns:f="http://www.w3.org/1999/XSL/Transform" name="f:current">
+            <param select="12" as="xs:integer"/>
+         </initial-function>
+         <output tree="no" serialize="no"/>
+      </test>
+      <result>
+         <any-of>
+            <error code="XTSE0020"/>
+            <error code="XTSE0080"/>
+         </any-of>
+      </result>
+   </test-case>
+
+   <test-case name="initial-function-102j">
+      <description>Test different naming schemes and influence of static expressions in the name, error scenario: interesting edge case, what happens if we set the name to a reserved name and namespace?</description>
+      <created by="Abel Braaksma" on="2015-11-19"/>
+      <test>
+         <stylesheet file="initial-function-101.xsl"/>
+         <param name="function-name" static="yes" select="'{http://www.w3.org/2001/XMLSchema}string'" />
+         <initial-function xmlns:f="http://www.w3.org/2001/XMLSchema" name="f:string">
+            <param select="12" as="xs:integer"/>
+         </initial-function>
+         <output tree="no" serialize="no"/>
+      </test>
+      <result>
+         <any-of>
+            <error code="XTSE0020"/>
+            <error code="XTSE0080"/>
+         </any-of>
+      </result>
+   </test-case>
+
+   <test-case name="initial-function-102k">
+      <description>Test different naming schemes and influence of static expressions in the name, error scenario: create a static syntax error</description>
+      <created by="Abel Braaksma" on="2015-11-19"/>
+      <test>
+         <stylesheet file="initial-function-101.xsl"/>
+         <param name="function-name" static="yes" select="'-not a valid name-'" />
+         <initial-function xmlns:f="urn:functions" name="f:square1">
+            <param select="12" as="xs:integer"/>
+         </initial-function>
+         <output tree="no" serialize="no"/>
+      </test>
+      <result>
+         <any-of>
+            <error code="XTSE0020"/>
+            <error code="XTSE0740"/>
+         </any-of>
+      </result>
+   </test-case>
 
    <test-case name="initial-function-901">
       <description>test initial-function to non-existent stylesheet function</description>
       <created by="John Lumley" on="2014-08-19"/>
       <modified by="John Lumley" on="2014-09-24"
          change="Dependency changed from XT20+ to XT30+ [Bug 26891]"/>
-      <dependencies>
-         <spec value="XSLT30+"/>
-      </dependencies>
       <test>
          <stylesheet file="initial-function-001.xsl"/>
          <initial-function xmlns:my="http://my.net/" name="my:nonsuch">
@@ -79,9 +516,6 @@
       <created by="John Lumley" on="2014-08-19"/>
       <modified by="John Lumley" on="2014-09-24"
          change="Dependency changed from XT20+ to XT30+ [Bug 26891]"/>
-      <dependencies>
-         <spec value="XSLT30+"/>
-      </dependencies>
       <test>
          <stylesheet file="initial-function-001.xsl"/>
          <initial-function xmlns:my="http://my.net/" name="my:bar">
@@ -100,9 +534,6 @@
       <created by="John Lumley" on="2014-08-19"/>
       <modified by="John Lumley" on="2014-09-24"
          change="Dependency changed from XT20+ to XT30+ [Bug 26891]"/>
-      <dependencies>
-         <spec value="XSLT30+"/>
-      </dependencies>
       <test>
          <stylesheet file="initial-function-001.xsl"/>
          <initial-function xmlns:my="http://my.net/" name="my:bar">
@@ -120,9 +551,6 @@
    <test-case name="initial-function-904">
       <description>test initial-function calling xsl:result-document</description>
       <created by="Michael Kay" on="2015-10-24"/>
-      <dependencies>
-         <spec value="XSLT30+"/>
-      </dependencies>
       <test>
          <stylesheet file="initial-function-001.xsl"/>
          <initial-function xmlns:my="http://my.net/" name="my:bad">
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/misc/initial-function/initial-function-100.xsl	Sun Feb 14 06:50:09 2016 +0000
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+    xmlns:xs="http://www.w3.org/2001/XMLSchema"
+    xmlns:math="http://www.w3.org/2005/xpath-functions/math"
+    xmlns:f="urn:functions"
+    exclude-result-prefixes="xs math f"
+    version="3.0">
+    
+    <xsl:function name="f:test">
+        <xsl:param name="p" as="item()*" />
+        <xsl:sequence select="$p" />
+    </xsl:function>
+    
+</xsl:stylesheet>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/misc/initial-function/initial-function-101.xsl	Sun Feb 14 06:50:09 2016 +0000
@@ -0,0 +1,43 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+    xmlns:xs="http://www.w3.org/2001/XMLSchema"
+    xmlns:math="http://www.w3.org/2005/xpath-functions/math"
+    xmlns:f="urn:functions"
+    exclude-result-prefixes="xs math f"
+    version="3.0">
+    
+    <xsl:param name="function-name" static="yes" select="'f:wrong'" />
+    
+    <!-- purpose: testing various naming possibilities for initial functions -->
+    
+    <xsl:function name="f:square1">
+        <xsl:param name="p" as="xs:integer" />
+        <xsl:sequence select="$p * $p" />
+    </xsl:function>
+    
+    <xsl:function name="Q{urn:functions}square2">
+        <xsl:param name="p" as="xs:integer" />
+        <xsl:sequence select="$p * $p" />
+    </xsl:function>
+    
+    <xsl:function _name="f:square3">
+        <xsl:param name="p" as="xs:integer" />
+        <xsl:sequence select="$p * $p" />
+    </xsl:function>
+    
+    <xsl:function _name="{'f:'}{'square' || 4}">
+        <xsl:param name="p" as="xs:integer" />
+        <xsl:sequence select="$p * $p" />
+    </xsl:function>
+    
+    <xsl:function _name="{QName('urn:functions', 'x:square5')}" xmlns:x="urn:functions">
+        <xsl:param name="p" as="xs:integer" />
+        <xsl:sequence select="$p * $p" />
+    </xsl:function>
+    
+    <xsl:function _name="{$function-name}">
+        <xsl:param name="p" as="xs:integer" />
+        <xsl:sequence select="$p * $p" />
+    </xsl:function>
+    
+</xsl:stylesheet>
\ No newline at end of file
--- a/tests/misc/initial-template/_initial-template-test-set.xml	Sun Feb 14 06:43:51 2016 +0000
+++ b/tests/misc/initial-template/_initial-template-test-set.xml	Sun Feb 14 06:50:09 2016 +0000
@@ -2,9 +2,9 @@
 <test-set xmlns:xs="http://www.w3.org/2001/XMLSchema"
    xmlns="http://www.w3.org/2012/10/xslt-test-catalog" name="initial-template">
    <description>Tests Call-Template XSLT invocation</description>
+   
    <dependencies>
       <spec value="XSLT20+"/>
-      <!--<feature value="Saxon-PE"/>-->
    </dependencies>
 
    <test-case name="initial-template-001">
@@ -41,6 +41,7 @@
          <assert-xml><![CDATA[<a>1234 999 24</a>]]></assert-xml>
       </result>
    </test-case>
+   
    <test-case name="initial-template-002a">
       <description>initial-template invocation with params</description>
       <created by="John Lumley" on="2014-08-19"/>
@@ -81,6 +82,7 @@
          <assert-xml><![CDATA[<a>1234 999 154</a>]]></assert-xml>
       </result>
    </test-case>
+   
    <test-case name="initial-template-003a">
       <description>initial-template invocation with setting of name-overlapping stylesheet and local
          params</description>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/misc/seqtor/_seqtor-test-set.xml	Sun Feb 14 06:50:09 2016 +0000
@@ -0,0 +1,694 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<test-set xmlns="http://www.w3.org/2012/10/xslt-test-catalog" xmlns:xs="http://www.w3.org/2001/XMLSchema" name="seqtor">
+   <description>Tests constructing content in sequence constructors</description>
+   
+   <dependencies>
+      <spec value="XSLT30+"/>
+   </dependencies>
+   
+   <test-case name="seqtor-001">
+      <description>Constructing sequence constructor</description>
+      <created by="Abel Braaksma" on="2016-01-23"/>
+      <test>
+         <stylesheet file="seqtor-001.xsl"/>
+      </test>
+      <result>
+         <assert-string-value>|||</assert-string-value>
+      </result>
+   </test-case>
+   
+   <test-case name="seqtor-002">
+      <description>Constructing sequence constructor</description>
+      <created by="Abel Braaksma" on="2016-01-23"/>
+      <test>
+         <stylesheet file="seqtor-002.xsl"/>
+      </test>
+      <result>
+         <assert-string-value>1|2|3|4</assert-string-value>
+      </result>
+   </test-case>
+   
+   <test-case name="seqtor-003">
+      <description>Constructing sequence constructor</description>
+      <created by="Abel Braaksma" on="2016-01-23"/>
+      <test>
+         <stylesheet file="seqtor-003.xsl"/>
+      </test>
+      <result>
+         <assert-string-value>1|2|3|4|</assert-string-value>
+      </result>
+   </test-case>
+   
+   <test-case name="seqtor-004">
+      <description>Constructing sequence constructor</description>
+      <created by="Abel Braaksma" on="2016-01-23"/>
+      <test>
+         <stylesheet file="seqtor-004.xsl"/>
+      </test>
+      <result>
+         <assert-string-value>1|2|3|4|</assert-string-value>
+      </result>
+   </test-case>
+   
+   <test-case name="seqtor-005">
+      <description>Constructing sequence constructor</description>
+      <created by="Abel Braaksma" on="2016-01-23"/>
+      <test>
+         <stylesheet file="seqtor-005.xsl"/>
+      </test>
+      <result>
+         <assert-string-value>1|2|3</assert-string-value>
+      </result>
+   </test-case>
+   
+   <test-case name="seqtor-006">
+      <description>Constructing sequence constructor</description>
+      <created by="Abel Braaksma" on="2016-01-23"/>
+      <test>
+         <stylesheet file="seqtor-006.xsl"/>
+      </test>
+      <result>
+         <assert-string-value>1|2|3|4|</assert-string-value>
+      </result>
+   </test-case>
+      
+   <test-case name="seqtor-007">
+      <description>Constructing sequence constructor</description>
+      <created by="Abel Braaksma" on="2016-01-23"/>
+      <test>
+         <stylesheet file="seqtor-007.xsl"/>
+      </test>
+      <result>
+         <assert-string-value>1 2 | 3 4 |</assert-string-value>
+      </result>
+   </test-case>
+      
+   <test-case name="seqtor-008">
+      <description>Constructing sequence constructor</description>
+      <created by="Abel Braaksma" on="2016-01-23"/>
+      <test>
+         <stylesheet file="seqtor-008.xsl"/>
+      </test>
+      <result>
+         <assert-string-value>12|34|</assert-string-value>
+      </result>
+   </test-case>
+      
+   <test-case name="seqtor-009">
+      <description>Constructing sequence constructor with expand-text, should behave same as without</description>
+      <created by="Abel Braaksma" on="2016-01-23"/>
+      <test>
+         <stylesheet file="seqtor-009.xsl"/>
+      </test>
+      <result>
+         <assert-string-value>-- START --12|34|-- END --</assert-string-value>
+      </result>
+   </test-case>
+      
+   <test-case name="seqtor-010">
+      <description>Constructing sequence constructor, xsl:sequence at before/end of xsl:for-each and a tricky atomics concat</description>
+      <created by="Abel Braaksma" on="2016-01-23"/>
+      <test>
+         <stylesheet file="seqtor-010.xsl"/>
+      </test>
+      <result>
+         <assert-string-value>-- START --1 2| 3 4|-- END --</assert-string-value>
+      </result>
+   </test-case>
+   
+   <test-case name="seqtor-011">
+      <description>Constructing sequence constructor, xsl:text at before/end of xsl:for-each and a tricky atomics concat</description>
+      <created by="Abel Braaksma" on="2016-01-23"/>
+      <test>
+         <stylesheet file="seqtor-011.xsl"/>
+      </test>
+      <result>
+         <assert-string-value>-- START --| 1  2 || 3  4 |-- END --</assert-string-value>
+      </result>
+   </test-case>
+   
+   <test-case name="seqtor-012">
+      <description>Constructing sequence constructor, mode complex test with spacing</description>
+      <created by="Abel Braaksma" on="2016-01-23"/>
+      <test>
+         <stylesheet file="seqtor-012.xsl"/>
+      </test>
+      <result>
+         <assert-string-value>-- START --1 - 2 {3} 4 - 5 {6} 7 - 8 {9} 10 - 11 {12} 13 - 14 {15} 16 - 17 {18} 19 - 20 {21} 22 - 23 {24} 25 - 26 {27} 28 - 29 {30} 31 - 32 {33} 34 - 35 {36} 37 - 38 {39} 40 - 41 {42} 43 - 44 {45} 46 - 47 {48} 49 - 50 {51} 52 - 53 {54} 55 - 56 {57} 58 - 59 {60} 61 - 62 {63} 64 - 65 {66} 67 - 68 {69} 70 - 71 {72} 73 - 74 {75} 76 - 77 {78} 79 - 80 {81} 82 - 83 {84} 85 - 86 {87} 88 - 89 {90} 91 - 92 {93} 94 - 95 {96} 97 - 98 {99} 100 -- END --</assert-string-value>
+      </result>
+   </test-case>
+   
+   <test-case name="seqtor-013">
+      <description>Constructing sequence constructor, test same as seqtor-013, but intertwined with text node, removing the spaces</description>
+      <created by="Abel Braaksma" on="2016-01-23"/>
+      <test>
+         <stylesheet file="seqtor-013.xsl"/>
+      </test>
+      <result>
+         <assert-string-value>-- START --1-2{3}4-5{6}7-8{9}10-11{12}13-14{15}16-17{18}19-20{21}22-23{24}25-26{27}28-29{30}31-32{33}34-35{36}37-38{39}40-41{42}43-44{45}46-47{48}49-50{51}52-53{54}55-56{57}58-59{60}61-62{63}64-65{66}67-68{69}70-71{72}73-74{75}76-77{78}79-80{81}82-83{84}85-86{87}88-89{90}91-92{93}94-95{96}97-98{99}100-- END --</assert-string-value>
+      </result>
+   </test-case>
+   
+   <test-case name="seqtor-014">
+      <description>Constructing sequence constructor, test same as seqtor-013, without the dashes and nicer space-folding</description>
+      <created by="Abel Braaksma" on="2016-01-23"/>
+      <test>
+         <stylesheet file="seqtor-014.xsl"/>
+      </test>
+      <result>
+         <assert-string-value>-- START --12 {3} 45 {6} 78 {9} 1011 {12} 1314 {15} 1617 {18} 1920 {21} 2223 {24} 2526 {27} 2829 {30} 3132 {33} 3435 {36} 3738 {39} 4041 {42} 4344 {45} 4647 {48} 4950 {51} 5253 {54} 5556 {57} 5859 {60} 6162 {63} 6465 {66} 6768 {69} 7071 {72} 7374 {75} 7677 {78} 7980 {81} 8283 {84} 8586 {87} 8889 {90} 9192 {93} 9495 {96} 9798 {99} 100-- END --</assert-string-value>
+      </result>
+   </test-case>
+   
+   <test-case name="seqtor-015">
+      <description>Constructing sequence constructor, test same as seqtor-014, using xsl:value-of instead of xsl:text, but with expand-text</description>
+      <created by="Abel Braaksma" on="2016-01-23"/>
+      <test>
+         <stylesheet file="seqtor-015.xsl"/>
+      </test>
+      <result>
+         <assert-string-value>-- START --12 {3} 45 {6} 78 {9} 1011 {12} 1314 {15} 1617 {18} 1920 {21} 2223 {24} 2526 {27} 2829 {30} 3132 {33} 3435 {36} 3738 {39} 4041 {42} 4344 {45} 4647 {48} 4950 {51} 5253 {54} 5556 {57} 5859 {60} 6162 {63} 6465 {66} 6768 {69} 7071 {72} 7374 {75} 7677 {78} 7980 {81} 8283 {84} 8586 {87} 8889 {90} 9192 {93} 9495 {96} 9798 {99} 100-- END --</assert-string-value>
+      </result>
+   </test-case>
+   
+   <test-case name="seqtor-016">
+      <description>Constructing sequence constructor, test same as seqtor-014, using xsl:sequence instead of xsl:text, but with expand-text to create a text node</description>
+      <created by="Abel Braaksma" on="2016-01-23"/>
+      <test>
+         <stylesheet file="seqtor-016.xsl"/>
+      </test>
+      <result>
+         <assert-string-value>-- START --12 {3} 45 {6} 78 {9} 1011 {12} 1314 {15} 1617 {18} 1920 {21} 2223 {24} 2526 {27} 2829 {30} 3132 {33} 3435 {36} 3738 {39} 4041 {42} 4344 {45} 4647 {48} 4950 {51} 5253 {54} 5556 {57} 5859 {60} 6162 {63} 6465 {66} 6768 {69} 7071 {72} 7374 {75} 7677 {78} 7980 {81} 8283 {84} 8586 {87} 8889 {90} 9192 {93} 9495 {96} 9798 {99} 100-- END --</assert-string-value>
+      </result>
+   </test-case>
+   
+   <test-case name="seqtor-017">
+      <description>Constructing sequence constructor, test same as seqtor-014, using xsl:document instead of xsl:text, but with expand-text to create a text node inside a document node</description>
+      <created by="Abel Braaksma" on="2016-01-23"/>
+      <test>
+         <stylesheet file="seqtor-017.xsl"/>
+      </test>
+      <result>
+         <assert-string-value>-- START --12 {3} 45 {6} 78 {9} 1011 {12} 1314 {15} 1617 {18} 1920 {21} 2223 {24} 2526 {27} 2829 {30} 3132 {33} 3435 {36} 3738 {39} 4041 {42} 4344 {45} 4647 {48} 4950 {51} 5253 {54} 5556 {57} 5859 {60} 6162 {63} 6465 {66} 6768 {69} 7071 {72} 7374 {75} 7677 {78} 7980 {81} 8283 {84} 8586 {87} 8889 {90} 9192 {93} 9495 {96} 9798 {99} 100-- END --</assert-string-value>
+      </result>
+   </test-case>
+   
+   <test-case name="seqtor-018">
+      <description>Constructing sequence constructor, the reverse of seqtor-016, creating atomics where we created text nodes earlier</description>
+      <created by="Abel Braaksma" on="2016-01-23"/>
+      <test>
+         <stylesheet file="seqtor-018.xsl"/>
+      </test>
+      <result>
+         <assert-string-value>-- START -- 1   2 {   3   } 4   5 {   6   } 7   8 {   9   } 10   11 {   12   } 13   14 {   15   } 16   17 {   18   } 19   20 {   21   } 22   23 {   24   } 25   26 {   27   } 28   29 {   30   } 31   32 {   33   } 34   35 {   36   } 37   38 {   39   } 40   41 {   42   } 43   44 {   45   } 46   47 {   48   } 49   50 {   51   } 52   53 {   54   } 55   56 {   57   } 58   59 {   60   } 61   62 {   63   } 64   65 {   66   } 67   68 {   69   } 70   71 {   72   } 73   74 {   75   } 76   77 {   78   } 79   80 {   81   } 82   83 {   84   } 85   86 {   87   } 88   89 {   90   } 91   92 {   93   } 94   95 {   96   } 97   98 {   99   } 100 -- END --</assert-string-value>
+      </result>
+   </test-case>
+   
+   <test-case name="seqtor-019">
+      <description>Constructing sequence constructor, nesting xsl:sequence and xsl:text and expand-text</description>
+      <created by="Abel Braaksma" on="2016-01-23"/>
+      <test>
+         <stylesheet file="seqtor-019.xsl"/>
+      </test>
+      <result>
+         <assert-string-value>before-after</assert-string-value>
+      </result>
+   </test-case>
+   
+   <test-case name="seqtor-020">
+      <description>Constructing sequence constructor, creating nothingness</description>
+      <created by="Abel Braaksma" on="2016-01-23"/>
+      <test>
+         <stylesheet file="seqtor-020.xsl"/>
+      </test>
+      <result>
+         <assert-string-value>-               -</assert-string-value>
+      </result>
+   </test-case>
+   
+   <test-case name="seqtor-021">
+      <description>Constructing sequence constructor, creating (real) nothingness, variant of previous</description>
+      <created by="Abel Braaksma" on="2016-01-23"/>
+      <test>
+         <stylesheet file="seqtor-021.xsl"/>
+      </test>
+      <result>
+         <assert-string-value>--</assert-string-value>
+      </result>
+   </test-case>
+   
+   <test-case name="seqtor-022">
+      <description>Constructing sequence constructor, creating (real) nothingness, variant of previous (expand-text)</description>
+      <created by="Abel Braaksma" on="2016-01-23"/>
+      <test>
+         <stylesheet file="seqtor-022.xsl"/>
+      </test>
+      <result>
+         <assert-string-value>--</assert-string-value>
+      </result>
+   </test-case>
+   
+   <test-case name="seqtor-023">
+      <description>Constructing sequence constructor, creating (real) nothingness, variant of previous (expand-text)</description>
+      <created by="Abel Braaksma" on="2016-01-23"/>
+      <test>
+         <stylesheet file="seqtor-023.xsl"/>
+      </test>
+      <result>
+         <assert-string-value>--</assert-string-value>
+      </result>
+   </test-case>
+   
+   <test-case name="seqtor-024">
+      <description>Constructing sequence constructor, yet another way of getting (almost) nothing, this time with xsl:function</description>
+      <created by="Abel Braaksma" on="2016-01-23"/>
+      <test>
+         <stylesheet file="seqtor-024.xsl"/>
+      </test>
+      <result>
+         <assert-string-value>- -</assert-string-value>
+      </result>
+   </test-case>
+   
+   <test-case name="seqtor-025">
+      <description>Constructing sequence constructor, yet another way of getting (almost) nothing, this time with xsl:function, variant</description>
+      <created by="Abel Braaksma" on="2016-01-23"/>
+      <test>
+         <stylesheet file="seqtor-025.xsl"/>
+      </test>
+      <result>
+         <assert-string-value>--</assert-string-value>
+      </result>
+   </test-case>
+   
+   <test-case name="seqtor-026">
+      <description>Constructing sequence constructor, yet another way of getting (almost) nothing, this time with xsl:function, variant</description>
+      <created by="Abel Braaksma" on="2016-01-23"/>
+      <test>
+         <stylesheet file="seqtor-026.xsl"/>
+      </test>
+      <result>
+         <assert-string-value>--</assert-string-value>
+      </result>
+   </test-case>
+   
+   <test-case name="seqtor-027">
+      <description>Constructing sequence constructor, convoluted example of deeply nesting, non-tail-recursive function</description>
+      <created by="Abel Braaksma" on="2016-01-23"/>
+      <test>
+         <stylesheet file="seqtor-027.xsl"/>
+      </test>
+      <result>
+         <assert-string-value>startendA B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~</assert-string-value>
+      </result>
+   </test-case>
+   
+   <test-case name="seqtor-028">
+      <description>Constructing sequence constructor, convoluted example of deeply nesting, non-tail-recursive function</description>
+      <created by="Abel Braaksma" on="2016-01-23"/>
+      <test>
+         <stylesheet file="seqtor-028.xsl"/>
+      </test>
+      <result>
+         <assert-string-value>startendA B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~</assert-string-value>
+      </result>
+   </test-case>
+   
+   <test-case name="seqtor-029">
+      <description>Constructing sequence constructor, convoluted example of deeply nesting, non-tail-recursive function</description>
+      <created by="Abel Braaksma" on="2016-01-23"/>
+      <test>
+         <stylesheet file="seqtor-029.xsl"/>
+      </test>
+      <result>
+         <assert-string-value>startendABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~</assert-string-value>
+      </result>
+   </test-case>
+   
+   <test-case name="seqtor-030">
+      <description>Constructing sequence constructor, convoluted example of deeply nesting, non-tail-recursive function</description>
+      <created by="Abel Braaksma" on="2016-01-23"/>
+      <test>
+         <stylesheet file="seqtor-030.xsl"/>
+      </test>
+      <result>
+         <assert-string-value>start endABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~</assert-string-value>
+      </result>
+   </test-case>
+   
+   <test-case name="seqtor-031">
+      <description>Constructing sequence constructor, convoluted example of deeply nesting, non-tail-recursive function, note the space after the tilde at the end!</description>
+      <created by="Abel Braaksma" on="2016-01-23"/>
+      <test>
+         <stylesheet file="seqtor-031.xsl"/>
+      </test>
+      <result>
+         <assert-string-value>start end  A   B   C   D   E   F   G   H   I   J   K   L   M   N   O   P   Q   R   S   T   U   V   W   X   Y   Z   [   \   ]   ^   _   `   a   b   c   d   e   f   g   h   i   j   k   l   m   n   o   p   q   r   s   t   u   v   w   x   y   z   {   |   }   ~ </assert-string-value>
+      </result>
+   </test-case>
+   
+   <test-case name="seqtor-032">
+      <description>Constructing sequence constructor, convoluted example of deeply nesting, non-tail-recursive function, note the space between "start" and "end"</description>
+      <created by="Abel Braaksma" on="2016-01-23"/>
+      <test>
+         <stylesheet file="seqtor-032.xsl"/>
+      </test>
+      <result>
+         <assert-string-value>start endA|B|C|D|E|F|G|H|I|J|K|L|M|N|O|P|Q|R|S|T|U|V|W|X|Y|Z|[|\|]|^|_|`|a|b|c|d|e|f|g|h|i|j|k|l|m|n|o|p|q|r|s|t|u|v|w|x|y|z|{|||}|~</assert-string-value>
+      </result>
+   </test-case>
+   
+   <test-case name="seqtor-033">
+      <description>Constructing sequence constructor, convoluted example of deeply nesting, non-tail-recursive function, note the incidental wrong recursion</description>
+      <created by="Abel Braaksma" on="2016-01-23"/>
+      <test>
+         <stylesheet file="seqtor-033.xsl"/>
+      </test>
+      <result>
+         <assert-string-value>start ~ } | { z y x w v u t s r q p o n m l k j i h g f e d c b a ` _ ^ ] \ [ Z Y X W V U T S R Q P O N M L K J I H G F E D C B A end|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||</assert-string-value>
+      </result>
+   </test-case>
+   
+   <test-case name="seqtor-034">
+      <description>Constructing sequence constructor, convoluted example of deeply nesting, non-tail-recursive function, note the incidental wrong recursion, variant, subtly different from seqtor-033</description>
+      <created by="Abel Braaksma" on="2016-01-23"/>
+      <test>
+         <stylesheet file="seqtor-034.xsl"/>
+      </test>
+      <result>
+         <assert-string-value>start~ } | { z y x w v u t s r q p o n m l k j i h g f e d c b a ` _ ^ ] \ [ Z Y X W V U T S R Q P O N M L K J I H G F E D C B A end|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||</assert-string-value>
+      </result>
+   </test-case>
+   
+   <test-case name="seqtor-035">
+      <description>Constructing sequence constructor, convoluted example of deeply nesting, non-tail-recursive function, note the incidental wrong recursion, variant, quite subtly different from seqtor-033/-34</description>
+      <created by="Abel Braaksma" on="2016-01-23"/>
+      <test>
+         <stylesheet file="seqtor-035.xsl"/>
+      </test>
+      <result>
+         <assert-string-value>start~}|{zyxwvutsrqponmlkjihgfedcba`_^]\[ZYXWVUTSRQPONMLKJIHGFEDCBAend|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||</assert-string-value>
+      </result>
+   </test-case>
+   
+   <test-case name="seqtor-036a">
+      <description>Constructing simple content, xsl:comment</description>
+      <created by="Abel Braaksma" on="2016-01-23"/>
+      <test>
+         <stylesheet file="seqtor-036a.xsl"/>
+      </test>
+      <result>
+         <assert-xml><![CDATA[<!--  |   |  -->]]></assert-xml>
+      </result>
+   </test-case>
+
+   <test-case name="seqtor-036b">
+      <description>Constructing simple content, xsl:comment</description>
+      <created by="Abel Braaksma" on="2016-01-23"/>
+      <test>
+         <stylesheet file="seqtor-036b.xsl"/>
+      </test>
+      <result>
+         <assert-xml><![CDATA[<!--||-->]]></assert-xml>
+      </result>
+   </test-case>
+
+   <test-case name="seqtor-036c">
+      <description>Constructing simple content, xsl:comment</description>
+      <created by="Abel Braaksma" on="2016-01-23"/>
+      <test>
+         <stylesheet file="seqtor-036c.xsl"/>
+      </test>
+      <result>
+         <assert-xml><![CDATA[<!-- | | -->]]></assert-xml>
+      </result>
+   </test-case>
+
+   <test-case name="seqtor-036d">
+      <description>Constructing simple content, xsl:comment</description>
+      <created by="Abel Braaksma" on="2016-01-23"/>
+      <test>
+         <stylesheet file="seqtor-036d.xsl"/>
+      </test>
+      <result>
+         <assert-xml><![CDATA[<!-- |  | -->]]></assert-xml>
+      </result>
+   </test-case>
+   
+   <test-case name="seqtor-036e">
+      <description>Constructing simple content, xsl:comment</description>
+      <created by="Abel Braaksma" on="2016-01-23"/>
+      <test>
+         <stylesheet file="seqtor-036e.xsl"/>
+      </test>
+      <result>
+         <assert-xml><![CDATA[<!--||-->]]></assert-xml>
+      </result>
+   </test-case>
+
+   <test-case name="seqtor-037a">
+      <description>Constructing simple content, xsl:processing-instruction</description>
+      <created by="Abel Braaksma" on="2016-01-23"/>
+      <test>
+         <stylesheet file="seqtor-037a.xsl"/>
+      </test>
+      <result>
+         <assert-xml><![CDATA[<?foo |   |  ?>]]></assert-xml>
+      </result>
+   </test-case>
+
+   <test-case name="seqtor-037b">
+      <description>Constructing simple content, xsl:processing-instruction</description>
+      <created by="Abel Braaksma" on="2016-01-23"/>
+      <test>
+         <stylesheet file="seqtor-037b.xsl"/>
+      </test>
+      <result>
+         <assert-xml><![CDATA[<?foo ||?>]]></assert-xml>
+      </result>
+   </test-case>
+
+   <test-case name="seqtor-037c">
+      <description>Constructing simple content, xsl:processing-instruction</description>
+      <created by="Abel Braaksma" on="2016-01-23"/>
+      <test>
+         <stylesheet file="seqtor-037c.xsl"/>
+      </test>
+      <result>
+         <assert-xml><![CDATA[<?foo | | ?>]]></assert-xml>
+      </result>
+   </test-case>
+
+   <test-case name="seqtor-037d">
+      <description>Constructing simple content, xsl:processing-instruction</description>
+      <created by="Abel Braaksma" on="2016-01-23"/>
+      <test>
+         <stylesheet file="seqtor-037d.xsl"/>
+      </test>
+      <result>
+         <assert-xml><![CDATA[<?foo |  | ?>]]></assert-xml>
+      </result>
+   </test-case>
+   
+   <test-case name="seqtor-037e">
+      <description>Constructing simple content, xsl:processing-instruction</description>
+      <created by="Abel Braaksma" on="2016-01-23"/>
+      <test>
+         <stylesheet file="seqtor-037e.xsl"/>
+      </test>
+      <result>
+         <assert-xml><![CDATA[<?foo ||?>]]></assert-xml>
+      </result>
+   </test-case>
+
+   <test-case name="seqtor-038a">
+      <description>Constructing simple content, xsl:namespace</description>
+      <created by="Abel Braaksma" on="2016-01-23"/>
+      <test>
+         <stylesheet file="seqtor-038a.xsl"/>
+      </test>
+      <result>
+         <assert-xml><![CDATA[<bar xmlns:foo="  |   |  "/>]]></assert-xml>
+      </result>
+   </test-case>
+
+   <test-case name="seqtor-038b">
+      <description>Constructing simple content, xsl:namespace</description>
+      <created by="Abel Braaksma" on="2016-01-23"/>
+      <test>
+         <stylesheet file="seqtor-038b.xsl"/>
+      </test>
+      <result>
+         <assert-xml><![CDATA[<bar xmlns:foo="||"/>]]></assert-xml>
+      </result>
+   </test-case>
+
+   <test-case name="seqtor-038c">
+      <description>Constructing simple content, xsl:namespace</description>
+      <created by="Abel Braaksma" on="2016-01-23"/>
+      <test>
+         <stylesheet file="seqtor-038c.xsl"/>
+      </test>
+      <result>
+         <assert-xml><![CDATA[<bar xmlns:foo=" | | "/>]]></assert-xml>
+      </result>
+   </test-case>
+
+   <test-case name="seqtor-038d">
+      <description>Constructing simple content, xsl:namespace</description>
+      <created by="Abel Braaksma" on="2016-01-23"/>
+      <test>
+         <stylesheet file="seqtor-038d.xsl"/>
+      </test>
+      <result>
+         <assert-xml><![CDATA[<bar xmlns:foo=" |  | "/>]]></assert-xml>
+      </result>
+   </test-case>
+   
+   <test-case name="seqtor-038e">
+      <description>Constructing simple content, xsl:namespace</description>
+      <created by="Abel Braaksma" on="2016-01-23"/>
+      <test>
+         <stylesheet file="seqtor-038e.xsl"/>
+      </test>
+      <result>
+         <assert-xml><![CDATA[<bar xmlns:foo="||"/>]]></assert-xml>
+      </result>
+   </test-case>
+   
+   <test-case name="seqtor-039a">
+      <description>Constructing simple content, xsl:attribute</description>
+      <created by="Abel Braaksma" on="2016-01-23"/>
+      <test>
+         <stylesheet file="seqtor-039a.xsl"/>
+      </test>
+      <result>
+         <assert-xml><![CDATA[<bar foo="  |   |  "/>]]></assert-xml>
+      </result>
+   </test-case>
+
+   <test-case name="seqtor-039b">
+      <description>Constructing simple content, xsl:attribute</description>
+      <created by="Abel Braaksma" on="2016-01-23"/>
+      <test>
+         <stylesheet file="seqtor-039b.xsl"/>
+      </test>
+      <result>
+         <assert-xml><![CDATA[<bar foo="||"/>]]></assert-xml>
+      </result>
+   </test-case>
+
+   <test-case name="seqtor-039c">
+      <description>Constructing simple content, xsl:attribute</description>
+      <created by="Abel Braaksma" on="2016-01-23"/>
+      <test>
+         <stylesheet file="seqtor-039c.xsl"/>
+      </test>
+      <result>
+         <assert-xml><![CDATA[<bar foo=" | | "/>]]></assert-xml>
+      </result>
+   </test-case>
+
+   <test-case name="seqtor-039d">
+      <description>Constructing simple content, xsl:attribute</description>
+      <created by="Abel Braaksma" on="2016-01-23"/>
+      <test>
+         <stylesheet file="seqtor-039d.xsl"/>
+      </test>
+      <result>
+         <assert-xml><![CDATA[<bar foo=" |  | "/>]]></assert-xml>
+      </result>
+   </test-case>
+   
+   <test-case name="seqtor-039e">
+      <description>Constructing simple content, xsl:attribute</description>
+      <created by="Abel Braaksma" on="2016-01-23"/>
+      <test>
+         <stylesheet file="seqtor-039e.xsl"/>
+      </test>
+      <result>
+         <assert-xml><![CDATA[<bar foo="||"/>]]></assert-xml>
+      </result>
+   </test-case>
+
+   <test-case name="seqtor-040a">
+      <description>Constructing simple content, xsl:text/value-of</description>
+      <created by="Abel Braaksma" on="2016-01-23"/>
+      <test>
+         <stylesheet file="seqtor-040a.xsl"/>
+      </test>
+      <result>
+         <assert-xml><![CDATA[<bar>  |   |  </bar>]]></assert-xml>
+      </result>
+   </test-case>
+
+   <test-case name="seqtor-040b">
+      <description>Constructing simple content, xsl:text/value-of</description>
+      <created by="Abel Braaksma" on="2016-01-23"/>
+      <test>
+         <stylesheet file="seqtor-040b.xsl"/>
+      </test>
+      <result>
+         <assert-xml><![CDATA[<bar>||</bar>]]></assert-xml>
+      </result>
+   </test-case>
+
+   <test-case name="seqtor-040c">
+      <description>Constructing simple content, xsl:text/value-of</description>
+      <created by="Abel Braaksma" on="2016-01-23"/>
+      <test>
+         <stylesheet file="seqtor-040c.xsl"/>
+      </test>
+      <result>
+         <assert-xml><![CDATA[<bar>| |</bar>]]></assert-xml>
+      </result>
+   </test-case>
+
+   <test-case name="seqtor-040d">
+      <description>Constructing simple content, xsl:text/value-of</description>
+      <created by="Abel Braaksma" on="2016-01-23"/>
+      <test>
+         <stylesheet file="seqtor-040d.xsl"/>
+      </test>
+      <result>
+         <assert-xml><![CDATA[<bar> |  | </bar>]]></assert-xml>
+      </result>
+   </test-case>
+   
+   <test-case name="seqtor-040e">
+      <description>Constructing simple content, xsl:text/value-of</description>
+      <created by="Abel Braaksma" on="2016-01-23"/>
+      <test>
+         <stylesheet file="seqtor-040e.xsl"/>
+      </test>
+      <result>
+         <assert-xml><![CDATA[<bar>||</bar>]]></assert-xml>
+      </result>
+   </test-case>
+   
+   <test-case name="seqtor-041">
+      <description>Constructing simple content, multiple empty text nodes in variable</description>
+      <created by="Abel Braaksma" on="2016-01-23"/>
+      <test>
+         <stylesheet file="seqtor-041.xsl"/>
+      </test>
+      <result>
+         <assert-xml><![CDATA[<result/>]]></assert-xml>
+      </result>
+   </test-case>
+
+   <test-case name="seqtor-042">
+      <description>Constructing simple content, multiple text nodes in variable are merged</description>
+      <created by="Abel Braaksma" on="2016-01-23"/>
+      <test>
+         <stylesheet file="seqtor-042.xsl"/>
+      </test>
+      <result>
+         <assert-xml><![CDATA[<result>non empty and more</result>]]></assert-xml>
+      </result>
+   </test-case>
+
+
+
+
+</test-set>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/misc/seqtor/seqtor-001.xsl	Sun Feb 14 06:50:09 2016 +0000
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+    xmlns:xs="http://www.w3.org/2001/XMLSchema"
+    xmlns:math="http://www.w3.org/2005/xpath-functions/math"
+    exclude-result-prefixes="xs math"
+    version="3.0">
+    
+    <xsl:output method="text" />
+    
+    <xsl:template name="xsl:initial-template">
+        <!-- create text nodes that are concatenated together without spaces -->
+        <xsl:value-of select="''" />
+        <xsl:value-of select="''" />
+        <xsl:value-of select="'|'" />
+        <xsl:value-of select="''" />
+        <xsl:value-of select="''" />
+        <xsl:value-of select="'|'" />
+        <xsl:value-of select="''" />
+        <xsl:value-of select="''" />
+        <xsl:value-of select="'|'" />
+        <xsl:value-of select="''" />
+        <xsl:value-of select="''" />
+    </xsl:template>
+    
+</xsl:stylesheet>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/misc/seqtor/seqtor-002.xsl	Sun Feb 14 06:50:09 2016 +0000
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+    xmlns:xs="http://www.w3.org/2001/XMLSchema"
+    xmlns:math="http://www.w3.org/2005/xpath-functions/math"
+    exclude-result-prefixes="xs math"
+    version="3.0">
+    
+    <xsl:output method="text" />
+    
+    <xsl:template match="/" name="xsl:initial-template">
+        <!-- create text nodes that are concatenated together without spaces -->
+        <xsl:value-of select="1" />
+        <xsl:value-of select="'|'" />
+        <xsl:value-of select="2" />
+        <xsl:value-of select="'|'" />
+        <xsl:value-of select="3" />
+        <xsl:value-of select="'|'" />
+        <xsl:value-of select="4" />
+    </xsl:template>
+    
+</xsl:stylesheet>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/misc/seqtor/seqtor-003.xsl	Sun Feb 14 06:50:09 2016 +0000
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+    xmlns:xs="http://www.w3.org/2001/XMLSchema"
+    xmlns:math="http://www.w3.org/2005/xpath-functions/math"
+    exclude-result-prefixes="xs math"
+    version="3.0">
+    
+    <xsl:output method="text" />
+    
+    <xsl:template match="/" name="xsl:initial-template">
+        <!-- create text nodes that are concatenated together without spaces -->
+        <xsl:for-each select="1 to 4">
+            <xsl:value-of select="." />
+            <xsl:value-of select="'|'" />
+        </xsl:for-each>
+    </xsl:template>
+    
+</xsl:stylesheet>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/misc/seqtor/seqtor-004.xsl	Sun Feb 14 06:50:09 2016 +0000
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+    xmlns:xs="http://www.w3.org/2001/XMLSchema"
+    xmlns:math="http://www.w3.org/2005/xpath-functions/math"
+    exclude-result-prefixes="xs math"
+    version="3.0">
+    
+    <xsl:output method="text" />
+    
+    <xsl:template match="/" name="xsl:initial-template">
+        <!-- create text nodes that are concatenated together without spaces -->
+        <xsl:for-each select="1 to 4">
+            <xsl:text expand-text="yes">{''}</xsl:text>
+            <xsl:value-of select="." />
+            <xsl:text></xsl:text>
+            <xsl:value-of select="'|'" />
+            <xsl:text></xsl:text>
+        </xsl:for-each>
+    </xsl:template>
+    
+</xsl:stylesheet>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/misc/seqtor/seqtor-005.xsl	Sun Feb 14 06:50:09 2016 +0000
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+    xmlns:xs="http://www.w3.org/2001/XMLSchema"
+    xmlns:math="http://www.w3.org/2005/xpath-functions/math"
+    exclude-result-prefixes="xs math"
+    version="3.0">
+    
+    <xsl:output method="text" />
+    
+    <xsl:template match="/" name="xsl:initial-template">
+        <!-- create text nodes that are concatenated together without spaces -->
+        <xsl:sequence>
+            <xsl:text expand-text="yes">{''}</xsl:text>
+            <xsl:value-of select="1" />
+            <xsl:text></xsl:text>
+            <xsl:value-of select="'|'" />
+            <xsl:text></xsl:text>
+            <xsl:value-of select="2" />
+            <xsl:text></xsl:text>
+            <xsl:value-of select="'|'" />
+            <xsl:text></xsl:text>
+            <xsl:value-of select="3" />
+        </xsl:sequence>
+    </xsl:template>
+    
+</xsl:stylesheet>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/misc/seqtor/seqtor-006.xsl	Sun Feb 14 06:50:09 2016 +0000
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+    xmlns:xs="http://www.w3.org/2001/XMLSchema"
+    xmlns:math="http://www.w3.org/2005/xpath-functions/math"
+    exclude-result-prefixes="xs math"
+    version="3.0">
+    
+    <xsl:output method="text" />
+    
+    <xsl:template match="/" name="xsl:initial-template">
+        <!-- create text nodes that are concatenated together without spaces -->
+        <xsl:sequence>
+            <xsl:for-each select="1 to 4">
+                <xsl:sequence>
+                    <xsl:value-of select="." />
+                    <xsl:value-of select="'|'" />
+                </xsl:sequence>
+            </xsl:for-each>
+        </xsl:sequence>
+    </xsl:template>
+    
+</xsl:stylesheet>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/misc/seqtor/seqtor-007.xsl	Sun Feb 14 06:50:09 2016 +0000
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+    xmlns:xs="http://www.w3.org/2001/XMLSchema"
+    xmlns:math="http://www.w3.org/2005/xpath-functions/math"
+    exclude-result-prefixes="xs math"
+    version="3.0">
+    
+    <xsl:output method="text" />
+    
+    <xsl:template match="/" name="xsl:initial-template">
+        <!-- create text nodes that are concatenated together without spaces -->
+        <xsl:sequence>
+            <xsl:for-each select="1 to 4">
+                <xsl:sequence select="."/>
+                <xsl:sequence select="if(. mod 2) then () else '|'" />
+            </xsl:for-each>
+        </xsl:sequence>
+    </xsl:template>
+    
+</xsl:stylesheet>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/misc/seqtor/seqtor-008.xsl	Sun Feb 14 06:50:09 2016 +0000
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+    xmlns:xs="http://www.w3.org/2001/XMLSchema"
+    xmlns:math="http://www.w3.org/2005/xpath-functions/math"
+    exclude-result-prefixes="xs math"
+    version="3.0">
+    
+    <xsl:output method="text" />
+    
+    <xsl:template match="/" name="xsl:initial-template">
+        <!--
+            create text nodes that are concatenated together, intertwined with sequences of atomics. 
+            Empty text nodes must be discarded. 
+            Since "consecutive strings" from the spec does not apply here, we expect no spaces (w/o the text nodes, spaces would occur)
+        -->
+        <xsl:sequence>
+            <xsl:for-each select="1 to 4">
+                <xsl:text></xsl:text>
+                <xsl:sequence select="."/>
+                <xsl:value-of select="''" />
+                <xsl:sequence select="if(. mod 2) then () else '|'" />
+                <xsl:value-of select="''" />
+            </xsl:for-each>
+        </xsl:sequence>
+    </xsl:template>
+    
+</xsl:stylesheet>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/misc/seqtor/seqtor-009.xsl	Sun Feb 14 06:50:09 2016 +0000
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+    xmlns:xs="http://www.w3.org/2001/XMLSchema"
+    xmlns:math="http://www.w3.org/2005/xpath-functions/math"
+    exclude-result-prefixes="xs math"
+    version="3.0">
+    
+    <xsl:output method="text" />
+    
+    <xsl:template match="/" name="xsl:initial-template">
+        <!--
+            create text nodes that are concatenated together, intertwined with sequences of atomics. 
+            Empty text nodes must be discarded. 
+            Since "consecutive strings" from the spec does not apply here, we expect no spaces (w/o the text nodes, spaces would occur)
+            Same as seqtor-008, but with expand-text
+        -->
+        <xsl:sequence>
+            <xsl:for-each select="1 to 4">
+                <xsl:text expand-text="yes">{ if(. = 1) then '-- START --' else ''}</xsl:text>
+                <xsl:sequence select="."/>
+                <xsl:value-of select="''" />
+                <xsl:sequence select="if(. mod 2) then () else '|'" />
+                <xsl:value-of select="''" />
+                <xsl:text expand-text="yes">{''}</xsl:text>
+                <xsl:text expand-text="yes">{ if(. = 4) then '-- END --' else ''}</xsl:text>
+            </xsl:for-each>
+        </xsl:sequence>
+    </xsl:template>
+    
+</xsl:stylesheet>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/misc/seqtor/seqtor-010.xsl	Sun Feb 14 06:50:09 2016 +0000
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+    xmlns:xs="http://www.w3.org/2001/XMLSchema"
+    xmlns:math="http://www.w3.org/2005/xpath-functions/math"
+    exclude-result-prefixes="xs math"
+    version="3.0">
+    
+    <xsl:output method="text" />
+    
+    <xsl:template match="/" name="xsl:initial-template">
+        <!--
+            create text nodes that are concatenated together, intertwined with sequences of atomics. 
+            Empty text nodes must be discarded. 
+            Since "consecutive strings" from the spec does not apply here, we expect no spaces (w/o the text nodes, spaces would occur)
+            Same as seqtor-008, but with expand-text and with two empty strings that end up consecutive at beginning of 2nd, 3rd and 4th loop
+        -->
+        <xsl:sequence>
+            <xsl:for-each select="1 to 4">
+                <xsl:sequence select="''"/>
+                <xsl:text expand-text="yes">{ if(. = 1) then '-- START --' else ''}</xsl:text>
+                <xsl:sequence select="."/>
+                <xsl:value-of select="''" />
+                <xsl:sequence select="if(. mod 2) then () else '|'" />
+                <xsl:value-of select="''" />
+                <xsl:text expand-text="yes">{''}</xsl:text>
+                <xsl:text expand-text="yes">{ if(. = 4) then '-- END --' else ''}</xsl:text>
+                <xsl:sequence select="''"/>
+            </xsl:for-each>
+        </xsl:sequence>
+    </xsl:template>
+    
+</xsl:stylesheet>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/misc/seqtor/seqtor-011.xsl	Sun Feb 14 06:50:09 2016 +0000
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+    xmlns:xs="http://www.w3.org/2001/XMLSchema"
+    xmlns:math="http://www.w3.org/2005/xpath-functions/math"
+    exclude-result-prefixes="xs math"
+    version="3.0">
+    
+    <xsl:output method="text" />
+    
+    <xsl:template match="/" name="xsl:initial-template">
+        <!--
+            create text nodes that are concatenated together, intertwined with sequences of atomics. 
+            Empty text nodes must be discarded. 
+            Since "consecutive strings" from the spec does not apply here, we expect no spaces (w/o the text nodes, spaces would occur)
+            Same as seqtor-008, but with expand-text and with some obvious programmer's mistakes not returning the empty sequence in the if-statements
+            Note the difference with seqtor-010, which had opening/ending atomics, whereas here we have text nodes leading to surprising symmetry in the result
+        -->
+        <xsl:sequence>
+            <xsl:for-each select="1 to 4">
+                <xsl:text expand-text="yes">{ if(. = 1) then '-- START --' else ''}</xsl:text>
+                <xsl:sequence select="if(. mod 2) then '|' else ''" />
+                <xsl:sequence select="."/>
+                <xsl:sequence select="if(. mod 2) then '' else '|'" />
+                <xsl:text expand-text="yes">{ if(. = 4) then '-- END --' else ''}</xsl:text>
+            </xsl:for-each>
+        </xsl:sequence>
+    </xsl:template>
+    
+</xsl:stylesheet>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/misc/seqtor/seqtor-012.xsl	Sun Feb 14 06:50:09 2016 +0000
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+    xmlns:xs="http://www.w3.org/2001/XMLSchema"
+    xmlns:math="http://www.w3.org/2005/xpath-functions/math"
+    exclude-result-prefixes="xs math"
+    version="3.0">
+    
+    <xsl:output method="text" />
+    
+    <xsl:template match="/" name="xsl:initial-template">
+        <!--
+            create text nodes that are concatenated together, intertwined with sequences of atomics. 
+            Empty text nodes must be discarded. 
+            Grouping by threes
+        -->
+        <xsl:sequence>
+            <xsl:for-each select="1 to 100">
+                <xsl:text expand-text="yes">{ if(. = 1) then '-- START --' else ''}</xsl:text>
+                <xsl:sequence select="if(. mod 3 = 1 and . != 1) then '}' else if(. mod 3 = 2) then '-' else ()" />
+                <xsl:sequence select="."/>
+                <xsl:sequence select="if(. mod 3 = 2) then '{' else if(. mod 3 = 1) then '' else ()" />
+                <xsl:text expand-text="yes">{ if(. = 100) then '-- END --' else ''}</xsl:text>
+            </xsl:for-each>
+        </xsl:sequence>
+    </xsl:template>
+    
+</xsl:stylesheet>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/misc/seqtor/seqtor-013.xsl	Sun Feb 14 06:50:09 2016 +0000
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+    xmlns:xs="http://www.w3.org/2001/XMLSchema"
+    xmlns:math="http://www.w3.org/2005/xpath-functions/math"
+    exclude-result-prefixes="xs math"
+    version="3.0">
+    
+    <xsl:output method="text" />
+    
+    <xsl:template match="/" name="xsl:initial-template">
+        <!--
+            create text nodes that are concatenated together, intertwined with sequences of atomics. 
+            Empty text nodes must be discarded. 
+            Grouping by threes, same as previous, condensed by the text nodes
+        -->
+        <xsl:sequence>
+            <xsl:for-each select="1 to 100">
+                <xsl:text expand-text="yes">{ if(. = 1) then '-- START --' else ''}</xsl:text>
+                <xsl:sequence select="if(. mod 3 = 1 and . != 1) then '}' else if(. mod 3 = 2) then '-' else ()" />
+                <xsl:text></xsl:text>
+                <xsl:sequence select="."/>
+                <xsl:text></xsl:text>
+                <xsl:sequence select="if(. mod 3 = 2) then '{' else if(. mod 3 = 1) then '' else ()" />
+                <xsl:text expand-text="yes">{ if(. = 100) then '-- END --' else ''}</xsl:text>
+            </xsl:for-each>
+        </xsl:sequence>
+    </xsl:template>
+    
+</xsl:stylesheet>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/misc/seqtor/seqtor-014.xsl	Sun Feb 14 06:50:09 2016 +0000
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+    xmlns:xs="http://www.w3.org/2001/XMLSchema"
+    xmlns:math="http://www.w3.org/2005/xpath-functions/math"
+    exclude-result-prefixes="xs math"
+    version="3.0">
+    
+    <xsl:output method="text" />
+    
+    <xsl:template match="/" name="xsl:initial-template">
+        <!--
+            create text nodes that are concatenated together, intertwined with sequences of atomics. 
+            Empty text nodes must be discarded. 
+            Grouping by threes, balancing the spaces before/after the curlies byt the magic of XSLT space-folding
+        -->
+        <xsl:sequence>
+            <xsl:for-each select="1 to 100">
+                <xsl:text expand-text="yes">{ if(. = 1) then '-- START --' else ''}</xsl:text>
+                <xsl:sequence select="if(. mod 3 = 1 and . != 1) then '}' else ()" />
+                <xsl:sequence select="."/>
+                <xsl:sequence select="if(. mod 3 = 2) then '{' else  ()" />
+                <xsl:text expand-text="yes">{ if(. = 100) then '-- END --' else ''}</xsl:text>
+            </xsl:for-each>
+        </xsl:sequence>
+    </xsl:template>
+    
+</xsl:stylesheet>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/misc/seqtor/seqtor-015.xsl	Sun Feb 14 06:50:09 2016 +0000
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+    xmlns:xs="http://www.w3.org/2001/XMLSchema"
+    xmlns:math="http://www.w3.org/2005/xpath-functions/math"
+    exclude-result-prefixes="xs math"
+    version="3.0">
+    
+    <xsl:output method="text" />
+    
+    <xsl:template match="/" name="xsl:initial-template">
+        <!--
+            create text nodes that are concatenated together, intertwined with sequences of atomics. 
+            Empty text nodes must be discarded. 
+            Grouping by threes, balancing the spaces before/after the curlies byt the magic of XSLT space-folding
+        -->
+        <xsl:sequence>
+            <xsl:for-each select="1 to 100">
+                <xsl:value-of expand-text="yes">{ if(. = 1) then '-- START --' else ''}</xsl:value-of>
+                <xsl:sequence select="if(. mod 3 = 1 and . != 1) then '}' else ()" />
+                <xsl:sequence select="."/>
+                <xsl:sequence select="if(. mod 3 = 2) then '{' else  ()" />
+                <xsl:value-of expand-text="yes">{ if(. = 100) then '-- END --' else ''}</xsl:value-of>
+            </xsl:for-each>
+        </xsl:sequence>
+    </xsl:template>
+    
+</xsl:stylesheet>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/misc/seqtor/seqtor-016.xsl	Sun Feb 14 06:50:09 2016 +0000
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+    xmlns:xs="http://www.w3.org/2001/XMLSchema"
+    xmlns:math="http://www.w3.org/2005/xpath-functions/math"
+    exclude-result-prefixes="xs math"
+    version="3.0">
+    
+    <xsl:output method="text" />
+    
+    <xsl:template match="/" name="xsl:initial-template">
+        <!--
+            create text nodes that are concatenated together, intertwined with sequences of atomics. 
+            Empty text nodes must be discarded. 
+            Grouping by threes, balancing the spaces before/after the curlies by the magic of XSLT space-folding
+            Same as previous, but using xsl:sequence with expand-text, returning text nodes
+        -->
+        <xsl:sequence>
+            <xsl:for-each select="1 to 100">
+                <xsl:sequence expand-text="yes">{ if(. = 1) then '-- START --' else ''}</xsl:sequence>
+                <xsl:sequence select="if(. mod 3 = 1 and . != 1) then '}' else ()" />
+                <xsl:sequence select="."/>
+                <xsl:sequence select="if(. mod 3 = 2) then '{' else  ()" />
+                <xsl:sequence expand-text="yes">{ if(. = 100) then '-- END --' else ''}</xsl:sequence>
+            </xsl:for-each>
+        </xsl:sequence>
+    </xsl:template>
+    
+</xsl:stylesheet>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/misc/seqtor/seqtor-017.xsl	Sun Feb 14 06:50:09 2016 +0000
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+    xmlns:xs="http://www.w3.org/2001/XMLSchema"
+    xmlns:math="http://www.w3.org/2005/xpath-functions/math"
+    exclude-result-prefixes="xs math"
+    version="3.0">
+    
+    <xsl:output method="text" />
+    
+    <xsl:template match="/" name="xsl:initial-template">
+        <!--
+            create text nodes that are concatenated together, intertwined with sequences of atomics. 
+            Empty text nodes must be discarded. 
+            Grouping by threes, balancing the spaces before/after the curlies by the magic of XSLT space-folding
+            Same as previous, but using xsl:document with expand-text, returning text nodes inside document nodes, should have no discernible effect
+        -->
+        <xsl:sequence>
+            <xsl:for-each select="1 to 100">
+                <xsl:document expand-text="yes">{ if(. = 1) then '-- START --' else ''}</xsl:document>
+                <xsl:sequence select="if(. mod 3 = 1 and . != 1) then '}' else ()" />
+                <xsl:sequence select="."/>
+                <xsl:sequence select="if(. mod 3 = 2) then '{' else  ()" />
+                <xsl:document expand-text="yes">{ if(. = 100) then '-- END --' else ''}</xsl:document>
+            </xsl:for-each>
+        </xsl:sequence>
+    </xsl:template>
+    
+</xsl:stylesheet>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/misc/seqtor/seqtor-018.xsl	Sun Feb 14 06:50:09 2016 +0000
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+    xmlns:xs="http://www.w3.org/2001/XMLSchema"
+    xmlns:math="http://www.w3.org/2005/xpath-functions/math"
+    exclude-result-prefixes="xs math"
+    version="3.0">
+    
+    <xsl:output method="text" />
+    
+    <xsl:template match="/" name="xsl:initial-template">
+        <!--
+            create text nodes that are concatenated together, intertwined with sequences of atomics. 
+            Empty text nodes must be discarded. 
+            Grouping by threes, balancing the spaces before/after the curlies by the magic of XSLT space-folding
+            Same as previous, but using xsl:sequence with @select, leading to extra spaces
+        -->
+        <xsl:sequence>
+            <xsl:for-each select="1 to 100">
+                <xsl:sequence select="if(. = 1) then '-- START --' else ''" />
+                <xsl:sequence select="if(. mod 3 = 1 and . != 1) then '}' else ()" />
+                <xsl:sequence select="."/>
+                <xsl:sequence select="if(. mod 3 = 2) then '{' else  ()" />
+                <xsl:sequence select="if(. = 100) then '-- END --' else ''" />
+            </xsl:for-each>
+        </xsl:sequence>
+    </xsl:template>
+    
+</xsl:stylesheet>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/misc/seqtor/seqtor-019.xsl	Sun Feb 14 06:50:09 2016 +0000
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+    xmlns:xs="http://www.w3.org/2001/XMLSchema"
+    xmlns:math="http://www.w3.org/2005/xpath-functions/math"
+    exclude-result-prefixes="xs math"
+    version="3.0">
+    
+    <xsl:output method="text" />
+    
+    <xsl:template match="/" name="xsl:initial-template">
+        <!--
+            create text nodes that are concatenated together, intertwined with sequences of atomics. 
+            Empty text nodes must be discarded. 
+            Nesting example with xsl:sequence and xsl:text and expand-text
+        -->
+        <xsl:text>before</xsl:text>
+        <xsl:sequence expand-text="yes">
+            <xsl:for-each select="1 to 100">
+                <xsl:sequence expand-text="yes">{
+                ''
+                }<xsl:text expand-text="yes"></xsl:text><xsl:text expand-text="yes"></xsl:text><xsl:text expand-text="yes"></xsl:text>{
+                (1,2,3)[false()]}<xsl:text expand-text="yes"></xsl:text><xsl:text expand-text="yes"></xsl:text><xsl:text expand-text="yes"></xsl:text></xsl:sequence>
+            </xsl:for-each>
+            <xsl:text expand-text="yes">{'-'}</xsl:text>
+        </xsl:sequence>
+        <xsl:text>after</xsl:text>
+    </xsl:template>
+    
+</xsl:stylesheet>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/misc/seqtor/seqtor-020.xsl	Sun Feb 14 06:50:09 2016 +0000
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+    xmlns:xs="http://www.w3.org/2001/XMLSchema"
+    xmlns:math="http://www.w3.org/2005/xpath-functions/math"
+    exclude-result-prefixes="xs math"
+    version="3.0">
+    
+    <xsl:output method="text" />
+    
+    <xsl:template match="/" name="xsl:initial-template">
+        <!--
+            create text nodes that are concatenated together, intertwined with sequences of atomics. 
+            Empty text nodes must be discarded. 
+            Creating a lot of nothing (15 spaces)
+        -->
+        <xsl:sequence select="'-'"/>
+        <xsl:sequence expand-text="yes">
+            <xsl:for-each select="1 to 2">
+                <xsl:sequence select="xs:anyURI('')" />
+                <xsl:sequence select="xs:base64Binary('')" />
+                <xsl:sequence select="xs:string('')" />
+                <xsl:sequence select="''" />
+                <xsl:sequence select="xs:hexBinary('')" />
+                <xsl:sequence select="xs:token('')" />
+                <xsl:sequence select="xs:language(())" />
+                <xsl:sequence select="xs:normalizedString('')" />
+            </xsl:for-each>
+        </xsl:sequence>
+        <xsl:sequence select="'-'"/>
+    </xsl:template>
+    
+</xsl:stylesheet>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/misc/seqtor/seqtor-021.xsl	Sun Feb 14 06:50:09 2016 +0000
@@ -0,0 +1,41 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+    xmlns:xs="http://www.w3.org/2001/XMLSchema"
+    xmlns:math="http://www.w3.org/2005/xpath-functions/math"
+    exclude-result-prefixes="xs math"
+    version="3.0">
+    
+    <xsl:output method="text" />
+    
+    <xsl:template match="/" name="xsl:initial-template">
+        <!--
+            create text nodes that are concatenated together, intertwined with sequences of atomics. 
+            Empty text nodes must be discarded. 
+            Creating a lot of nothing (15 spaces removed by xsl:text)
+        -->
+        <xsl:sequence select="'-'"/>
+        <xsl:sequence expand-text="yes">
+            <xsl:for-each select="1 to 2">
+                <xsl:text></xsl:text>
+                <xsl:sequence select="xs:anyURI('')" />
+                <xsl:text></xsl:text>
+                <xsl:sequence select="xs:base64Binary('')" />
+                <xsl:text></xsl:text>
+                <xsl:sequence select="xs:string('')" />
+                <xsl:text></xsl:text>
+                <xsl:sequence select="''" />
+                <xsl:text></xsl:text>
+                <xsl:sequence select="xs:hexBinary('')" />
+                <xsl:text></xsl:text>
+                <xsl:sequence select="xs:token('')" />
+                <xsl:text></xsl:text>
+                <xsl:sequence select="xs:language(())" />
+                <xsl:text></xsl:text>
+                <xsl:sequence select="xs:normalizedString('')" />
+                <xsl:text></xsl:text>
+            </xsl:for-each>
+        </xsl:sequence>
+        <xsl:sequence select="'-'"/>
+    </xsl:template>
+    
+</xsl:stylesheet>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/misc/seqtor/seqtor-022.xsl	Sun Feb 14 06:50:09 2016 +0000
@@ -0,0 +1,41 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+    xmlns:xs="http://www.w3.org/2001/XMLSchema"
+    xmlns:math="http://www.w3.org/2005/xpath-functions/math"
+    exclude-result-prefixes="xs math"
+    version="3.0">
+    
+    <xsl:output method="text" />
+    
+    <xsl:template match="/" name="xsl:initial-template">
+        <!--
+            create text nodes that are concatenated together, intertwined with sequences of atomics. 
+            Empty text nodes must be discarded. 
+            Creating a lot of nothing (15 spaces removed by the xsl:text)
+        -->
+        <xsl:sequence select="'-'"/>
+        <xsl:sequence expand-text="yes">
+            <xsl:for-each select="1 to 2">
+                <xsl:text expand-text="yes"></xsl:text>
+                <xsl:sequence select="xs:anyURI('')" />
+                <xsl:text expand-text="yes"></xsl:text>
+                <xsl:sequence select="xs:base64Binary('')" />
+                <xsl:text expand-text="yes"></xsl:text>
+                <xsl:sequence select="xs:string('')" />
+                <xsl:text expand-text="yes"></xsl:text>
+                <xsl:sequence select="''" />
+                <xsl:text expand-text="yes"></xsl:text>
+                <xsl:sequence select="xs:hexBinary('')" />
+                <xsl:text expand-text="yes"></xsl:text>
+                <xsl:sequence select="xs:token('')" />
+                <xsl:text expand-text="yes"></xsl:text>
+                <xsl:sequence select="xs:language(())" />
+                <xsl:text expand-text="yes"></xsl:text>
+                <xsl:sequence select="xs:normalizedString('')" />
+                <xsl:text expand-text="yes"></xsl:text>
+            </xsl:for-each>
+        </xsl:sequence>
+        <xsl:sequence select="'-'"/>
+    </xsl:template>
+    
+</xsl:stylesheet>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/misc/seqtor/seqtor-023.xsl	Sun Feb 14 06:50:09 2016 +0000
@@ -0,0 +1,41 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+    xmlns:xs="http://www.w3.org/2001/XMLSchema"
+    xmlns:math="http://www.w3.org/2005/xpath-functions/math"
+    exclude-result-prefixes="xs math"
+    version="3.0">
+    
+    <xsl:output method="text" />
+    
+    <xsl:template match="/" name="xsl:initial-template">
+        <!--
+            create text nodes that are concatenated together, intertwined with sequences of atomics. 
+            Empty text nodes must be discarded. 
+            Creating a lot of nothing (15 spaces)
+        -->
+        <xsl:sequence select="'-'"/>
+        <xsl:sequence expand-text="yes">
+            <xsl:for-each select="1 to 2">
+                <xsl:text expand-text="yes">{ (: foo :) '' || xs:hexBinary('') || '' (:bar :) }</xsl:text>
+                <xsl:sequence select="xs:anyURI('')" />
+                <xsl:text expand-text="yes">{ (: foo :) '' || xs:hexBinary('') || '' (:bar :) }</xsl:text>
+                <xsl:sequence select="xs:base64Binary('')" />
+                <xsl:text expand-text="yes">{ (: foo :) '' || xs:hexBinary('') || '' (:bar :) }</xsl:text>
+                <xsl:sequence select="xs:string('')" />
+                <xsl:text expand-text="yes">{ (: foo :) '' || xs:hexBinary('') || '' (:bar :) }</xsl:text>
+                <xsl:sequence select="''" />
+                <xsl:text expand-text="yes">{ (: foo :) '' || xs:hexBinary('') || '' (:bar :) }</xsl:text>
+                <xsl:sequence select="xs:hexBinary('')" />
+                <xsl:text expand-text="yes">{ (: foo :) '' || xs:hexBinary('') || '' (:bar :) }</xsl:text>
+                <xsl:sequence select="xs:token('')" />
+                <xsl:text expand-text="yes">{ (: foo :) '' || xs:hexBinary('') || '' (:bar :) }</xsl:text>
+                <xsl:sequence select="xs:language(())" />
+                <xsl:text expand-text="yes">{ (: foo :) '' || xs:hexBinary('') || '' (:bar :) }</xsl:text>
+                <xsl:sequence select="xs:normalizedString('')" />
+                <xsl:text expand-text="yes">{ (: foo :) '' || xs:hexBinary('') || '' (:bar :) }</xsl:text>
+            </xsl:for-each>
+        </xsl:sequence>
+        <xsl:sequence select="'-'"/>
+    </xsl:template>
+    
+</xsl:stylesheet>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/misc/seqtor/seqtor-024.xsl	Sun Feb 14 06:50:09 2016 +0000
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+    xmlns:xs="http://www.w3.org/2001/XMLSchema"
+    xmlns:math="http://www.w3.org/2005/xpath-functions/math"
+    xmlns:f="http://function"
+    exclude-result-prefixes="xs math f"    
+    version="3.0">
+    
+    <xsl:output method="text" />
+    
+    <xsl:template match="/" name="xsl:initial-template">
+        <!--
+            create text nodes that are concatenated together, intertwined with sequences of atomics. 
+            Empty text nodes must be discarded. 
+            Creating mixed atomics and text nodes through xsl:function, mark the last item, it ends with two atomics after unrolling the loop
+        -->
+        <xsl:sequence select="'-'"/>
+        <xsl:sequence expand-text="yes">
+            <xsl:for-each select="1 to 10">
+                <xsl:sequence select="f:create()" />
+            </xsl:for-each>
+        </xsl:sequence>
+        <xsl:sequence select="'-'"/>
+    </xsl:template>
+    
+    <xsl:function name="f:create" as="item()+">
+        <xsl:text expand-text="yes">{''}</xsl:text>
+        <xsl:sequence select="''" />
+    </xsl:function>
+    
+</xsl:stylesheet>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/misc/seqtor/seqtor-025.xsl	Sun Feb 14 06:50:09 2016 +0000
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+    xmlns:xs="http://www.w3.org/2001/XMLSchema"
+    xmlns:math="http://www.w3.org/2005/xpath-functions/math"
+    xmlns:f="http://function"
+    exclude-result-prefixes="xs math f"    
+    version="3.0">
+    
+    <xsl:output method="text" />
+    
+    <xsl:template match="/" name="xsl:initial-template">
+        <!--
+            create text nodes that are concatenated together, intertwined with sequences of atomics. 
+            Empty text nodes must be discarded. 
+            Creating mixed atomics and text nodes through xsl:function, mark the last item, it ends with two atomics after unrolling the loop
+        -->
+        <xsl:sequence select="'-'"/>
+        <xsl:sequence expand-text="yes">
+            <xsl:for-each select="1 to 10">
+                <xsl:sequence select="f:create()" />
+            </xsl:for-each>
+        </xsl:sequence>
+        <xsl:sequence select="'-'"/>
+    </xsl:template>
+    
+    <xsl:function name="f:create" as="item()+">
+        <xsl:text expand-text="yes">{''}</xsl:text>
+        <xsl:sequence select="''" />
+        <xsl:text expand-text="yes">{''}</xsl:text>
+    </xsl:function>
+    
+</xsl:stylesheet>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/misc/seqtor/seqtor-026.xsl	Sun Feb 14 06:50:09 2016 +0000
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+    xmlns:xs="http://www.w3.org/2001/XMLSchema"
+    xmlns:math="http://www.w3.org/2005/xpath-functions/math"
+    xmlns:f="http://function"
+    exclude-result-prefixes="xs math f"    
+    version="3.0">
+    
+    <xsl:output method="text" />
+    
+    <xsl:template match="/" name="xsl:initial-template">
+        <!--
+            create text nodes that are concatenated together, intertwined with sequences of atomics. 
+            Empty text nodes must be discarded. 
+            Creating mixed atomics and text nodes through xsl:function, mark the last item, it ends with two atomics after unrolling the loop
+        -->
+        <xsl:sequence select="'-'"/>
+        <xsl:sequence expand-text="yes">
+            <xsl:for-each select="1 to 10">
+                <xsl:sequence select="f:create()" />
+            </xsl:for-each>
+        </xsl:sequence>
+        <xsl:sequence select="'-'"/>
+    </xsl:template>
+    
+    <xsl:function name="f:create" as="item()+">
+        <!-- empty seq. in expand-text creates an empty text node, which has a different effect then select="()" -->
+        <xsl:sequence expand-text="yes">{()}</xsl:sequence>
+        <xsl:sequence select="''" />
+        <xsl:sequence expand-text="yes">{()}</xsl:sequence>
+    </xsl:function>
+    
+</xsl:stylesheet>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/misc/seqtor/seqtor-027.xsl	Sun Feb 14 06:50:09 2016 +0000
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+    xmlns:xs="http://www.w3.org/2001/XMLSchema"
+    xmlns:math="http://www.w3.org/2005/xpath-functions/math"
+    xmlns:f="http://function"
+    exclude-result-prefixes="xs math f"    
+    version="3.0">
+    
+    <xsl:output method="text" />
+    
+    <xsl:template match="/" name="xsl:initial-template">
+        <!--
+            create text nodes that are concatenated together, intertwined with sequences of atomics. 
+            Empty text nodes must be discarded. 
+            Creating mixed atomics and text nodes through xsl:function, testing non tail-recursive function, no space between "start" and "end" and "A"
+        -->
+        <xsl:sequence select="'start'"/>
+        <xsl:sequence select="f:create(61)" />
+    </xsl:template>
+    
+    <xsl:function name="f:create" as="item()+">
+        <xsl:param name="i" as="xs:integer" />
+        <xsl:text expand-text="yes">{if($i = 0) then 'end' else f:create($i - 1)}</xsl:text>
+        <xsl:sequence select="codepoints-to-string($i + 65)" />
+    </xsl:function>
+    
+    
+    
+</xsl:stylesheet>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/misc/seqtor/seqtor-028.xsl	Sun Feb 14 06:50:09 2016 +0000
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+    xmlns:xs="http://www.w3.org/2001/XMLSchema"
+    xmlns:math="http://www.w3.org/2005/xpath-functions/math"
+    xmlns:f="http://function"
+    exclude-result-prefixes="xs math f"    
+    version="3.0">
+    
+    <xsl:output method="text" />
+    
+    <xsl:template match="/" name="xsl:initial-template">
+        <!--
+            create text nodes that are concatenated together, intertwined with sequences of atomics. 
+            Empty text nodes must be discarded. 
+            Creating mixed atomics and text nodes through xsl:function, testing non tail-recursive function, no space between "start" and "end" and "A"
+        -->
+        <xsl:sequence select="'start'"/>
+        <xsl:sequence select="f:create(61)" />
+    </xsl:template>
+    
+    <xsl:function name="f:create" as="item()+">
+        <xsl:param name="i" as="xs:integer" />
+        <xsl:sequence expand-text="yes">{if($i = 0) then 'end' else f:create($i - 1)}</xsl:sequence>
+        <xsl:sequence select="codepoints-to-string($i + 65)" />
+    </xsl:function>
+    
+    
+    
+</xsl:stylesheet>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/misc/seqtor/seqtor-029.xsl	Sun Feb 14 06:50:09 2016 +0000
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+    xmlns:xs="http://www.w3.org/2001/XMLSchema"
+    xmlns:math="http://www.w3.org/2005/xpath-functions/math"
+    xmlns:f="http://function"
+    exclude-result-prefixes="xs math f"    
+    version="3.0">
+    
+    <xsl:output method="text" />
+    
+    <xsl:template match="/" name="xsl:initial-template">
+        <!--
+            create text nodes that are concatenated together, intertwined with sequences of atomics. 
+            Empty text nodes must be discarded. 
+            Creating mixed atomics and text nodes through xsl:function, testing non tail-recursive function, no spaces at all, only text nodes are created
+        -->
+        <xsl:sequence select="'start'"/>
+        <xsl:sequence select="f:create(61)" />
+    </xsl:template>
+    
+    <xsl:function name="f:create" as="item()+">
+        <xsl:param name="i" as="xs:integer" />
+        <xsl:sequence expand-text="yes">{if($i = 0) then 'end' else f:create($i - 1)}</xsl:sequence>
+        <xsl:sequence expand-text="yes">{codepoints-to-string($i + 65)}</xsl:sequence> 
+    </xsl:function>
+    
+    
+    
+</xsl:stylesheet>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/misc/seqtor/seqtor-030.xsl	Sun Feb 14 06:50:09 2016 +0000
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+    xmlns:xs="http://www.w3.org/2001/XMLSchema"
+    xmlns:math="http://www.w3.org/2005/xpath-functions/math"
+    xmlns:f="http://function"
+    exclude-result-prefixes="xs math f"    
+    version="3.0">
+    
+    <xsl:output method="text" />
+    
+    <xsl:template match="/" name="xsl:initial-template">
+        <!--
+            create text nodes that are concatenated together, intertwined with sequences of atomics. 
+            Empty text nodes must be discarded. 
+            Creating mixed atomics and text nodes through xsl:function, testing non tail-recursive function, no spaces at all, only text nodes are created
+        -->
+        <xsl:sequence select="'start'"/>
+        <xsl:sequence select="f:create(61)" />
+    </xsl:template>
+    
+    <xsl:function name="f:create" as="item()+">
+        <xsl:param name="i" as="xs:integer" />
+        <xsl:sequence select="if($i = 0) then 'end' else f:create($i - 1)" />
+        <xsl:text></xsl:text>
+        <xsl:sequence select="codepoints-to-string($i + 65)" /> 
+    </xsl:function>
+    
+    
+    
+</xsl:stylesheet>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/misc/seqtor/seqtor-031.xsl	Sun Feb 14 06:50:09 2016 +0000
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+    xmlns:xs="http://www.w3.org/2001/XMLSchema"
+    xmlns:math="http://www.w3.org/2005/xpath-functions/math"
+    xmlns:f="http://function"
+    exclude-result-prefixes="xs math f"    
+    version="3.0">
+    
+    <xsl:output method="text" />
+    
+    <xsl:template match="/" name="xsl:initial-template">
+        <!--
+            create text nodes that are concatenated together, intertwined with sequences of atomics. 
+            Empty text nodes must be discarded. 
+            Creating mixed atomics and text nodes through xsl:function, testing non tail-recursive function, tripling the spaces
+        -->
+        <xsl:sequence select="'start'"/>
+        <xsl:sequence select="f:create(61)" />
+    </xsl:template>
+    
+    <xsl:function name="f:create" as="item()+">
+        <xsl:param name="i" as="xs:integer" />
+        <xsl:sequence select="if($i = 0) then 'end' else f:create($i - 1)" />
+        <xsl:sequence select="''" />
+        <xsl:sequence select="codepoints-to-string($i + 65)" /> 
+        <xsl:sequence select="''" />
+    </xsl:function>
+    
+    
+    
+</xsl:stylesheet>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/misc/seqtor/seqtor-032.xsl	Sun Feb 14 06:50:09 2016 +0000
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+    xmlns:xs="http://www.w3.org/2001/XMLSchema"
+    xmlns:math="http://www.w3.org/2005/xpath-functions/math"
+    xmlns:f="http://function"
+    exclude-result-prefixes="xs math f"    
+    version="3.0">
+    
+    <xsl:output method="text" />
+    
+    <xsl:template match="/" name="xsl:initial-template">
+        <!--
+            create text nodes that are concatenated together, intertwined with sequences of atomics. 
+            Empty text nodes must be discarded. 
+            Creating mixed atomics and text nodes through xsl:function, testing non tail-recursive function, tripling the spaces
+        -->
+        <xsl:sequence select="'start'"/>
+        <xsl:sequence select="f:create(62)" />
+    </xsl:template>
+    
+    <xsl:function name="f:create" as="item()+">
+        <xsl:param name="i" as="xs:integer" />
+        <xsl:sequence select="if($i = 0) then 'end' else (f:create($i - 1), codepoints-to-string($i + 64))" />
+        <xsl:text expand-text="yes">{if($i = 62 or $i = 0) then '' else '|'}</xsl:text>
+    </xsl:function>
+    
+    
+    
+</xsl:stylesheet>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/misc/seqtor/seqtor-033.xsl	Sun Feb 14 06:50:09 2016 +0000
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+    xmlns:xs="http://www.w3.org/2001/XMLSchema"
+    xmlns:math="http://www.w3.org/2005/xpath-functions/math"
+    xmlns:f="http://function"
+    exclude-result-prefixes="xs math f"    
+    version="3.0">
+    
+    <xsl:output method="text" />
+    
+    <xsl:template match="/" name="xsl:initial-template">
+        <!--
+            create text nodes that are concatenated together, intertwined with sequences of atomics. 
+            Empty text nodes must be discarded. 
+            Creating mixed atomics and text nodes through xsl:function, testing non tail-recursive function, mimicking a programmer's mistake
+        -->
+        <xsl:sequence select="'start'"/>
+        <xsl:sequence select="f:create(62)" />
+    </xsl:template>
+    
+    <xsl:function name="f:create" as="item()+">
+        <xsl:param name="i" as="xs:integer" />
+        <xsl:sequence select="if($i = 0) then 'end' else (codepoints-to-string($i + 64), f:create($i - 1))" />
+        <xsl:text expand-text="yes">{if($i = 0 or $i = 62) then '' else '|'}</xsl:text>
+    </xsl:function>
+    
+    
+    
+</xsl:stylesheet>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/misc/seqtor/seqtor-034.xsl	Sun Feb 14 06:50:09 2016 +0000
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+    xmlns:xs="http://www.w3.org/2001/XMLSchema"
+    xmlns:math="http://www.w3.org/2005/xpath-functions/math"
+    xmlns:f="http://function"
+    exclude-result-prefixes="xs math f"    
+    version="3.0">
+    
+    <xsl:output method="text" />
+    
+    <xsl:template match="/" name="xsl:initial-template">
+        <!--
+            create text nodes that are concatenated together, intertwined with sequences of atomics. 
+            Empty text nodes must be discarded. 
+            Creating mixed atomics and text nodes through xsl:function, testing non tail-recursive function, mimicking a programmer's mistake
+        -->
+        <xsl:sequence select="'start'"/>
+        <xsl:sequence select="f:create(62)" />
+    </xsl:template>
+    
+    <xsl:function name="f:create" as="item()+">
+        <xsl:param name="i" as="xs:integer" />
+        <xsl:sequence expand-text="yes">{if($i = 0) then 'end' else (codepoints-to-string($i + 64), f:create($i - 1))}</xsl:sequence> 
+        <xsl:text expand-text="yes">{if($i = 0 or $i = 62) then '' else '|'}</xsl:text>
+    </xsl:function>
+    
+    
+    
+</xsl:stylesheet>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/misc/seqtor/seqtor-035.xsl	Sun Feb 14 06:50:09 2016 +0000
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+    xmlns:xs="http://www.w3.org/2001/XMLSchema"
+    xmlns:math="http://www.w3.org/2005/xpath-functions/math"
+    xmlns:f="http://function"
+    exclude-result-prefixes="xs math f"    
+    version="3.0">
+    
+    <xsl:output method="text" />
+    
+    <xsl:template match="/" name="xsl:initial-template">
+        <!--
+            create text nodes that are concatenated together, intertwined with sequences of atomics. 
+            Empty text nodes must be discarded. 
+            Creating mixed atomics and text nodes through xsl:function, testing non tail-recursive function, mimicking a programmer's mistake
+        -->
+        <xsl:sequence select="'start'"/>
+        <xsl:sequence select="f:create(62)" />
+    </xsl:template>
+    
+    <xsl:function name="f:create" as="item()+">
+        <xsl:param name="i" as="xs:integer" />
+        <xsl:sequence expand-text="yes">{if($i = 0) then 'end' else codepoints-to-string($i + 64)}{if($i = 0) then () else f:create($i - 1)}</xsl:sequence> 
+        <xsl:text expand-text="yes">{if($i = 0 or $i = 62) then '' else '|'}</xsl:text>
+    </xsl:function>
+    
+    
+    
+</xsl:stylesheet>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/misc/seqtor/seqtor-036a.xsl	Sun Feb 14 06:50:09 2016 +0000
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+    xmlns:xs="http://www.w3.org/2001/XMLSchema"
+    xmlns:math="http://www.w3.org/2005/xpath-functions/math"
+    exclude-result-prefixes="xs math"
+    version="3.0">
+    
+    <!-- 
+        purpose: to show that a sequence of two consecutive empty strings contains a space in-between and 
+                 that adjacent text nodes are merged with no space in-between, but document nodes are not
+                 
+        When the document node is used inside a simple constructor, it returns a single space (text node),
+        because the document node is removed and its children returned, which are already constructed (i.e., not a sequence)
+    -->
+    
+    <xsl:template match="/" name="xsl:initial-template">
+        <xsl:variable name="non-empty">
+            <xsl:sequence select="''" />
+            <xsl:sequence select="''" />
+        </xsl:variable>
+        
+        <xsl:comment>
+            <xsl:copy-of select="$non-empty"/>
+            <xsl:value-of select="'|'" />
+            <xsl:copy-of select="$non-empty"/>
+            <xsl:value-of select="'|'" />
+            <xsl:copy-of select="$non-empty"/>
+        </xsl:comment>
+    </xsl:template>
+    
+</xsl:stylesheet>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/misc/seqtor/seqtor-036b.xsl	Sun Feb 14 06:50:09 2016 +0000
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+    xmlns:xs="http://www.w3.org/2001/XMLSchema"
+    xmlns:math="http://www.w3.org/2005/xpath-functions/math"
+    exclude-result-prefixes="xs math"
+    version="3.0">
+    
+    <!-- 
+        purpose: to show that a sequence of two consecutive empty strings contains a space in-between and 
+                 that adjacent text nodes are merged with no space in-between, but document nodes are not
+    -->
+    
+    <xsl:template match="/" name="xsl:initial-template">
+        <xsl:variable name="non-empty" as="text()">
+            <xsl:value-of>
+                <xsl:text expand-text="yes">{''}</xsl:text>
+                <xsl:text expand-text="yes">{''}</xsl:text>
+            </xsl:value-of>
+        </xsl:variable>
+        
+        <xsl:comment>
+            <xsl:sequence select="$non-empty"/>
+            <xsl:value-of select="'|'" />
+            <xsl:sequence select="$non-empty"/>
+            <xsl:value-of select="'|'" />
+            <xsl:sequence select="$non-empty"/>
+        </xsl:comment>
+    </xsl:template>
+    
+</xsl:stylesheet>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/misc/seqtor/seqtor-036c.xsl	Sun Feb 14 06:50:09 2016 +0000
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+    xmlns:xs="http://www.w3.org/2001/XMLSchema"
+    xmlns:math="http://www.w3.org/2005/xpath-functions/math"
+    exclude-result-prefixes="xs math"
+    version="3.0">
+    
+    <!-- 
+        purpose: to show that a sequence of two consecutive empty strings contains a space in-between and 
+                 that adjacent text nodes are merged with no space in-between, but document nodes are not
+    -->
+    
+    <xsl:template match="/" name="xsl:initial-template">
+        <xsl:variable name="non-empty" as="text()">
+            <xsl:text expand-text="yes">{' '}</xsl:text>
+        </xsl:variable>
+        
+        <xsl:comment>
+            <xsl:sequence select="$non-empty"/>
+            <xsl:value-of select="'|'" />
+            <xsl:sequence select="$non-empty"/>
+            <xsl:value-of select="'|'" />
+            <xsl:sequence select="$non-empty"/>
+        </xsl:comment>
+    </xsl:template>
+    
+</xsl:stylesheet>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/misc/seqtor/seqtor-036d.xsl	Sun Feb 14 06:50:09 2016 +0000
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+    xmlns:xs="http://www.w3.org/2001/XMLSchema"
+    xmlns:math="http://www.w3.org/2005/xpath-functions/math"
+    exclude-result-prefixes="xs math"
+    version="3.0">
+    
+    <!-- 
+        purpose: to show that a sequence of two consecutive empty strings contains a space in-between and 
+                 that adjacent text nodes are merged with no space in-between, but document nodes are not
+    -->
+    
+    <xsl:template match="/" name="xsl:initial-template">
+        <xsl:variable name="non-empty" as="xs:string" select="''"/>        
+        
+        <xsl:comment>
+            <xsl:sequence select="$non-empty"/>
+            <xsl:value-of select="'|'" />
+            <xsl:sequence select="$non-empty"/>
+            <xsl:value-of select="'|'" />
+            <xsl:sequence select="$non-empty"/>
+        </xsl:comment>
+    </xsl:template>
+    
+</xsl:stylesheet>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/misc/seqtor/seqtor-036e.xsl	Sun Feb 14 06:50:09 2016 +0000
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+    xmlns:xs="http://www.w3.org/2001/XMLSchema"
+    xmlns:math="http://www.w3.org/2005/xpath-functions/math"
+    exclude-result-prefixes="xs math"
+    version="3.0">
+    
+    
+    <!-- 
+        purpose: to show that a sequence of two consecutive empty strings contains a space in-between and 
+                 that adjacent text nodes are merged with no space in-between, but document nodes are not
+    -->
+    
+    <xsl:template match="/" name="xsl:initial-template">
+        <xsl:variable name="non-empty" as="xs:string" select="''"/>        
+        
+        <xsl:comment>
+            <xsl:value-of select="$non-empty"/>
+            <xsl:value-of select="'|'" />
+            <xsl:value-of select="$non-empty"/>
+            <xsl:value-of select="'|'" />
+            <xsl:value-of select="$non-empty"/>
+        </xsl:comment>
+    </xsl:template>
+    
+</xsl:stylesheet>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/misc/seqtor/seqtor-037a.xsl	Sun Feb 14 06:50:09 2016 +0000
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+    xmlns:xs="http://www.w3.org/2001/XMLSchema"
+    xmlns:math="http://www.w3.org/2005/xpath-functions/math"
+    exclude-result-prefixes="xs math"
+    version="3.0">
+    
+    <!-- 
+        purpose: to show that a sequence of two consecutive empty strings contains a space in-between and 
+                 that adjacent text nodes are merged with no space in-between, but document nodes are not
+                 
+        When the document node is used inside a simple constructor, it returns a single space (text node),
+        because the document node is removed and its children returned, which are already constructed (i.e., not a sequence)
+    -->
+    
+    <xsl:template match="/" name="xsl:initial-template">
+        <xsl:variable name="non-empty">
+            <xsl:sequence select="''" />
+            <xsl:sequence select="''" />
+        </xsl:variable>
+        
+        <xsl:processing-instruction name="foo">
+            <xsl:copy-of select="$non-empty"/>
+            <xsl:value-of select="'|'" />
+            <xsl:copy-of select="$non-empty"/>
+            <xsl:value-of select="'|'" />
+            <xsl:copy-of select="$non-empty"/>
+        </xsl:processing-instruction>
+    </xsl:template>
+    
+</xsl:stylesheet>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/misc/seqtor/seqtor-037b.xsl	Sun Feb 14 06:50:09 2016 +0000
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+    xmlns:xs="http://www.w3.org/2001/XMLSchema"
+    xmlns:math="http://www.w3.org/2005/xpath-functions/math"
+    exclude-result-prefixes="xs math"
+    version="3.0">
+    
+    <!-- 
+        purpose: to show that a sequence of two consecutive empty strings contains a space in-between and 
+                 that adjacent text nodes are merged with no space in-between, but document nodes are not
+    -->
+    
+    <xsl:template match="/" name="xsl:initial-template">
+        <xsl:variable name="non-empty" as="text()">
+            <xsl:value-of>
+                <xsl:text expand-text="yes">{''}</xsl:text>
+                <xsl:text expand-text="yes">{''}</xsl:text>
+            </xsl:value-of>
+        </xsl:variable>
+        
+        <xsl:processing-instruction name="foo">
+            <xsl:sequence select="$non-empty"/>
+            <xsl:value-of select="'|'" />
+            <xsl:sequence select="$non-empty"/>
+            <xsl:value-of select="'|'" />
+            <xsl:sequence select="$non-empty"/>
+        </xsl:processing-instruction>
+    </xsl:template>
+    
+</xsl:stylesheet>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/misc/seqtor/seqtor-037c.xsl	Sun Feb 14 06:50:09 2016 +0000
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+    xmlns:xs="http://www.w3.org/2001/XMLSchema"
+    xmlns:math="http://www.w3.org/2005/xpath-functions/math"
+    exclude-result-prefixes="xs math"
+    version="3.0">
+    
+    <!-- 
+        purpose: to show that a sequence of two consecutive empty strings contains a space in-between and 
+                 that adjacent text nodes are merged with no space in-between, but document nodes are not
+    -->
+    
+    <xsl:template match="/" name="xsl:initial-template">
+        <xsl:variable name="non-empty" as="text()">
+            <xsl:text expand-text="yes">{' '}</xsl:text>
+        </xsl:variable>
+        
+        <xsl:processing-instruction name="foo">
+            <xsl:sequence select="$non-empty"/>
+            <xsl:value-of select="'|'" />
+            <xsl:sequence select="$non-empty"/>
+            <xsl:value-of select="'|'" />
+            <xsl:sequence select="$non-empty"/>
+        </xsl:processing-instruction>
+    </xsl:template>
+    
+</xsl:stylesheet>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000