admin/report-overview.xml
branchreports
changeset 1939 ef24edf20619
parent 948 34e4ac52bc0a
--- a/admin/report-overview.xml	Sat Dec 22 23:36:04 2018 +0100
+++ b/admin/report-overview.xml	Sat Dec 22 23:40:19 2018 +0100
@@ -6,7 +6,7 @@
       <xslt-other count="2801"/>
    </overview>
    <changes-since-xslt2>
-      <feature group="Packages" name="Packages - versioning" count="15"/>
+      <feature group="Packages" name="Packages - versioning" count="37"/>
       <feature group="Packages" name="Packages - package" count="8"/>
       <feature group="Packages" name="Packages - use-package" count="30"/>
       <feature group="Packages" name="Packages - override" count="40"/>
@@ -486,224 +486,43 @@
          <xslt3-specific count="1"/>
          <xslt2-specific count="71"/>
          <xslt-other count="85"/>
-         <keywords use-when="false()"/>
+         <pass1 count="0"/>
+         <pass2 count="156"/>
       </test-set>
       <test-set total-tests="7" name="shadow" description="Tests Shadow Attributes (Static AVTs)">
          <xslt3-specific count="7"/>
          <xslt2-specific count="0"/>
          <xslt-other count="0"/>
-         <keywords use-when="false()">
-            <key name="static-variable" count="6"/>
-            <key name="xsl:value-of" count="2"/>
-            <key name="_select" count="2"/>
-            <key name="xsl:variable" count="1"/>
-            <key name="_static" count="1"/>
-            <key name="xsl:transform" count="2"/>
-            <key name="_version" count="2"/>
-            <key name="xsl:include" count="1"/>
-            <key name="_href" count="1"/>
-            <key name="mixed-avt" count="1"/>
-            <key name="xsl:template" count="3"/>
-            <key name="_use-when" count="1"/>
-            <key name="_xpath-default-namespace" count="2"/>
-         </keywords>
+         <pass1 count="0"/>
+         <pass2 count="7"/>
       </test-set>
       <test-set total-tests="37" name="static" description="Tests static attributes on xsl:variable and xsl:param declarations">
-         <xslt3-specific count="37"/>
+         <xslt3-specific count="44"/>
          <xslt2-specific count="0"/>
          <xslt-other count="0"/>
-         <keywords use-when="false()">
-            <key name="static-variable" count="37"/>
-            <key name="tvt" count="31"/>
-            <key name="err:XPST0008" count="3"/>
-            <key name="required-param" count="8"/>
-            <key name="err:XTSE0050" count="1"/>
-            <key name="err:XTSE0010" count="6"/>
-            <key name="implicit-default" count="9"/>
-            <key name="item" count="2"/>
-            <key name="occurrence-indicator" count="9"/>
-            <key name="xs:integer" count="11"/>
-            <key name="implicitly-mandatory" count="4"/>
-            <key name="err:XTTE0590" count="1"/>
-            <key name="err:XTSE0020" count="2"/>
-            <key name="forward-compatbility" count="1"/>
-            <key name="backward-compatibility" count="1"/>
-            <key name="visibility" count="2"/>
-            <key name="err:XTSE0090" count="1"/>
-            <key name="ERR:XTSE0090" count="1"/>
-         </keywords>
+         <pass1 count="0"/>
+         <pass2 count="28"/>
       </test-set>
       <test-set total-tests="125" name="streamable" description="Tests streamable apply-templates and modes">
          <xslt3-specific count="125"/>
          <xslt2-specific count="0"/>
          <xslt-other count="0"/>
-         <keywords use-when="false()">
-            <key name="leading-lone-slash" count="4"/>
-            <key name="xsl:copy" count="7"/>
-            <key name="striding" count="34"/>
-            <key name="motionless-pattern" count="26"/>
-            <key name="xsl:strip-space" count="15"/>
-            <key name="buildin-template-rules" count="1"/>
-            <key name="motionless-pattern&#xA;" count="9"/>
-            <key name="" count="576"/>
-            <key name="streamable-identity-transform&#xA;" count="10"/>
-            <key name="attribute-axis" count="3"/>
-            <key name="climbing-childless" count="26"/>
-            <key name="leading-lone-slash&#xA;" count="2"/>
-            <key name="motionless-and-consuming" count="7"/>
-            <key name="streamable-identity-transform" count="22"/>
-            <key name="motionless-and-consuming&#xA;" count="1"/>
-            <key name="motionless-builtin-functions" count="6"/>
-            <key name="ContextItemExpr&#xA;" count="2"/>
-            <key name="avt" count="4"/>
-            <key name="ContextItemExpr" count="18"/>
-            <key name="complex-use-case" count="2"/>
-            <key name="mode-switching" count="4"/>
-            <key name="xsl:copy-of" count="4"/>
-            <key name="grounded-variable&#xA;" count="2"/>
-            <key name="xsl:import-schema" count="33"/>
-            <key name="grounded-variable" count="5"/>
-            <key name="namespace-nodes" count="1"/>
-            <key name="comment-nodes" count="2"/>
-            <key name="attribute-nodes&#xA;" count="1"/>
-            <key name="processing-instruction-nodes" count="2"/>
-            <key name="attribute-nodes" count="1"/>
-            <key name="CommentTest" count="1"/>
-            <key name="PITest" count="1"/>
-            <key name="xsl:import-schema&#xA;" count="5"/>
-            <key name="_IMPROVE:change-attribute-template-to-streamable" count="1"/>
-            <key name="xsl:if&#xA;" count="5"/>
-            <key name="type-determined-usage" count="1"/>
-            <key name="fn:name" count="4"/>
-            <key name="fn:string" count="2"/>
-            <key name="fn:namespace-uri" count="1"/>
-            <key name="xsl:sequence" count="4"/>
-            <key name="xsl:attribute" count="1"/>
-            <key name="fn:local-name" count="1"/>
-            <key name="fn:string&#xA;" count="1"/>
-            <key name="xsl:element" count="1"/>
-            <key name="consuming" count="2"/>
-            <key name="xsl:variable" count="1"/>
-            <key name="xsl:value-of&#xA;" count="1"/>
-            <key name="fn:position" count="10"/>
-            <key name="xsl:result-document" count="2"/>
-            <key name="xsl:strip-space&#xA;" count="1"/>
-            <key name="motionless" count="4"/>
-            <key name="InstanceOfExpr" count="2"/>
-            <key name="parent-axis" count="2"/>
-            <key name="striding&#xA;" count="1"/>
-            <key name="climbing" count="3"/>
-            <key name="ancestor-then-climbing" count="1"/>
-            <key name="ancestor-axis" count="4"/>
-            <key name="PathExpr" count="11"/>
-            <key name="xsl:value-of" count="4"/>
-            <key name="fn:count" count="5"/>
-            <key name="PathExpr&#xA;" count="1"/>
-            <key name="striding-then-climbing" count="6"/>
-            <key name="striding-then-climbing&#xA;" count="1"/>
-            <key name="crawling-then-climbing" count="5"/>
-            <key name="climbing-childless&#xA;" count="1"/>
-            <key name="_WRONG:for-each-with-crawling-not-streamable&#xA;" count="1"/>
-            <key name="crawling-atomizing" count="4"/>
-            <key name="fn:avg&#xA;" count="1"/>
-            <key name="fn:sum" count="5"/>
-            <key name="fn:avg" count="3"/>
-            <key name="fn:starts-with" count="2"/>
-            <key name="fn:exists" count="1"/>
-            <key name="crawling" count="15"/>
-            <key name="fn:empty" count="1"/>
-            <key name="fn:string-join" count="1"/>
-            <key name="climbing-pattern" count="1"/>
-            <key name="fn:upper-case" count="2"/>
-            <key name="fn:string-length" count="1"/>
-            <key name="IfExpr" count="5"/>
-            <key name="fn:number" count="1"/>
-            <key name="GeneralComp" count="6"/>
-            <key name="fn:min" count="1"/>
-            <key name="fn:max" count="4"/>
-            <key name="ParenthesizedExpr" count="1"/>
-            <key name="motionless-predicate" count="1"/>
-            <key name="ValueComp" count="1"/>
-            <key name="fn:distinct-values" count="1"/>
-            <key name="XTSE3430" count="20"/>
-            <key name="_IMPROVE:fix-description" count="9"/>
-            <key name="xsl:apply-templates" count="5"/>
-            <key name="xsl:with-param" count="5"/>
-            <key name="grounded-parameter" count="4"/>
-            <key name="IntersectExceptExpr&#xA;" count="1"/>
-            <key name="tunnel-parameter" count="5"/>
-            <key name="xsl:with-param&#xA;" count="1"/>
-            <key name="xsl:apply-templates&#xA;" count="2"/>
-            <key name="multiple-streaming-input" count="1"/>
-            <key name="xsl:for-each" count="11"/>
-            <key name="crawling-then-striding" count="8"/>
-            <key name="fn:outermost" count="5"/>
-            <key name="fn:upper-case&#xA;" count="1"/>
-            <key name="nested-for-each" count="1"/>
-            <key name="fn:data" count="2"/>
-            <key name="attribute-axis&#xA;" count="1"/>
-            <key name="climbing-then-grounded" count="1"/>
-            <key name="climbing-then-grounded&#xA;" count="2"/>
-            <key name="fn:lang" count="6"/>
-            <key name="AxisStep" count="9"/>
-            <key name="choice-operand-group" count="4"/>
-            <key name="xsl:choose" count="1"/>
-            <key name="xsl:when" count="1"/>
-            <key name="xsl:otherwise&#xA;" count="1"/>
-            <key name="lre" count="4"/>
-            <key name="Expr" count="1"/>
-            <key name="striding-then-grounded" count="2"/>
-            <key name="xs:date" count="1"/>
-            <key name="xs:decimal" count="2"/>
-            <key name="QuantifiedExpr" count="1"/>
-            <key name="_WRONG:not-streamable" count="3"/>
-            <key name="_WRONG:streamability-rules-incorrect&#xA;" count="1"/>
-            <key name="_WRONG:streamability-rules-incorrect" count="2"/>
-            <key name="QuantifiedExpr&#xA;" count="3"/>
-            <key name="fn:current-group" count="1"/>
-            <key name="fn:current-grouping-key" count="1"/>
-            <key name="xsl:for-each-group&#xA;" count="1"/>
-            <key name="group-adjacent-attribute" count="1"/>
-            <key name="positional-predicate" count="1"/>
-            <key name="on-no-match-attribute" count="1"/>
-            <key name="shallow-copy" count="1"/>
-            <key name="multiple-consuming-expressions" count="2"/>
-            <key name="AndExpr" count="1"/>
-            <key name="variable-bound-to-streamed-node" count="5"/>
-            <key name="initial-streaming-mode" count="8"/>
-            <key name="_IMPROVE:cleanup-redundant-code" count="12"/>
-            <key name="fn:tokenize" count="3"/>
-            <key name="predicate" count="5"/>
-            <key name="ForExpr" count="1"/>
-            <key name="initial-streaming-mode&#xA;" count="4"/>
-            <key name="global-variable" count="1"/>
-            <key name="variable-bound-to-streamed-node&#xA;" count="1"/>
-            <key name="XPDY0002" count="1"/>
-            <key name="_WRONG:wrong-error-code" count="1"/>
-            <key name="leading-double-slash" count="1"/>
-            <key name="xsl:sort" count="1"/>
-            <key name="_IMPROVE:double-error-situation" count="1"/>
-            <key name="crawling&#xA;" count="1"/>
-            <key name="free-ranging-pattern" count="3"/>
-            <key name="XTSE3430&#xA;" count="4"/>
-            <key name="ancestor-axis&#xA;" count="1"/>
-            <key name="xsl:template" count="1"/>
-            <key name="template-returning-nodes&#xA;" count="1"/>
-            <key name="_IMPROVE:any-binding-to-node-is-illegal" count="1"/>
-            <key name="fn:has-children" count="1"/>
-         </keywords>
+         <pass1 count="0"/>
+         <pass2 count="130"/>
       </test-set>
       <test-set total-tests="26" name="strip-type-annotations" description="Tests strip-type-annotations">
          <xslt3-specific count="0"/>
          <xslt2-specific count="26"/>
          <xslt-other count="0"/>
-         <keywords use-when="false()"/>
+         <pass1 count="0"/>
+         <pass2 count="23"/>
       </test-set>
       <test-set total-tests="58" name="tunnel" description="Tests tunnel">
          <xslt3-specific count="4"/>
          <xslt2-specific count="54"/>
          <xslt-other count="0"/>
-         <keywords use-when="false()"/>
+         <pass1 count="0"/>
+         <pass2 count="5"/>
       </test-set>
       <test-set total-tests="102" name="use-when" description="Tests use-when">
          <xslt3-specific count="19"/>
@@ -715,7 +534,8 @@
          <xslt3-specific count="5"/>
          <xslt2-specific count="37"/>
          <xslt-other count="1"/>
-         <keywords use-when="false()"/>
+         <pass1 count="0"/>
+         <pass2 count="4"/>
       </test-set>
       <test-set total-tests="32" name="version" description="Tests version">
          <xslt3-specific count="0"/>
@@ -759,33 +579,8 @@
          <xslt3-specific count="0"/>
          <xslt2-specific count="21"/>
          <xslt-other count="4"/>
-         <keywords use-when="false()">
-            <key name="xsl:stylesheet" count="1"/>
-            <key name="" count="10"/>
-            <key name="xsl:value-of" count="4"/>
-            <key name="lre" count="9"/>
-            <key name="namespace-resolution" count="2"/>
-            <key name="undeclared-xpath-default-namespace" count="1"/>
-            <key name="xsl:apply-templates" count="1"/>
-            <key name="_IMPROVE:does-not-test-null-namespace" count="1"/>
-            <key name="xsl:template" count="2"/>
-            <key name="xsl:strip-space" count="1"/>
-            <key name="xsl:preserve-space" count="1"/>
-            <key name="xsl:transform" count="3"/>
-            <key name="xsl:use-when" count="1"/>
-            <key name="variable-names" count="1"/>
-            <key name="schema-namespace" count="1"/>
-            <key name="xsl:type" count="1"/>
-            <key name="attribute-nodes" count="1"/>
-            <key name="AttributeTest" count="1"/>
-            <key name="xsl:import-schema" count="3"/>
-            <key name="as-attribute" count="1"/>
-            <key name="ElementTest" count="1"/>
-            <key name="xsl:variable" count="1"/>
-            <key name="InstanceOfExpr" count="1"/>
-            <key name="XTSE0090" count="1"/>
-            <key name="_IMPROVE:unclear-test" count="5"/>
-         </keywords>
+         <pass1 count="0"/>
+         <pass2 count="25"/>
       </test-set>
    </category>
    <category name="Declarations">
@@ -798,56 +593,15 @@
          <xslt3-specific count="44"/>
          <xslt2-specific count="0"/>
          <xslt-other count="0"/>
-         <keywords use-when="false()">
-            <key name="xsl:mode" count="18"/>
-            <key name="on-no-match-attribute" count="15"/>
-            <key name="shallow-skip" count="10"/>
-            <key name="fn:accumulator-before" count="12"/>
-            <key name="ElementTest" count="3"/>
-            <key name="streamable" count="11"/>
-            <key name="fn:accumulator-after" count="10"/>
-            <key name="multiple-accumulators" count="3"/>
-            <key name="applies-to-attribute" count="2"/>
-            <key name="deep-skip" count="1"/>
-            <key name="XTDE3420" count="1"/>
-            <key name="shallow-copy" count="4"/>
-            <key name="TextTest" count="2"/>
-            <key name="$value" count="1"/>
-            <key name="post-descent" count="3"/>
-            <key name="non-streamable" count="2"/>
-            <key name="_WRONG:illegal-accumulator-streaming-non-streaming" count="1"/>
-            <key name="xsl:accumulator" count="5"/>
-         </keywords>
+         <pass1 count="0"/>
+         <pass2 count="65"/>
       </test-set>
       <test-set total-tests="47" name="attribute-set" description="Tests xsl:attribute-set">
          <xslt3-specific count="4"/>
          <xslt2-specific count="7"/>
-         <xslt-other count="36"/>
-         <keywords use-when="false()">
-            <key name="lre" count="22"/>
-            <key name="xsl:use-attribute-sets" count="26"/>
-            <key name="EQName" count="1"/>
-            <key name="namespace-resolution" count="1"/>
-            <key name="multiple-attribute-sets" count="9"/>
-            <key name="streamable" count="2"/>
-            <key name="" count="4"/>
-            <key name="use-attribute-sets" count="26"/>
-            <key name="xsl:element" count="13"/>
-            <key name="xsl:copy" count="7"/>
-            <key name="attribute-set-inheritance" count="11"/>
-            <key name="attribute-overlap" count="10"/>
-            <key name="conflict-resolution" count="10"/>
-            <key name="_IMPROVE:add-test-for-rootnode-attribute-set" count="1"/>
-            <key name="xsl:import" count="5"/>
-            <key name="attribute-override" count="1"/>
-            <key name="variable-reference" count="1"/>
-            <key name="import-precedence" count="2"/>
-            <key name="qname-resolution" count="2"/>
-            <key name="_IMPROVE:not-xslt2-specific" count="2"/>
-            <key name="separator-attribute" count="2"/>
-            <key name="empty-attribute-set" count="1"/>
-            <key name="_IMPROVE:test-in-wrong-location" count="1"/>
-         </keywords>
+         <xslt-other count="37"/>
+         <pass1 count="0"/>
+         <pass2 count="46"/>
       </test-set>
       <test-set total-tests="24" name="character-map" description="Tests the xsl:character-map declaration">
          <xslt3-specific count="0"/>
@@ -887,49 +641,43 @@
          <xslt3-specific count="28"/>
          <xslt2-specific count="0"/>
          <xslt-other count="0"/>
-         <keywords use-when="false()"/>
+         <pass1 count="0"/>
+         <pass2 count="14"/>
       </test-set>
       <test-set total-tests="74" name="function" description="Tests function">
          <xslt3-specific count="28"/>
          <xslt2-specific count="46"/>
          <xslt-other count="0"/>
-         <keywords use-when="false()"/>
+         <pass1 count="0"/>
+         <pass2 count="28"/>
       </test-set>
       <test-set total-tests="3" name="global-context-item" description="Tests xsl:global-context-item">
          <xslt3-specific count="3"/>
          <xslt2-specific count="0"/>
          <xslt-other count="0"/>
-         <keywords use-when="false()"/>
+         <pass1 count="0"/>
+         <pass2 count="28"/>
       </test-set>
       <test-set total-tests="42" name="import" description="Tests import">
          <xslt3-specific count="3"/>
          <xslt2-specific count="27"/>
          <xslt-other count="12"/>
-         <keywords use-when="false()"/>
+         <pass1 count="0"/>
+         <pass2 count="38"/>
       </test-set>
       <test-set total-tests="195" name="import-schema" description="Tests import-schema">
          <xslt3-specific count="2"/>
          <xslt2-specific count="193"/>
          <xslt-other count="0"/>
-         <keywords use-when="false()"/>
+         <pass1 count="0"/>
+         <pass2 count="193"/>
       </test-set>
       <test-set total-tests="16" name="include" description="Tests include">
          <xslt3-specific count="1"/>
          <xslt2-specific count="12"/>
          <xslt-other count="3"/>
