You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@xalan.apache.org by mu...@apache.org on 2025/12/10 17:02:14 UTC
(xalan-java) branch xalan-j_xslt3.0_mvn updated: committing few xalan-j xslt 3.0 implementation improvements
This is an automated email from the ASF dual-hosted git repository.
mukulg pushed a commit to branch xalan-j_xslt3.0_mvn
in repository https://gitbox.apache.org/repos/asf/xalan-java.git
The following commit(s) were added to refs/heads/xalan-j_xslt3.0_mvn by this push:
new 6e60cd70d committing few xalan-j xslt 3.0 implementation improvements
6e60cd70d is described below
commit 6e60cd70d6b5b04ef153ec4fdfd0560e3f149377
Author: Mukul Gandhi <ga...@gmail.com>
AuthorDate: Wed Dec 10 22:31:50 2025 +0530
committing few xalan-j xslt 3.0 implementation improvements
---
.../xalan/processor/XSLTElementProcessor.java | 19 +++++++-
.../org/apache/xalan/processor/XSLTSchema.java | 2 +-
.../org/apache/xalan/templates/ElemForEach.java | 26 ++++++++---
.../apache/xalan/templates/ElemForEachGroup.java | 27 +++++++-----
.../java/org/apache/xalan/templates/ElemSort.java | 6 +--
.../org/apache/xalan/xslt/util/StringUtil.java | 51 +++++++++++++++++++++-
.../java/org/apache/xpath/compiler/OpCodes.java | 28 ++++++------
.../org/apache/xpath/compiler/XPathParser.java | 8 ++--
.../xalan/tests/util/XslTransformTestsUtil.java | 36 +++++++++++++++
.../tests/w3c/xslt3/W3CXslTransformTestsUtil.java | 10 +++++
.../w3c/xslt3/result/attr/_as-test-set_result.xml | 2 +-
.../w3c/xslt3/result/attr/_avt-test-set_result.xml | 13 ++----
.../_disable-output-escaping-test-set_result.xml | 2 +-
.../result/attr/_expand-text-test-set_result.xml | 2 +-
.../xslt3/result/attr/_match-test-set_result.xml | 48 ++------------------
.../xslt3/result/attr/_mode-test-set_result.xml | 2 +-
.../xslt3/result/attr/_select-test-set_result.xml | 8 ++--
.../xslt3/result/attr/_tunnel-test-set_result.xml | 2 +-
.../_xpath-default-namespace-test-set_result.xml | 2 +-
.../result/decl/_attribute-set-test-set_result.xml | 2 +-
.../result/decl/_character-map-test-set_result.xml | 2 +-
.../result/decl/_function-test-set_result.xml | 4 +-
.../xslt3/result/decl/_param-test-set_result.xml | 2 +-
.../result/decl/_strip-space-test-set_result.xml | 2 +-
.../result/decl/_template-test-set_result.xml | 2 +-
.../result/decl/_variable-test-set_result.xml | 10 +++--
.../xslt3/result/expr/_axes-test-set_result.xml | 2 +-
.../result/expr/_castable-test-set_result.xml | 2 +-
.../result/expr/_expression-test-set_result.xml | 4 +-
.../w3c/xslt3/result/expr/_for-test-set_result.xml | 2 +-
.../_higher-order-functions-test-set_result.xml | 2 +-
.../xslt3/result/expr/_math-test-set_result.xml | 4 +-
.../result/expr/_nodetest-test-set_result.xml | 2 +-
.../xslt3/result/expr/_path-test-set_result.xml | 2 +-
.../result/expr/_predicate-test-set_result.xml | 12 ++---
.../result/fn/_deep-equal-test-set_result.xml | 2 +-
.../result/fn/_format-number-test-set_result.xml | 14 +++---
.../result/fn/_json-to-xml-test-set_result.xml | 2 +-
.../w3c/xslt3/result/fn/_key-test-set_result.xml | 2 +-
.../xslt3/result/fn/_position-test-set_result.xml | 2 +-
.../w3c/xslt3/result/fn/_root-test-set_result.xml | 2 +-
.../result/fn/_xml-to-json-test-set_result.xml | 2 +-
.../insn/_analyze-string-test-set_result.xml | 4 +-
.../insn/_apply-templates-test-set_result.xml | 2 +-
.../result/insn/_attribute-test-set_result.xml | 2 +-
.../result/insn/_call-template-test-set_result.xml | 2 +-
.../xslt3/result/insn/_choose-test-set_result.xml | 2 +-
.../xslt3/result/insn/_copy-test-set_result.xml | 2 +-
.../xslt3/result/insn/_element-test-set_result.xml | 2 +-
.../insn/_for-each-group-test-set_result.xml | 2 +-
.../xslt3/result/insn/_iterate-test-set_result.xml | 2 +-
.../xslt3/result/insn/_message-test-set_result.xml | 6 +--
.../result/insn/_sequence-test-set_result.xml | 6 ++-
.../xslt3/result/insn/_sort-test-set_result.xml | 6 ++-
.../w3c/xslt3/result/insn/_try-test-set_result.xml | 2 +-
.../result/insn/_xsl-document-test-set_result.xml | 6 +--
.../misc/_built-in-templates-test-set_result.xml | 2 +-
.../xslt3/result/misc/_regex-test-set_result.xml | 2 +-
.../xslt3/result/type/_boolean-test-set_result.xml | 16 +++----
.../xslt3/result/type/_date-test-set_result.xml | 8 +++-
.../xslt3/result/type/_node-test-set_result.xml | 2 +-
.../xslt3/result/type/_string-test-set_result.xml | 6 +--
.../result/w3c_xslt3_testsuite_xalan-j_result.xml | 22 +++++-----
63 files changed, 285 insertions(+), 195 deletions(-)
diff --git a/src/main/java/org/apache/xalan/processor/XSLTElementProcessor.java b/src/main/java/org/apache/xalan/processor/XSLTElementProcessor.java
index 8f2b8833a..0ddf39a6a 100644
--- a/src/main/java/org/apache/xalan/processor/XSLTElementProcessor.java
+++ b/src/main/java/org/apache/xalan/processor/XSLTElementProcessor.java
@@ -28,6 +28,7 @@ import javax.xml.transform.TransformerException;
import org.apache.xalan.res.XSLMessages;
import org.apache.xalan.res.XSLTErrorResources;
import org.apache.xalan.templates.ElemTemplateElement;
+import org.apache.xalan.xslt.util.StringUtil;
import org.apache.xml.utils.IntStack;
import org.xml.sax.Attributes;
import org.xml.sax.InputSource;
@@ -374,9 +375,23 @@ public class XSLTElementProcessor extends ElemTemplateElement
}
else
{
+ String attrName = attributes.getQName(i);
+ String attrValue = attributes.getValue(i);
+
+ // Remove any available XPath comments, from an XML
+ // attribute value.
+ if (StringUtil.isStrHasXPathBalancedCommentDelim(attrValue)) {
+ attrValue = StringUtil.removeXPathComments(attrValue);
+ }
+
+ // Remove AVT references having XPath empty expressions, from
+ // XML attribute value.
+ if (attrDef.getType() == XSLTAttributeDef.T_AVT) {
+ attrValue = attrValue.replaceAll("\\{\\s*\\}", "");
+ }
+
boolean success = attrDef.setAttrValue(handler, attrUri, attrLocalName,
- attributes.getQName(i), attributes.getValue(i),
- target);
+ attrName, attrValue, target);
// Now we only add the element if it passed a validation check
if (success)
processedDefs.add(attrDef);
diff --git a/src/main/java/org/apache/xalan/processor/XSLTSchema.java b/src/main/java/org/apache/xalan/processor/XSLTSchema.java
index 649c92bc9..035aab2f7 100644
--- a/src/main/java/org/apache/xalan/processor/XSLTSchema.java
+++ b/src/main/java/org/apache/xalan/processor/XSLTSchema.java
@@ -332,7 +332,7 @@ public class XSLTSchema extends XSLTElementDef
// Optional
// xsl:for-each-group, xsl:sort
XSLTAttributeDef collationAttrOpt = new XSLTAttributeDef(null, "collation",
- XSLTAttributeDef.T_STRING, false, false, XSLTAttributeDef.ERROR);
+ XSLTAttributeDef.T_AVT, false, true, XSLTAttributeDef.ERROR);
// Optional
// xsl:sort
diff --git a/src/main/java/org/apache/xalan/templates/ElemForEach.java b/src/main/java/org/apache/xalan/templates/ElemForEach.java
index ae9a89ef1..ec5fa1fc5 100644
--- a/src/main/java/org/apache/xalan/templates/ElemForEach.java
+++ b/src/main/java/org/apache/xalan/templates/ElemForEach.java
@@ -665,7 +665,13 @@ public class ElemForEach extends ElemTemplateElement implements ExpressionOwner
for (int idx = 0; idx < sortElemCount; idx++) {
ElemSort elemSort = (ElemSort)m_sortElems.get(idx);
AVT langAvt = elemSort.getLang();
- String collation = elemSort.getCollation();
+
+ String collation = null;
+ AVT collationAvt = elemSort.getCollation();
+ if (collationAvt != null) {
+ collation = collationAvt.evaluate(xctxt, sourceNode, xctxt.getNamespaceContext());
+ }
+
if ((langAvt != null) || (collation != null)) {
bool1 = true;
}
@@ -810,12 +816,14 @@ public class ElemForEach extends ElemTemplateElement implements ExpressionOwner
int nextNode;
while (DTM.NULL != (nextNode = sourceNodes.nextNode()))
- {
+ {
XMLNodeCursorImpl xdmNode = new XMLNodeCursorImpl(nextNode, xctxt);
+
rSeq.add(xdmNode);
}
-
+
processSequenceOrArray(transformer, xctxt, rSeq);
+
}
}
@@ -1129,9 +1137,15 @@ public class ElemForEach extends ElemTemplateElement implements ExpressionOwner
+ "the type '" + dataTypeStr + "', specified by XSL sort's "
+ "data-type attribute.", srcLocator);
}
- }
+ }
+
+ int contextNode = xctxt.getCurrentNode();
- String collation = elemSort.getCollation();
+ String collation = null;
+ AVT collationAvt = elemSort.getCollation();
+ if (collationAvt != null) {
+ collation = collationAvt.evaluate(xctxt, contextNode, xctxt.getNamespaceContext());
+ }
SortKey sortKey = new SortKey(sorkKeyObj, sortOrderStr, collation, caseOrderStr, langStr);
if (collation != null) {
@@ -1166,7 +1180,7 @@ public class ElemForEach extends ElemTemplateElement implements ExpressionOwner
}
resetXPathContextForXslSequenceProcessing(resultSeqItem, xctxt);
- }
+ }
}
else {
int inpSeqSize = xdmItemList.size();
diff --git a/src/main/java/org/apache/xalan/templates/ElemForEachGroup.java b/src/main/java/org/apache/xalan/templates/ElemForEachGroup.java
index 820bbc855..3868b553d 100644
--- a/src/main/java/org/apache/xalan/templates/ElemForEachGroup.java
+++ b/src/main/java/org/apache/xalan/templates/ElemForEachGroup.java
@@ -116,7 +116,7 @@ public class ElemForEachGroup extends ElemTemplateElement
/**
* The "collation" attribute value.
*/
- private String m_collationUri = null;
+ private AVT m_collationUri = null;
/**
* An XPathCollationSupport object value.
@@ -318,7 +318,7 @@ public class ElemForEachGroup extends ElemTemplateElement
*
* @param collation String value for the "collation" attribute.
*/
- public void setCollation(String collationUri)
+ public void setCollation(AVT collationUri)
{
m_collationUri = collationUri;
}
@@ -328,7 +328,7 @@ public class ElemForEachGroup extends ElemTemplateElement
*
* @return String value of the "collation" attribute.
*/
- public String getCollation()
+ public AVT getCollation()
{
return m_collationUri;
}
@@ -1423,13 +1423,20 @@ public class ElemForEachGroup extends ElemTemplateElement
private Object getNormalizedGroupingKeyValue(XPathContext xctxt, XObject groupingKeyValue) throws TransformerException {
Object normalizedGroupingKeyValue = null;
+
+ final int contextNode = xctxt.getCurrentNode();
+
+ String collation = null;
+ if (m_collationUri != null) {
+ collation = m_collationUri.evaluate(xctxt, contextNode, xctxt.getNamespaceContext());
+ }
if (groupingKeyValue instanceof XString) {
- if (m_collationUri == null) {
+ if (collation == null) {
normalizedGroupingKeyValue = groupingKeyValue.str();
}
- else {
- normalizedGroupingKeyValue = new StringWithCollation(groupingKeyValue.str(), m_collationUri, m_xpathCollationSupport);
+ else {
+ normalizedGroupingKeyValue = new StringWithCollation(groupingKeyValue.str(), collation, m_xpathCollationSupport);
}
}
else if (groupingKeyValue instanceof XSQName) {
@@ -1439,11 +1446,11 @@ public class ElemForEachGroup extends ElemTemplateElement
normalizedGroupingKeyValue = localPart + ((namespaceUri == null) ? "" : ":" + namespaceUri);
}
else if (groupingKeyValue instanceof XSString) {
- if (m_collationUri == null) {
+ if (collation == null) {
normalizedGroupingKeyValue = ((XSString)groupingKeyValue).stringValue();
}
else {
- normalizedGroupingKeyValue = new StringWithCollation(((XSString)groupingKeyValue).stringValue(), m_collationUri, m_xpathCollationSupport);
+ normalizedGroupingKeyValue = new StringWithCollation(((XSString)groupingKeyValue).stringValue(), collation, m_xpathCollationSupport);
}
}
else if (groupingKeyValue instanceof XNumber) {
@@ -1495,11 +1502,11 @@ public class ElemForEachGroup extends ElemTemplateElement
}
else if (groupingKeyValue instanceof ResultSequence) {
if (m_collationUri == null) {
- m_collationUri = XPathCollationSupport.UNICODE_CODEPOINT_COLLATION_URI;
+ collation = XPathCollationSupport.UNICODE_CODEPOINT_COLLATION_URI;
}
normalizedGroupingKeyValue = new ForEachGroupCompositeGroupingKey(xctxt, (ResultSequence)groupingKeyValue,
- m_collationUri, m_xpathCollationSupport);
+ collation, m_xpathCollationSupport);
}
else {
// Any other data type for grouping key, is treated as string
diff --git a/src/main/java/org/apache/xalan/templates/ElemSort.java b/src/main/java/org/apache/xalan/templates/ElemSort.java
index 613d223e4..f84055f99 100644
--- a/src/main/java/org/apache/xalan/templates/ElemSort.java
+++ b/src/main/java/org/apache/xalan/templates/ElemSort.java
@@ -277,14 +277,14 @@ public class ElemSort extends ElemTemplateElement
* This class field, represents an optional collation URI specified
* with xsl:sort instruction.
*/
- private String m_collation = null;
+ private AVT m_collation = null;
/**
* Get the value of xsl:sort's collation URI.
*
* @return Collation URI value
*/
- public String getCollation() {
+ public AVT getCollation() {
return m_collation;
}
@@ -293,7 +293,7 @@ public class ElemSort extends ElemTemplateElement
*
* @param collation Collation URI value
*/
- public void setCollation(String collation) {
+ public void setCollation(AVT collation) {
m_collation = collation;
}
diff --git a/src/main/java/org/apache/xalan/xslt/util/StringUtil.java b/src/main/java/org/apache/xalan/xslt/util/StringUtil.java
index b9c96b1ca..a0e2b3bfb 100644
--- a/src/main/java/org/apache/xalan/xslt/util/StringUtil.java
+++ b/src/main/java/org/apache/xalan/xslt/util/StringUtil.java
@@ -51,11 +51,11 @@ public class StringUtil {
}
/**
- * Method definition to check, whether the supplied string value
+ * Method definition, to check whether the supplied string value
* has balanced XPath comment delimiters. XPath comments have
* lexical form (: comment text :)
*/
- public static boolean isStrHasBalancedXPathCommentDelim(String strValue) {
+ public static boolean isStrHasXPathBalancedCommentDelim(String strValue) {
boolean result = true;
@@ -95,6 +95,53 @@ public class StringUtil {
return result;
}
+ /**
+ * Method definition, to remove XPath comments from the
+ * supplied string value.
+ *
+ * This method handles occurrences of XPath nested comments,
+ * as well, as required by XPath 3.1 spec.
+ *
+ * @param strValue The supplied string value
+ * @return String value, after the XPath
+ * comments have been removed.
+ */
+ public static String removeXPathComments(String strValue) {
+
+ String result = null;
+
+ String str1 = strValue;
+
+ str1 = str1.replaceAll("\\(:", "\u0002");
+ str1 = str1.replaceAll(":\\)", "\u0003");
+
+ StringBuilder strBuilder = new StringBuilder();
+ int level = 0;
+ int strLength = str1.length();
+ for (int idx = 0; idx < strLength; idx++) {
+ char chr = str1.charAt(idx);
+ if (chr == '\u0002') {
+ level++;
+ }
+ else if (chr == '\u0003') {
+ if (level > 0) {
+ level--;
+ }
+ }
+ else if (level == 0) {
+ strBuilder.append(chr);
+ }
+ }
+
+ if (level <= 0) {
+ str1 = strBuilder.toString();
+ }
+
+ result = str1;
+
+ return result;
+ }
+
/**
* Method definition, to get the string contents from a URL
* resource.
diff --git a/src/main/java/org/apache/xpath/compiler/OpCodes.java b/src/main/java/org/apache/xpath/compiler/OpCodes.java
index ea23eb7d5..9d5df426c 100644
--- a/src/main/java/org/apache/xpath/compiler/OpCodes.java
+++ b/src/main/java/org/apache/xpath/compiler/OpCodes.java
@@ -643,54 +643,54 @@ public class OpCodes
public static final int AXES_END_TYPES = 53;
/**
- * Class definition, specifying XPath 3.1 specific op
- * codes.
+ * Class definition, specifying Xalan-J's XPath 3.1
+ * op codes.
*/
public class XPath3OpCodes {
/**
- * For XPath 3.1 "to" range expressions.
+ * Represents XPath 3.1 "to" range expressions.
*
* @xsl.usage advanced
*/
public static final int OP_TO = 100;
/**
- * For XPath 3.1 value comparison operator "eq".
+ * Represents XPath 3.1 value comparison operator "eq".
*
* @xsl.usage advanced
*/
public static final int OP_VC_EQUALS = 101;
/**
- * For XPath 3.1 value comparison operator "ne".
+ * Represents XPath 3.1 value comparison operator "ne".
*
* @xsl.usage advanced
*/
public static final int OP_VC_NOT_EQUALS = 102;
/**
- * For XPath 3.1 value comparison operator "lt".
+ * Represents XPath 3.1 value comparison operator "lt".
*
* @xsl.usage advanced
*/
public static final int OP_VC_LT = 103;
/**
- * For XPath 3.1 value comparison operator "gt".
+ * Represents XPath 3.1 value comparison operator "gt".
*
* @xsl.usage advanced
*/
public static final int OP_VC_GT = 104;
/**
- * For XPath 3.1 value comparison operator "le".
+ * Represents XPath 3.1 value comparison operator "le".
*
* @xsl.usage advanced
*/
public static final int OP_VC_LE = 105;
/**
- * For XPath 3.1 value comparison operator "ge".
+ * Represents XPath 3.1 value comparison operator "ge".
*
* @xsl.usage advanced
*/
@@ -711,35 +711,35 @@ public class OpCodes
public static final int OP_SEQUENCE_CONSTRUCTOR_EXPR = 113;
/**
- * For XPath 3.1 string concatenation operator "||".
+ * Represents XPath 3.1 string concatenation operator "||".
*
* @xsl.usage advanced
*/
public static final int OP_STR_CONCAT = 114;
/**
- * For XPath 3.1 node concatenation operator "is".
+ * Represents XPath 3.1 node concatenation operator "is".
*
* @xsl.usage advanced
*/
public static final int OP_IS = 115;
/**
- * For XPath 3.1 node concatenation operator "<<".
+ * Represents XPath 3.1 node concatenation operator "<<".
*
* @xsl.usage advanced
*/
public static final int OP_NC_PRECEDE = 116;
/**
- * For XPath 3.1 node concatenation operator ">>".
+ * Represents XPath 3.1 node concatenation operator ">>".
*
* @xsl.usage advanced
*/
public static final int OP_NC_FOLLOWS = 117;
/**
- * For XPath 3.1 simple map operator '!'.
+ * Represents XPath 3.1 simple map operator '!'.
*
* @xsl.usage advanced
*/
diff --git a/src/main/java/org/apache/xpath/compiler/XPathParser.java b/src/main/java/org/apache/xpath/compiler/XPathParser.java
index 78919e513..9e0ba6e6b 100644
--- a/src/main/java/org/apache/xpath/compiler/XPathParser.java
+++ b/src/main/java/org/apache/xpath/compiler/XPathParser.java
@@ -378,10 +378,10 @@ public class XPathParser
Lexer lexer = new Lexer(compiler, namespaceContext, this);
- // Remove XPath expression comments from the supplied expression,
- // before parse of an XPath expression.
- if (StringUtil.isStrHasBalancedXPathCommentDelim(expression)) {
- expression = expression.replaceAll("\\(:.*:\\)", "");
+ // Remove any available XPath comments, from an XPath
+ // expression string.
+ if (StringUtil.isStrHasXPathBalancedCommentDelim(expression)) {
+ expression = StringUtil.removeXPathComments(expression);
}
else {
error(XPATHErrorResources.ER_UNCLOSED_XPATH_COMMENT, new Object[]{});
diff --git a/src/test/java/org/apache/xalan/tests/util/XslTransformTestsUtil.java b/src/test/java/org/apache/xalan/tests/util/XslTransformTestsUtil.java
index a8f2f9df5..783ff10da 100644
--- a/src/test/java/org/apache/xalan/tests/util/XslTransformTestsUtil.java
+++ b/src/test/java/org/apache/xalan/tests/util/XslTransformTestsUtil.java
@@ -588,6 +588,42 @@ public class XslTransformTestsUtil extends FileComparisonUtil {
return result;
}
+ /**
+ * When running W3C XSLT 3.0 test suite, check whether the test case
+ * is specified to test XSLT version backward compatibility.
+ *
+ * @param testCaseNode
+ * @return Boolean value true or false
+ */
+ protected boolean isBackwardCompatibilityTestCase(Node testCaseNode) {
+
+ boolean result = false;
+
+ NodeList nodeList = testCaseNode.getChildNodes();
+ int nodeListLength = nodeList.getLength();
+ for (int idx = 0; idx < nodeListLength; idx++) {
+ Node node = nodeList.item(idx);
+ if (node.getNodeType() == Node.ELEMENT_NODE) {
+ Element elemNode = (Element)node;
+ String elemName = elemNode.getLocalName();
+ if ("dependencies".equals(elemName)) {
+ NodeList nodeList1 = elemNode.getElementsByTagName("feature");
+ if (nodeList1.getLength() == 1) {
+ Element elem1 = (Element)(nodeList1.item(0));
+ String value = elem1.getAttribute("value");
+ if ("backwards_compatibility".equals(value)) {
+ result = true;
+
+ break;
+ }
+ }
+ }
+ }
+ }
+
+ return result;
+ }
+
/**
* When running W3C XSLT 3.0 test suite, check whether the test case
* is written for schema aware feature.
diff --git a/src/test/java/org/apache/xalan/tests/w3c/xslt3/W3CXslTransformTestsUtil.java b/src/test/java/org/apache/xalan/tests/w3c/xslt3/W3CXslTransformTestsUtil.java
index 411d5cb68..cc79cde31 100644
--- a/src/test/java/org/apache/xalan/tests/w3c/xslt3/W3CXslTransformTestsUtil.java
+++ b/src/test/java/org/apache/xalan/tests/w3c/xslt3/W3CXslTransformTestsUtil.java
@@ -184,6 +184,16 @@ public class W3CXslTransformTestsUtil extends XslTransformTestsUtil {
continue;
}
+ else if (isBackwardCompatibilityTestCase(node)) {
+ // We skip running XSLT backward compatibility test cases
+ Element elemTestResult = testResultDoc.createElement("testResult");
+ elemTestResult.setAttribute("testName", testCaseName);
+ elemTestResult.setAttribute("status", "skipped");
+ elemTestResult.setAttribute("feature", "backwards_compatibility");
+ elemTestRun.appendChild(elemTestResult);
+
+ continue;
+ }
else if (isXslSchemaAwareFeatureTestCase(node)) {
// We skip running XSLT 3.0 schema aware feature test cases
Element elemTestResult = testResultDoc.createElement("testResult");
diff --git a/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/attr/_as-test-set_result.xml b/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/attr/_as-test-set_result.xml
index e244e31bb..f4d022bba 100644
--- a/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/attr/_as-test-set_result.xml
+++ b/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/attr/_as-test-set_result.xml
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="UTF-8"?><testrun dateTime="2025-11-13T16:37:29Z" fail="31" name="as" pass="80" skipped="93" statusUnknown="0" totalRun="111">
+<?xml version="1.0" encoding="UTF-8"?><testrun dateTime="2025-12-10T16:52:19Z" fail="31" name="as" pass="80" skipped="93" statusUnknown="0" totalRun="111">
<testResult status="pass" testName="as-0101"/>
<testResult status="pass" testName="as-0102"/>
<testResult status="pass" testName="as-0103"/>
diff --git a/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/attr/_avt-test-set_result.xml b/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/attr/_avt-test-set_result.xml
index 74717ae25..d424ce259 100644
--- a/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/attr/_avt-test-set_result.xml
+++ b/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/attr/_avt-test-set_result.xml
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="UTF-8"?><testrun dateTime="2025-12-09T16:29:41Z" fail="7" name="avt" pass="28" skipped="0" statusUnknown="0" totalRun="35">
+<?xml version="1.0" encoding="UTF-8"?><testrun dateTime="2025-12-10T16:52:20Z" fail="4" name="avt" pass="30" skipped="1" statusUnknown="0" totalRun="34">
<testResult status="pass" testName="avt-0101"/>
<testResult status="pass" testName="avt-0201"/>
<testResult status="pass" testName="avt-0202"/>
@@ -14,8 +14,8 @@
<testResult status="fail" testName="avt-1001"/>
<testResult status="pass" testName="avt-1101"/>
<testResult status="pass" testName="avt-1201"/>
- <testResult status="fail" testName="avt-1202"/>
- <testResult status="fail" testName="avt-1203"/>
+ <testResult status="pass" testName="avt-1202"/>
+ <testResult feature="backwards_compatibility" status="skipped" testName="avt-1203"/>
<testResult status="pass" testName="avt-1204"/>
<testResult status="pass" testName="avt-1205"/>
<testResult status="pass" testName="avt-1206"/>
@@ -30,12 +30,7 @@
<testResult status="pass" testName="avt-1901"/>
<testResult status="pass" testName="avt-2001"/>
<testResult status="pass" testName="avt-2101"/>
- <testResult status="fail" testName="avt-2102">
- <outResult>
- <errTrace>Empty expression!</errTrace>
- <errTrace>java.lang.NullPointerException</errTrace>
- </outResult>
- </testResult>
+ <testResult status="pass" testName="avt-2102"/>
<testResult status="fail" testName="avt-2103">
<outResult>
<errTrace>Empty expression!</errTrace>
diff --git a/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/attr/_disable-output-escaping-test-set_result.xml b/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/attr/_disable-output-escaping-test-set_result.xml
index fcaf35a14..b860484f5 100644
--- a/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/attr/_disable-output-escaping-test-set_result.xml
+++ b/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/attr/_disable-output-escaping-test-set_result.xml
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="UTF-8"?><testrun dateTime="2025-11-17T13:21:01Z" fail="5" name="disable-output-escaping" pass="22" skipped="5" statusUnknown="0" totalRun="27">
+<?xml version="1.0" encoding="UTF-8"?><testrun dateTime="2025-12-10T16:52:35Z" fail="5" name="disable-output-escaping" pass="22" skipped="5" statusUnknown="0" totalRun="27">
<testResult status="pass" testName="doe-0176"/>
<testResult status="pass" testName="doe-0176a"/>
<testResult status="pass" testName="doe-0176b"/>
diff --git a/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/attr/_expand-text-test-set_result.xml b/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/attr/_expand-text-test-set_result.xml
index 8558b36bb..21e34d8f4 100644
--- a/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/attr/_expand-text-test-set_result.xml
+++ b/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/attr/_expand-text-test-set_result.xml
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="UTF-8"?><testrun dateTime="2025-11-13T16:37:43Z" fail="8" name="expand-text" pass="51" skipped="3" statusUnknown="0" totalRun="59">
+<?xml version="1.0" encoding="UTF-8"?><testrun dateTime="2025-12-10T16:52:34Z" fail="8" name="expand-text" pass="51" skipped="3" statusUnknown="0" totalRun="59">
<testResult status="pass" testName="cvt-001"/>
<testResult status="pass" testName="cvt-002"/>
<testResult status="pass" testName="cvt-003"/>
diff --git a/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/attr/_match-test-set_result.xml b/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/attr/_match-test-set_result.xml
index eb7972a50..5f5abfdc7 100644
--- a/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/attr/_match-test-set_result.xml
+++ b/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/attr/_match-test-set_result.xml
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="UTF-8"?><testrun dateTime="2025-12-09T16:29:41Z" fail="86" name="match" pass="96" skipped="112" statusUnknown="0" totalRun="182">
+<?xml version="1.0" encoding="UTF-8"?><testrun dateTime="2025-12-10T16:52:20Z" fail="84" name="match" pass="98" skipped="112" statusUnknown="0" totalRun="182">
<testResult status="pass" testName="match-001"/>
<testResult status="pass" testName="match-002"/>
<testResult status="pass" testName="match-003"/>
@@ -475,50 +475,8 @@ org.apache.xpath.XPathProcessorException: CONTINUE_AFTER_FATAL_ERROR</errTrace>
<testResult feature="schema_aware" status="skipped" testName="match-243"/>
<testResult feature="schema_aware" status="skipped" testName="match-244"/>
<testResult status="pass" testName="match-245"/>
- <testResult status="fail" testName="match-246a">
- <outResult>
- <errTrace>A node test that matches either NCName:* or QName was expected.</errTrace>
- <errTrace>Extra illegal tokens: ')', '/', '(', ')'</errTrace>
- <errTrace>Unknown nodetype: letters</errTrace>
- <errTrace>Extra illegal tokens: 'letters', '(', ')'</errTrace>
- <errTrace>Unknown nodetype: letters</errTrace>
- <errTrace>Extra illegal tokens: 'letters', '(', ')', '(', ')'</errTrace>
- <errTrace>Unknown nodetype: letters</errTrace>
- <errTrace>Extra illegal tokens: 'letters', '(', ')', '[', 'true', '(', ')', ']', '(', ')'</errTrace>
- <errTrace>Unknown nodetype: letters</errTrace>
- <errTrace>Extra illegal tokens: 'letters', '(', ')', '[', 'true', '(', ')', '(', ')', ']'</errTrace>
- <errTrace>A node test that matches either NCName:* or QName was expected.</errTrace>
- <errTrace>Extra illegal tokens: ')', 'letters'</errTrace>
- <errTrace>A node test that matches either NCName:* or QName was expected.</errTrace>
- <errTrace>Extra illegal tokens: ')', 'letters'</errTrace>
- <errTrace>Unknown nodetype: (</errTrace>
- <errTrace>Extra illegal tokens: '(', '(', ')', ')', 'letters'</errTrace>
- <errTrace>Expected ), but found: ::</errTrace>
- <errTrace>org.xml.sax.SAXException: CONTINUE_AFTER_FATAL_ERROR
-org.apache.xpath.XPathProcessorException: CONTINUE_AFTER_FATAL_ERROR</errTrace>
- </outResult>
- </testResult>
- <testResult status="fail" testName="match-246b">
- <outResult>
- <errTrace>A node test that matches either NCName:* or QName was expected.</errTrace>
- <errTrace>Extra illegal tokens: ')', '/', '(', ')'</errTrace>
- <errTrace>Unknown nodetype: letters</errTrace>
- <errTrace>Extra illegal tokens: 'letters', '(', ')'</errTrace>
- <errTrace>Unknown nodetype: letters</errTrace>
- <errTrace>Extra illegal tokens: 'letters', '(', ')', '(', ')'</errTrace>
- <errTrace>Unknown nodetype: letters</errTrace>
- <errTrace>Extra illegal tokens: 'letters', '(', ')', '[', 'true', '(', ')', ']', '(', ')'</errTrace>
- <errTrace>Unknown nodetype: letters</errTrace>
- <errTrace>Extra illegal tokens: 'letters', '(', ')', '[', 'true', '(', ')', '(', ')', ']'</errTrace>
- <errTrace>A node test that matches either NCName:* or QName was expected.</errTrace>
- <errTrace>Extra illegal tokens: ')', 'letters'</errTrace>
- <errTrace>A node test that matches either NCName:* or QName was expected.</errTrace>
- <errTrace>Extra illegal tokens: ')', 'letters'</errTrace>
- <errTrace>Unknown nodetype: (</errTrace>
- <errTrace>Extra illegal tokens: '(', '(', ')', ')', 'letters'</errTrace>
- <errTrace>XTSE0010 : an instruction xsl:next-match is not known to the XSLT processor.</errTrace>
- </outResult>
- </testResult>
+ <testResult status="pass" testName="match-246a"/>
+ <testResult status="pass" testName="match-246b"/>
<testResult status="fail" testName="match-247">
<outResult>
<errTrace>XPST0003 : An XPath expression @* | node() has syntax error. Unknown op code : 0.</errTrace>
diff --git a/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/attr/_mode-test-set_result.xml b/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/attr/_mode-test-set_result.xml
index ae8dde7b6..a82ab5252 100644
--- a/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/attr/_mode-test-set_result.xml
+++ b/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/attr/_mode-test-set_result.xml
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="UTF-8"?><testrun dateTime="2025-11-15T17:37:04Z" fail="59" name="mode" pass="64" skipped="46" statusUnknown="0" totalRun="123">
+<?xml version="1.0" encoding="UTF-8"?><testrun dateTime="2025-12-10T16:52:35Z" fail="59" name="mode" pass="64" skipped="46" statusUnknown="0" totalRun="123">
<testResult status="pass" testName="mode-0001"/>
<testResult feature="streaming" status="skipped" testName="mode-0002"/>
<testResult status="pass" testName="mode-0003"/>
diff --git a/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/attr/_select-test-set_result.xml b/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/attr/_select-test-set_result.xml
index ff19d050c..944be8214 100644
--- a/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/attr/_select-test-set_result.xml
+++ b/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/attr/_select-test-set_result.xml
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="UTF-8"?><testrun dateTime="2025-12-09T16:29:49Z" fail="28" name="select" pass="106" skipped="23" statusUnknown="1" totalRun="135">
+<?xml version="1.0" encoding="UTF-8"?><testrun dateTime="2025-12-10T16:52:21Z" fail="27" name="select" pass="104" skipped="26" statusUnknown="1" totalRun="132">
<testResult status="pass" testName="select-0101"/>
<testResult status="pass" testName="select-0102"/>
<testResult status="pass" testName="select-0201"/>
@@ -140,8 +140,8 @@ javax.xml.transform.TransformerException: XPST0051 : A sequence type occurence i
<testResult status="pass" testName="select-3001"/>
<testResult status="pass" testName="select-3101"/>
<testResult status="pass" testName="select-3201"/>
- <testResult status="pass" testName="select-3301"/>
- <testResult status="pass" testName="select-3401"/>
+ <testResult feature="backwards_compatibility" status="skipped" testName="select-3301"/>
+ <testResult feature="backwards_compatibility" status="skipped" testName="select-3401"/>
<testResult status="pass" testName="select-3501"/>
<testResult status="pass" testName="select-3502"/>
<testResult status="pass" testName="select-3601"/>
@@ -188,7 +188,7 @@ javax.xml.transform.TransformerException: XPST0051 : A sequence type occurence i
<testResult status="pass" testName="select-7001"/>
<testResult status="pass" testName="select-7101"/>
<testResult status="pass" testName="select-7201"/>
- <testResult status="fail" testName="select-7301"/>
+ <testResult feature="backwards_compatibility" status="skipped" testName="select-7301"/>
<testResult status="pass" testName="select-7401"/>
<testResult status="pass" testName="select-7501"/>
<testResult status="skipped" testName="select-7502a" xsltVersion="XSLT 2.0/1.0 only test case"/>
diff --git a/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/attr/_tunnel-test-set_result.xml b/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/attr/_tunnel-test-set_result.xml
index f6fa9d070..780ff90ff 100644
--- a/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/attr/_tunnel-test-set_result.xml
+++ b/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/attr/_tunnel-test-set_result.xml
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="UTF-8"?><testrun dateTime="2025-11-13T16:37:44Z" fail="40" name="tunnel" pass="18" skipped="0" statusUnknown="0" totalRun="58">
+<?xml version="1.0" encoding="UTF-8"?><testrun dateTime="2025-12-10T16:52:35Z" fail="40" name="tunnel" pass="18" skipped="0" statusUnknown="0" totalRun="58">
<testResult status="pass" testName="tunnel-0101"/>
<testResult status="pass" testName="tunnel-0102"/>
<testResult status="fail" testName="tunnel-0103"/>
diff --git a/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/attr/_xpath-default-namespace-test-set_result.xml b/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/attr/_xpath-default-namespace-test-set_result.xml
index b2fcd1664..4b40b1b11 100644
--- a/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/attr/_xpath-default-namespace-test-set_result.xml
+++ b/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/attr/_xpath-default-namespace-test-set_result.xml
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="UTF-8"?><testrun dateTime="2025-11-13T16:37:43Z" fail="11" name="xpath-default-namespace" pass="11" skipped="4" statusUnknown="0" totalRun="22">
+<?xml version="1.0" encoding="UTF-8"?><testrun dateTime="2025-12-10T16:52:34Z" fail="11" name="xpath-default-namespace" pass="11" skipped="4" statusUnknown="0" totalRun="22">
<testResult status="pass" testName="xpath-default-namespace-0101"/>
<testResult status="pass" testName="xpath-default-namespace-0102"/>
<testResult status="pass" testName="xpath-default-namespace-0103"/>
diff --git a/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/decl/_attribute-set-test-set_result.xml b/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/decl/_attribute-set-test-set_result.xml
index a3031f676..5576dbbb7 100644
--- a/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/decl/_attribute-set-test-set_result.xml
+++ b/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/decl/_attribute-set-test-set_result.xml
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="UTF-8"?><testrun dateTime="2025-11-13T16:37:37Z" fail="7" name="attribute-set" pass="42" skipped="1" statusUnknown="0" totalRun="49">
+<?xml version="1.0" encoding="UTF-8"?><testrun dateTime="2025-12-10T16:52:27Z" fail="7" name="attribute-set" pass="42" skipped="1" statusUnknown="0" totalRun="49">
<testResult status="pass" testName="attribute-set-0101"/>
<testResult status="fail" testName="attribute-set-0102">
<outResult>
diff --git a/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/decl/_character-map-test-set_result.xml b/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/decl/_character-map-test-set_result.xml
index 788e96424..68027cb05 100644
--- a/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/decl/_character-map-test-set_result.xml
+++ b/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/decl/_character-map-test-set_result.xml
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="UTF-8"?><testrun dateTime="2025-11-15T17:36:56Z" fail="14" name="character-map" pass="13" skipped="1" statusUnknown="1" totalRun="28">
+<?xml version="1.0" encoding="UTF-8"?><testrun dateTime="2025-12-10T16:52:27Z" fail="14" name="character-map" pass="13" skipped="1" statusUnknown="1" totalRun="28">
<testResult status="pass" testName="character-map-001"/>
<testResult status="pass" testName="character-map-002"/>
<testResult status="pass" testName="character-map-003"/>
diff --git a/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/decl/_function-test-set_result.xml b/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/decl/_function-test-set_result.xml
index b3ec5ccfb..ec0ac713a 100644
--- a/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/decl/_function-test-set_result.xml
+++ b/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/decl/_function-test-set_result.xml
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="UTF-8"?><testrun dateTime="2025-11-22T12:03:48Z" fail="32" name="function" pass="55" skipped="23" statusUnknown="0" totalRun="87">
+<?xml version="1.0" encoding="UTF-8"?><testrun dateTime="2025-12-10T16:52:26Z" fail="32" name="function" pass="55" skipped="23" statusUnknown="0" totalRun="87">
<testResult status="fail" testName="function-0001">
<outResult>
<errTrace>Could not find function: {http://www.w3.org/2005/xpath-functions}format-integer()</errTrace>
@@ -81,7 +81,7 @@
</outResult>
</testResult>
<testResult status="fail" testName="function-1018">
- <outResult><?xml version="1.0" encoding="UTF-8"?><out xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:x="http://xxx.com/" one="banana"/></outResult>
+ <outResult/>
</testResult>
<testResult status="fail" testName="function-1019">
<outResult>
diff --git a/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/decl/_param-test-set_result.xml b/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/decl/_param-test-set_result.xml
index 1f06fd74d..acd15bffc 100644
--- a/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/decl/_param-test-set_result.xml
+++ b/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/decl/_param-test-set_result.xml
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="UTF-8"?><testrun dateTime="2025-11-13T16:37:45Z" fail="18" name="param" pass="12" skipped="1" statusUnknown="0" totalRun="30">
+<?xml version="1.0" encoding="UTF-8"?><testrun dateTime="2025-12-10T16:52:36Z" fail="18" name="param" pass="12" skipped="1" statusUnknown="0" totalRun="30">
<testResult status="pass" testName="param-0101"/>
<testResult status="pass" testName="param-0102"/>
<testResult status="pass" testName="param-0103"/>
diff --git a/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/decl/_strip-space-test-set_result.xml b/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/decl/_strip-space-test-set_result.xml
index 6183c895e..e7b5ff3b6 100644
--- a/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/decl/_strip-space-test-set_result.xml
+++ b/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/decl/_strip-space-test-set_result.xml
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="UTF-8"?><testrun dateTime="2025-11-13T16:37:45Z" fail="14" name="strip-space" pass="13" skipped="3" statusUnknown="0" totalRun="27">
+<?xml version="1.0" encoding="UTF-8"?><testrun dateTime="2025-12-10T16:52:36Z" fail="14" name="strip-space" pass="13" skipped="3" statusUnknown="0" totalRun="27">
<testResult status="pass" testName="strip-space-001"/>
<testResult status="fail" testName="strip-space-002">
<outResult><?xml version="1.0" encoding="UTF-8"?><TEST xmlns:xs="http://www.w3.org/2001/XMLSchema"/></outResult>
diff --git a/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/decl/_template-test-set_result.xml b/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/decl/_template-test-set_result.xml
index 9945e97b7..b5f76804e 100644
--- a/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/decl/_template-test-set_result.xml
+++ b/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/decl/_template-test-set_result.xml
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="UTF-8"?><testrun dateTime="2025-11-13T16:37:45Z" fail="0" name="template" pass="6" skipped="0" statusUnknown="0" totalRun="6">
+<?xml version="1.0" encoding="UTF-8"?><testrun dateTime="2025-12-10T16:52:36Z" fail="0" name="template" pass="6" skipped="0" statusUnknown="0" totalRun="6">
<testResult status="pass" testName="template-001"/>
<testResult status="pass" testName="template-002"/>
<testResult status="pass" testName="template-003"/>
diff --git a/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/decl/_variable-test-set_result.xml b/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/decl/_variable-test-set_result.xml
index 75f4c0e77..ee976809d 100644
--- a/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/decl/_variable-test-set_result.xml
+++ b/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/decl/_variable-test-set_result.xml
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="UTF-8"?><testrun dateTime="2025-11-13T16:37:27Z" fail="19" name="variable" pass="86" skipped="3" statusUnknown="0" totalRun="105">
+<?xml version="1.0" encoding="UTF-8"?><testrun dateTime="2025-12-10T16:52:17Z" fail="18" name="variable" pass="85" skipped="5" statusUnknown="0" totalRun="103">
<testResult status="pass" testName="variable-0101"/>
<testResult status="pass" testName="variable-0102"/>
<testResult status="pass" testName="variable-0103"/>
@@ -19,7 +19,9 @@
<testResult status="pass" testName="variable-0116"/>
<testResult status="pass" testName="variable-0117"/>
<testResult status="fail" testName="variable-0118">
- <outResult><?xml version="1.0" encoding="UTF-8"?><out xmlns:xs="http://www.w3.org/2001/XMLSchema" att="2"/></outResult>
+ <outResult>*** Error not detected! ***
+<?xml version="1.0" encoding="UTF-8"?>
+<out xmlns:xs="http://www.w3.org/2001/XMLSchema" att="2"/></outResult>
</testResult>
<testResult status="fail" testName="variable-0119">
<outResult>
@@ -44,7 +46,7 @@
<testResult status="pass" testName="variable-0301"/>
<testResult status="fail" testName="variable-0302"/>
<testResult status="fail" testName="variable-0303"/>
- <testResult status="fail" testName="variable-0401"/>
+ <testResult feature="backwards_compatibility" status="skipped" testName="variable-0401"/>
<testResult status="fail" testName="variable-0501"/>
<testResult status="pass" testName="variable-0601"/>
<testResult status="pass" testName="variable-0701"/>
@@ -82,7 +84,7 @@
<testResult status="pass" testName="variable-1905"/>
<testResult status="pass" testName="variable-2001"/>
<testResult status="pass" testName="variable-2101"/>
- <testResult status="pass" testName="variable-2201"/>
+ <testResult feature="backwards_compatibility" status="skipped" testName="variable-2201"/>
<testResult status="fail" testName="variable-2202">
<outResult><?xml version="1.0" encoding="UTF-8"?><out>It is global!</out></outResult>
</testResult>
diff --git a/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/expr/_axes-test-set_result.xml b/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/expr/_axes-test-set_result.xml
index 3b6b43655..542aa8308 100644
--- a/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/expr/_axes-test-set_result.xml
+++ b/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/expr/_axes-test-set_result.xml
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="UTF-8"?><testrun dateTime="2025-12-09T16:30:24Z" fail="10" name="axes" pass="190" skipped="2" statusUnknown="0" totalRun="200">
+<?xml version="1.0" encoding="UTF-8"?><testrun dateTime="2025-12-10T16:52:27Z" fail="10" name="axes" pass="190" skipped="2" statusUnknown="0" totalRun="200">
<testResult status="pass" testName="axes-001"/>
<testResult status="pass" testName="axes-002"/>
<testResult status="pass" testName="axes-003"/>
diff --git a/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/expr/_castable-test-set_result.xml b/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/expr/_castable-test-set_result.xml
index 0fc98eaa1..c72c1677a 100644
--- a/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/expr/_castable-test-set_result.xml
+++ b/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/expr/_castable-test-set_result.xml
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="UTF-8"?><testrun dateTime="2025-11-13T16:37:37Z" fail="3" name="castable" pass="6" skipped="0" statusUnknown="0" totalRun="9">
+<?xml version="1.0" encoding="UTF-8"?><testrun dateTime="2025-12-10T16:52:28Z" fail="3" name="castable" pass="6" skipped="0" statusUnknown="0" totalRun="9">
<testResult status="pass" testName="castable-001"/>
<testResult status="pass" testName="castable-002"/>
<testResult status="pass" testName="castable-003"/>
diff --git a/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/expr/_expression-test-set_result.xml b/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/expr/_expression-test-set_result.xml
index 582c083a1..8f7b50a60 100644
--- a/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/expr/_expression-test-set_result.xml
+++ b/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/expr/_expression-test-set_result.xml
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="UTF-8"?><testrun dateTime="2025-11-15T17:36:57Z" fail="15" name="expression" pass="85" skipped="4" statusUnknown="1" totalRun="101">
+<?xml version="1.0" encoding="UTF-8"?><testrun dateTime="2025-12-10T16:52:28Z" fail="15" name="expression" pass="84" skipped="5" statusUnknown="1" totalRun="100">
<testResult status="pass" testName="expression-0101"/>
<testResult status="pass" testName="expression-0301"/>
<testResult status="pass" testName="expression-0302"/>
@@ -120,7 +120,7 @@
<testResult status="pass" testName="expression-4209"/>
<testResult status="pass" testName="expression-4210"/>
<testResult status="pass" testName="expression-4301"/>
- <testResult status="pass" testName="expression-4302"/>
+ <testResult feature="backwards_compatibility" status="skipped" testName="expression-4302"/>
<testResult status="fail" testName="expression-4303">
<outResult><?xml version="1.0" encoding="UTF-8"?><span>false</span></outResult>
</testResult>
diff --git a/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/expr/_for-test-set_result.xml b/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/expr/_for-test-set_result.xml
index 0cf72cf20..8385f8879 100644
--- a/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/expr/_for-test-set_result.xml
+++ b/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/expr/_for-test-set_result.xml
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="UTF-8"?><testrun dateTime="2025-11-13T16:37:38Z" fail="1" name="for" pass="2" skipped="1" statusUnknown="0" totalRun="3">
+<?xml version="1.0" encoding="UTF-8"?><testrun dateTime="2025-12-10T16:52:29Z" fail="1" name="for" pass="2" skipped="1" statusUnknown="0" totalRun="3">
<testResult status="pass" testName="for-001"/>
<testResult status="pass" testName="for-002"/>
<testResult status="fail" testName="for-003"/>
diff --git a/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/expr/_higher-order-functions-test-set_result.xml b/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/expr/_higher-order-functions-test-set_result.xml
index 3338e26ae..e8afb6c81 100644
--- a/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/expr/_higher-order-functions-test-set_result.xml
+++ b/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/expr/_higher-order-functions-test-set_result.xml
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="UTF-8"?><testrun dateTime="2025-11-13T16:37:33Z" fail="36" name="higher-order-functions" pass="33" skipped="7" statusUnknown="0" totalRun="69">
+<?xml version="1.0" encoding="UTF-8"?><testrun dateTime="2025-12-10T16:52:23Z" fail="36" name="higher-order-functions" pass="33" skipped="7" statusUnknown="0" totalRun="69">
<testResult status="pass" testName="higher-order-functions-001"/>
<testResult status="pass" testName="higher-order-functions-002"/>
<testResult status="pass" testName="higher-order-functions-003"/>
diff --git a/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/expr/_math-test-set_result.xml b/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/expr/_math-test-set_result.xml
index 311f86e51..047edbc70 100644
--- a/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/expr/_math-test-set_result.xml
+++ b/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/expr/_math-test-set_result.xml
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="UTF-8"?><testrun dateTime="2025-11-13T16:37:38Z" fail="25" name="math" pass="128" skipped="8" statusUnknown="0" totalRun="153">
+<?xml version="1.0" encoding="UTF-8"?><testrun dateTime="2025-12-10T16:52:29Z" fail="25" name="math" pass="128" skipped="8" statusUnknown="0" totalRun="153">
<testResult status="pass" testName="math-0101"/>
<testResult status="pass" testName="math-3315"/>
<testResult status="pass" testName="math-0101"/>
@@ -150,7 +150,7 @@
<testResult status="pass" testName="math-3314"/>
<testResult status="pass" testName="math-3315"/>
<testResult status="pass" testName="math-3316"/>
- <testResult reason="Xalan configured" status="skipped" testName="math-3317"/>
+ <testResult feature="backwards_compatibility" status="skipped" testName="math-3317"/>
<testResult status="pass" testName="math-3318"/>
<testResult status="pass" testName="math-3319"/>
<testResult status="skipped" testName="math-3320" xsltVersion="XSLT 2.0/1.0 only test case"/>
diff --git a/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/expr/_nodetest-test-set_result.xml b/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/expr/_nodetest-test-set_result.xml
index e43070fd5..d2d564ee9 100644
--- a/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/expr/_nodetest-test-set_result.xml
+++ b/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/expr/_nodetest-test-set_result.xml
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="UTF-8"?><testrun dateTime="2025-11-13T16:37:39Z" fail="0" name="nodetest" pass="3" skipped="35" statusUnknown="0" totalRun="3">
+<?xml version="1.0" encoding="UTF-8"?><testrun dateTime="2025-12-10T16:52:29Z" fail="0" name="nodetest" pass="3" skipped="35" statusUnknown="0" totalRun="3">
<testResult status="pass" testName="nodetest-001"/>
<testResult status="pass" testName="nodetest-002"/>
<testResult status="pass" testName="nodetest-003"/>
diff --git a/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/expr/_path-test-set_result.xml b/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/expr/_path-test-set_result.xml
index 58fcff386..83db2c908 100644
--- a/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/expr/_path-test-set_result.xml
+++ b/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/expr/_path-test-set_result.xml
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="UTF-8"?><testrun dateTime="2025-11-13T16:37:39Z" fail="3" name="path" pass="7" skipped="0" statusUnknown="0" totalRun="10">
+<?xml version="1.0" encoding="UTF-8"?><testrun dateTime="2025-12-10T16:52:29Z" fail="3" name="path" pass="7" skipped="0" statusUnknown="0" totalRun="10">
<testResult status="pass" testName="path-001"/>
<testResult status="pass" testName="path-002"/>
<testResult status="pass" testName="path-003"/>
diff --git a/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/expr/_predicate-test-set_result.xml b/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/expr/_predicate-test-set_result.xml
index 37b40ee21..4ea766950 100644
--- a/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/expr/_predicate-test-set_result.xml
+++ b/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/expr/_predicate-test-set_result.xml
@@ -1,9 +1,9 @@
-<?xml version="1.0" encoding="UTF-8"?><testrun dateTime="2025-11-13T16:37:39Z" fail="7" name="predicate" pass="50" skipped="0" statusUnknown="0" totalRun="57">
- <testResult status="fail" testName="predicate-001"/>
- <testResult status="fail" testName="predicate-002"/>
- <testResult status="fail" testName="predicate-003"/>
- <testResult status="pass" testName="predicate-004"/>
- <testResult status="pass" testName="predicate-005"/>
+<?xml version="1.0" encoding="UTF-8"?><testrun dateTime="2025-12-10T16:52:29Z" fail="4" name="predicate" pass="48" skipped="5" statusUnknown="0" totalRun="52">
+ <testResult feature="backwards_compatibility" status="skipped" testName="predicate-001"/>
+ <testResult feature="backwards_compatibility" status="skipped" testName="predicate-002"/>
+ <testResult feature="backwards_compatibility" status="skipped" testName="predicate-003"/>
+ <testResult feature="backwards_compatibility" status="skipped" testName="predicate-004"/>
+ <testResult feature="backwards_compatibility" status="skipped" testName="predicate-005"/>
<testResult status="pass" testName="predicate-006"/>
<testResult status="pass" testName="predicate-007"/>
<testResult status="pass" testName="predicate-008"/>
diff --git a/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/fn/_deep-equal-test-set_result.xml b/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/fn/_deep-equal-test-set_result.xml
index d38832067..fce391cff 100644
--- a/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/fn/_deep-equal-test-set_result.xml
+++ b/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/fn/_deep-equal-test-set_result.xml
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="UTF-8"?><testrun dateTime="2025-11-13T16:37:41Z" fail="0" name="deep-equal" pass="2" skipped="0" statusUnknown="0" totalRun="2">
+<?xml version="1.0" encoding="UTF-8"?><testrun dateTime="2025-12-10T16:52:32Z" fail="0" name="deep-equal" pass="2" skipped="0" statusUnknown="0" totalRun="2">
<testResult status="pass" testName="deep-equal-001"/>
<testResult status="pass" testName="deep-equal-002"/>
</testrun>
diff --git a/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/fn/_format-number-test-set_result.xml b/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/fn/_format-number-test-set_result.xml
index d2af23224..c1983a1a6 100644
--- a/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/fn/_format-number-test-set_result.xml
+++ b/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/fn/_format-number-test-set_result.xml
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="UTF-8"?><testrun dateTime="2025-11-13T16:37:43Z" fail="32" name="format-number" pass="38" skipped="4" statusUnknown="0" totalRun="70">
+<?xml version="1.0" encoding="UTF-8"?><testrun dateTime="2025-12-10T16:52:34Z" fail="32" name="format-number" pass="32" skipped="10" statusUnknown="0" totalRun="64">
<testResult status="fail" testName="format-number-001"/>
<testResult status="fail" testName="format-number-002"/>
<testResult status="fail" testName="format-number-003"/>
@@ -12,7 +12,7 @@
<testResult status="pass" testName="format-number-011"/>
<testResult status="pass" testName="format-number-012"/>
<testResult status="fail" testName="format-number-013"/>
- <testResult status="pass" testName="format-number-014"/>
+ <testResult feature="backwards_compatibility" status="skipped" testName="format-number-014"/>
<testResult status="pass" testName="format-number-015"/>
<testResult status="pass" testName="format-number-016"/>
<testResult status="pass" testName="format-number-017"/>
@@ -33,13 +33,13 @@
<testResult status="fail" testName="format-number-032"/>
<testResult status="pass" testName="format-number-033"/>
<testResult status="fail" testName="format-number-034"/>
- <testResult status="pass" testName="format-number-035"/>
+ <testResult feature="backwards_compatibility" status="skipped" testName="format-number-035"/>
<testResult status="fail" testName="format-number-036"/>
<testResult status="fail" testName="format-number-037"/>
- <testResult status="pass" testName="format-number-038"/>
- <testResult status="pass" testName="format-number-039"/>
- <testResult status="pass" testName="format-number-040"/>
- <testResult status="pass" testName="format-number-041"/>
+ <testResult feature="backwards_compatibility" status="skipped" testName="format-number-038"/>
+ <testResult feature="backwards_compatibility" status="skipped" testName="format-number-039"/>
+ <testResult feature="backwards_compatibility" status="skipped" testName="format-number-040"/>
+ <testResult feature="backwards_compatibility" status="skipped" testName="format-number-041"/>
<testResult status="pass" testName="format-number-042"/>
<testResult status="pass" testName="format-number-043"/>
<testResult status="fail" testName="format-number-044"/>
diff --git a/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/fn/_json-to-xml-test-set_result.xml b/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/fn/_json-to-xml-test-set_result.xml
index 79ea877c7..4ee7e5e6c 100644
--- a/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/fn/_json-to-xml-test-set_result.xml
+++ b/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/fn/_json-to-xml-test-set_result.xml
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="UTF-8"?><testrun dateTime="2025-11-13T16:37:44Z" fail="7" name="json-to-xml" pass="18" skipped="35" statusUnknown="0" totalRun="25">
+<?xml version="1.0" encoding="UTF-8"?><testrun dateTime="2025-12-10T16:52:34Z" fail="7" name="json-to-xml" pass="18" skipped="35" statusUnknown="0" totalRun="25">
<testResult status="pass" testName="json-to-xml-001"/>
<testResult status="pass" testName="json-to-xml-002"/>
<testResult status="pass" testName="json-to-xml-003"/>
diff --git a/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/fn/_key-test-set_result.xml b/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/fn/_key-test-set_result.xml
index 36cc43042..25a1a83e3 100644
--- a/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/fn/_key-test-set_result.xml
+++ b/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/fn/_key-test-set_result.xml
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="UTF-8"?><testrun dateTime="2025-12-09T16:31:02Z" fail="36" name="key" pass="60" skipped="3" statusUnknown="0" totalRun="96">
+<?xml version="1.0" encoding="UTF-8"?><testrun dateTime="2025-12-10T16:52:33Z" fail="36" name="key" pass="60" skipped="3" statusUnknown="0" totalRun="96">
<testResult status="pass" testName="key-001"/>
<testResult status="fail" testName="key-002">
<outResult>
diff --git a/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/fn/_position-test-set_result.xml b/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/fn/_position-test-set_result.xml
index 8f4acfbb1..fab967ab8 100644
--- a/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/fn/_position-test-set_result.xml
+++ b/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/fn/_position-test-set_result.xml
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="UTF-8"?><testrun dateTime="2025-11-13T16:37:42Z" fail="19" name="position" pass="191" skipped="1" statusUnknown="0" totalRun="210">
+<?xml version="1.0" encoding="UTF-8"?><testrun dateTime="2025-12-10T16:52:32Z" fail="19" name="position" pass="191" skipped="1" statusUnknown="0" totalRun="210">
<testResult status="pass" testName="position-0101"/>
<testResult status="fail" testName="position-0102"/>
<testResult status="fail" testName="position-0103"/>
diff --git a/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/fn/_root-test-set_result.xml b/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/fn/_root-test-set_result.xml
index 3e6cc4eb6..d2283ea8b 100644
--- a/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/fn/_root-test-set_result.xml
+++ b/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/fn/_root-test-set_result.xml
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="UTF-8"?><testrun dateTime="2025-11-13T16:37:42Z" fail="3" name="root" pass="7" skipped="0" statusUnknown="0" totalRun="10">
+<?xml version="1.0" encoding="UTF-8"?><testrun dateTime="2025-12-10T16:52:33Z" fail="3" name="root" pass="7" skipped="0" statusUnknown="0" totalRun="10">
<testResult status="pass" testName="root-0101"/>
<testResult status="fail" testName="root-0102"/>
<testResult status="pass" testName="root-0103"/>
diff --git a/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/fn/_xml-to-json-test-set_result.xml b/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/fn/_xml-to-json-test-set_result.xml
index fcc66bc91..f963c64ca 100644
--- a/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/fn/_xml-to-json-test-set_result.xml
+++ b/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/fn/_xml-to-json-test-set_result.xml
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="UTF-8"?><testrun dateTime="2025-11-13T16:37:45Z" fail="35" name="xml-to-json" pass="52" skipped="65" statusUnknown="1" totalRun="88">
+<?xml version="1.0" encoding="UTF-8"?><testrun dateTime="2025-12-10T16:52:36Z" fail="35" name="xml-to-json" pass="52" skipped="65" statusUnknown="1" totalRun="88">
<testResult status="pass" testName="xml-to-json-A001"/>
<testResult status="pass" testName="xml-to-json-A002"/>
<testResult status="pass" testName="xml-to-json-A003"/>
diff --git a/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/insn/_analyze-string-test-set_result.xml b/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/insn/_analyze-string-test-set_result.xml
index fcc053527..75dca080d 100644
--- a/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/insn/_analyze-string-test-set_result.xml
+++ b/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/insn/_analyze-string-test-set_result.xml
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="UTF-8"?><testrun dateTime="2025-11-13T16:37:42Z" fail="14" name="analyze-string" pass="39" skipped="5" statusUnknown="0" totalRun="53">
+<?xml version="1.0" encoding="UTF-8"?><testrun dateTime="2025-12-10T16:52:33Z" fail="14" name="analyze-string" pass="39" skipped="5" statusUnknown="0" totalRun="53">
<testResult status="pass" testName="analyze-string-001"/>
<testResult status="pass" testName="analyze-string-002"/>
<testResult status="pass" testName="analyze-string-003"/>
@@ -58,7 +58,7 @@
<testResult status="fail" testName="analyze-string-092">
<outResult>
<errTrace>Expected ), but found: "s "</errTrace>
- <errTrace>java.lang.ClassCastException</errTrace>
+ <errTrace>java.lang.ClassCastException: org.apache.xpath.objects.XNumber cannot be cast to java.lang.String</errTrace>
</outResult>
</testResult>
<testResult status="pass" testName="analyze-string-093"/>
diff --git a/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/insn/_apply-templates-test-set_result.xml b/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/insn/_apply-templates-test-set_result.xml
index a04f046a4..993b76cb3 100644
--- a/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/insn/_apply-templates-test-set_result.xml
+++ b/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/insn/_apply-templates-test-set_result.xml
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="UTF-8"?><testrun dateTime="2025-11-28T08:22:25Z" fail="15" name="apply-templates" pass="22" skipped="13" statusUnknown="0" totalRun="37">
+<?xml version="1.0" encoding="UTF-8"?><testrun dateTime="2025-12-10T16:52:22Z" fail="15" name="apply-templates" pass="22" skipped="13" statusUnknown="0" totalRun="37">
<testResult status="pass" testName="apply-templates-001"/>
<testResult status="pass" testName="apply-templates-002"/>
<testResult status="pass" testName="conflict-resolution-0101"/>
diff --git a/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/insn/_attribute-test-set_result.xml b/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/insn/_attribute-test-set_result.xml
index 5b81c84f9..4e41677d4 100644
--- a/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/insn/_attribute-test-set_result.xml
+++ b/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/insn/_attribute-test-set_result.xml
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="UTF-8"?><testrun dateTime="2025-11-22T12:04:04Z" fail="11" name="attribute" pass="11" skipped="7" statusUnknown="1" totalRun="23">
+<?xml version="1.0" encoding="UTF-8"?><testrun dateTime="2025-12-10T16:52:30Z" fail="11" name="attribute" pass="11" skipped="7" statusUnknown="1" totalRun="23">
<testResult status="pass" testName="attribute-0001"/>
<testResult status="pass" testName="attribute-0002"/>
<testResult status="pass" testName="attribute-0003"/>
diff --git a/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/insn/_call-template-test-set_result.xml b/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/insn/_call-template-test-set_result.xml
index 80c26b93d..cba50cf03 100644
--- a/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/insn/_call-template-test-set_result.xml
+++ b/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/insn/_call-template-test-set_result.xml
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="UTF-8"?><testrun dateTime="2025-11-15T17:36:59Z" fail="12" name="call-template" pass="28" skipped="2" statusUnknown="0" totalRun="40">
+<?xml version="1.0" encoding="UTF-8"?><testrun dateTime="2025-12-10T16:52:30Z" fail="12" name="call-template" pass="28" skipped="2" statusUnknown="0" totalRun="40">
<testResult status="fail" testName="call-template-0001">
<outResult><?xml version="1.0" encoding="UTF-8"?><out/></outResult>
</testResult>
diff --git a/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/insn/_choose-test-set_result.xml b/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/insn/_choose-test-set_result.xml
index 29e4b29c4..9b187756b 100644
--- a/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/insn/_choose-test-set_result.xml
+++ b/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/insn/_choose-test-set_result.xml
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="UTF-8"?><testrun dateTime="2025-11-13T16:37:33Z" fail="6" name="choose" pass="48" skipped="1" statusUnknown="0" totalRun="54">
+<?xml version="1.0" encoding="UTF-8"?><testrun dateTime="2025-12-10T16:52:23Z" fail="6" name="choose" pass="48" skipped="1" statusUnknown="0" totalRun="54">
<testResult status="pass" testName="choose-0101"/>
<testResult status="pass" testName="choose-0102"/>
<testResult reason="Xalan configured" status="skipped" testName="choose-0103"/>
diff --git a/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/insn/_copy-test-set_result.xml b/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/insn/_copy-test-set_result.xml
index 2f8983b8d..8897a74ff 100644
--- a/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/insn/_copy-test-set_result.xml
+++ b/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/insn/_copy-test-set_result.xml
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="UTF-8"?><testrun dateTime="2025-11-13T16:37:34Z" fail="49" name="copy" pass="76" skipped="23" statusUnknown="0" totalRun="125">
+<?xml version="1.0" encoding="UTF-8"?><testrun dateTime="2025-12-10T16:52:24Z" fail="49" name="copy" pass="76" skipped="23" statusUnknown="0" totalRun="125">
<testResult status="pass" testName="copy-0101"/>
<testResult status="pass" testName="copy-0102"/>
<testResult status="pass" testName="copy-0103"/>
diff --git a/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/insn/_element-test-set_result.xml b/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/insn/_element-test-set_result.xml
index dc5ac82a4..13e95fd8e 100644
--- a/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/insn/_element-test-set_result.xml
+++ b/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/insn/_element-test-set_result.xml
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="UTF-8"?><testrun dateTime="2025-11-13T16:37:35Z" fail="14" name="element" pass="15" skipped="0" statusUnknown="0" totalRun="29">
+<?xml version="1.0" encoding="UTF-8"?><testrun dateTime="2025-12-10T16:52:26Z" fail="14" name="element" pass="15" skipped="0" statusUnknown="0" totalRun="29">
<testResult status="pass" testName="element-0001"/>
<testResult status="pass" testName="element-0002"/>
<testResult status="pass" testName="element-0003"/>
diff --git a/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/insn/_for-each-group-test-set_result.xml b/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/insn/_for-each-group-test-set_result.xml
index 20834a767..0bb21ca03 100644
--- a/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/insn/_for-each-group-test-set_result.xml
+++ b/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/insn/_for-each-group-test-set_result.xml
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="UTF-8"?><testrun dateTime="2025-11-13T16:37:32Z" fail="30" name="for-each-group" pass="50" skipped="5" statusUnknown="0" totalRun="80">
+<?xml version="1.0" encoding="UTF-8"?><testrun dateTime="2025-12-10T16:52:22Z" fail="30" name="for-each-group" pass="50" skipped="5" statusUnknown="0" totalRun="80">
<testResult status="pass" testName="for-each-group-001"/>
<testResult status="skipped" testName="for-each-group-002a" xsltVersion="XSLT 2.0/1.0 only test case"/>
<testResult status="fail" testName="for-each-group-002">
diff --git a/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/insn/_iterate-test-set_result.xml b/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/insn/_iterate-test-set_result.xml
index 4c1901feb..8ea3aeb9f 100644
--- a/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/insn/_iterate-test-set_result.xml
+++ b/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/insn/_iterate-test-set_result.xml
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="UTF-8"?><testrun dateTime="2025-11-13T16:37:34Z" fail="1" name="iterate" pass="43" skipped="0" statusUnknown="0" totalRun="44">
+<?xml version="1.0" encoding="UTF-8"?><testrun dateTime="2025-12-10T16:52:25Z" fail="1" name="iterate" pass="43" skipped="0" statusUnknown="0" totalRun="44">
<testResult status="pass" testName="iterate-001"/>
<testResult status="pass" testName="iterate-002"/>
<testResult status="pass" testName="iterate-003"/>
diff --git a/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/insn/_message-test-set_result.xml b/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/insn/_message-test-set_result.xml
index 4988483b4..10ba2ac01 100644
--- a/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/insn/_message-test-set_result.xml
+++ b/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/insn/_message-test-set_result.xml
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="UTF-8"?><testrun dateTime="2025-12-01T16:45:11Z" fail="7" name="message" pass="34" skipped="3" statusUnknown="1" totalRun="42">
+<?xml version="1.0" encoding="UTF-8"?><testrun dateTime="2025-12-10T16:52:37Z" fail="7" name="message" pass="34" skipped="3" statusUnknown="1" totalRun="42">
<testResult status="pass" testName="message-0001"/>
<testResult status="pass" testName="message-0001a"/>
<testResult status="pass" testName="message-0002"/>
@@ -33,9 +33,7 @@
<testResult reason="Xalan configured" status="skipped" testName="message-0309"/>
<testResult reason="Xalan configured" status="skipped" testName="message-0310"/>
<testResult status="pass" testName="message-0311"/>
- <testResult status="fail" testName="message-0312">
- <outResult/>
- </testResult>
+ <testResult status="fail" testName="message-0312"/>
<testResult status="pass" testName="message-0313"/>
<testResult status="pass" testName="message-0314"/>
<testResult status="fail" testName="message-0315"/>
diff --git a/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/insn/_sequence-test-set_result.xml b/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/insn/_sequence-test-set_result.xml
index 0939ed9b5..9d743378d 100644
--- a/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/insn/_sequence-test-set_result.xml
+++ b/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/insn/_sequence-test-set_result.xml
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="UTF-8"?><testrun dateTime="2025-11-13T16:37:35Z" fail="43" name="sequence" pass="43" skipped="6" statusUnknown="0" totalRun="86">
+<?xml version="1.0" encoding="UTF-8"?><testrun dateTime="2025-12-10T16:52:25Z" fail="42" name="sequence" pass="43" skipped="7" statusUnknown="0" totalRun="85">
<testResult status="fail" testName="sequence-0101"/>
<testResult status="fail" testName="sequence-0102"/>
<testResult status="pass" testName="sequence-0103"/>
@@ -37,7 +37,7 @@
<testResult status="pass" testName="sequence-0116"/>
<testResult status="pass" testName="sequence-0117"/>
<testResult status="pass" testName="sequence-0118"/>
- <testResult status="fail" testName="sequence-0119"/>
+ <testResult feature="backwards_compatibility" status="skipped" testName="sequence-0119"/>
<testResult reason="Xalan configured" status="skipped" testName="sequence-0120"/>
<testResult status="pass" testName="sequence-0121"/>
<testResult status="fail" testName="sequence-0122"/>
@@ -67,10 +67,12 @@
<testResult status="pass" testName="sequence-0134"/>
<testResult status="fail" testName="sequence-0135">
<outResult><?xml version="1.0" encoding="UTF-8"?><foo/>
+
</outResult>
</testResult>
<testResult status="fail" testName="sequence-0136">
<outResult><?xml version="1.0" encoding="UTF-8"?>
+
</outResult>
</testResult>
<testResult status="skipped" testName="sequence-0137" xsltVersion="XSLT 2.0/1.0 only test case"/>
diff --git a/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/insn/_sort-test-set_result.xml b/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/insn/_sort-test-set_result.xml
index 5f6561fe2..c5cf3283c 100644
--- a/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/insn/_sort-test-set_result.xml
+++ b/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/insn/_sort-test-set_result.xml
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="UTF-8"?><testrun dateTime="2025-11-13T16:37:35Z" fail="30" name="sort" pass="51" skipped="0" statusUnknown="0" totalRun="81">
+<?xml version="1.0" encoding="UTF-8"?><testrun dateTime="2025-12-10T16:52:26Z" fail="30" name="sort" pass="51" skipped="0" statusUnknown="0" totalRun="81">
<testResult status="pass" testName="sort-003"/>
<testResult status="pass" testName="sort-001"/>
<testResult status="pass" testName="sort-002"/>
@@ -28,16 +28,20 @@
<testResult status="pass" testName="sort-026"/>
<testResult status="fail" testName="sort-027">
<outResult><?xml version="1.0" encoding="iso-8859-1"?><out lang="default-order"/>
+
</outResult>
</testResult>
<testResult status="fail" testName="sort-028">
<outResult><?xml version="1.0" encoding="iso-8859-1"?><out lang="default-order"/>
+
</outResult>
<outResult><?xml version="1.0" encoding="iso-8859-1"?><out lang="default-order"/>
+
</outResult>
</testResult>
<testResult status="fail" testName="sort-029">
<outResult><?xml version="1.0" encoding="iso-8859-1"?><out lang="default-order"/>
+
</outResult>
</testResult>
<testResult status="pass" testName="sort-030"/>
diff --git a/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/insn/_try-test-set_result.xml b/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/insn/_try-test-set_result.xml
index 0e02875c2..e88cd6bdf 100644
--- a/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/insn/_try-test-set_result.xml
+++ b/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/insn/_try-test-set_result.xml
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="UTF-8"?><testrun dateTime="2025-11-24T17:08:56Z" fail="7" name="try" pass="27" skipped="8" statusUnknown="0" totalRun="34">
+<?xml version="1.0" encoding="UTF-8"?><testrun dateTime="2025-12-10T16:52:23Z" fail="7" name="try" pass="27" skipped="8" statusUnknown="0" totalRun="34">
<testResult status="pass" testName="try-001"/>
<testResult status="pass" testName="try-002"/>
<testResult status="pass" testName="try-003"/>
diff --git a/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/insn/_xsl-document-test-set_result.xml b/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/insn/_xsl-document-test-set_result.xml
index 59e86bd96..ec928267b 100644
--- a/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/insn/_xsl-document-test-set_result.xml
+++ b/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/insn/_xsl-document-test-set_result.xml
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="UTF-8"?><testrun dateTime="2025-11-13T16:37:43Z" fail="11" name="xsl-document" pass="14" skipped="0" statusUnknown="0" totalRun="25">
+<?xml version="1.0" encoding="UTF-8"?><testrun dateTime="2025-12-10T16:52:34Z" fail="11" name="xsl-document" pass="14" skipped="0" statusUnknown="0" totalRun="25">
<testResult status="pass" testName="xsl-document-0101"/>
<testResult status="fail" testName="xsl-document-0102"/>
<testResult status="pass" testName="xsl-document-0103"/>
@@ -28,9 +28,7 @@
</outResult>
</testResult>
<testResult status="fail" testName="xsl-document-0602"/>
- <testResult status="fail" testName="xsl-document-0603">
- <outResult/>
- </testResult>
+ <testResult status="fail" testName="xsl-document-0603"/>
<testResult status="pass" testName="xsl-document-0604"/>
<testResult status="pass" testName="xsl-document-0605"/>
<testResult status="fail" testName="xsl-document-0606"/>
diff --git a/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/misc/_built-in-templates-test-set_result.xml b/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/misc/_built-in-templates-test-set_result.xml
index 39f73c950..9c65513e1 100644
--- a/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/misc/_built-in-templates-test-set_result.xml
+++ b/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/misc/_built-in-templates-test-set_result.xml
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="UTF-8"?><testrun dateTime="2025-11-13T16:37:44Z" fail="2" name="built-in-templates" pass="3" skipped="1" statusUnknown="0" totalRun="5">
+<?xml version="1.0" encoding="UTF-8"?><testrun dateTime="2025-12-10T16:52:35Z" fail="2" name="built-in-templates" pass="3" skipped="1" statusUnknown="0" totalRun="5">
<testResult status="pass" testName="built-in-templates-0101"/>
<testResult status="pass" testName="built-in-templates-0102"/>
<testResult status="fail" testName="built-in-templates-0201"/>
diff --git a/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/misc/_regex-test-set_result.xml b/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/misc/_regex-test-set_result.xml
index fcceb998d..8ec053124 100644
--- a/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/misc/_regex-test-set_result.xml
+++ b/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/misc/_regex-test-set_result.xml
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="UTF-8"?><testrun dateTime="2025-11-15T17:37:03Z" fail="12" name="regex" pass="32" skipped="6" statusUnknown="0" totalRun="44">
+<?xml version="1.0" encoding="UTF-8"?><testrun dateTime="2025-12-10T16:52:34Z" fail="12" name="regex" pass="32" skipped="6" statusUnknown="0" totalRun="44">
<testResult status="pass" testName="regex-001"/>
<testResult status="fail" testName="regex-002"/>
<testResult status="pass" testName="regex-003"/>
diff --git a/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/type/_boolean-test-set_result.xml b/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/type/_boolean-test-set_result.xml
index fe83468db..3fd2b0ac7 100644
--- a/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/type/_boolean-test-set_result.xml
+++ b/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/type/_boolean-test-set_result.xml
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="UTF-8"?><testrun dateTime="2025-11-13T16:37:33Z" fail="1" name="boolean" pass="108" skipped="3" statusUnknown="0" totalRun="109">
+<?xml version="1.0" encoding="UTF-8"?><testrun dateTime="2025-12-10T16:52:23Z" fail="1" name="boolean" pass="104" skipped="7" statusUnknown="0" totalRun="105">
<testResult status="pass" testName="boolean-001"/>
<testResult status="pass" testName="boolean-002"/>
<testResult status="pass" testName="boolean-003"/>
@@ -30,7 +30,7 @@
<testResult status="pass" testName="boolean-029"/>
<testResult status="pass" testName="boolean-030"/>
<testResult status="pass" testName="boolean-031"/>
- <testResult status="pass" testName="boolean-032"/>
+ <testResult feature="backwards_compatibility" status="skipped" testName="boolean-032"/>
<testResult status="pass" testName="boolean-033"/>
<testResult status="pass" testName="boolean-034"/>
<testResult status="pass" testName="boolean-035"/>
@@ -67,7 +67,7 @@
<testResult status="pass" testName="boolean-066"/>
<testResult status="pass" testName="boolean-067"/>
<testResult status="pass" testName="boolean-068"/>
- <testResult reason="Xalan configured" status="skipped" testName="boolean-069"/>
+ <testResult feature="backwards_compatibility" status="skipped" testName="boolean-069"/>
<testResult status="pass" testName="boolean-070"/>
<testResult status="pass" testName="boolean-071"/>
<testResult status="pass" testName="boolean-072"/>
@@ -79,15 +79,15 @@
<testResult status="pass" testName="boolean-078"/>
<testResult status="pass" testName="boolean-079"/>
<testResult status="pass" testName="boolean-080"/>
- <testResult status="pass" testName="boolean-081"/>
+ <testResult feature="backwards_compatibility" status="skipped" testName="boolean-081"/>
<testResult status="fail" testName="boolean-082">
<outResult>
<errTrace>XPST0003 : An XPath expression compare($non_blank_jcodes/dd:hcfa-jcode[position() < $this_pos]/text(), ./text()) = 0 has syntax error. Unknown op code : 0.</errTrace>
<errTrace>java.lang.ArrayIndexOutOfBoundsException</errTrace>
</outResult>
</testResult>
- <testResult status="pass" testName="boolean-083"/>
- <testResult status="pass" testName="boolean-084"/>
+ <testResult feature="backwards_compatibility" status="skipped" testName="boolean-083"/>
+ <testResult feature="backwards_compatibility" status="skipped" testName="boolean-084"/>
<testResult status="pass" testName="boolean-085"/>
<testResult status="pass" testName="boolean-086"/>
<testResult status="pass" testName="boolean-087"/>
@@ -98,8 +98,8 @@
<testResult status="pass" testName="boolean-092"/>
<testResult status="pass" testName="boolean-093"/>
<testResult status="pass" testName="boolean-094"/>
- <testResult reason="Xalan configured" status="skipped" testName="boolean-095"/>
- <testResult reason="Xalan configured" status="skipped" testName="boolean-096"/>
+ <testResult feature="backwards_compatibility" status="skipped" testName="boolean-095"/>
+ <testResult feature="backwards_compatibility" status="skipped" testName="boolean-096"/>
<testResult status="pass" testName="boolean-097"/>
<testResult status="pass" testName="boolean-098"/>
<testResult status="pass" testName="boolean-099"/>
diff --git a/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/type/_date-test-set_result.xml b/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/type/_date-test-set_result.xml
index 9884aabbe..02687fd46 100644
--- a/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/type/_date-test-set_result.xml
+++ b/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/type/_date-test-set_result.xml
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="UTF-8"?><testrun dateTime="2025-11-13T16:37:40Z" fail="73" name="date" pass="61" skipped="4" statusUnknown="0" totalRun="134">
+<?xml version="1.0" encoding="UTF-8"?><testrun dateTime="2025-12-10T16:52:30Z" fail="73" name="date" pass="61" skipped="4" statusUnknown="0" totalRun="134">
<testResult status="pass" testName="date-001"/>
<testResult status="pass" testName="date-002"/>
<testResult status="pass" testName="date-003"/>
@@ -43,7 +43,11 @@
<testResult status="pass" testName="date-041"/>
<testResult status="pass" testName="date-042"/>
<testResult status="pass" testName="date-043"/>
- <testResult status="fail" testName="date-044"/>
+ <testResult status="fail" testName="date-044">
+ <outResult>
+ <errTrace>This NodeSetDTM can not iterate to a previous node!</errTrace>
+ </outResult>
+ </testResult>
<testResult status="pass" testName="date-045"/>
<testResult status="pass" testName="date-046"/>
<testResult status="pass" testName="date-047"/>
diff --git a/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/type/_node-test-set_result.xml b/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/type/_node-test-set_result.xml
index 433836c84..2bb86549e 100644
--- a/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/type/_node-test-set_result.xml
+++ b/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/type/_node-test-set_result.xml
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="UTF-8"?><testrun dateTime="2025-11-13T16:37:39Z" fail="1" name="node" pass="31" skipped="0" statusUnknown="0" totalRun="32">
+<?xml version="1.0" encoding="UTF-8"?><testrun dateTime="2025-12-10T16:52:30Z" fail="1" name="node" pass="31" skipped="0" statusUnknown="0" totalRun="32">
<testResult status="pass" testName="node-0101"/>
<testResult status="pass" testName="node-0201"/>
<testResult status="pass" testName="node-0301"/>
diff --git a/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/type/_string-test-set_result.xml b/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/type/_string-test-set_result.xml
index 5633f8e47..ebca42e74 100644
--- a/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/type/_string-test-set_result.xml
+++ b/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/type/_string-test-set_result.xml
@@ -1,7 +1,7 @@
-<?xml version="1.0" encoding="UTF-8"?><testrun dateTime="2025-11-13T16:37:39Z" fail="6" name="string" pass="130" skipped="0" statusUnknown="0" totalRun="136">
+<?xml version="1.0" encoding="UTF-8"?><testrun dateTime="2025-12-10T16:52:30Z" fail="6" name="string" pass="128" skipped="2" statusUnknown="0" totalRun="134">
<testResult status="pass" testName="string-001"/>
<testResult status="pass" testName="string-002"/>
- <testResult status="pass" testName="string-003"/>
+ <testResult feature="backwards_compatibility" status="skipped" testName="string-003"/>
<testResult status="pass" testName="string-004"/>
<testResult status="pass" testName="string-005"/>
<testResult status="pass" testName="string-006"/>
@@ -29,7 +29,7 @@
<testResult status="pass" testName="string-028"/>
<testResult status="pass" testName="string-029"/>
<testResult status="pass" testName="string-030"/>
- <testResult status="pass" testName="string-031"/>
+ <testResult feature="backwards_compatibility" status="skipped" testName="string-031"/>
<testResult status="pass" testName="string-032"/>
<testResult status="pass" testName="string-033"/>
<testResult status="pass" testName="string-034"/>
diff --git a/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/w3c_xslt3_testsuite_xalan-j_result.xml b/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/w3c_xslt3_testsuite_xalan-j_result.xml
index 7fb406790..6c7efc595 100644
--- a/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/w3c_xslt3_testsuite_xalan-j_result.xml
+++ b/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/w3c_xslt3_testsuite_xalan-j_result.xml
@@ -1,13 +1,13 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<testResult dateTime="2025-12-09T16:31:43Z" desc="W3C XSLT 3.0 test suite results" fail="956" pass="2441" skipped="570" success="71.73%" totalRun="3403" xslt_processor="Xalan-J XSLT 3.0 development code">
+<testResult dateTime="2025-12-10T16:53:07Z" desc="W3C XSLT 3.0 test suite results" fail="945" pass="2427" skipped="595" success="71.85%" totalRun="3378" xslt_processor="Xalan-J XSLT 3.0 development code">
<attr>
<as fail="31" pass="80" skipped="93" success="72.07%" totalRun="111"/>
- <avt fail="7" pass="28" skipped="0" success="80.0%" totalRun="35"/>
+ <avt fail="4" pass="30" skipped="1" success="88.24%" totalRun="34"/>
<disable-output-escaping fail="5" pass="22" skipped="5" success="81.48%" totalRun="27"/>
<expand-text fail="8" pass="51" skipped="3" success="86.44%" totalRun="59"/>
- <match fail="86" pass="96" skipped="112" success="52.75%" totalRun="182"/>
+ <match fail="84" pass="98" skipped="112" success="53.85%" totalRun="182"/>
<mode fail="59" pass="64" skipped="46" success="52.03%" totalRun="123"/>
- <select fail="28" pass="106" skipped="23" success="78.52%" totalRun="135"/>
+ <select fail="27" pass="104" skipped="26" success="78.79%" totalRun="132"/>
<tunnel fail="40" pass="18" skipped="0" success="31.03%" totalRun="58"/>
<xpath-default-namespace fail="11" pass="11" skipped="4" success="50.0%" totalRun="22"/>
</attr>
@@ -18,22 +18,22 @@
<param fail="18" pass="12" skipped="1" success="40.0%" totalRun="30"/>
<strip-space fail="14" pass="13" skipped="3" success="48.15%" totalRun="27"/>
<template fail="0" pass="6" skipped="0" success="100.0%" totalRun="6"/>
- <variable fail="19" pass="86" skipped="3" success="81.9%" totalRun="105"/>
+ <variable fail="18" pass="85" skipped="5" success="82.52%" totalRun="103"/>
</decl>
<expr>
<axes fail="10" pass="190" skipped="2" success="95.0%" totalRun="200"/>
<castable fail="3" pass="6" skipped="0" success="66.67%" totalRun="9"/>
- <expression fail="15" pass="85" skipped="4" success="84.16%" totalRun="101"/>
+ <expression fail="15" pass="84" skipped="5" success="84.0%" totalRun="100"/>
<for fail="1" pass="2" skipped="1" success="66.67%" totalRun="3"/>
<higher-order-functions fail="36" pass="33" skipped="7" success="47.83%" totalRun="69"/>
<math fail="25" pass="128" skipped="8" success="83.66%" totalRun="153"/>
<nodetest fail="0" pass="3" skipped="35" success="100.0%" totalRun="3"/>
<path fail="3" pass="7" skipped="0" success="70.0%" totalRun="10"/>
- <predicate fail="7" pass="50" skipped="0" success="87.72%" totalRun="57"/>
+ <predicate fail="4" pass="48" skipped="5" success="92.31%" totalRun="52"/>
</expr>
<fn>
<deep-equal fail="0" pass="2" skipped="0" success="100.0%" totalRun="2"/>
- <format-number fail="32" pass="38" skipped="4" success="54.29%" totalRun="70"/>
+ <format-number fail="32" pass="32" skipped="10" success="50.0%" totalRun="64"/>
<json-to-xml fail="7" pass="18" skipped="35" success="72.0%" totalRun="25"/>
<key fail="36" pass="60" skipped="3" success="62.5%" totalRun="96"/>
<position fail="19" pass="191" skipped="1" success="90.95%" totalRun="210"/>
@@ -51,7 +51,7 @@
<for-each-group fail="30" pass="50" skipped="5" success="62.5%" totalRun="80"/>
<iterate fail="1" pass="43" skipped="0" success="97.73%" totalRun="44"/>
<message fail="7" pass="34" skipped="3" success="80.95%" totalRun="42"/>
- <sequence fail="43" pass="43" skipped="6" success="50.0%" totalRun="86"/>
+ <sequence fail="42" pass="43" skipped="7" success="50.59%" totalRun="85"/>
<sort fail="30" pass="51" skipped="0" success="62.96%" totalRun="81"/>
<try fail="7" pass="27" skipped="8" success="79.41%" totalRun="34"/>
<xsl-document fail="11" pass="14" skipped="0" success="56.0%" totalRun="25"/>
@@ -61,9 +61,9 @@
<regex fail="12" pass="32" skipped="6" success="72.73%" totalRun="44"/>
</misc>
<type>
- <boolean fail="1" pass="108" skipped="3" success="99.08%" totalRun="109"/>
+ <boolean fail="1" pass="104" skipped="7" success="99.05%" totalRun="105"/>
<date fail="73" pass="61" skipped="4" success="45.52%" totalRun="134"/>
<node fail="1" pass="31" skipped="0" success="96.88%" totalRun="32"/>
- <string fail="6" pass="130" skipped="0" success="95.59%" totalRun="136"/>
+ <string fail="6" pass="128" skipped="2" success="95.52%" totalRun="134"/>
</type>
</testResult>
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@xalan.apache.org
For additional commands, e-mail: commits-help@xalan.apache.org