-         <keywords use-when="false()">
-            <key name="xsl:import" count="8"/>
-            <key name="xsl:include" count="10"/>
-            <key name="embedded-stylesheet" count="2"/>
-            <key name="_IMPROVE:missing-dependency-embedded" count="2"/>
-            <key name="xsl:apply-imports" count="6"/>
-            <key name="xsl:variable" count="2"/>
-            <key name="buildin-template-rules" count="1"/>
-            <key name="xsl:with-param" count="1"/>
-            <key name="xsl:param" count="1"/>
-            <key name="multiple-includes" count="4"/>
-            <key name="multiple-imports" count="1"/>
-         </keywords>
+         <pass1 count="0"/>
+         <pass2 count="14"/>
       </test-set>
       <test-set total-tests="15" name="namespace-alias" description="Tests namespace">
          <xslt3-specific count="0"/>
@@ -941,61 +689,57 @@
          <xslt3-specific count="73"/>
          <xslt2-specific count="140"/>
          <xslt-other count="0"/>
-         <keywords use-when="false()"/>
+         <pass1 count="0"/>
+         <pass2 count="31"/>
       </test-set>
       <test-set total-tests="40" name="override" description="Tests xsl:override in XSLT 3.0">
          <xslt3-specific count="40"/>
          <xslt2-specific count="0"/>
          <xslt-other count="0"/>
-         <keywords use-when="false()"/>
+         <pass1 count="0"/>
+         <pass2 count="204"/>
       </test-set>
       <test-set total-tests="8" name="package" description="Tests xsl:package in XSLT 3.0">
          <xslt3-specific count="8"/>
          <xslt2-specific count="0"/>
          <xslt-other count="0"/>
-         <keywords use-when="false()"/>
+         <pass1 count="0"/>
+         <pass2 count="85"/>
       </test-set>
       <test-set total-tests="29" name="param" description="Tests the xsl:param element">
          <xslt3-specific count="4"/>
          <xslt2-specific count="25"/>
          <xslt-other count="0"/>
-         <keywords use-when="false()"/>
+         <pass1 count="0"/>
+         <pass2 count="34"/>
       </test-set>
       <test-set total-tests="23" name="whitespace" description="Tests whitespace">
          <xslt3-specific count="1"/>
          <xslt2-specific count="1"/>
-         <xslt-other count="21"/>
-         <keywords use-when="false()"/>
+         <xslt-other count="22"/>
+         <pass1 count="0"/>
+         <pass2 count="22"/>
       </test-set>
       <test-set total-tests="6" name="template" description="Tests template">
          <xslt3-specific count="0"/>
          <xslt2-specific count="1"/>
          <xslt-other count="5"/>
-         <keywords use-when="false()">
-            <key name="xsl:apply-templates" count="4"/>
-            <key name="CommentTest" count="1"/>
-            <key name="matching-mode" count="4"/>
-            <key name="PITest" count="1"/>
-            <key name="AnyKindTest" count="1"/>
-            <key name="attribute-axis" count="1"/>
-            <key name="AbbrevForwardStep" count="1"/>
-            <key name="template-recursion" count="1"/>
-            <key name="named-templates" count="1"/>
-            <key name="buildin-template-rules" count="1"/>
-            <key name="leading-lone-slash" count="1"/>
-         </keywords>
+         <pass1 count="0"/>
+         <pass2 count="6"/>
       </test-set>
       <test-set total-tests="30" name="use-package" description="Tests xsl:use-package in XSLT 3.0">
          <xslt3-specific count="30"/>
          <xslt2-specific count="0"/>
          <xslt-other count="0"/>
-         <keywords use-when="false()"/>
+         <pass1 count="0"/>
+         <pass2 count="29"/>
       </test-set>
       <test-set total-tests="101" name="variable" description="Tests local and global variables">
          <xslt3-specific count="2"/>
          <xslt2-specific count="28"/>
          <xslt-other count="71"/>
-         <keywords use-when="false()"/>
+         <pass1 count="0"/>
+         <pass2 count="101"/>
       </test-set>
    </category>
    <category name="Expressions">
@@ -1003,68 +747,50 @@
          <xslt3-specific count="77"/>
          <xslt2-specific count="183"/>
          <xslt-other count="434"/>
+         <pass1 count="0"/>
+         <pass2 count="710"/>
       </overview>
       <test-set total-tests="202" name="axes" description="Tests axes">
          <xslt3-specific count="0"/>
          <xslt2-specific count="20"/>
          <xslt-other count="182"/>
-         <keywords use-when="false()"/>
+         <pass1 count="0"/>
+         <pass2 count="202"/>
       </test-set>
       <test-set total-tests="4" name="castable" description="Tests castable">
          <xslt3-specific count="0"/>
          <xslt2-specific count="4"/>
          <xslt-other count="0"/>
-         <keywords use-when="false()">
-            <key name="CastableExpr" count="4"/>
-            <key name="descendant-or-self-axis" count="4"/>
-            <key name="buildin-types" count="1"/>
-            <key name="xsl:variable" count="3"/>
-            <key name="variable-reference" count="3"/>
-            <key name="CastExpr" count="3"/>
-            <key name="buildin-datatypes" count="3"/>
-         </keywords>
+         <pass1 count="0"/>
+         <pass2 count="4"/>
       </test-set>
       <test-set total-tests="28" name="data-manipulation" description="Tests data-manipulation">
          <xslt3-specific count="0"/>
          <xslt2-specific count="0"/>
          <xslt-other count="28"/>
-         <keywords use-when="false()">
-            <key name="xsl:if" count="5"/>
-            <key name="xsl:choose" count="5"/>
-            <key name="xsl:when" count="5"/>
-            <key name="xsl:otherwise" count="5"/>
-            <key name="complex-expression" count="6"/>
-            <key name="fn:round" count="2"/>
-            <key name="fn:format-number" count="11"/>
-            <key name="fn:substring-after" count="2"/>
-            <key name="fn:number" count="2"/>
-            <key name="variable-reference" count="1"/>
-            <key name="xsl:param" count="12"/>
-            <key name="global-variable" count="16"/>
-            <key name="xsl:variable" count="8"/>
-            <key name="variable-dependencies" count="4"/>
-            <key name="fn:last" count="1"/>
-            <key name="predicate" count="3"/>
-            <key name="ancestor-or-self" count="2"/>
-         </keywords>
+         <pass1 count="0"/>
+         <pass2 count="28"/>
       </test-set>
       <test-set total-tests="104" name="expression" description="Tests expression">
          <xslt3-specific count="2"/>
          <xslt2-specific count="48"/>
          <xslt-other count="54"/>
-         <keywords use-when="false()"/>
+         <pass1 count="0"/>
+         <pass2 count="108"/>
       </test-set>
       <test-set total-tests="4" name="for" description="Tests for">
          <xslt3-specific count="0"/>
          <xslt2-specific count="4"/>
          <xslt-other count="0"/>
-         <keywords use-when="false()"/>
+         <pass1 count="0"/>
+         <pass2 count="4"/>
       </test-set>
       <test-set total-tests="70" name="higher-order-functions" description="Tests higher-order-functions">
          <xslt3-specific count="70"/>
          <xslt2-specific count="0"/>
          <xslt-other count="0"/>
-         <keywords use-when="false()"/>
+         <pass1 count="0"/>
+         <pass2 count="14"/>
       </test-set>
       <test-set total-tests="146" name="math" description="Tests math">
          <xslt3-specific count="4"/>
@@ -1076,7 +802,8 @@
          <xslt3-specific count="0"/>
          <xslt2-specific count="36"/>
          <xslt-other count="2"/>
-         <keywords use-when="false()"/>
+         <pass1 count="0"/>
+         <pass2 count="38"/>
       </test-set>
       <test-set total-tests="10" name="path" description="Tests path">
          <xslt3-specific count="0"/>
@@ -1094,80 +821,29 @@
          <xslt3-specific count="0"/>
          <xslt2-specific count="4"/>
          <xslt-other count="0"/>
-         <keywords use-when="false()">
-            <key name="TreatExpr" count="4"/>
-            <key name="xs:integer" count="4"/>
-            <key name="derived-xs-integer" count="3"/>
-            <key name="stylesheet-function" count="3"/>
-            <key name="xsl:function" count="3"/>
-            <key name="xsl:import-schema" count="4"/>
-            <key name="invalid-cast" count="1"/>
-            <key name="no-error-if-not-executed" count="1"/>
-            <key name="fn:codepoints-to-string" count="1"/>
-            <key name="fn:data" count="2"/>
-            <key name="xsl:if" count="1"/>
-            <key name="CastExpr" count="1"/>
-            <key name="xs:anyAtomicType" count="1"/>
-            <key name="XPDY0050" count="1"/>
-         </keywords>
+         <pass1 count="0"/>
+         <pass2 count="4"/>
       </test-set>
       <test-set total-tests="4" name="type-expr" description="Tests type-expr">
          <xslt3-specific count="0"/>
          <xslt2-specific count="4"/>
          <xslt-other count="0"/>
-         <keywords use-when="false()">
-            <key name="numeric-types" count="1"/>
-            <key name="op:numeric-add" count="1"/>
-            <key name="type-promotion" count="1"/>
-            <key name="xsl:import-schema" count="4"/>
-            <key name="fn:data" count="4"/>
-            <key name="InstanceOfExpr" count="3"/>
-            <key name="xs:boolean" count="1"/>
-            <key name="derived-xs-boolean" count="1"/>
-            <key name="ValueComp" count="3"/>
-            <key name="xs:duration" count="1"/>
-            <key name="derived-xs-duration" count="1"/>
-            <key name="xs:date" count="1"/>
-            <key name="derived-xs-date" count="1"/>
-         </keywords>
+         <pass1 count="0"/>
+         <pass2 count="4"/>
       </test-set>
       <test-set total-tests="10" name="type-functions" description="Tests type-functions">
          <xslt3-specific count="1"/>
          <xslt2-specific count="9"/>
          <xslt-other count="0"/>
-         <keywords use-when="false()">
-            <key name="xs:date" count="2"/>
-            <key name="xs:time" count="1"/>
-            <key name="derived-xs-time" count="1"/>
-            <key name="derived-xs-date" count="2"/>
-            <key name="fn:dateTime" count="1"/>
-            <key name="InstanceOfExpr" count="9"/>
-            <key name="xsl:import-schema" count="10"/>
-            <key name="fn:data" count="10"/>
-            <key name="buildin-datatypes" count="1"/>
-            <key name="derived-builtin-types" count="6"/>
-            <key name="fn:abs" count="1"/>
-            <key name="buildin-types" count="5"/>
-            <key name="xsl:if" count="2"/>
-            <key name="xs:decimal" count="1"/>
-            <key name="XPST0017" count="1"/>
-            <key name="fn:substring" count="1"/>
-            <key name="derived-xs-string" count="4"/>
-            <key name="xs:string" count="3"/>
-            <key name="fn:upper-case" count="1"/>
-            <key name="fn:matches" count="1"/>
-            <key name="fn:resolve-uri" count="1"/>
-            <key name="fn:year-from-date" count="1"/>
-            <key name="xs:QName" count="1"/>
-            <key name="fn:local-name-from-QName" count="1"/>
-            <key name="derived-xs-QName" count="1"/>
-         </keywords>
+         <pass1 count="0"/>
+         <pass2 count="9"/>
       </test-set>
       <test-set total-tests="18" name="xpath-compat" description="Tests xpath-compat">
          <xslt3-specific count="0"/>
          <xslt2-specific count="18"/>
          <xslt-other count="0"/>
-         <keywords use-when="false()"/>
+         <pass1 count="0"/>
+         <pass2 count="18"/>
       </test-set>
    </category>
    <category name="Functions">
@@ -1175,6 +851,8 @@
          <xslt3-specific count="128"/>
          <xslt2-specific count="413"/>
          <xslt-other count="387"/>
+         <pass1 count="0"/>
+         <pass2 count="1258"/>
       </overview>
       <test-set total-tests="38" name="accessor" description="Tests accessor">
          <xslt3-specific count="1"/>
@@ -1182,11 +860,12 @@
          <xslt-other count="0"/>
          <keywords use-when="false()"/>
       </test-set>
-      <test-set total-tests="48" name="base-uri" description="Tests base-uri">
-         <xslt3-specific count="0"/>
+      <test-set total-tests="50" name="base-uri" description="Tests base-uri">
+         <xslt3-specific count="2"/>
          <xslt2-specific count="48"/>
          <xslt-other count="0"/>
-         <keywords use-when="false()"/>
+         <pass1 count="0"/>
+         <pass2 count="48"/>
       </test-set>
       <test-set total-tests="5" name="collation" description="Tests collation">
          <xslt3-specific count="0"/>
@@ -1204,34 +883,36 @@
          <xslt3-specific count="0"/>
          <xslt2-specific count="5"/>
          <xslt-other count="85"/>
-         <keywords use-when="false()"/>
+         <pass1 count="0"/>
+         <pass2 count="90"/>
       </test-set>
       <test-set total-tests="12" name="copy-of" description="Tests the XSLT 3.0 copy-of() function">
          <xslt3-specific count="12"/>
          <xslt2-specific count="0"/>
          <xslt-other count="0"/>
-         <keywords use-when="false()">
-            <key name="focus-dependent" count="1"/>
-            <key name="fn:copy-of" count="1"/>
-         </keywords>
+         <pass1 count="0"/>
+         <pass2 count="13"/>
       </test-set>
       <test-set total-tests="5" name="current-output-uri" description="Tests current-output-uri() function in XSLT 3.0">
          <xslt3-specific count="5"/>
          <xslt2-specific count="0"/>
          <xslt-other count="0"/>
-         <keywords use-when="false()"/>
+         <pass1 count="0"/>
+         <pass2 count="5"/>
       </test-set>
       <test-set total-tests="2" name="deep-equal" description="Tests deep-equal">
          <xslt3-specific count="0"/>
          <xslt2-specific count="2"/>
          <xslt-other count="0"/>
-         <keywords use-when="false()"/>
+         <pass1 count="0"/>
+         <pass2 count="2"/>
       </test-set>
       <test-set total-tests="64" name="document" description="Tests the fn:document function">
          <xslt3-specific count="0"/>
          <xslt2-specific count="55"/>
          <xslt-other count="9"/>
-         <keywords use-when="false()"/>
+         <pass1 count="0"/>
+         <pass2 count="63"/>
       </test-set>
       <test-set total-tests="5" name="extension-functions" description="Tests extension-functions">
          <xslt3-specific count="0"/>
@@ -1243,19 +924,22 @@
          <xslt3-specific count="0"/>
          <xslt2-specific count="35"/>
          <xslt-other count="0"/>
-         <keywords use-when="false()"/>
+         <pass1 count="0"/>
+         <pass2 count="11"/>
       </test-set>
       <test-set total-tests="33" name="format-date-en" description="Tests format-date-en">
          <xslt3-specific count="0"/>
          <xslt2-specific count="33"/>
          <xslt-other count="0"/>
-         <keywords use-when="false()"/>
+         <pass1 count="0"/>
+         <pass2 count="32"/>
       </test-set>
       <test-set total-tests="70" name="format-number" description="Tests format-number">
          <xslt3-specific count="2"/>
          <xslt2-specific count="31"/>
          <xslt-other count="37"/>
-         <keywords use-when="false()"/>
+         <pass1 count="0"/>
+         <pass2 count="69"/>
       </test-set>
       <test-set total-tests="8" name="function-available" description="Tests the function-available() function">
          <xslt3-specific count="1"/>
@@ -1281,13 +965,15 @@
          <xslt3-specific count="0"/>
          <xslt2-specific count="14"/>
          <xslt-other count="26"/>
-         <keywords use-when="false()"/>
+         <pass1 count="0"/>
+         <pass2 count="40"/>
       </test-set>
       <test-set total-tests="52" name="json-to-xml" description="json-to-xml() function">
-         <xslt3-specific count="52"/>
+         <xslt3-specific count="53"/>
          <xslt2-specific count="0"/>
          <xslt-other count="0"/>
-         <keywords use-when="false()"/>
+         <pass1 count="0"/>
+         <pass2 count="23"/>
       </test-set>
       <test-set total-tests="88" name="key" description="Test xsl:key and the key() function">
          <xslt3-specific count="2"/>
@@ -1299,69 +985,78 @@
          <xslt3-specific count="0"/>
          <xslt2-specific count="18"/>
          <xslt-other count="0"/>
-         <keywords use-when="false()"/>
+         <pass1 count="0"/>
+         <pass2 count="5"/>
       </test-set>
       <test-set total-tests="205" name="position" description="Tests the position() function">
          <xslt3-specific count="0"/>
          <xslt2-specific count="32"/>
          <xslt-other count="173"/>
-         <keywords use-when="false()"/>
+         <pass1 count="0"/>
+         <pass2 count="205"/>
       </test-set>
       <test-set total-tests="22" name="resolve-uri" description="Tests resolve-uri() and other functionality related to resolution of relative URIs">
          <xslt3-specific count="0"/>
          <xslt2-specific count="22"/>
          <xslt-other count="0"/>
-         <keywords use-when="false()"/>
+         <pass1 count="0"/>
+         <pass2 count="23"/>
       </test-set>
       <test-set total-tests="10" name="root" description="Tests root">
          <xslt3-specific count="0"/>
          <xslt2-specific count="10"/>
          <xslt-other count="0"/>
-         <keywords use-when="false()"/>
+         <pass1 count="0"/>
+         <pass2 count="10"/>
       </test-set>
       <test-set total-tests="9" name="snapshot" description="Tests the snapshot() function (unstreamed)">
          <xslt3-specific count="9"/>
          <xslt2-specific count="0"/>
          <xslt-other count="0"/>
-         <keywords use-when="false()"/>
+         <pass1 count="0"/>
+         <pass2 count="17"/>
       </test-set>
       <test-set total-tests="5" name="stream-available" description="Tests stream-available() function in XSLT 3.0">
          <xslt3-specific count="5"/>
          <xslt2-specific count="0"/>
          <xslt-other count="0"/>
-         <keywords use-when="false()">
-            <key name="stream-unavailable" count="1"/>
-         </keywords>
+         <pass1 count="0"/>
+         <pass2 count="6"/>
       </test-set>
       <test-set total-tests="15" name="system-property" description="Tests system-property">
          <xslt3-specific count="4"/>
          <xslt2-specific count="10"/>
          <xslt-other count="1"/>
-         <keywords use-when="false()"/>
+         <pass1 count="0"/>
+         <pass2 count="1"/>
       </test-set>
       <test-set total-tests="5" name="type-available" description="Tests the type-available() function">
          <xslt3-specific count="1"/>
          <xslt2-specific count="4"/>
          <xslt-other count="0"/>
-         <keywords use-when="false()"/>
+         <pass1 count="0"/>
+         <pass2 count="4"/>
       </test-set>
       <test-set total-tests="1" name="unparsed-entity-uri" description="Tests the unparsed-entity-uri function">
          <xslt3-specific count="0"/>
          <xslt2-specific count="1"/>
          <xslt-other count="0"/>
-         <keywords use-when="false()"/>
+         <pass1 count="0"/>
+         <pass2 count="1"/>
       </test-set>
       <test-set total-tests="5" name="unparsed-text" description="Tests the fn:unparsed-text() function">
          <xslt3-specific count="0"/>
          <xslt2-specific count="5"/>
          <xslt-other count="0"/>
-         <keywords use-when="false()"/>
+         <pass1 count="0"/>
+         <pass2 count="5"/>
       </test-set>
       <test-set total-tests="6" name="unparsed-text-lines" description="Tests unparsed-text-lines">
          <xslt3-specific count="6"/>
          <xslt2-specific count="0"/>
          <xslt-other count="0"/>
-         <keywords use-when="false()"/>
+         <pass1 count="0"/>
+         <pass2 count="6"/>
       </test-set>
       <test-set total-tests="28" name="xml-to-json" description="xml-to-json() function">
          <xslt3-specific count="28"/>
@@ -1392,13 +1087,15 @@
          <xslt3-specific count="8"/>
          <xslt2-specific count="39"/>
          <xslt-other count="0"/>
-         <keywords use-when="false()"/>
+         <pass1 count="0"/>
+         <pass2 count="1"/>
       </test-set>
       <test-set total-tests="48" name="apply-templates" description="Tests the xsl:apply-templates instruction. In practice, as indicated by the test names, most of the tests concern conflict resolution.">
          <xslt3-specific count="6"/>
          <xslt2-specific count="34"/>
          <xslt-other count="8"/>
-         <keywords use-when="false()"/>
+         <pass1 count="0"/>
+         <pass2 count="38"/>
       </test-set>
       <test-set total-tests="6" name="assert" description="Tests the xsl:assert instruction introduced in XSLT 3.0">
          <xslt3-specific count="6"/>
@@ -1420,7 +1117,8 @@
          <xslt3-specific count="0"/>
          <xslt2-specific count="10"/>
          <xslt-other count="12"/>
-         <keywords use-when="false()"/>
+         <pass1 count="0"/>
+         <pass2 count="22"/>
       </test-set>
       <test-set total-tests="36" name="call-template" description="Tests call-template">
          <xslt3-specific count="2"/>
@@ -1438,51 +1136,15 @@
          <xslt3-specific count="0"/>
          <xslt2-specific count="25"/>
          <xslt-other count="0"/>
-         <keywords use-when="false()">
-            <key name="sequence-constructor" count="2"/>
-            <key name="comment-nodes" count="1"/>
-            <key name="text-nodes" count="2"/>
-            <key name="processing-instruction-nodes" count="1"/>
-            <key name="xsl:variable" count="3"/>
-            <key name="xsl:copy-of" count="2"/>
-            <key name="xsl:copy" count="2"/>
-            <key name="xsl:text" count="3"/>
-            <key name="xsl:value-of" count="2"/>
-            <key name="xsl:for-each" count="2"/>
-            <key name="xsl:call-template" count="1"/>
-            <key name="xsl:apply-imports" count="1"/>
-            <key name="xsl:import" count="1"/>
-            <key name="xsl:element" count="2"/>
-            <key name="nested-documents" count="3"/>
-            <key name="xsl:processing-instruction" count="1"/>
-            <key name="xsl:comment" count="2"/>
-            <key name="document-order" count="1"/>
-            <key name="use-attribute-sets" count="1"/>
-            <key name="empty-text-nodes" count="2"/>
-            <key name="xsl:sequence" count="2"/>
-            <key name="validation-strip" count="2"/>
-            <key name="lre" count="3"/>
-            <key name="multiple-root-elements" count="1"/>
-            <key name="DocumentTest" count="1"/>
-            <key name="xsl:message" count="1"/>
-            <key name="xsl:attribute-set" count="1"/>
-            <key name="xsl:use-attribute-sets" count="1"/>
-            <key name="xsl:choose" count="1"/>
-            <key name="xsl:when" count="1"/>
-            <key name="xsl:otherwise" count="1"/>
-            <key name="use-when-attribute" count="1"/>
-            <key name="xsl:sort" count="1"/>
-            <key name="ForExpr" count="1"/>
-            <key name="fn:string-join" count="1"/>
-            <key name="fn:avg" count="1"/>
-            <key name="fn:sum" count="1"/>
-         </keywords>
+         <pass1 count="0"/>
+         <pass2 count="25"/>
       </test-set>
       <test-set total-tests="28" name="element" description="Tests the xsl:element instruction">
          <xslt3-specific count="10"/>
          <xslt2-specific count="18"/>
          <xslt-other count="0"/>
-         <keywords use-when="false()"/>
+         <pass1 count="0"/>
+         <pass2 count="8"/>
       </test-set>
       <test-set total-tests="33" name="construct-node" description="Tests instructions that create text, comment, processing-instruction etc nodes">
          <xslt3-specific count="0"/>
@@ -1500,43 +1162,50 @@
          <xslt3-specific count="43"/>
          <xslt2-specific count="0"/>
          <xslt-other count="0"/>
-         <keywords use-when="false()"/>
+         <pass1 count="0"/>
+         <pass2 count="0"/>
       </test-set>
       <test-set total-tests="72" name="for-each-group" description="Tests the xsl:for-each-group instruction">
          <xslt3-specific count="23"/>
          <xslt2-specific count="49"/>
          <xslt-other count="0"/>
-         <keywords use-when="false()"/>
+         <pass1 count="0"/>
+         <pass2 count="5"/>
       </test-set>
       <test-set total-tests="34" name="iterate" description="Tests the xsl:iterate instruction introduced in XSLT 3.0">
          <xslt3-specific count="34"/>
          <xslt2-specific count="0"/>
          <xslt-other count="0"/>
-         <keywords use-when="false()"/>
+         <pass1 count="0"/>
+         <pass2 count="32"/>
       </test-set>
       <test-set total-tests="30" name="lre" description="Tests lre">
          <xslt3-specific count="7"/>
          <xslt2-specific count="5"/>
          <xslt-other count="18"/>
-         <keywords use-when="false()"/>
+         <pass1 count="0"/>
+         <pass2 count="30"/>
       </test-set>
       <test-set total-tests="64" name="merge" description="Tests the xsl:merge instruction">
          <xslt3-specific count="64"/>
          <xslt2-specific count="0"/>
          <xslt-other count="0"/>
-         <keywords use-when="false()"/>
+         <pass1 count="0"/>
+         <pass2 count="0"/>
       </test-set>
       <test-set total-tests="32" name="message" description="Tests message">
          <xslt3-specific count="8"/>
          <xslt2-specific count="23"/>
          <xslt-other count="1"/>
-         <keywords use-when="false()"/>
+         <pass1 count="0"/>
+         <pass2 count="184"/>
       </test-set>
       <test-set total-tests="26" name="next-match" description="Tests xsl:next-match">
          <xslt3-specific count="0"/>
          <xslt2-specific count="26"/>
          <xslt-other count="0"/>
-         <keywords use-when="false()"/>
+         <pass1 count="0"/>
+         <pass2 count="30"/>
       </test-set>
       <test-set total-tests="158" name="number" description="Tests the xsl:number instruction">
          <xslt3-specific count="8"/>
@@ -1548,19 +1217,22 @@
          <xslt3-specific count="10"/>
          <xslt2-specific count="0"/>
          <xslt-other count="0"/>
-         <keywords use-when="false()"/>
+         <pass1 count="0"/>
+         <pass2 count="12"/>
       </test-set>
       <test-set total-tests="10" name="on-non-empty" description="Tests sequence constructors containing xsl:on-non-empty instructions">
          <xslt3-specific count="10"/>
          <xslt2-specific count="0"/>
          <xslt-other count="0"/>
-         <keywords use-when="false()"/>
+         <pass1 count="0"/>
+         <pass2 count="70"/>
       </test-set>
       <test-set total-tests="127" name="result-document" description="Tests the xsl:result-document instruction. Note: most of the tests concern serialization; very few actually generate multiple output documents.">
          <xslt3-specific count="55"/>
          <xslt2-specific count="72"/>
          <xslt-other count="0"/>
-         <keywords use-when="false()"/>
+         <pass1 count="0"/>
+         <pass2 count="10"/>
       </test-set>
       <test-set total-tests="91" name="sequence" description="Tests the xsl:sequence instruction and other expressions that construct sequences">
          <xslt3-specific count="4"/>
@@ -1572,13 +1244,15 @@
          <xslt3-specific count="4"/>
          <xslt2-specific count="42"/>
          <xslt-other count="32"/>
-         <keywords use-when="false()"/>
+         <pass1 count="0"/>
+         <pass2 count="121"/>
       </test-set>
       <test-set total-tests="19" name="stream" description="Tests the xsl:stream instruction introduced in XSLT 3.0. The tests in this section focus on variants of the xsl:stream instruction itself, and not on testing the streamability of its content.">
          <xslt3-specific count="19"/>
          <xslt2-specific count="0"/>
          <xslt-other count="0"/>
-         <keywords use-when="false()"/>
+         <pass1 count="0"/>
+         <pass2 count="14"/>
       </test-set>
       <test-set total-tests="27" name="try" description="Tests try">
          <xslt3-specific count="22"/>
@@ -1635,24 +1309,29 @@
          <xslt3-specific count="1159"/>
          <xslt2-specific count="1748"/>
          <xslt-other count="97"/>
+         <pass1 count="0"/>
+         <pass2 count="1934"/>
       </overview>
       <test-set total-tests="45" name="backwards" description="Tests backwards compatibility with XSLT 1.0">
          <xslt3-specific count="1"/>
          <xslt2-specific count="43"/>
          <xslt-other count="1"/>
-         <keywords use-when="false()"/>
+         <pass1 count="0"/>
+         <pass2 count="29"/>
       </test-set>
       <test-set total-tests="86" name="bug" description="A collection of miscellaneous tests garnered from interesting bug reports">
          <xslt3-specific count="0"/>
          <xslt2-specific count="33"/>
          <xslt-other count="53"/>
-         <keywords use-when="false()"/>
+         <pass1 count="0"/>
+         <pass2 count="83"/>
       </test-set>
       <test-set total-tests="4" name="built-in-templates" description="Tests built-in-templates">
          <xslt3-specific count="0"/>
          <xslt2-specific count="4"/>
          <xslt-other count="0"/>
-         <keywords use-when="false()"/>
+         <pass1 count="0"/>
+         <pass2 count="23"/>
       </test-set>
       <test-set total-tests="5" name="catalog" description="Tests that the test catalog is valid">
          <xslt3-specific count="2"/>
@@ -1672,100 +1351,92 @@
          <xslt3-specific count="0"/>
          <xslt2-specific count="32"/>
          <xslt-other count="2"/>
-         <keywords use-when="false()"/>
+         <pass1 count="0"/>
+         <pass2 count="34"/>
       </test-set>
       <test-set total-tests="18" name="embedded-stylesheet" description="Tests embedded-stylesheet">
          <xslt3-specific count="0"/>
          <xslt2-specific count="18"/>
          <xslt-other count="0"/>
-         <keywords use-when="false()"/>
+         <pass1 count="0"/>
+         <pass2 count="0"/>
       </test-set>
       <test-set total-tests="569" name="error" description="Tests error conditions. This test set should include a test for every error code (however, coverage of new XSLT 3.0 errors is incomplete).">
          <xslt3-specific count="152"/>
          <xslt2-specific count="417"/>
          <xslt-other count="0"/>
-         <keywords use-when="false()"/>
+         <pass1 count="0"/>
+         <pass2 count="4"/>
       </test-set>
       <test-set total-tests="5" name="initial-function" description="Tests Call Function XSLT invocation">
          <xslt3-specific count="5"/>
          <xslt2-specific count="0"/>
          <xslt-other count="0"/>
-         <keywords use-when="false()"/>
+         <pass1 count="0"/>
+         <pass2 count="18"/>
       </test-set>
       <test-set total-tests="4" name="initial-mode" description="Tests initial-mode">
          <xslt3-specific count="1"/>
          <xslt2-specific count="2"/>
          <xslt-other count="1"/>
-         <keywords use-when="false()"/>
+         <pass1 count="0"/>
+         <pass2 count="45"/>
       </test-set>
       <test-set total-tests="8" name="initial-template" description="Tests Call-Template XSLT invocation">
          <xslt3-specific count="3"/>
          <xslt2-specific count="5"/>
          <xslt-other count="0"/>
-         <keywords use-when="false()"/>
+         <pass1 count="0"/>
+         <pass2 count="514"/>
       </test-set>
       <test-set total-tests="120" name="regex-classes" description="Tests regular expression character classes and Unicode blocks. The tests in this test-set may take a little time to execute...">
          <xslt3-specific count="0"/>
          <xslt2-specific count="120"/>
          <xslt-other count="0"/>
-         <keywords use-when="false()"/>
+         <pass1 count="0"/>
+         <pass2 count="0"/>
       </test-set>
       <test-set total-tests="49" name="regex" description="Tests regex">
          <xslt3-specific count="0"/>
          <xslt2-specific count="49"/>
          <xslt-other count="0"/>
-         <keywords use-when="false()"/>
+         <pass1 count="0"/>
+         <pass2 count="33"/>
       </test-set>
       <test-set total-tests="987" name="regex-syntax" description="Tests regex-syntax">
-         <xslt3-specific count="987"/>
+         <xslt3-specific count="990"/>
          <xslt2-specific count="0"/>
          <xslt-other count="0"/>
-         <keywords use-when="false()"/>
+         <pass1 count="0"/>
+         <pass2 count="985"/>
       </test-set>
       <test-set total-tests="987" name="regex-syntax-xslt20" description="Tests regex-syntax for XSLT20 processors. For XSLT 3.0, see the regular regex-syntax folder. These tests are not maintained (unless bugs are raised against them), they are here for convenience of XSLT 2.0 processor testing. See Bug 20845 for details why we split these tests.">
          <xslt3-specific count="0"/>
          <xslt2-specific count="987"/>
          <xslt-other count="0"/>
-         <keywords use-when="false()"/>
+         <pass1 count="0"/>
+         <pass2 count="0"/>
       </test-set>
       <test-set total-tests="28" name="whitespace" description="Tests whitespace">
          <xslt3-specific count="0"/>
          <xslt2-specific count="3"/>
          <xslt-other count="25"/>
-         <keywords use-when="false()"/>
+         <pass1 count="0"/>
+         <pass2 count="28"/>
       </test-set>
       <test-set total-tests="42" name="xml-version" description="Tests support for XML 1.1. Note that the test catalog itself is an XML 1.0 document.">
          <xslt3-specific count="8"/>
          <xslt2-specific count="19"/>
          <xslt-other count="15"/>
-         <keywords use-when="false()"/>
+         <pass1 count="0"/>
+         <pass2 count="41"/>
       </test-set>
       <test-set total-tests="13" name="xslt-compat" description="Tests xslt-compat">
          <xslt3-specific count="0"/>
          <xslt2-specific count="13"/>
          <xslt-other count="0"/>
-         <keywords use-when="false()">
-            <key name="backwards-compatibility-mode" count="5"/>
-            <key name="2.0-behaves-like-1.0" count="3"/>
-            <key name="leading-double-slash" count="1"/>
-            <key name="version-attribute" count="3"/>
-            <key name="xsl:fallback" count="6"/>
-            <key name="xsl:result-document" count="1"/>
-            <key name="xsl:analyze-string" count="1"/>
-            <key name="xsl:namespace" count="1"/>
-            <key name="xsl:sequence" count="1"/>
-            <key name="xsl:attribute" count="1"/>
-            <key name="forwards-compatibility-mode" count="2"/>
-            <key name="xsl:sort" count="1"/>
-            <key name="xsl:choose" count="1"/>
-            <key name="xsl:variable" count="2"/>
-            <key name="global-variable" count="2"/>
-            <key name="fn:contains" count="1"/>
-            <key name="xsl:for-each" count="1"/>
-            <key name="xsl:if" count="1"/>
-            <key name="extension-element" count="1"/>
-            <key name="extension-element-prefixes-attribute" count="1"/>
-         </keywords>
+         <pass1 count="0"/>
+         <pass2 count="13"/>
       </test-set>
    </category>
    <category name="Posture and Sweep">
@@ -1773,156 +1444,183 @@
          <xslt3-specific count="0"/>
          <xslt2-specific count="0"/>
          <xslt-other count="919"/>
+         <pass1 count="0"/>
+         <pass2 count="0"/>
       </overview>
       <test-set total-tests="26" name="xp-striding-striding-consumingA" description="CP: Striding, RP: Striding, RS: Consuming Child axis on child or self axis with striding context selecting elements is striding and consuming">
          <xslt3-specific count="0"/>
          <xslt2-specific count="0"/>
          <xslt-other count="26"/>
-         <keywords use-when="false()"/>
+         <pass1 count="0"/>
+         <pass2 count="0"/>
       </test-set>
       <test-set total-tests="18" name="xp-striding-striding-consumingB" description="CP: Striding, RP: Striding, RS: Consuming Self axis on child axis with striding context selecting elements is striding and consuming">
          <xslt3-specific count="0"/>
          <xslt2-specific count="0"/>
          <xslt-other count="18"/>
-         <keywords use-when="false()"/>
+         <pass1 count="0"/>
+         <pass2 count="0"/>
       </test-set>
       <test-set total-tests="87" name="xp-striding-grounded-motionlessA" description="CP: Striding, RP: Grounded, RS: Motionless Any step expression on empty selection is always grounded">
          <xslt3-specific count="0"/>
          <xslt2-specific count="0"/>
          <xslt-other count="87"/>
-         <keywords use-when="false()"/>
+         <pass1 count="0"/>
+         <pass2 count="0"/>
       </test-set>
       <test-set total-tests="43" name="xp-striding-grounded-motionlessB" description="CP: Striding, RP: Grounded, RS: Motionless Step expressions child, namespace, attribute and descendant on a childless node kind selects nothing, is always grounded">
          <xslt3-specific count="0"/>
          <xslt2-specific count="0"/>
          <xslt-other count="43"/>
-         <keywords use-when="false()"/>
+         <pass1 count="0"/>
+         <pass2 count="0"/>
       </test-set>
       <test-set total-tests="19" name="xp-striding-grounded-motionlessC" description="CP: Striding, RP: Grounded, RS: Motionless Self-axis that changes axes selects nothing, so grounded/motionless">
          <xslt3-specific count="0"/>
          <xslt2-specific count="0"/>
          <xslt-other count="19"/>
-         <keywords use-when="false()"/>
+         <pass1 count="0"/>
+         <pass2 count="0"/>
       </test-set>
       <test-set total-tests="33" name="xp-striding-grounded-motionlessD" description="CP: Striding, RP: Grounded, RS: Motionless Descendant-or-self on childless motionless nodes with different node type selects nothing, so grounded/motionless">
          <xslt3-specific count="0"/>
          <xslt2-specific count="0"/>
          <xslt-other count="33"/>
-         <keywords use-when="false()"/>
+         <pass1 count="0"/>
+         <pass2 count="0"/>
       </test-set>
       <test-set total-tests="4" name="xp-striding-grounded-motionlessE" description="CP: Striding, RP: Grounded, RS: Motionless ancestor, parent, following, preceding etc axes on document node selects nothing, so grounded/motionless">
          <xslt3-specific count="0"/>
          <xslt2-specific count="0"/>
          <xslt-other count="4"/>
-         <keywords use-when="false()"/>
+         <pass1 count="0"/>
+         <pass2 count="0"/>
       </test-set>
       <test-set total-tests="18" name="xp-striding-grounded-motionlessF" description="CP: Striding, RP: Grounded, RS: Motionless Self axis on parent or ancestor axis which is not on U{element, document}} selects nothingness">
          <xslt3-specific count="0"/>
          <xslt2-specific count="0"/>
          <xslt-other count="18"/>
-         <keywords use-when="false()"/>
+         <pass1 count="0"/>
+         <pass2 count="0"/>
       </test-set>
       <test-set total-tests="19" name="xp-striding-grounded-motionlessG" description="CP: Striding, RP: Grounded, RS: Motionless Self axis on ancestor-or-self axis which is not on U{element, document}} and not on same axis as lh side selects nothingness">
          <xslt3-specific count="0"/>
          <xslt2-specific count="0"/>
          <xslt-other count="19"/>
-         <keywords use-when="false()"/>
+         <pass1 count="0"/>
+         <pass2 count="0"/>
       </test-set>
       <test-set total-tests="38" name="xp-striding-grounded-motionlessH" description="CP: Striding, RP: Grounded, RS: Motionless 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">
          <xslt3-specific count="0"/>
          <xslt2-specific count="0"/>
          <xslt-other count="38"/>
-         <keywords use-when="false()"/>
+         <pass1 count="0"/>
+         <pass2 count="0"/>
       </test-set>
       <test-set total-tests="14" name="xp-striding-striding-motionlessA" description="CP: Striding, RP: Striding, RS: Motionless Self axis on self axis remains striding and motionless if both sides select the same nodes">
          <xslt3-specific count="0"/>
          <xslt2-specific count="0"/>
          <xslt-other count="14"/>
-         <keywords use-when="false()"/>
+         <pass1 count="0"/>
+         <pass2 count="0"/>
       </test-set>
       <test-set total-tests="85" name="xp-striding-climbing-motionlessA" description="CP: Striding, RP: Climbing, RS: Motionless Climbing axis parent, ancestor or ancestor-or-self on self or climbing axis is climbing and motionless">
          <xslt3-specific count="0"/>
          <xslt2-specific count="0"/>
          <xslt-other count="85"/>
-         <keywords use-when="false()"/>
+         <pass1 count="0"/>
+         <pass2 count="0"/>
       </test-set>
       <test-set total-tests="70" name="xp-striding-climbing-motionlessB" description="CP: Striding, RP: Climbing, RS: Motionless Self axis on climbing axis, provided node type is same, inherits the climbing axis: climbing and motionless">
          <xslt3-specific count="0"/>
          <xslt2-specific count="0"/>
          <xslt-other count="70"/>
-         <keywords use-when="false()"/>
+         <pass1 count="0"/>
+         <pass2 count="0"/>
       </test-set>
       <test-set total-tests="32" name="xp-striding-climbing-motionlessC" description="CP: Striding, RP: Climbing, RS: Motionless Climbing axis attribute, namespace on self or climbing axis with U{element}} is climbing and motionless">
          <xslt3-specific count="0"/>
          <xslt2-specific count="0"/>
          <xslt-other count="32"/>
-         <keywords use-when="false()"/>
+         <pass1 count="0"/>
+         <pass2 count="0"/>
       </test-set>
       <test-set total-tests="35" name="xp-striding-climbing-consumingA" description="CP: Striding, RP: Climbing, RS: Consuming Attribute, namespace, parent or ancestor(-or-self) axis on child, descendant(-or-self) axis selecting elements is climbing and remains consuming">
          <xslt3-specific count="0"/>
          <xslt2-specific count="0"/>
          <xslt-other count="35"/>
-         <keywords use-when="false()"/>
+         <pass1 count="0"/>
+         <pass2 count="0"/>
       </test-set>
       <test-set total-tests="23" name="xp-striding-climbing-consumingB" description="CP: Striding, RP: Climbing, RS: Consuming 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}">
          <xslt3-specific count="0"/>
          <xslt2-specific count="0"/>
          <xslt-other count="23"/>
-         <keywords use-when="false()"/>
+         <pass1 count="0"/>
+         <pass2 count="0"/>
       </test-set>
       <test-set total-tests="34" name="xp-striding-crawling-consumingA" description="CP: Striding, RP: Crawling, RS: Consuming A descendant(-or-self) axis on a child or descendant(-or-self) axis is crawling and consuming (scanning expression)">
          <xslt3-specific count="0"/>
          <xslt2-specific count="0"/>
          <xslt-other count="34"/>
-         <keywords use-when="false()"/>
+         <pass1 count="0"/>
+         <pass2 count="0"/>
       </test-set>
       <test-set total-tests="16" name="xp-striding-crawling-consumingB" description="CP: Striding, RP: Crawling, RS: Consuming A child axis on a descendant(-or-self) axis is crawling and consuming (scanning expression)">
          <xslt3-specific count="0"/>
          <xslt2-specific count="0"/>
          <xslt-other count="16"/>
-         <keywords use-when="false()"/>
+         <pass1 count="0"/>
+         <pass2 count="0"/>
       </test-set>
       <test-set total-tests="16" name="xp-striding-crawling-consumingC" description="CP: Striding, RP: Crawling, RS: Consuming A self axis on a descendant(-or-self) axis is crawling and consuming">
          <xslt3-specific count="0"/>
          <xslt2-specific count="0"/>
          <xslt-other count="16"/>
-         <keywords use-when="false()"/>
+         <pass1 count="0"/>
+         <pass2 count="0"/>
       </test-set>
       <test-set total-tests="18" name="xp-striding-grounded-consumingA" description="CP: Striding, RP: Grounded, RS: Consuming Attribute or namespace axis on child or descendant(-or-self) axis that is not in U{element}} is grounded (selects nothing) and remains consuming">
          <xslt3-specific count="0"/>
          <xslt2-specific count="0"/>
          <xslt-other count="18"/>
-         <keywords use-when="false()"/>
+         <pass1 count="0"/>
+         <pass2 count="0"/>
       </test-set>
       <test-set total-tests="58" name="xp-striding-grounded-consumingB" description="CP: Striding, RP: Grounded, RS: Consuming Self axis selecting other node-type on child, descendant(-or-self) etc axis is grounded (selects nothing) and remains consuming">
          <xslt3-specific count="0"/>
          <xslt2-specific count="0"/>
          <xslt-other count="58"/>
-         <keywords use-when="false()"/>
+         <pass1 count="0"/>
+         <pass2 count="0"/>
       </test-set>
       <test-set total-tests="53" name="xp-striding-grounded-consumingC" description="CP: Striding, RP: Grounded, RS: Consuming Any axis with nodetest that never selects anything on a child or descendant(-or-self) axis is grounded (selects nothing) and remains consuming">
          <xslt3-specific count="0"/>
          <xslt2-specific count="0"/>
          <xslt-other count="53"/>
-         <keywords use-when="false()"/>
+         <pass1 count="0"/>
+         <pass2 count="0"/>
       </test-set>
       <test-set total-tests="52" name="xp-striding-roaming-free-rangingA" description="CP: Striding, RP: Roaming, RS: Free-ranging Any step expression selecting streamed nodes on the following(-sibling) or preceding(-sibling) axis is roaming and free-ranging">
          <xslt3-specific count="0"/>
          <xslt2-specific count="0"/>
          <xslt-other count="52"/>
-         <keywords use-when="false()"/>
+         <pass1 count="0"/>
+         <pass2 count="0"/>
       </test-set>
       <test-set total-tests="81" name="xp-striding-roaming-free-rangingB" description="CP: Striding, RP: Roaming, RS: Free-ranging Any step expression selecting streamed nodes on the following(-sibling) or preceding(-sibling) axis is roaming and free-ranging">
          <xslt3-specific count="0"/>
          <xslt2-specific count="0"/>
          <xslt-other count="81"/>
-         <keywords use-when="false()"/>
+         <pass1 count="0"/>
+         <pass2 count="0"/>
       </test-set>
       <test-set total-tests="27" name="xp-striding-roaming-free-rangingC" description="CP: Striding, RP: Roaming, RS: Free-ranging A child or descendant(-or-self) selection after a climbing expr that selects U{element, document}} is roaming/free-ranging">
          <xslt3-specific count="0"/>
          <xslt2-specific count="0"/>
          <xslt-other count="27"/>
-         <keywords use-when="false()"/>
+         <pass1 count="0"/>
+         <pass2 count="0"/>
       </test-set>
    </category>
    <category name="Streaming">
@@ -1930,466 +1628,127 @@
          <xslt3-specific count="1962"/>
          <xslt2-specific count="0"/>
          <xslt-other count="0"/>
+         <pass1 count="0"/>
+         <pass2 count="2147"/>
       </overview>
       <test-set total-tests="33" name="sf-avg" description="avg() function with streaming">
          <xslt3-specific count="33"/>
          <xslt2-specific count="0"/>
          <xslt-other count="0"/>
-         <keywords use-when="false()">
-            <key name="fn:round" count="1"/>
-            <key name="fn:avg" count="6"/>
-            <key name="ContextItemExpr" count="6"/>
-            <key name="RelativePathExpr" count="6"/>
-            <key name="xsl:copy-of" count="1"/>
-            <key name="motionless-predicate" count="4"/>
-            <key name="positional-predicate" count="3"/>
-            <key name="predicate" count="1"/>
-            <key name="striding-then-grounded" count="1"/>
-            <key name="childless-nodes" count="2"/>
-            <key name="TextTest" count="1"/>
-            <key name="fn:number" count="1"/>
-            <key name="striding" count="3"/>
-            <key name="PathExpr" count="1"/>
-            <key name="sequence" count="1"/>
-            <key name="mixed-posture" count="3"/>
-            <key name="fn:tail" count="2"/>
-            <key name="fn:outermost" count="1"/>
-            <key name="ForExpr" count="1"/>
-            <key name="attribute-axis" count="6"/>
-            <key name="AbbrevForwardStep" count="4"/>
-            <key name="" count="1"/>
-            <key name="fn:copy-of" count="1"/>
-            <key name="fn:abs" count="1"/>
-            <key name="choice-operand-group" count="1"/>
-            <key name="IfExpr" count="1"/>
-            <key name="SimpleMapExpr" count="2"/>
-            <key name="xs:NMTOKENS" count="2"/>
-            <key name="fn:root" count="1"/>
-            <key name="leading-lone-slash" count="3"/>
-            <key name="grounded" count="7"/>
-            <key name="fn:data" count="1"/>
-            <key name="crawling-then-climbing" count="1"/>
-            <key name="avg" count="8"/>
-            <key name="bang-operator" count="5"/>
-            <key name="forexpr" count="1"/>
-            <key name="letexpr" count="1"/>
-            <key name="xsl:try" count="2"/>
-            <key name="FORG0006" count="2"/>
-            <key name="last" count="2"/>
-            <key name="non-motionless-predicate" count="2"/>
-            <key name="XTSE3430" count="2"/>
-         </keywords>
+         <pass1 count="0"/>
+         <pass2 count="33"/>
       </test-set>
       <test-set total-tests="27" name="sf-boolean" description="boolean() function with streaming.">
          <xslt3-specific count="27"/>
          <xslt2-specific count="0"/>
          <xslt-other count="0"/>
-         <keywords use-when="false()">
-            <key name="boolean" count="26"/>
-            <key name="crawling" count="4"/>
-            <key name="fn:boolean" count="1"/>
-            <key name="ContextItemExpr" count="1"/>
-            <key name="motionless-predicate" count="5"/>
-            <key name="RelativePathExpr" count="1"/>
-            <key name="climbing" count="4"/>
-            <key name="bang-operator" count="4"/>
-            <key name="grounded" count="8"/>
-            <key name="attribute-axis" count="2"/>
-            <key name="namespace-axis" count="1"/>
-            <key name="striding" count="16"/>
-            <key name="empty-sequence" count="4"/>
-            <key name="numeric-predicate" count="1"/>
-            <key name="unionexpr" count="2"/>
-            <key name="xsl:if" count="1"/>
-            <key name="motionless" count="1"/>
-            <key name="remove" count="3"/>
-            <key name="childless-node" count="1"/>
-            <key name="root" count="2"/>
-            <key name="position" count="1"/>
-            <key name="mixed-posture" count="6"/>
-            <key name="base-uri" count="1"/>
-            <key name="numerical-predicate" count="2"/>
-            <key name="FORG0006" count="3"/>
-            <key name="xsl:try" count="2"/>
-            <key name="xsl:for-each" count="1"/>
-            <key name="non-motionless-predicate" count="1"/>
-            <key name="XTSE3430" count="1"/>
-         </keywords>
+         <pass1 count="0"/>
+         <pass2 count="27"/>
       </test-set>
       <test-set total-tests="4" name="sf-codepoints-to-string" description="Tests the xsl:stream instruction introduced in XSLT 3.0 with fn:codepoints-to-string().">
          <xslt3-specific count="4"/>
          <xslt2-specific count="0"/>
          <xslt-other count="0"/>
-         <keywords use-when="false()">
-            <key name="crawling" count="2"/>
-            <key name="fn:outermost" count="4"/>
-            <key name="crawling-then-striding" count="4"/>
-            <key name="fn:string-length" count="3"/>
-            <key name="leading-double-slash" count="4"/>
-            <key name="xsl:catch" count="1"/>
-            <key name="xsl:try" count="1"/>
-            <key name="error-handling" count="1"/>
-            <key name="specific-catch-clause" count="1"/>
-            <key name="FOCH0001" count="1"/>
-            <key name="empty-sequence" count="1"/>
-         </keywords>
+         <pass1 count="0"/>
+         <pass2 count="4"/>
       </test-set>
       <test-set total-tests="10" name="sf-copy-of" description="fn:copy-of() with streaming">
          <xslt3-specific count="10"/>
          <xslt2-specific count="0"/>
          <xslt-other count="0"/>
-         <keywords use-when="false()"/>
+         <pass1 count="0"/>
+         <pass2 count="59"/>
       </test-set>
       <test-set total-tests="23" name="sf-count" description="count() function with streaming">
          <xslt3-specific count="23"/>
          <xslt2-specific count="0"/>
          <xslt-other count="0"/>
-         <keywords use-when="false()">
-            <key name="crawling" count="3"/>
-            <key name="descendant-or-self-axis" count="1"/>
-            <key name="PathExpr" count="19"/>
-            <key name="striding" count="14"/>
-            <key name="predicate" count="1"/>
-            <key name="motionless-predicate" count="6"/>
-            <key name="SimpleMapExpr" count="3"/>
-            <key name="ancestor-axis" count="3"/>
-            <key name="climbing" count="2"/>
-            <key name="fn:tokenize" count="1"/>
-            <key name="grounded" count="7"/>
-            <key name="climbing-childless" count="1"/>
-            <key name="attribute-nodes" count="1"/>
-            <key name="namespace-axis" count="1"/>
-            <key name="AxisStep" count="1"/>
-            <key name="positional-predicate" count="2"/>
-            <key name="UnionExpr" count="2"/>
-            <key name="crawling-then-crawling" count="1"/>
-            <key name="descendant-axis" count="1"/>
-            <key name="motionless" count="1"/>
-            <key name="RangeExpr" count="1"/>
-            <key name="childless-nodes" count="2"/>
-            <key name="fn:data" count="1"/>
-            <key name="fn:remove" count="3"/>
-            <key name="_IMPROVE:fix-description" count="2"/>
-            <key name="empty-sequence" count="3"/>
-            <key name="striding-then-climbing" count="1"/>
-            <key name="attribute-axis" count="1"/>
-            <key name="mixed-sequence" count="4"/>
-            <key name="consuming-predicate" count="1"/>
-            <key name="XTSE3430" count="1"/>
-         </keywords>
+         <pass1 count="0"/>
+         <pass2 count="23"/>
       </test-set>
       <test-set total-tests="35" name="sf-deep-equal" description="deep-equal() function with streaming">
          <xslt3-specific count="35"/>
          <xslt2-specific count="0"/>
          <xslt-other count="0"/>
-         <keywords use-when="false()">
-            <key name="striding-then-grounded" count="18"/>
-            <key name="grounded" count="3"/>
-            <key name="PathExpr" count="35"/>
-            <key name="xs:decimal" count="9"/>
-            <key name="motionless-predicate" count="2"/>
-            <key name="positional-predicate" count="2"/>
-            <key name="variable-reference" count="10"/>
-            <key name="fn:copy-of" count="5"/>
-            <key name="striding" count="9"/>
-            <key name="_WRONG:fix-initial-template-name" count="1"/>
-            <key name="childless-nodes" count="2"/>
-            <key name="text-nodes" count="1"/>
-            <key name="empty-sequence" count="5"/>
-            <key name="sequence-comparison" count="5"/>
-            <key name="fn:number" count="1"/>
-            <key name="fn:doc" count="1"/>
-            <key name="striding-then-climbing" count="1"/>
-            <key name="attribute-axis" count="1"/>
-            <key name="fn:outermost" count="5"/>
-            <key name="crawling" count="2"/>
-            <key name="crawling-then-striding" count="5"/>
-            <key name="fn:data" count="1"/>
-            <key name="crawling-then-climbing" count="1"/>
-            <key name="collation-argument" count="6"/>
-            <key name="FOCH0002" count="3"/>
-            <key name="xsl:try" count="2"/>
-            <key name="error-handling" count="2"/>
-            <key name="specific-catch-clause" count="2"/>
-            <key name="crawling-atomizing" count="2"/>
-            <key name="descendant-axis" count="2"/>
-            <key name="AxisStep" count="2"/>
-         </keywords>
+         <pass1 count="0"/>
+         <pass2 count="35"/>
       </test-set>
       <test-set total-tests="11" name="sf-distinct-values" description="Tests the xsl:stream instruction with distinct-values()">
          <xslt3-specific count="11"/>
          <xslt2-specific count="0"/>
          <xslt-other count="0"/>
-         <keywords use-when="false()">
-            <key name="striding-then-climbing" count="2"/>
-            <key name="attribute-axis" count="4"/>
-            <key name="childless-nodes" count="2"/>
-            <key name="PathExpr" count="11"/>
-            <key name="empty-sequence" count="1"/>
-            <key name="fn:number" count="2"/>
-            <key name="striding-then-grounded" count="2"/>
-            <key name="fn:outermost" count="4"/>
-            <key name="crawling-then-striding" count="4"/>
-            <key name="collation-argument" count="6"/>
-            <key name="xsl:try" count="2"/>
-            <key name="error-handling" count="2"/>
-            <key name="specific-catch-clause" count="2"/>
-            <key name="FOCH0002" count="2"/>
-            <key name="striding" count="3"/>
-         </keywords>
+         <pass1 count="0"/>
+         <pass2 count="11"/>
       </test-set>
       <test-set total-tests="23" name="sf-empty" description="empty() function with streaming">
          <xslt3-specific count="23"/>
          <xslt2-specific count="0"/>
          <xslt-other count="0"/>
-         <keywords use-when="false()">
-            <key name="PathExpr" count="22"/>
-            <key name="crawling" count="3"/>
-            <key name="motionless-predicate" count="7"/>
-            <key name="striding" count="13"/>
-            <key name="ancestor-axis" count="2"/>
-            <key name="climbing" count="1"/>
-            <key name="SimpleMapExpr" count="4"/>
-            <key name="striding-then-grounded" count="1"/>
-            <key name="attribute-axis" count="2"/>
-            <key name="striding-then-climbing" count="3"/>
-            <key name="namespace-axis" count="1"/>
-            <key name="AxisStep" count="1"/>
-            <key name="positional-predicate" count="2"/>
-            <key name="striding-then-crawling" count="1"/>
-            <key name="UnionExpr" count="2"/>
-            <key name="crawling-then-crawling" count="1"/>
-            <key name="childless-nodes" count="2"/>
-            <key name="RangeExpr" count="1"/>
-            <key name="grounded" count="1"/>
-            <key name="leading-double-slash" count="1"/>
-            <key name="text-nodes" count="1"/>
-            <key name="fn:remove" count="3"/>
-            <key name="fn:data" count="1"/>
-            <key name="leading-lone-slash" count="2"/>
-            <key name="empty-sequence" count="2"/>
-            <key name="ParenthesizedExpr" count="4"/>
-            <key name="_IMPROVE:fix-description" count="1"/>
-            <key name="mixed-posture" count="3"/>
-            <key name="consuming-predicate" count="1"/>
-            <key name="XTSE3430" count="1"/>
-         </keywords>
+         <pass1 count="0"/>
+         <pass2 count="23"/>
       </test-set>
       <test-set total-tests="23" name="sf-exists" description="exists() function with streaming">
          <xslt3-specific count="23"/>
          <xslt2-specific count="0"/>
          <xslt-other count="0"/>
-         <keywords use-when="false()">
-            <key name="crawling" count="3"/>
-            <key name="PathExpr" count="21"/>
-            <key name="motionless-predicate" count="7"/>
-            <key name="SimpleMapExpr" count="4"/>
-            <key name="ancestor-axis" count="1"/>
-            <key name="climbing" count="3"/>
-            <key name="ContextItemExpr" count="1"/>
-            <key name="striding-then-grounded" count="1"/>
-            <key name="fn:tokenize" count="1"/>
-            <key name="leading-lone-slash" count="3"/>
-            <key name="attribute-axis" count="2"/>
-            <key name="climbing-then-climbing" count="2"/>
-            <key name="ancestor-or-self-axis" count="2"/>
-            <key name="namespace-axis" count="1"/>
-            <key name="AxisStep" count="1"/>
-            <key name="striding" count="12"/>
-            <key name="positional-predicate" count="2"/>
-            <key name="striding-then-crawling" count="1"/>
-            <key name="UnionExpr" count="2"/>
-            <key name="crawling-then-crawling" count="1"/>
-            <key name="text-nodes" count="1"/>
-            <key name="childless-nodes" count="2"/>
-            <key name="RangeExpr" count="1"/>
-            <key name="grounded" count="1"/>
-            <key name="crawling-atomizing" count="1"/>
-            <key name="leading-double-slash" count="1"/>
-            <key name="fn:remove" count="3"/>
-            <key name="fn:data" count="1"/>
-            <key name="striding-then-climbing" count="1"/>
-            <key name="empty-sequence" count="2"/>
-            <key name="mixed-posture" count="4"/>
-            <key name="ParenthesizedExpr" count="4"/>
-            <key name="consuming-predicate" count="1"/>
-            <key name="XTSE3430" count="1"/>
-         </keywords>
+         <pass1 count="0"/>
+         <pass2 count="23"/>
       </test-set>
       <test-set total-tests="8" name="sf-exactly-one" description="exactly-one() function with streaming">
          <xslt3-specific count="8"/>
          <xslt2-specific count="0"/>
          <xslt-other count="0"/>
-         <keywords use-when="false()">
-            <key name="striding-then-grounded" count="4"/>
-            <key name="leading-lone-slash" count="6"/>
-            <key name="fn:copy-of" count="4"/>
-            <key name="PathExpr" count="8"/>
-            <key name="predicate" count="2"/>
-            <key name="striding" count="3"/>
-            <key name="cardinality-of-one" count="3"/>
-            <key name="motionless-predicate" count="2"/>
-            <key name="FORG0001" count="1"/>
-            <key name="empty-sequence" count="1"/>
-            <key name="xsl:try" count="2"/>
-            <key name="error-handling" count="2"/>
-            <key name="specific-catch-clause" count="2"/>
-            <key name="FORG0005" count="2"/>
-         </keywords>
+         <pass1 count="0"/>
+         <pass2 count="8"/>
       </test-set>
       <test-set total-tests="3" name="sf-filter" description="fn:filter() function with streaming">
          <xslt3-specific count="3"/>
          <xslt2-specific count="0"/>
          <xslt-other count="0"/>
-         <keywords use-when="false()">
-            <key name="leading-lone-slash" count="1"/>
-            <key name="NamedFunctionRef" count="3"/>
-            <key name="XTSE3430" count="1"/>
-            <key name="stylesheet-function" count="3"/>
-            <key name="xsl:function" count="3"/>
-            <key name="PathExpr" count="3"/>
-            <key name="_WRONG:test-is-streamable" count="1"/>
-            <key name="grounded" count="1"/>
-            <key name="striding-then-grounded" count="2"/>
-            <key name="fn:copy-of" count="1"/>
-            <key name="fn:tokenize" count="1"/>
-            <key name="ContextItemExpr" count="1"/>
-            <key name="SimpleMapExpr" count="1"/>
-         </keywords>
+         <pass1 count="0"/>
+         <pass2 count="3"/>
       </test-set>
       <test-set total-tests="20" name="sf-fold-left" description="fold-left() function with streaming">
          <xslt3-specific count="20"/>
          <xslt2-specific count="0"/>
          <xslt-other count="0"/>
-         <keywords use-when="false()">
-            <key name="striding-then-grounded" count="16"/>
-            <key name="NamedFunctionRef" count="20"/>
-            <key name="PathExpr" count="20"/>
-            <key name="fn:data" count="11"/>
-            <key name="motionless-predicate" count="2"/>
-            <key name="positional-predicate" count="4"/>
-            <key name="predicate" count="3"/>
-            <key name="text-nodes" count="1"/>
-            <key name="childless-nodes" count="1"/>
-            <key name="fn:number" count="3"/>
-            <key name="ParenthesizedExpr" count="2"/>
-            <key name="fn:tail" count="1"/>
-            <key name="LetExpr" count="1"/>
-            <key name="ForExpr" count="1"/>
-            <key name="fn:outermost" count="1"/>
-            <key name="crawling-then-striding" count="1"/>
-            <key name="MultiplicativeExpr" count="1"/>
-            <key name="fn:copy-of" count="1"/>
-            <key name="climbing-then-grounded" count="4"/>
-            <key name="attribute-axis" count="3"/>
-            <key name="xs:decimal" count="3"/>
-            <key name="fn:abs" count="1"/>
-            <key name="AxisStep" count="2"/>
-            <key name="IfExpr" count="1"/>
-            <key name="xs:date" count="1"/>
-            <key name="UnaryExpr" count="1"/>
-            <key name="AdditiveExpr" count="1"/>
-            <key name="xs:NMTOKENS" count="2"/>
-            <key name="SimpleMapExpr" count="2"/>
-            <key name="leading-lone-slash" count="1"/>
-         </keywords>
+         <pass1 count="0"/>
+         <pass2 count="20"/>
       </test-set>
       <test-set total-tests="1" name="sf-fold-right" description="fold-right() function with streaming: the function is streamable if the operand is grounded, despite being processed from right-to-left: see bug 24125.">
          <xslt3-specific count="1"/>
          <xslt2-specific count="0"/>
          <xslt-other count="0"/>
-         <keywords use-when="false()">
-            <key name="striding-then-grounded" count="1"/>
-            <key name="PathExpr" count="1"/>
-            <key name="fn:data" count="1"/>
-            <key name="NamedFunctionRef" count="1"/>
-         </keywords>
+         <pass1 count="0"/>
+         <pass2 count="1"/>
       </test-set>
       <test-set total-tests="1" name="sf-has-children" description="has-children() function with streaming">
          <xslt3-specific count="1"/>
          <xslt2-specific count="0"/>
          <xslt-other count="0"/>
-         <keywords use-when="false()">
-            <key name="fn:has-children" count="1"/>
-         </keywords>
+         <pass1 count="0"/>
+         <pass2 count="1"/>
       </test-set>
       <test-set total-tests="22" name="sf-head" description="head() function with streaming">
          <xslt3-specific count="22"/>
          <xslt2-specific count="0"/>
          <xslt-other count="0"/>
-         <keywords use-when="false()">
-            <key name="striding-then-grounded" count="3"/>
-            <key name="leading-lone-slash" count="19"/>
-            <key name="PathExpr" count="22"/>
-            <key name="fn:data" count="1"/>
-            <key name="fn:copy-of" count="1"/>
-            <key name="fn:tokenize" count="1"/>
-            <key name="ContextItemExpr" count="2"/>
-            <key name="SimpleMapExpr" count="7"/>
-            <key name="striding" count="9"/>
-            <key name="fn:count" count="3"/>
-            <key name="fn:sum" count="1"/>
-            <key name="motionless-predicate" count="1"/>
-            <key name="fn:position" count="2"/>
-            <key name="AdditiveExpr" count="3"/>
-            <key name="AxisStep" count="2"/>
-            <key name="positional-predicate" count="8"/>
-            <key name="xsl:for-each" count="1"/>
-            <key name="fn:name" count="3"/>
-            <key name="xsl:apply-templates" count="1"/>
-            <key name="xsl:copy-of" count="1"/>
-            <key name="crawling-then-striding" count="1"/>
-            <key name="leading-double-slash" count="3"/>
-            <key name="text-nodes" count="2"/>
-            <key name="childless-nodes" count="2"/>
-            <key name="striding-then-crawling" count="2"/>
-            <key name="crawling" count="1"/>
-            <key name="striding-then-climbing" count="2"/>
-            <key name="ancestor-axis" count="3"/>
-            <key name="climbing-then-climbing" count="3"/>
-            <key name="attribute-axis" count="2"/>
-            <key name="ancestor-or-self-axis" count="3"/>
-            <key name="climbing" count="2"/>
-            <key name="crawling-then-climbing" count="1"/>
-         </keywords>
+         <pass1 count="0"/>
+         <pass2 count="22"/>
       </test-set>
       <test-set total-tests="2" name="sf-innermost" description="innermost() function with streaming">
-         <xslt3-specific count="2"/>
+         <xslt3-specific count="3"/>
          <xslt2-specific count="0"/>
          <xslt-other count="0"/>
-         <keywords use-when="false()">
-            <key name="fn:snapshot" count="1"/>
-            <key name="bug-24125" count="1"/>
-            <key name="leading-lone-slash" count="2"/>
-            <key name="PathExpr" count="2"/>
-            <key name="XTSE3430" count="1"/>
-            <key name="overlapping-nodes-with-transmission-usage" count="1"/>
-            <key name="crawling" count="1"/>
-         </keywords>
+         <pass1 count="0"/>
+         <pass2 count="2"/>
       </test-set>
       <test-set total-tests="9" name="sf-index-of" description="Tests xsl:stream instruction introduced in XSLT 3.0 with xsl:result-document.">
          <xslt3-specific count="9"/>
          <xslt2-specific count="0"/>
          <xslt-other count="0"/>
-         <keywords use-when="false()">
-            <key name="striding-then-climbing" count="2"/>
-            <key name="attribute-axis" count="2"/>
-            <key name="leading-lone-slash" count="3"/>
-            <key name="PathExpr" count="9"/>
-            <key name="striding" count="4"/>
-            <key name="grounded-variable" count="1"/>
-            <key name="empty-sequence" count="1"/>
-            <key name="fn:string" count="1"/>
-            <key name="collation-argument" count="5"/>
-            <key name="striding-then-grounded" count="3"/>
-            <key name="leading-double-slash" count="3"/>
-            <key name="fn:outermost" count="3"/>
-            <key name="crawling-then-striding" count="3"/>
-            <key name="FOCH0002" count="4"/>
-            <key name="xsl:try" count="2"/>
-            <key name="error-handling" count="2"/>
-            <key name="specific-catch-clause" count="2"/>
-         </keywords>
+         <pass1 count="0"/>
+         <pass2 count="9"/>
       </test-set>
       <test-set total-tests="44" name="sf-insert-before" description="insert-before() function with streaming">
          <xslt3-specific count="44"/>
@@ -2434,725 +1793,276 @@
          <xslt3-specific count="38"/>
          <xslt2-specific count="0"/>
          <xslt-other count="0"/>
-         <keywords use-when="false()">
-            <key name="striding" count="13"/>
-            <key name="PathExpr" count="38"/>
-            <key name="motionless-predicate" count="2"/>
-            <key name="positional-predicate" count="4"/>
-            <key name="fn:position" count="3"/>
-            <key name="striding-then-grounded" count="17"/>
-            <key name="predicate" count="4"/>
-            <key name="fn:data" count="3"/>
-            <key name="childless-nodes" count="1"/>
-            <key name="text-nodes" count="1"/>
-            <key name="fn:number" count="6"/>
-            <key name="empty-sequence" count="2"/>
-            <key name="ParenthesizedExpr" count="7"/>
-            <key name="mixed-posture" count="1"/>
-            <key name="fn:tail" count="1"/>
-            <key name="ForExpr" count="1"/>
-            <key name="LetExpr" count="1"/>
-            <key name="leading-double-slash" count="8"/>
-            <key name="fn:outermost" count="7"/>
-            <key name="crawling-then-striding" count="7"/>
-            <key name="SimpleMapExpr" count="4"/>
-            <key name="MultiplicativeExpr" count="1"/>
-            <key name="attribute-axis" count="6"/>
-            <key name="fn:copy-of" count="1"/>
-            <key name="striding-then-climbing" count="2"/>
-            <key name="xs:decimal" count="3"/>
-            <key name="climbing" count="2"/>
-            <key name="AdditiveExpr" count="1"/>
-            <key name="UnaryExpr" count="1"/>
-            <key name="xs:NMTOKENS" count="2"/>
-            <key name="ContextItemExpr" count="6"/>
-            <key name="xs:date" count="2"/>
-            <key name="fn:string" count="1"/>
-            <key name="AxisStep" count="1"/>
-            <key name="FORG0006" count="2"/>
-            <key name="xsl:try" count="3"/>
-            <key name="error-handling" count="3"/>
-            <key name="specific-catch-clause" count="3"/>
-            <key name="leading-lone-slash" count="1"/>
-            <key name="crawling-then-climbing" count="1"/>
-            <key name="parent-axis" count="1"/>
-            <key name="collation-argument" count="6"/>
-            <key name="FOCH0002" count="4"/>
-            <key name="consuming-predicate" count="2"/>
-            <key name="fn:last" count="1"/>
-            <key name="striding-then-roaming" count="2"/>
-            <key name="XTSE3430" count="2"/>
-            <key name="_IMPROVE:fix-description" count="2"/>
-            <key name="GeneralComp" count="1"/>
-         </keywords>
+         <pass1 count="0"/>
+         <pass2 count="38"/>
       </test-set>
       <test-set total-tests="38" name="sf-min" description="min() function with streaming">
          <xslt3-specific count="38"/>
          <xslt2-specific count="0"/>
          <xslt-other count="0"/>
-         <keywords use-when="false()">
-            <key name="striding" count="13"/>
-            <key name="PathExpr" count="38"/>
-            <key name="motionless-predicate" count="2"/>
-            <key name="positional-predicate" count="4"/>
-            <key name="fn:position" count="3"/>
-            <key name="striding-then-grounded" count="17"/>
-            <key name="predicate" count="4"/>
-            <key name="fn:data" count="3"/>
-            <key name="childless-nodes" count="1"/>
-            <key name="text-nodes" count="1"/>
-            <key name="fn:number" count="6"/>
-            <key name="empty-sequence" count="2"/>
-            <key name="ParenthesizedExpr" count="7"/>
-            <key name="mixed-posture" count="1"/>
-            <key name="fn:tail" count="1"/>
-            <key name="ForExpr" count="1"/>
-            <key name="LetExpr" count="1"/>
-            <key name="leading-double-slash" count="8"/>
-            <key name="fn:outermost" count="7"/>
-            <key name="crawling-then-striding" count="7"/>
-            <key name="SimpleMapExpr" count="4"/>
-            <key name="MultiplicativeExpr" count="1"/>
-            <key name="attribute-axis" count="6"/>
-            <key name="fn:copy-of" count="1"/>
-            <key name="striding-then-climbing" count="2"/>
-            <key name="xs:decimal" count="3"/>
-            <key name="climbing" count="2"/>
-            <key name="AdditiveExpr" count="1"/>
-            <key name="UnaryExpr" count="1"/>
-            <key name="xs:NMTOKENS" count="2"/>
-            <key name="ContextItemExpr" count="6"/>
-            <key name="xs:date" count="2"/>
-            <key name="fn:string" count="1"/>
-            <key name="AxisStep" count="1"/>
-            <key name="FORG0006" count="2"/>
-            <key name="xsl:try" count="3"/>
-            <key name="error-handling" count="3"/>
-            <key name="specific-catch-clause" count="3"/>
-            <key name="leading-lone-slash" count="1"/>
-            <key name="crawling-then-climbing" count="1"/>
-            <key name="parent-axis" count="1"/>
-            <key name="collation-argument" count="6"/>
-            <key name="FOCH0002" count="4"/>
-            <key name="consuming-predicate" count="2"/>
-            <key name="fn:last" count="1"/>
-            <key name="striding-then-roaming" count="2"/>
-            <key name="XTSE3430" count="2"/>
-            <key name="_IMPROVE:fix-description" count="2"/>
-            <key name="GeneralComp" count="1"/>
-         </keywords>
+         <pass1 count="0"/>
+         <pass2 count="38"/>
       </test-set>
       <test-set total-tests="27" name="sf-not" description="not() function with streaming.">
-         <xslt3-specific count="27"/>
+         <xslt3-specific count="29"/>
          <xslt2-specific count="0"/>
          <xslt-other count="0"/>
-         <keywords use-when="false()">
-            <key name="PathExpr" count="26"/>
-            <key name="crawling" count="3"/>
-            <key name="motionless-predicate" count="6"/>
-            <key name="striding" count="13"/>
-            <key name="ancestor-axis" count="2"/>
-            <key name="climbing" count="2"/>
-            <key name="SimpleMapExpr" count="4"/>
-            <key name="striding-then-grounded" count="2"/>
-            <key name="attribute-axis" count="3"/>
-            <key name="striding-then-climbing" count="3"/>
-            <key name="namespace-axis" count="1"/>
-            <key name="AxisStep" count="1"/>
-            <key name="positional-predicate" count="5"/>
-            <key name="striding-then-crawling" count="1"/>
-            <key name="UnionExpr" count="2"/>
-            <key name="crawling-then-crawling" count="1"/>
-            <key name="childless-nodes" count="2"/>
-            <key name="RangeExpr" count="1"/>
-            <key name="grounded" count="1"/>
-            <key name="leading-double-slash" count="1"/>
-            <key name="text-nodes" count="1"/>
-            <key name="fn:remove" count="3"/>
-            <key name="fn:data" count="1"/>
-            <key name="leading-lone-slash" count="2"/>
-            <key name="empty-sequence" count="4"/>
-            <key name="ParenthesizedExpr" count="6"/>
-            <key name="_IMPROVE:fix-description" count="1"/>
-            <key name="mixed-posture" count="5"/>
-            <key name="fn:base-uri" count="1"/>
-            <key name="fn:not" count="4"/>
-            <key name="FORG0006" count="2"/>
-            <key name="xsl:try" count="2"/>
-            <key name="error-handling" count="2"/>
-            <key name="specific-catch-clause" count="2"/>
-            <key name="FORG0001" count="1"/>
-            <key name="consuming-predicate" count="1"/>
-            <key name="XTSE3430" count="1"/>
-         </keywords>
+         <pass1 count="0"/>
+         <pass2 count="27"/>
       </test-set>
       <test-set total-tests="30" name="sf-one-or-more" description="one-or-more() function with streaming">
          <xslt3-specific count="30"/>
          <xslt2-specific count="0"/>
          <xslt-other count="0"/>
-         <keywords use-when="false()">
-            <key name="striding-then-grounded" count="3"/>
-            <key name="leading-lone-slash" count="25"/>
-            <key name="PathExpr" count="30"/>
-            <key name="fn:data" count="3"/>
-            <key name="fn:copy-of" count="1"/>
-            <key name="fn:tokenize" count="1"/>
-            <key name="ContextItemExpr" count="2"/>
-            <key name="SimpleMapExpr" count="7"/>
-            <key name="striding" count="12"/>
-            <key name="fn:count" count="3"/>
-            <key name="fn:sum" count="1"/>
-            <key name="motionless-predicate" count="1"/>
-            <key name="fn:position" count="2"/>
-            <key name="AdditiveExpr" count="3"/>
-            <key name="AxisStep" count="2"/>
-            <key name="positional-predicate" count="8"/>
-            <key name="xsl:for-each" count="1"/>
-            <key name="fn:name" count="3"/>
-            <key name="xsl:apply-templates" count="1"/>
-            <key name="xsl:copy-of" count="1"/>
-            <key name="leading-double-slash" count="5"/>
-            <key name="crawling" count="2"/>
-            <key name="text-nodes" count="2"/>
-            <key name="childless-nodes" count="2"/>
-            <key name="striding-then-crawling" count="2"/>
-            <key name="striding-then-climbing" count="2"/>
-            <key name="ancestor-axis" count="3"/>
-            <key name="climbing-then-climbing" count="3"/>
-            <key name="attribute-axis" count="4"/>
-            <key name="ancestor-or-self-axis" count="3"/>
-            <key name="climbing" count="2"/>
-            <key name="crawling-then-climbing" count="3"/>
-            <key name="grounded" count="2"/>
-            <key name="FORG0004" count="8"/>
-            <key name="empty-sequence" count="4"/>
-            <key name="parent-axis" count="2"/>
-            <key name="xsl:try" count="4"/>
-            <key name="error-handling" count="4"/>
-            <key name="specific-catch-clause" count="4"/>
-         </keywords>
+         <pass1 count="0"/>
+         <pass2 count="30"/>
       </test-set>
       <test-set total-tests="26" name="sf-outermost" description="outermost() function with streaming">
          <xslt3-specific count="26"/>
          <xslt2-specific count="0"/>
          <xslt-other count="0"/>
-         <keywords use-when="false()">
-            <key name="striding-then-grounded" count="3"/>
-            <key name="leading-lone-slash" count="19"/>
-            <key name="PathExpr" count="26"/>
-            <key name="fn:data" count="1"/>
-            <key name="fn:copy-of" count="1"/>
-            <key name="fn:tokenize" count="1"/>
-            <key name="ContextItemExpr" count="2"/>
-            <key name="SimpleMapExpr" count="7"/>
-            <key name="striding" count="9"/>
-            <key name="fn:count" count="3"/>
-            <key name="fn:sum" count="1"/>
-            <key name="motionless-predicate" count="1"/>
-            <key name="fn:position" count="2"/>
-            <key name="AdditiveExpr" count="3"/>
-            <key name="AxisStep" count="2"/>
-            <key name="positional-predicate" count="8"/>
-            <key name="xsl:for-each" count="1"/>
-            <key name="fn:name" count="3"/>
-            <key name="xsl:apply-templates" count="1"/>
-            <key name="xsl:copy-of" count="1"/>
-            <key name="crawling-then-striding" count="6"/>
-            <key name="leading-double-slash" count="7"/>
-            <key name="text-nodes" count="2"/>
-            <key name="childless-nodes" count="2"/>
-            <key name="striding-then-crawling" count="2"/>
-            <key name="crawling" count="1"/>
-            <key name="striding-then-climbing" count="4"/>
-            <key name="ancestor-axis" count="3"/>
-            <key name="climbing-then-climbing" count="3"/>
-            <key name="attribute-axis" count="4"/>
-            <key name="ancestor-or-self-axis" count="3"/>
-            <key name="climbing" count="2"/>
-            <key name="crawling-then-climbing" count="1"/>
-            <key name="fn:outermost" count="4"/>
-         </keywords>
+         <pass1 count="0"/>
+         <pass2 count="26"/>
       </test-set>
       <test-set total-tests="22" name="sf-remove" description="remove() function with streaming">
          <xslt3-specific count="22"/>
          <xslt2-specific count="0"/>
          <xslt-other count="0"/>
-         <keywords use-when="false()">
-            <key name="striding-then-grounded" count="3"/>
-            <key name="leading-lone-slash" count="19"/>
-            <key name="PathExpr" count="22"/>
-            <key name="fn:data" count="1"/>
-            <key name="fn:copy-of" count="1"/>
-            <key name="fn:tokenize" count="1"/>
-            <key name="ContextItemExpr" count="2"/>
-            <key name="SimpleMapExpr" count="7"/>
-            <key name="striding" count="9"/>
-            <key name="fn:count" count="3"/>
-            <key name="fn:sum" count="1"/>
-            <key name="motionless-predicate" count="1"/>
-            <key name="fn:position" count="2"/>
-            <key name="AdditiveExpr" count="3"/>
-            <key name="AxisStep" count="2"/>
-            <key name="positional-predicate" count="8"/>
-            <key name="xsl:for-each" count="1"/>
-            <key name="fn:name" count="3"/>
-            <key name="xsl:apply-templates" count="1"/>
-            <key name="xsl:copy-of" count="1"/>
-            <key name="leading-double-slash" count="3"/>
-            <key name="crawling" count="2"/>
-            <key name="text-nodes" count="2"/>
-            <key name="childless-nodes" count="2"/>
-            <key name="striding-then-crawling" count="2"/>
-            <key name="striding-then-climbing" count="2"/>
-            <key name="ancestor-axis" count="3"/>
-            <key name="climbing-then-climbing" count="3"/>
-            <key name="attribute-axis" count="2"/>
-            <key name="ancestor-or-self-axis" count="3"/>
-            <key name="climbing" count="2"/>
-            <key name="crawling-then-climbing" count="1"/>
-         </keywords>
+         <pass1 count="0"/>
+         <pass2 count="22"/>
       </test-set>
       <test-set total-tests="2" name="sf-reverse" description="reverse() function with streaming">
          <xslt3-specific count="2"/>
          <xslt2-specific count="0"/>
          <xslt-other count="0"/>
-         <keywords use-when="false()">
-            <key name="fn:snapshot" count="1"/>
-            <key name="striding" count="1"/>
-            <key name="leading-lone-slash" count="2"/>
-            <key name="PathExpr" count="2"/>
-            <key name="XTSE3430" count="1"/>
-            <key name="striding-then-crawling" count="1"/>
-         </keywords>
+         <pass1 count="0"/>
+         <pass2 count="2"/>
       </test-set>
       <test-set total-tests="24" name="sf-snapshot" description="Tests the snapshot() function under streaming">
          <xslt3-specific count="24"/>
          <xslt2-specific count="0"/>
          <xslt-other count="0"/>
-         <keywords use-when="false()"/>
+         <pass1 count="0"/>
+         <pass2 count="89"/>
       </test-set>
       <test-set total-tests="3" name="sf-string-join" description="Tests the xsl:stream instruction with string-join()">
          <xslt3-specific count="3"/>
          <xslt2-specific count="0"/>
          <xslt-other count="0"/>
-         <keywords use-when="false()">
-            <key name="striding" count="2"/>
-            <key name="leading-lone-slash" count="3"/>
-            <key name="PathExpr" count="3"/>
-            <key name="striding-then-climbing" count="1"/>
-            <key name="positional-predicate" count="1"/>
-            <key name="SimpleMapExpr" count="1"/>
-            <key name="RangeExpr" count="1"/>
-         </keywords>
+         <pass1 count="0"/>
+         <pass2 count="3"/>
       </test-set>
       <test-set total-tests="44" name="sf-subsequence" description="subsequence() function with streaming">
          <xslt3-specific count="44"/>
          <xslt2-specific count="0"/>
          <xslt-other count="0"/>
-         <keywords use-when="false()">
-            <key name="striding-then-grounded" count="6"/>
-            <key name="leading-lone-slash" count="38"/>
-            <key name="PathExpr" count="44"/>
-            <key name="fn:data" count="2"/>
-            <key name="fn:copy-of" count="2"/>
-            <key name="fn:tokenize" count="2"/>
-            <key name="ContextItemExpr" count="4"/>
-            <key name="SimpleMapExpr" count="14"/>
-            <key name="striding" count="18"/>
-            <key name="fn:count" count="6"/>
-            <key name="fn:sum" count="2"/>
-            <key name="motionless-predicate" count="2"/>
-            <key name="fn:position" count="4"/>
-            <key name="AdditiveExpr" count="6"/>
-            <key name="AxisStep" count="4"/>
-            <key name="positional-predicate" count="16"/>
-            <key name="xsl:for-each" count="2"/>
-            <key name="fn:name" count="6"/>
-            <key name="xsl:apply-templates" count="2"/>
-            <key name="xsl:copy-of" count="2"/>
-            <key name="leading-double-slash" count="6"/>
-            <key name="crawling" count="4"/>
-            <key name="text-nodes" count="4"/>
-            <key name="childless-nodes" count="4"/>
-            <key name="striding-then-crawling" count="4"/>
-            <key name="striding-then-climbing" count="4"/>
-            <key name="ancestor-axis" count="6"/>
-            <key name="climbing-then-climbing" count="6"/>
-            <key name="attribute-axis" count="4"/>
-            <key name="ancestor-or-self-axis" count="6"/>
-            <key name="climbing" count="4"/>
-            <key name="crawling-then-climbing" count="2"/>
-         </keywords>
+         <pass1 count="0"/>
+         <pass2 count="44"/>
       </test-set>
       <test-set total-tests="35" name="sf-sum" description="sum() function with streaming">
          <xslt3-specific count="35"/>
          <xslt2-specific count="0"/>
          <xslt-other count="0"/>
-         <keywords use-when="false()">
-            <key name="striding" count="12"/>
-            <key name="PathExpr" count="34"/>
-            <key name="motionless-predicate" count="2"/>
-            <key name="positional-predicate" count="4"/>
-            <key name="fn:position" count="3"/>
-            <key name="striding-then-grounded" count="12"/>
-            <key name="predicate" count="4"/>
-            <key name="fn:data" count="3"/>
-            <key name="childless-nodes" count="1"/>
-            <key name="text-nodes" count="1"/>
-            <key name="fn:number" count="5"/>
-            <key name="empty-sequence" count="2"/>
-            <key name="ParenthesizedExpr" count="5"/>
-            <key name="mixed-posture" count="1"/>
-            <key name="fn:tail" count="1"/>
-            <key name="ForExpr" count="1"/>
-            <key name="LetExpr" count="1"/>
-            <key name="leading-double-slash" count="10"/>
-            <key name="fn:outermost" count="7"/>
-            <key name="crawling-then-striding" count="7"/>
-            <key name="SimpleMapExpr" count="3"/>
-            <key name="MultiplicativeExpr" count="1"/>
-            <key name="attribute-axis" count="6"/>
-            <key name="fn:copy-of" count="1"/>
-            <key name="striding-then-climbing" count="2"/>
-            <key name="xs:decimal" count="3"/>
-            <key name="climbing" count="2"/>
-            <key name="AdditiveExpr" count="1"/>
-            <key name="UnaryExpr" count="1"/>
-            <key name="xs:NMTOKENS" count="2"/>
-            <key name="ContextItemExpr" count="5"/>
-            <key name="leading-lone-slash" count="1"/>
-            <key name="crawling-then-climbing" count="1"/>
-            <key name="parent-axis" count="1"/>
-            <key name="collation-argument" count="6"/>
-            <key name="FOCH0002" count="4"/>
-            <key name="xsl:try" count="2"/>
-            <key name="error-handling" count="2"/>
-            <key name="specific-catch-clause" count="2"/>
-            <key name="consuming-predicate" count="2"/>
-            <key name="fn:last" count="1"/>
-            <key name="striding-then-roaming" count="2"/>
-            <key name="XTSE3430" count="2"/>
-            <key name="_IMPROVE:fix-description" count="2"/>
-            <key name="GeneralComp" count="1"/>
-         </keywords>
+         <pass1 count="0"/>
+         <pass2 count="38"/>
       </test-set>
       <test-set total-tests="22" name="sf-tail" description="tail() function with streaming">
          <xslt3-specific count="22"/>
          <xslt2-specific count="0"/>
          <xslt-other count="0"/>
-         <keywords use-when="false()">
-            <key name="striding-then-grounded" count="3"/>
-            <key name="leading-lone-slash" count="19"/>
-            <key name="PathExpr" count="22"/>
-            <key name="fn:data" count="1"/>
-            <key name="fn:copy-of" count="1"/>
-            <key name="fn:tokenize" count="1"/>
-            <key name="ContextItemExpr" count="2"/>
-            <key name="SimpleMapExpr" count="7"/>
-            <key name="striding" count="9"/>
-            <key name="fn:count" count="3"/>
-            <key name="fn:sum" count="1"/>
-            <key name="motionless-predicate" count="1"/>
-            <key name="fn:position" count="2"/>
-            <key name="AdditiveExpr" count="3"/>
-            <key name="AxisStep" count="2"/>
-            <key name="positional-predicate" count="8"/>
-            <key name="xsl:for-each" count="1"/>
-            <key name="fn:name" count="3"/>
-            <key name="xsl:apply-templates" count="1"/>
-            <key name="xsl:copy-of" count="1"/>
-            <key name="leading-double-slash" count="3"/>
-            <key name="crawling" count="2"/>
-            <key name="text-nodes" count="2"/>
-            <key name="childless-nodes" count="2"/>
-            <key name="striding-then-crawling" count="2"/>
-            <key name="striding-then-climbing" count="2"/>
-            <key name="ancestor-axis" count="3"/>
-            <key name="climbing-then-climbing" count="3"/>
-            <key name="attribute-axis" count="2"/>
-            <key name="ancestor-or-self-axis" count="3"/>
-            <key name="climbing" count="2"/>
-            <key name="crawling-then-climbing" count="1"/>
-         </keywords>
+         <pass1 count="0"/>
+         <pass2 count="22"/>
       </test-set>
       <test-set total-tests="22" name="sf-trace" description="trace() function with streaming">
          <xslt3-specific count="22"/>
          <xslt2-specific count="0"/>
          <xslt-other count="0"/>
-         <keywords use-when="false()">
-            <key name="striding-then-grounded" count="3"/>
-            <key name="leading-lone-slash" count="19"/>
-            <key name="PathExpr" count="22"/>
-            <key name="fn:data" count="1"/>
-            <key name="fn:copy-of" count="1"/>
-            <key name="fn:tokenize" count="1"/>
-            <key name="ContextItemExpr" count="2"/>
-            <key name="SimpleMapExpr" count="7"/>
-            <key name="striding" count="9"/>
-            <key name="fn:count" count="3"/>
-            <key name="fn:sum" count="1"/>
-            <key name="motionless-predicate" count="1"/>
-            <key name="fn:position" count="2"/>
-            <key name="AdditiveExpr" count="3"/>
-            <key name="AxisStep" count="2"/>
-            <key name="positional-predicate" count="8"/>
-            <key name="xsl:for-each" count="1"/>
-            <key name="fn:name" count="3"/>
-            <key name="xsl:apply-templates" count="1"/>
-            <key name="xsl:copy-of" count="1"/>
-            <key name="crawling" count="2"/>
-            <key name="leading-double-slash" count="3"/>
-            <key name="text-nodes" count="2"/>
-            <key name="childless-nodes" count="2"/>
-            <key name="striding-then-crawling" count="2"/>
-            <key name="striding-then-climbing" count="2"/>
-            <key name="ancestor-axis" count="3"/>
-            <key name="climbing-then-climbing" count="3"/>
-            <key name="attribute-axis" count="2"/>
-            <key name="ancestor-or-self-axis" count="3"/>
-            <key name="climbing" count="2"/>
-            <key name="crawling-then-climbing" count="1"/>
-         </keywords>
+         <pass1 count="0"/>
+         <pass2 count="22"/>
       </test-set>
       <test-set total-tests="22" name="sf-unordered" description="unordered() function with streaming">
          <xslt3-specific count="22"/>
          <xslt2-specific count="0"/>
          <xslt-other count="0"/>
-         <keywords use-when="false()">
-            <key name="striding-then-grounded" count="3"/>
-            <key name="leading-lone-slash" count="19"/>
-            <key name="PathExpr" count="22"/>
-            <key name="fn:data" count="1"/>
-            <key name="fn:copy-of" count="1"/>
-            <key name="fn:tokenize" count="1"/>
-            <key name="ContextItemExpr" count="2"/>
-            <key name="SimpleMapExpr" count="7"/>
-            <key name="striding" count="9"/>
-            <key name="fn:count" count="3"/>
-            <key name="fn:sum" count="1"/>
-            <key name="motionless-predicate" count="1"/>
-            <key name="fn:position" count="2"/>
-            <key name="AdditiveExpr" count="3"/>
-            <key name="AxisStep" count="2"/>
-            <key name="positional-predicate" count="8"/>
-            <key name="xsl:for-each" count="1"/>
-            <key name="fn:name" count="3"/>
-            <key name="xsl:apply-templates" count="1"/>
-            <key name="xsl:copy-of" count="1"/>
-            <key name="crawling" count="2"/>
-            <key name="leading-double-slash" count="3"/>
-            <key name="text-nodes" count="2"/>
-            <key name="childless-nodes" count="2"/>
-            <key name="striding-then-crawling" count="2"/>
-            <key name="striding-then-climbing" count="2"/>
-            <key name="ancestor-axis" count="3"/>
-            <key name="climbing-then-climbing" count="3"/>
-            <key name="attribute-axis" count="2"/>
-            <key name="ancestor-or-self-axis" count="3"/>
-            <key name="climbing" count="2"/>
-            <key name="crawling-then-climbing" count="1"/>
-         </keywords>
+         <pass1 count="0"/>
+         <pass2 count="22"/>
+      </test-set>
+      <test-set total-tests="10"
+                name="sf-unparsed-entity-uri"
+                description="Tests the unparsed-entity-uri and unparsed-entity-public-id functions under streaming">
+         <xslt3-specific count="4"/>
+         <xslt2-specific count="4"/>
+         <xslt-other count="0"/>
+         <pass1 count="0"/>
+         <pass2 count="0"/>
       </test-set>
       <test-set total-tests="7" name="sf-zero-or-one" description="zero-or-one() function with streaming">
          <xslt3-specific count="7"/>
          <xslt2-specific count="0"/>
          <xslt-other count="0"/>
-         <keywords use-when="false()">
-            <key name="striding-then-grounded" count="4"/>
-            <key name="leading-lone-slash" count="5"/>
-            <key name="fn:copy-of" count="4"/>
-            <key name="PathExpr" count="7"/>
-            <key name="predicate" count="2"/>
-            <key name="striding" count="2"/>
-            <key name="cardinality-of-one" count="3"/>
-            <key name="motionless-predicate" count="2"/>
-            <key name="empty-sequence" count="1"/>
-            <key name="FORG0003" count="1"/>
-            <key name="xsl:try" count="1"/>
-            <key name="error-handling" count="1"/>
-            <key name="specific-catch-clause" count="1"/>
-         </keywords>
+         <pass1 count="0"/>
+         <pass2 count="7"/>
       </test-set>
       <test-set total-tests="3" name="si-apply-imports" description="xsl:next-match with streaming">
          <xslt3-specific count="3"/>
          <xslt2-specific count="0"/>
          <xslt-other count="0"/>
-         <keywords use-when="false()">
-            <key name="xsl:import" count="3"/>
-            <key name="xsl:with-param" count="3"/>
-            <key name="tunnel-parameter" count="3"/>
-            <key name="xsl:apply-templates" count="3"/>
-            <key name="fn:outermost" count="3"/>
-            <key name="crawling-then-striding" count="3"/>
-            <key name="PathExpr" count="3"/>
-            <key name="complex-use-case" count="3"/>
-            <key name="leading-lone-slash" count="2"/>
-         </keywords>
+         <pass1 count="0"/>
+         <pass2 count="3"/>
       </test-set>
       <test-set total-tests="5" name="si-apply-templates" description="Tests xsl:stream instruction introduced in XSLT 3.0 with xsl:apply-templates.">
          <xslt3-specific count="5"/>
          <xslt2-specific count="0"/>
          <xslt-other count="0"/>
-         <keywords use-when="false()">
-            <key name="motionless" count="2"/>
-            <key name="complex-use-case" count="2"/>
-            <key name="on-no-match-attribute" count="2"/>
-            <key name="shallow-copy" count="2"/>
-            <key name="climbing-childless" count="2"/>
-            <key name="PathExpr" count="2"/>
-            <key name="ancestor-axis" count="2"/>
-            <key name="climbing" count="2"/>
-            <key name="_IMPROVE:equal-to-previous-test" count="1"/>
-            <key name="leading-lone-slash" count="1"/>
-         </keywords>
+         <pass1 count="0"/>
+         <pass2 count="6"/>
       </test-set>
       <test-set total-tests="45" name="si-attribute" description="xsl:attribute instruction with streaming">
          <xslt3-specific count="45"/>
          <xslt2-specific count="0"/>
          <xslt-other count="0"/>
-         <keywords use-when="false()"/>
+         <pass1 count="0"/>
+         <pass2 count="17"/>
       </test-set>
       <test-set total-tests="2" name="si-call-template" description="xsl:call-template instruction with streaming">
          <xslt3-specific count="2"/>
          <xslt2-specific count="0"/>
          <xslt-other count="0"/>
-         <keywords use-when="false()"/>
+         <pass1 count="0"/>
+         <pass2 count="24"/>
       </test-set>
       <test-set total-tests="8" name="si-choose" description="xsl:choose and other conditional expressions with streaming">
-         <xslt3-specific count="8"/>
+         <xslt3-specific count="10"/>
          <xslt2-specific count="0"/>
          <xslt-other count="0"/>
-         <keywords use-when="false()"/>
+         <pass1 count="0"/>
+         <pass2 count="0"/>
       </test-set>
       <test-set total-tests="1" name="si-conditional-content" description="Tests xsl:stream instruction introduced in XSLT 3.0 with xsl:conditional-content.">
          <xslt3-specific count="1"/>
          <xslt2-specific count="0"/>
          <xslt-other count="0"/>
-         <keywords use-when="false()"/>
+         <pass1 count="0"/>
+         <pass2 count="45"/>
       </test-set>
       <test-set total-tests="62" name="si-copy" description="xsl:copy with streaming">
          <xslt3-specific count="62"/>
          <xslt2-specific count="0"/>
          <xslt-other count="0"/>
-         <keywords use-when="false()"/>
+         <pass1 count="0"/>
+         <pass2 count="8"/>
       </test-set>
       <test-set total-tests="44" name="si-copy-of" description="xsl:copy-of with streaming">
          <xslt3-specific count="44"/>
          <xslt2-specific count="0"/>
          <xslt-other count="0"/>
-         <keywords use-when="false()"/>
+         <pass1 count="0"/>
+         <pass2 count="61"/>
       </test-set>
       <test-set total-tests="39" name="si-document" description="xsl:document with streaming">
          <xslt3-specific count="39"/>
          <xslt2-specific count="0"/>
          <xslt-other count="0"/>
-         <keywords use-when="false()"/>
+         <pass1 count="0"/>
+         <pass2 count="20"/>
       </test-set>
       <test-set total-tests="92" name="si-element" description="xsl:element with streaming">
          <xslt3-specific count="92"/>
          <xslt2-specific count="0"/>
          <xslt-other count="0"/>
-         <keywords use-when="false()"/>
+         <pass1 count="0"/>
+         <pass2 count="43"/>
       </test-set>
       <test-set total-tests="15" name="si-for-each" description="xsl:for-each with streaming">
          <xslt3-specific count="15"/>
          <xslt2-specific count="0"/>
          <xslt-other count="0"/>
-         <keywords use-when="false()"/>
+         <pass1 count="0"/>
+         <pass2 count="92"/>
       </test-set>
       <test-set total-tests="68" name="si-for-each-group" description="xsl:for-each with streaming">
          <xslt3-specific count="68"/>
          <xslt2-specific count="0"/>
          <xslt-other count="0"/>
-         <keywords use-when="false()"/>
+         <pass1 count="0"/>
+         <pass2 count="39"/>
       </test-set>
       <test-set total-tests="11" name="si-fork" description="xsl:value-of instruction with streaming">
          <xslt3-specific count="11"/>
          <xslt2-specific count="0"/>
          <xslt-other count="0"/>
-         <keywords use-when="false()">
-            <key name="multiple-xsl-sequence-children" count="11"/>
-            <key name="fn:avg" count="2"/>
-            <key name="PathExpr" count="3"/>
-            <key name="xsl:value-of" count="2"/>
-            <key name="striding" count="7"/>
-            <key name="consuming" count="8"/>
-            <key name="xsl:result-document" count="1"/>
-            <key name="motionless-predicate" count="1"/>
-            <key name="fn:number" count="1"/>
-            <key name="motionless" count="2"/>
-            <key name="lre" count="1"/>
-            <key name="literals" count="1"/>
-            <key name="xsl:for-each" count="1"/>
-            <key name="AxisStep" count="4"/>
-            <key name="mixed-sweep" count="1"/>
-            <key name="xsl:try" count="1"/>
-            <key name="fn:outermost" count="2"/>
-            <key name="crawling-then-striding" count="2"/>
-            <key name="XPTY0004" count="1"/>
-            <key name="XTSE3430" count="2"/>
-            <key name="illegally-returning-streamed-nodes" count="2"/>
-         </keywords>
+         <pass1 count="0"/>
+         <pass2 count="89"/>
       </test-set>
       <test-set total-tests="25" name="si-iterate" description="xsl:iterate with streaming">
          <xslt3-specific count="25"/>
          <xslt2-specific count="0"/>
          <xslt-other count="0"/>
-         <keywords use-when="false()"/>
+         <pass1 count="0"/>
+         <pass2 count="27"/>
       </test-set>
       <test-set total-tests="12" name="si-map" description="xsl:map with streaming">
          <xslt3-specific count="12"/>
          <xslt2-specific count="0"/>
          <xslt-other count="0"/>
-         <keywords use-when="false()"/>
+         <pass1 count="0"/>
+         <pass2 count="11"/>
       </test-set>
       <test-set total-tests="6" name="si-merge" description="xsl:merge instruction with streaming">
          <xslt3-specific count="6"/>
          <xslt2-specific count="0"/>
          <xslt-other count="0"/>
-         <keywords use-when="false()"/>
+         <pass1 count="0"/>
+         <pass2 count="7"/>
       </test-set>
       <test-set total-tests="2" name="si-next-match" description="xsl:next-match with streaming">
          <xslt3-specific count="2"/>
          <xslt2-specific count="0"/>
          <xslt-other count="0"/>
-         <keywords use-when="false()"/>
+         <pass1 count="0"/>
+         <pass2 count="2"/>
       </test-set>
       <test-set total-tests="40" name="si-result-document" description="Tests xsl:stream instruction with xsl:result-document.">
          <xslt3-specific count="40"/>
          <xslt2-specific count="0"/>
          <xslt-other count="0"/>
-         <keywords use-when="false()"/>
+         <pass1 count="0"/>
+         <pass2 count="2"/>
       </test-set>
       <test-set total-tests="46" name="si-try" description="xsl:try/xsl:catch instruction with streaming">
          <xslt3-specific count="46"/>
          <xslt2-specific count="0"/>
          <xslt-other count="0"/>
-         <keywords use-when="false()"/>
+         <pass1 count="0"/>
+         <pass2 count="41"/>
       </test-set>
       <test-set total-tests="36" name="si-value-of" description="xsl:value-of instruction with streaming">
          <xslt3-specific count="36"/>
          <xslt2-specific count="0"/>
          <xslt-other count="0"/>
-         <keywords use-when="false()"/>
+         <pass1 count="0"/>
+         <pass2 count="33"/>
       </test-set>
       <test-set total-tests="91" name="si-LRE" description="Literal result elements with streaming">
          <xslt3-specific count="91"/>
          <xslt2-specific count="0"/>
          <xslt-other count="0"/>
-         <keywords use-when="false()"/>
+         <pass1 count="0"/>
+         <pass2 count="2"/>
       </test-set>
       <test-set total-tests="3" name="su-unclassified" description="Streamable stylesheet functions: category &#x22;unclassified&#x22;">
          <xslt3-specific count="3"/>
          <xslt2-specific count="0"/>
          <xslt-other count="0"/>
-         <keywords use-when="false()"/>
+         <pass1 count="0"/>
+         <pass2 count="35"/>
       </test-set>
       <test-set total-tests="8" name="sx-ArithmeticExpr" description="Arithmetic expressions with streaming">
          <xslt3-specific count="8"/>
          <xslt2-specific count="0"/>
          <xslt-other count="0"/>
-         <keywords use-when="false()"/>
+         <pass1 count="0"/>
+         <pass2 count="69"/>
       </test-set>
       <test-set total-tests="46" name="sx-CommaExpr" description="comma expression function with streaming">
          <xslt3-specific count="46"/>
@@ -3199,465 +2109,106 @@
          <xslt3-specific count="5"/>
          <xslt2-specific count="0"/>
          <xslt-other count="0"/>
-         <keywords use-when="false()"/>
+         <pass1 count="0"/>
+         <pass2 count="43"/>
       </test-set>
       <test-set total-tests="47" name="sx-exceptExpr" description="except expression function with streaming">
-         <xslt3-specific count="47"/>
+         <xslt3-specific count="49"/>
          <xslt2-specific count="0"/>
          <xslt-other count="0"/>
-         <keywords use-when="false()">
-            <key name="ParenthesizedExpr" count="41"/>
-            <key name="mixed-posture" count="40"/>
-            <key name="striding" count="16"/>
-            <key name="leading-lone-slash" count="29"/>
-            <key name="PathExpr&#xA;" count="21"/>
-            <key name="" count="328"/>
-            <key name="fn:count" count="6"/>
-            <key name="fn:sum" count="2"/>
-            <key name="motionless-predicate&#xA;" count="2"/>
-            <key name="fn:position" count="4"/>
-            <key name="PathExpr" count="20"/>
-            <key name="AdditiveExpr" count="6"/>
-            <key name="ContextItemExpr" count="2"/>
-            <key name="striding&#xA;" count="2"/>
-            <key name="SimpleMapExpr" count="12"/>
-            <key name="AxisStep" count="4"/>
-            <key name="positional-predicate" count="16"/>
-            <key name="xsl:for-each" count="2"/>
-            <key name="fn:name" count="4"/>
-            <key name="xsl:apply-templates&#xA;" count="2"/>
-            <key name="xsl:copy-of" count="2"/>
-            <key name="crawling" count="4"/>
-            <key name="leading-double-slash" count="4"/>
-            <key name="text-nodes" count="2"/>
-            <key name="childless-nodes&#xA;" count="2"/>
-            <key name="striding-then-crawling" count="4"/>
-            <key name="leading-lone-slash&#xA;" count="4"/>
-            <key name="childless-nodes" count="2"/>
-            <key name="text-nodes&#xA;" count="2"/>
-            <key name="striding-then-climbing" count="4"/>
-            <key name="ancestor-axis" count="6"/>
-            <key name="fn:name&#xA;" count="2"/>
-            <key name="climbing-then-climbing" count="6"/>
-            <key name="attribute-axis" count="6"/>
-            <key name="ancestor-or-self-axis" count="8"/>
-            <key name="climbing" count="4"/>
-            <key name="crawling-then-climbing" count="4"/>
-            <key name="leading-double-slash&#xA;" count="4"/>
-            <key name="striding-then-grounded" count="1"/>
-            <key name="fn:copy-of" count="1"/>
-         </keywords>
+         <pass1 count="0"/>
+         <pass2 count="47"/>
       </test-set>
       <test-set total-tests="2" name="sx-FunctionCall" description="Tests the xsl:stream instruction with calls to user-defined functions.">
          <xslt3-specific count="2"/>
          <xslt2-specific count="0"/>
          <xslt-other count="0"/>
-         <keywords use-when="false()">
-            <key name="_WRONG:revisit-after-streamable-functions" count="2"/>
-            <key name="striding" count="1"/>
-            <key name="leading-lone-slash" count="1"/>
-            <key name="PathExpr" count="2"/>
-            <key name="motionless-predicate" count="1"/>
-            <key name="crawling" count="1"/>
-            <key name="leading-double-slash" count="1"/>
-            <key name="SimpleMapExpr" count="1"/>
-         </keywords>
+         <pass1 count="0"/>
+         <pass2 count="2"/>
       </test-set>
       <test-set total-tests="52" name="sx-GeneralComp-eq" description="&#x22;=&#x22; operator with streaming">
          <xslt3-specific count="52"/>
          <xslt2-specific count="0"/>
          <xslt-other count="0"/>
-         <keywords use-when="false()">
-            <key name="GeneralComp" count="50"/>
-            <key name="striding" count="30"/>
-            <key name="PathExpr" count="52"/>
-            <key name="motionless-predicate" count="4"/>
-            <key name="positional-predicate" count="7"/>
-            <key name="fn:position" count="7"/>
-            <key name="striding-then-grounded" count="14"/>
-            <key name="predicate" count="6"/>
-            <key name="fn:data" count="4"/>
-            <key name="text-nodes" count="2"/>
-            <key name="childless-nodes" count="6"/>
-            <key name="fn:number" count="8"/>
-            <key name="empty-sequence" count="2"/>
-            <key name="ParenthesizedExpr" count="4"/>
-            <key name="_IMPROVE:fix-description" count="4"/>
-            <key name="fn:tail" count="2"/>
-            <key name="ForExpr" count="2"/>
-            <key name="leading-double-slash" count="2"/>
-            <key name="fn:outermost" count="2"/>
-            <key name="crawling-then-striding" count="2"/>
-            <key name="SimpleMapExpr" count="16"/>
-            <key name="climbing" count="2"/>
-            <key name="MultiplicativeExpr" count="2"/>
-            <key name="fn:copy-of" count="2"/>
-            <key name="striding-then-climbing" count="4"/>
-            <key name="attribute-axis" count="6"/>
-            <key name="ContextItemExpr" count="6"/>
-            <key name="xs:decimal" count="16"/>
-            <key name="AxisStep" count="4"/>
-            <key name="IfExpr" count="2"/>
-            <key name="AdditiveExpr" count="2"/>
-            <key name="xs:NMTOKENS" count="14"/>
-            <key name="leading-lone-slash" count="12"/>
-            <key name="variable-reference" count="4"/>
-            <key name="sequence-comparison" count="6"/>
-            <key name="FORG0001" count="2"/>
-            <key name="XPTY0004" count="2"/>
-            <key name="fn:last" count="1"/>
-            <key name="striding-then-roaming" count="2"/>
-            <key name="XTSE3430" count="2"/>
-            <key name="consuming-predicate" count="2"/>
-         </keywords>
+         <pass1 count="0"/>
+         <pass2 count="52"/>
       </test-set>
       <test-set total-tests="52" name="sx-GeneralComp-ge" description="&#x22;&gt;=&#x22; operator with streaming">
          <xslt3-specific count="52"/>
          <xslt2-specific count="0"/>
          <xslt-other count="0"/>
-         <keywords use-when="false()">
-            <key name="GeneralComp" count="50"/>
-            <key name="striding" count="30"/>
-            <key name="PathExpr" count="52"/>
-            <key name="motionless-predicate" count="4"/>
-            <key name="positional-predicate" count="7"/>
-            <key name="fn:position" count="7"/>
-            <key name="striding-then-grounded" count="14"/>
-            <key name="predicate" count="6"/>
-            <key name="fn:data" count="4"/>
-            <key name="text-nodes" count="2"/>
-            <key name="childless-nodes" count="6"/>
-            <key name="fn:number" count="8"/>
-            <key name="empty-sequence" count="2"/>
-            <key name="ParenthesizedExpr" count="4"/>
-            <key name="_IMPROVE:fix-description" count="4"/>
-            <key name="fn:tail" count="2"/>
-            <key name="ForExpr" count="2"/>
-            <key name="leading-double-slash" count="2"/>
-            <key name="fn:outermost" count="2"/>
-            <key name="crawling-then-striding" count="2"/>
-            <key name="SimpleMapExpr" count="16"/>
-            <key name="climbing" count="2"/>
-            <key name="MultiplicativeExpr" count="2"/>
-            <key name="fn:copy-of" count="2"/>
-            <key name="striding-then-climbing" count="4"/>
-            <key name="attribute-axis" count="6"/>
-            <key name="ContextItemExpr" count="6"/>
-            <key name="xs:decimal" count="16"/>
-            <key name="AxisStep" count="4"/>
-            <key name="IfExpr" count="2"/>
-            <key name="AdditiveExpr" count="2"/>
-            <key name="xs:NMTOKENS" count="14"/>
-            <key name="leading-lone-slash" count="12"/>
-            <key name="variable-reference" count="4"/>
-            <key name="sequence-comparison" count="6"/>
-            <key name="FORG0001" count="2"/>
-            <key name="XPTY0004" count="2"/>
-            <key name="fn:last" count="1"/>
-            <key name="striding-then-roaming" count="2"/>
-            <key name="XTSE3430" count="2"/>
-            <key name="consuming-predicate" count="2"/>
-         </keywords>
+         <pass1 count="0"/>
+         <pass2 count="52"/>
       </test-set>
       <test-set total-tests="52" name="sx-GeneralComp-gt" description="&#x22;&gt;&#x22; operator with streaming">
          <xslt3-specific count="52"/>
          <xslt2-specific count="0"/>
          <xslt-other count="0"/>
-         <keywords use-when="false()">
-            <key name="GeneralComp" count="50"/>
-            <key name="striding" count="30"/>
-            <key name="PathExpr" count="52"/>
-            <key name="motionless-predicate" count="4"/>
-            <key name="positional-predicate" count="7"/>
-            <key name="fn:position" count="7"/>
-            <key name="striding-then-grounded" count="14"/>
-            <key name="predicate" count="6"/>
-            <key name="fn:data" count="4"/>
-            <key name="text-nodes" count="2"/>
-            <key name="childless-nodes" count="6"/>
-            <key name="fn:number" count="8"/>
-            <key name="empty-sequence" count="2"/>
-            <key name="ParenthesizedExpr" count="4"/>
-            <key name="_IMPROVE:fix-description" count="4"/>
-            <key name="fn:tail" count="2"/>
-            <key name="ForExpr" count="2"/>
-            <key name="leading-double-slash" count="2"/>
-            <key name="fn:outermost" count="2"/>
-            <key name="crawling-then-striding" count="2"/>
-            <key name="SimpleMapExpr" count="16"/>
-            <key name="climbing" count="2"/>
-            <key name="MultiplicativeExpr" count="2"/>
-            <key name="fn:copy-of" count="2"/>
-            <key name="striding-then-climbing" count="4"/>
-            <key name="attribute-axis" count="6"/>
-            <key name="ContextItemExpr" count="6"/>
-            <key name="xs:decimal" count="16"/>
-            <key name="AxisStep" count="4"/>
-            <key name="IfExpr" count="2"/>
-            <key name="AdditiveExpr" count="2"/>
-            <key name="xs:NMTOKENS" count="14"/>
-            <key name="leading-lone-slash" count="12"/>
-            <key name="variable-reference" count="4"/>
-            <key name="sequence-comparison" count="6"/>
-            <key name="FORG0001" count="2"/>
-            <key name="XPTY0004" count="2"/>
-            <key name="fn:last" count="1"/>
-            <key name="striding-then-roaming" count="2"/>
-            <key name="XTSE3430" count="2"/>
-            <key name="consuming-predicate" count="2"/>
-         </keywords>
+         <pass1 count="0"/>
+         <pass2 count="52"/>
       </test-set>
       <test-set total-tests="52" name="sx-GeneralComp-le" description="&#x22;&lt;=&#x22; operator with streaming">
          <xslt3-specific count="52"/>
          <xslt2-specific count="0"/>
          <xslt-other count="0"/>
-         <keywords use-when="false()">
-            <key name="GeneralComp" count="50"/>
-            <key name="striding" count="30"/>
-            <key name="PathExpr" count="52"/>
-            <key name="motionless-predicate" count="4"/>
-            <key name="positional-predicate" count="7"/>
-            <key name="fn:position" count="7"/>
-            <key name="striding-then-grounded" count="14"/>
-            <key name="predicate" count="6"/>
-            <key name="fn:data" count="4"/>
-            <key name="text-nodes" count="2"/>
-            <key name="childless-nodes" count="6"/>
-            <key name="fn:number" count="8"/>
-            <key name="empty-sequence" count="2"/>
-            <key name="ParenthesizedExpr" count="4"/>
-            <key name="_IMPROVE:fix-description" count="4"/>
-            <key name="fn:tail" count="2"/>
-            <key name="ForExpr" count="2"/>
-            <key name="leading-double-slash" count="2"/>
-            <key name="fn:outermost" count="2"/>
-            <key name="crawling-then-striding" count="2"/>
-            <key name="SimpleMapExpr" count="16"/>
-            <key name="climbing" count="2"/>
-            <key name="MultiplicativeExpr" count="2"/>
-            <key name="fn:copy-of" count="2"/>
-            <key name="striding-then-climbing" count="4"/>
-            <key name="attribute-axis" count="6"/>
-            <key name="ContextItemExpr" count="6"/>
-            <key name="xs:decimal" count="16"/>
-            <key name="AxisStep" count="4"/>
-            <key name="IfExpr" count="2"/>
-            <key name="AdditiveExpr" count="2"/>
-            <key name="xs:NMTOKENS" count="14"/>
-            <key name="leading-lone-slash" count="12"/>
-            <key name="variable-reference" count="4"/>
-            <key name="sequence-comparison" count="6"/>
-            <key name="FORG0001" count="2"/>
-            <key name="XPTY0004" count="2"/>
-            <key name="fn:last" count="1"/>
-            <key name="striding-then-roaming" count="2"/>
-            <key name="XTSE3430" count="2"/>
-            <key name="consuming-predicate" count="2"/>
-         </keywords>
+         <pass1 count="0"/>
+         <pass2 count="52"/>
       </test-set>
       <test-set total-tests="52" name="sx-GeneralComp-lt" description="&#x22;&gt;&#x22; operator with streaming">
          <xslt3-specific count="52"/>
          <xslt2-specific count="0"/>
          <xslt-other count="0"/>
-         <keywords use-when="false()">
-            <key name="GeneralComp" count="50"/>
-            <key name="striding" count="30"/>
-            <key name="PathExpr" count="52"/>
-            <key name="motionless-predicate" count="4"/>
-            <key name="positional-predicate" count="7"/>
-            <key name="fn:position" count="7"/>
-            <key name="striding-then-grounded" count="14"/>
-            <key name="predicate" count="6"/>
-            <key name="fn:data" count="4"/>
-            <key name="text-nodes" count="2"/>
-            <key name="childless-nodes" count="6"/>
-            <key name="fn:number" count="8"/>
-            <key name="empty-sequence" count="2"/>
-            <key name="ParenthesizedExpr" count="4"/>
-            <key name="_IMPROVE:fix-description" count="4"/>
-            <key name="fn:tail" count="2"/>
-            <key name="ForExpr" count="2"/>
-            <key name="leading-double-slash" count="2"/>
-            <key name="fn:outermost" count="2"/>
-            <key name="crawling-then-striding" count="2"/>
-            <key name="SimpleMapExpr" count="16"/>
-            <key name="climbing" count="2"/>
-            <key name="MultiplicativeExpr" count="2"/>
-            <key name="fn:copy-of" count="2"/>
-            <key name="striding-then-climbing" count="4"/>
-            <key name="attribute-axis" count="6"/>
-            <key name="ContextItemExpr" count="6"/>
-            <key name="xs:decimal" count="16"/>
-            <key name="AxisStep" count="4"/>
-            <key name="IfExpr" count="2"/>
-            <key name="AdditiveExpr" count="2"/>
-            <key name="xs:NMTOKENS" count="14"/>
-            <key name="leading-lone-slash" count="12"/>
-            <key name="variable-reference" count="4"/>
-            <key name="sequence-comparison" count="6"/>
-            <key name="FORG0001" count="2"/>
-            <key name="XPTY0004" count="2"/>
-            <key name="fn:last" count="1"/>
-            <key name="striding-then-roaming" count="2"/>
-            <key name="XTSE3430" count="2"/>
-            <key name="consuming-predicate" count="2"/>
-         </keywords>
+         <pass1 count="0"/>
+         <pass2 count="52"/>
       </test-set>
       <test-set total-tests="52" name="sx-GeneralComp-ne" description="&#x22;!=&#x22; operator with streaming">
          <xslt3-specific count="52"/>
          <xslt2-specific count="0"/>
          <xslt-other count="0"/>
-         <keywords use-when="false()">
-            <key name="GeneralComp" count="50"/>
-            <key name="striding" count="30"/>
-            <key name="PathExpr" count="52"/>
-            <key name="motionless-predicate" count="4"/>
-            <key name="positional-predicate" count="7"/>
-            <key name="fn:position" count="7"/>
-            <key name="striding-then-grounded" count="14"/>
-            <key name="predicate" count="6"/>
-            <key name="fn:data" count="4"/>
-            <key name="text-nodes" count="2"/>
-            <key name="childless-nodes" count="6"/>
-            <key name="fn:number" count="8"/>
-            <key name="empty-sequence" count="2"/>
-            <key name="ParenthesizedExpr" count="4"/>
-            <key name="_IMPROVE:fix-description" count="4"/>
-            <key name="fn:tail" count="2"/>
-            <key name="ForExpr" count="2"/>
-            <key name="leading-double-slash" count="2"/>
-            <key name="fn:outermost" count="2"/>
-            <key name="crawling-then-striding" count="2"/>
-            <key name="SimpleMapExpr" count="16"/>
-            <key name="climbing" count="2"/>
-            <key name="MultiplicativeExpr" count="2"/>
-            <key name="fn:copy-of" count="2"/>
-            <key name="striding-then-climbing" count="4"/>
-            <key name="attribute-axis" count="6"/>
-            <key name="ContextItemExpr" count="6"/>
-            <key name="xs:decimal" count="16"/>
-            <key name="AxisStep" count="4"/>
-            <key name="IfExpr" count="2"/>
-            <key name="AdditiveExpr" count="2"/>
-            <key name="xs:NMTOKENS" count="14"/>
-            <key name="leading-lone-slash" count="12"/>
-            <key name="variable-reference" count="4"/>
-            <key name="sequence-comparison" count="6"/>
-            <key name="FORG0001" count="2"/>
-            <key name="XPTY0004" count="2"/>
-            <key name="fn:last" count="1"/>
-            <key name="striding-then-roaming" count="2"/>
-            <key name="XTSE3430" count="2"/>
-            <key name="consuming-predicate" count="2"/>
-         </keywords>
+         <pass1 count="0"/>
+         <pass2 count="52"/>
       </test-set>
       <test-set total-tests="66" name="sx-IfExpr" description="if() expression function with streaming">
-         <xslt3-specific count="66"/>
+         <xslt3-specific count="67"/>
          <xslt2-specific count="0"/>
          <xslt-other count="0"/>
-         <keywords use-when="false()">
-            <key name="choice-operand-group" count="66"/>
-            <key name="choices-motionless-motionless-consuming" count="23"/>
-            <key name="striding-then-grounded" count="9"/>
-            <key name="leading-lone-slash" count="57"/>
-            <key name="PathExpr" count="66"/>
-            <key name="fn:data" count="3"/>
-            <key name="fn:copy-of" count="3"/>
-            <key name="fn:tokenize" count="3"/>
-            <key name="ContextItemExpr" count="6"/>
-            <key name="SimpleMapExpr" count="21"/>
-            <key name="striding" count="27"/>
-            <key name="fn:count" count="9"/>
-            <key name="fn:sum" count="3"/>
-            <key name="motionless-predicate" count="3"/>
-            <key name="fn:position" count="6"/>
-            <key name="AdditiveExpr" count="9"/>
-            <key name="AxisStep" count="6"/>
-            <key name="positional-predicate" count="24"/>
-            <key name="xsl:for-each" count="3"/>
-            <key name="fn:name" count="9"/>
-            <key name="xsl:apply-templates" count="3"/>
-            <key name="xsl:copy-of" count="3"/>
-            <key name="crawling" count="6"/>
-            <key name="leading-double-slash" count="9"/>
-            <key name="text-nodes" count="6"/>
-            <key name="childless-nodes" count="6"/>
-            <key name="striding-then-crawling" count="6"/>
-            <key name="striding-then-climbing" count="6"/>
-            <key name="ancestor-axis" count="12"/>
-            <key name="climbing-then-climbing" count="9"/>
-            <key name="attribute-axis" count="6"/>
-            <key name="ancestor-or-self-axis" count="11"/>
-            <key name="climbing" count="2"/>
-            <key name="crawling-then-climbing" count="3"/>
-            <key name="choices-motionless-consuming-consuming" count="21"/>
-            <key name="fn:outermost" count="1"/>
-            <key name="crawling-then-striding" count="1"/>
-            <key name="choices-consuming-motionless-motionless" count="22"/>
-         </keywords>
+         <pass1 count="0"/>
+         <pass2 count="66"/>
       </test-set>
       <test-set total-tests="46" name="sx-intersectExpr" description="intersect expression function with streaming">
          <xslt3-specific count="46"/>
          <xslt2-specific count="0"/>
          <xslt-other count="0"/>
-         <keywords use-when="false()">
-            <key name="ParenthesizedExpr" count="41"/>
-            <key name="mixed-posture" count="40"/>
-            <key name="striding" count="18"/>
-            <key name="leading-lone-slash" count="33"/>
-            <key name="PathExpr" count="41"/>
-            <key name="fn:count" count="6"/>
-            <key name="fn:sum" count="2"/>
-            <key name="motionless-predicate" count="2"/>
-            <key name="fn:position" count="4"/>
-            <key name="AdditiveExpr" count="6"/>
-            <key name="ContextItemExpr" count="2"/>
-            <key name="SimpleMapExpr" count="12"/>
-            <key name="AxisStep" count="4"/>
-            <key name="positional-predicate" count="16"/>
-            <key name="xsl:for-each" count="2"/>
-            <key name="fn:name" count="6"/>
-            <key name="xsl:apply-templates" count="2"/>
-            <key name="xsl:copy-of" count="2"/>
-            <key name="crawling" count="4"/>
-            <key name="leading-double-slash" count="8"/>
-            <key name="text-nodes" count="4"/>
-            <key name="childless-nodes" count="4"/>
-            <key name="striding-then-crawling" count="4"/>
-            <key name="striding-then-climbing" count="4"/>
-            <key name="ancestor-axis" count="6"/>
-            <key name="climbing-then-climbing" count="6"/>
-            <key name="attribute-axis" count="6"/>
-            <key name="ancestor-or-self-axis" count="8"/>
-            <key name="climbing" count="4"/>
-            <key name="crawling-then-climbing" count="4"/>
-            <key name="striding-then-grounded" count="1"/>
-            <key name="fn:copy-of" count="1"/>
-         </keywords>
+         <pass1 count="0"/>
+         <pass2 count="46"/>
       </test-set>
       <test-set total-tests="23" name="sx-InstanceofExpr" description="&#x22;instance of&#x22; expression with streaming">
          <xslt3-specific count="23"/>
          <xslt2-specific count="0"/>
          <xslt-other count="0"/>
-         <keywords use-when="false()"/>
+         <pass1 count="0"/>
+         <pass2 count="46"/>
       </test-set>
       <test-set total-tests="11" name="sx-MapExpr" description="XPath map{} constructor expression with streaming">
          <xslt3-specific count="11"/>
          <xslt2-specific count="0"/>
          <xslt-other count="0"/>
-         <keywords use-when="false()"/>
+         <pass1 count="0"/>
+         <pass2 count="89"/>
       </test-set>
       <test-set total-tests="10" name="sx-QuantifiedExpr" description="Some/Every expressions with streaming">
          <xslt3-specific count="10"/>
          <xslt2-specific count="0"/>
          <xslt-other count="0"/>
-         <keywords use-when="false()"/>
+         <pass1 count="0"/>
+         <pass2 count="36"/>
       </test-set>
       <test-set total-tests="23" name="sx-TreatExpr" description="&#x22;treat as&#x22; expression with streaming">
          <xslt3-specific count="23"/>
          <xslt2-specific count="0"/>
          <xslt-other count="0"/>
-         <keywords use-when="false()"/>
+         <pass1 count="0"/>
+         <pass2 count="21"/>
       </test-set>
       <test-set total-tests="46" name="sx-unionExpr" description="union expression function with streaming">
          <xslt3-specific count="46"/>
@@ -3704,83 +2255,50 @@
          <xslt3-specific count="90"/>
          <xslt2-specific count="306"/>
          <xslt-other count="374"/>
+         <pass1 count="0"/>
+         <pass2 count="762"/>
       </overview>
       <test-set total-tests="112" name="boolean" description="Tests boolean">
          <xslt3-specific count="0"/>
          <xslt2-specific count="23"/>
          <xslt-other count="89"/>
-         <keywords use-when="false()">
-            <key name="fn:true" count="18"/>
-            <key name="xsl:value-of" count="110"/>
-            <key name="fn:codepoint-equal" count="1"/>
-            <key name="string-literal" count="2"/>
-            <key name="AndExpr" count="7"/>
-            <key name="fn:not" count="11"/>
-            <key name="OrExpr" count="7"/>
-            <key name="fn:boolean" count="16"/>
-            <key name="empty-string" count="4"/>
-            <key name="GeneralComp" count="68"/>
-            <key name="fn:lang" count="2"/>
-            <key name="fn:false" count="22"/>
-            <key name="numeric-literals" count="45"/>
-            <key name="fn:number" count="2"/>
-            <key name="string-literals" count="34"/>
-            <key name="xs:boolean" count="2"/>
-            <key name="ValueComp" count="4"/>
-            <key name="lre" count="2"/>
-            <key name="avt" count="2"/>
-            <key name="MultiplicativeExpr" count="5"/>
-            <key name="AxisStep" count="2"/>
-            <key name="variable-reference" count="14"/>
-            <key name="PathExpr" count="3"/>
-            <key name="ForExpr" count="2"/>
-            <key name="sequence-comparison" count="22"/>
-            <key name="leading-double-slash" count="2"/>
-            <key name="xs:anyURI" count="1"/>
-            <key name="fn:count" count="2"/>
-            <key name="xs:integer" count="1"/>
-            <key name="empty-sequence" count="4"/>
-            <key name="stylesheet-function" count="1"/>
-            <key name="xsl:function" count="1"/>
-            <key name="NodeComp" count="4"/>
-            <key name="fn:exists" count="1"/>
-            <key name="fn:compare" count="1"/>
-            <key name="text-node" count="1"/>
-            <key name="xsl:if" count="1"/>
-            <key name="xs:string" count="7"/>
-            <key name="backwards-compatibility-mode" count="2"/>
-            <key name="predicate" count="7"/>
-         </keywords>
+         <pass1 count="0"/>
+         <pass2 count="112"/>
       </test-set>
       <test-set total-tests="138" name="date" description="Tests date">
          <xslt3-specific count="40"/>
          <xslt2-specific count="98"/>
          <xslt-other count="0"/>
-         <keywords use-when="false()"/>
+         <pass1 count="0"/>
+         <pass2 count="0"/>
       </test-set>
       <test-set total-tests="36" name="maps" description="Tests maps">
          <xslt3-specific count="36"/>
          <xslt2-specific count="0"/>
          <xslt-other count="0"/>
-         <keywords use-when="false()"/>
+         <pass1 count="0"/>
+         <pass2 count="0"/>
       </test-set>
       <test-set total-tests="217" name="namespace" description="Tests namespace">
          <xslt3-specific count="8"/>
          <xslt2-specific count="69"/>
          <xslt-other count="140"/>
-         <keywords use-when="false()"/>
+         <pass1 count="0"/>
+         <pass2 count="10"/>
       </test-set>
       <test-set total-tests="32" name="node" description="Tests node">
          <xslt3-specific count="0"/>
          <xslt2-specific count="9"/>
          <xslt-other count="23"/>
-         <keywords use-when="false()"/>
+         <pass1 count="0"/>
+         <pass2 count="32"/>
       </test-set>
       <test-set total-tests="23" name="notation" description="Tests notation">
          <xslt3-specific count="4"/>
          <xslt2-specific count="19"/>
          <xslt-other count="0"/>
-         <keywords use-when="false()"/>
+         <pass1 count="0"/>
+         <pass2 count="3"/>
       </test-set>
       <test-set total-tests="133" name="string" description="Tests string">
          <xslt3-specific count="0"/>
@@ -3792,7 +2310,8 @@
          <xslt3-specific count="2"/>
          <xslt2-specific count="76"/>
          <xslt-other count="1"/>
-         <keywords use-when="false()"/>
+         <pass1 count="0"/>
+         <pass2 count="75"/>
       </test-set>
    </category>
 </report>