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/06/05 15:58:23 UTC

(xalan-java) branch xalan-j_xslt3.0_mvn updated: committing few implementation improvements to xpath 'castable as' expression and compliance with related w3c xslt 3.0 test cases as well

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 9fafb8f85 committing few implementation improvements to xpath 'castable as' expression and compliance with related w3c xslt 3.0 test cases as well
9fafb8f85 is described below

commit 9fafb8f853be08c1b19203f27b69071c5bd713e4
Author: Mukul Gandhi <ga...@gmail.com>
AuthorDate: Thu Jun 5 21:28:05 2025 +0530

    committing few implementation improvements to xpath 'castable as' expression and compliance with related w3c xslt 3.0 test cases as well
---
 .../xpath/composite/SequenceTypeSupport.java       | 60 ++++++++++++++++++----
 .../org/apache/xpath/operations/CastableAs.java    | 51 ++++++++++++++++--
 .../result/decl/_character-map-test-set_result.xml |  2 +-
 .../result/decl/_function-test-set_result.xml      |  2 +-
 .../xslt3/result/expr/_axes-test-set_result.xml    |  2 +-
 .../result/expr/_castable-test-set_result.xml      | 22 ++------
 .../result/expr/_expression-test-set_result.xml    |  2 +-
 .../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    |  2 +-
 .../result/expr/_nodetest-test-set_result.xml      |  2 +-
 .../xslt3/result/expr/_path-test-set_result.xml    |  2 +-
 .../result/expr/_predicate-test-set_result.xml     |  2 +-
 .../result/fn/_deep-equal-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 +-
 .../insn/_analyze-string-test-set_result.xml       |  2 +-
 .../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 +-
 .../result/insn/_sequence-test-set_result.xml      |  2 +-
 .../xslt3/result/insn/_sort-test-set_result.xml    |  2 +-
 .../w3c/xslt3/result/insn/_try-test-set_result.xml |  2 +-
 .../xslt3/result/type/_boolean-test-set_result.xml |  2 +-
 .../xslt3/result/type/_node-test-set_result.xml    |  2 +-
 .../xslt3/result/type/_string-test-set_result.xml  |  2 +-
 .../result/w3c_xslt3_testsuite_xalan-j_result.xml  |  4 +-
 33 files changed, 133 insertions(+), 62 deletions(-)

diff --git a/src/main/java/org/apache/xpath/composite/SequenceTypeSupport.java b/src/main/java/org/apache/xpath/composite/SequenceTypeSupport.java
index 84aad249c..8707fe904 100644
--- a/src/main/java/org/apache/xpath/composite/SequenceTypeSupport.java
+++ b/src/main/java/org/apache/xpath/composite/SequenceTypeSupport.java
@@ -18,6 +18,7 @@ package org.apache.xpath.composite;
 
 import java.io.ByteArrayInputStream;
 import java.io.IOException;
+import java.math.BigDecimal;
 import java.util.ArrayList;
 import java.util.Iterator;
 import java.util.List;
@@ -403,7 +404,17 @@ public class SequenceTypeSupport {
            srcLocator = xctxt.getSAXLocator();
         }
         
-        try {
+        try {        	
+            if ((srcValue instanceof XMLNodeCursorImpl) && (expectedSeqTypeData != null)) {
+                if (expectedSeqTypeData.getBuiltInSequenceType() > 0) {
+                	// When XPath "cast as" operator's LHS is a node and RHS is a built-in 
+                	// simple type, we check "cast as" on string value of node.
+                	srcValue = srcValue.getFresh();
+                	String strValue = XslTransformEvaluationHelper.getStrVal(srcValue);
+                	srcValue = new XSString(strValue);
+                }
+            }
+        	
             XPath seqTypeXPath = null;
             XObject seqTypeExpressionEvalResult = null;
             SequenceTypeData seqExpectedTypeData = null;
@@ -896,13 +907,11 @@ public class SequenceTypeSupport {
             }
             else if (srcValue instanceof XSUntyped) {
                String srcStrVal = ((XSUntyped)srcValue).stringValue();
-               // Recursive call to this function
                result = castXdmValueToAnotherType(new XSString(srcStrVal), sequenceTypeXPathExprStr, 
                                                                                                     expectedSeqTypeData, xctxt);
             }
             else if (srcValue instanceof XSUntypedAtomic) {
                String srcStrVal = ((XSUntypedAtomic)srcValue).stringValue();
-               // Recursive call to this function
                result = castXdmValueToAnotherType(new XSString(srcStrVal), sequenceTypeXPathExprStr, 
                                                                                                     expectedSeqTypeData, xctxt);
             }
@@ -919,7 +928,6 @@ public class SequenceTypeSupport {
             else if (srcValue instanceof ResultSequence) {
                ResultSequence srcResultSeq = (ResultSequence)srcValue;
                if (srcResultSeq.size() == 1) {
-            	   // Recursive call to this function
                    result = castXdmValueToAnotherType(srcResultSeq.item(0), sequenceTypeXPathExprStr, expectedSeqTypeData, xctxt);   
                }               
                else if ((srcResultSeq.size() == 0) && (itemTypeOccurenceIndicator == 0)) {
@@ -1205,8 +1213,11 @@ public class SequenceTypeSupport {
                   result = new XSBoolean(true); 
                }
             }
-            else if (expectedType == XS_DECIMAL) {
-               result = new XSDecimal(srcStrVal);  
+            else if (expectedType == XS_DECIMAL) {                            
+               boolean isStrValueNumeric = isStrValueNumericFormat(srcStrVal);               
+               if (isStrValueNumeric) {
+            	   result = new XSDecimal(srcStrVal); 
+               }
             }
             else if (expectedType == XS_INTEGER) {
                result = new XSInteger(srcStrVal); 
@@ -1247,11 +1258,17 @@ public class SequenceTypeSupport {
             else if (expectedType == XS_UNSIGNED_BYTE) {
                result = new XSUnsignedByte(srcStrVal);
             }
-            else if (expectedType == XS_DOUBLE) {
-               result = new XSDouble(srcStrVal); 
+            else if (expectedType == XS_DOUBLE) {               
+            	boolean isStrValueNumeric = isStrValueNumericFormat(srcStrVal);                
+                if (isStrValueNumeric) {
+             	   result = new XSDouble(srcStrVal); 
+                }
             }
-            else if (expectedType == XS_FLOAT) {
-               result = new XSFloat(srcStrVal); 
+            else if (expectedType == XS_FLOAT) {               
+            	boolean isStrValueNumeric = isStrValueNumericFormat(srcStrVal);
+                if (isStrValueNumeric) {
+             	   result = new XSFloat(srcStrVal); 
+                }              
             }
             else if (expectedType == XS_DATE) {
                result = XSDate.parseDate(srcStrVal); 
@@ -1259,6 +1276,9 @@ public class SequenceTypeSupport {
             else if (expectedType == XS_DATETIME) {
                result = XSDateTime.parseDateTime(srcStrVal); 
             }
+            else if (expectedType == XS_TIME) {
+               result = XSTime.parseTime(srcStrVal); 
+            }
             else if (expectedType == XS_DURATION) {
                result = XSDuration.parseDuration(srcStrVal); 
             }
@@ -1298,6 +1318,26 @@ public class SequenceTypeSupport {
         
         return result;
     }
+
+    /**
+     * Method definition to check whether, the supplied string value
+     * is formatted as number.
+     * 
+     * @param strValue					The supplied string value
+     * @return
+     */
+	private static boolean isStrValueNumericFormat(String strValue) {		
+		boolean isStrValueNumeric = true;
+		
+        try {
+           BigDecimal bigDecimal = new BigDecimal(strValue);
+        }
+        catch (NumberFormatException ex) {
+        	isStrValueNumeric = false; 
+        }
+        
+        return isStrValueNumeric;
+	}
     
     /**
      * This method does numeric type conversion, and numeric type promotion as 
diff --git a/src/main/java/org/apache/xpath/operations/CastableAs.java b/src/main/java/org/apache/xpath/operations/CastableAs.java
index fb0e854e5..a36637934 100644
--- a/src/main/java/org/apache/xpath/operations/CastableAs.java
+++ b/src/main/java/org/apache/xpath/operations/CastableAs.java
@@ -29,7 +29,12 @@ import org.apache.xpath.composite.SequenceTypeData;
 import org.apache.xpath.composite.SequenceTypeSupport;
 import org.apache.xpath.objects.XObject;
 
+import xml.xpath31.processor.types.XSAnyAtomicType;
 import xml.xpath31.processor.types.XSBoolean;
+import xml.xpath31.processor.types.XSDecimal;
+import xml.xpath31.processor.types.XSDouble;
+import xml.xpath31.processor.types.XSDuration;
+import xml.xpath31.processor.types.XSFloat;
 
 /**
  * The XPath 3.1 "castable as" operation.
@@ -60,8 +65,42 @@ public class CastableAs extends Operation
       
       SequenceTypeData seqTypedData = (SequenceTypeData)right;
       
-      try {
-         result = SequenceTypeSupport.castXdmValueToAnotherType(left, seqTypedData, true);
+      try {    	  
+    	 if ((left instanceof XSAnyAtomicType) && ((seqTypedData.getBuiltInSequenceType() == SequenceTypeSupport.STRING) || 
+    			                                   (seqTypedData.getBuiltInSequenceType() == SequenceTypeSupport.XS_UNTYPED_ATOMIC))) {
+    		result = new XSBoolean(true);
+    		
+    		return result;
+    	 }
+    	 else if ((left instanceof XSBoolean) && ((seqTypedData.getBuiltInSequenceType() == SequenceTypeSupport.XS_FLOAT) || 
+    			                                  (seqTypedData.getBuiltInSequenceType() == SequenceTypeSupport.XS_DOUBLE) ||
+    			                                  (seqTypedData.getBuiltInSequenceType() == SequenceTypeSupport.XS_DECIMAL) ||
+    			                                  (seqTypedData.getBuiltInSequenceType() == SequenceTypeSupport.XS_INTEGER))) {
+    		result = new XSBoolean(true);
+     		
+     		return result; 
+    	 }
+    	 else if ((left instanceof XSFloat) && (seqTypedData.getBuiltInSequenceType() == SequenceTypeSupport.XS_DECIMAL)) {
+            result = new XSBoolean(true);
+
+            return result; 
+         }
+    	 else if (((left instanceof XSDecimal) || (left instanceof XSFloat) || (left instanceof XSDouble)) && 
+    			                                                                     (seqTypedData.getBuiltInSequenceType() == SequenceTypeSupport.XS_INTEGER)) {
+             result = new XSBoolean(true);
+
+             return result; 
+         }
+    	 else if ((left instanceof XSDuration) && ((seqTypedData.getBuiltInSequenceType() == SequenceTypeSupport.XS_DAYTIME_DURATION) || 
+                                                   (seqTypedData.getBuiltInSequenceType() == SequenceTypeSupport.XS_YEARMONTH_DURATION))) {
+    		 result = new XSBoolean(true);
+
+             return result; 
+    	 }
+    	 else { 
+            result = SequenceTypeSupport.castXdmValueToAnotherType(left, seqTypedData, true);
+    	 }
+         
          if (result != null) {
         	result = new XSBoolean(true); 
          }
@@ -69,15 +108,19 @@ public class CastableAs extends Operation
         	XSTypeDefinition typeDefn = seqTypedData.getXsTypeDefinition();
         	if ((typeDefn != null) && (typeDefn instanceof XSSimpleType)) {
         	    XSSimpleTypeDecl simpleTypeDecl = (XSSimpleTypeDecl)typeDefn;        	    
-        	    java.lang.String inpValue = XslTransformEvaluationHelper.getStrVal(left);
+        	    java.lang.String inpStrValue = XslTransformEvaluationHelper.getStrVal(left);
         	    try {
-					simpleTypeDecl.validate(inpValue, null, null);
+					simpleTypeDecl.validate(inpStrValue, null, null);
+					
 					result = new XSBoolean(true); 
 				} 
         	    catch (InvalidDatatypeValueException ex) {
 					result = new XSBoolean(false); 
 				}
         	}
+        	else {
+        		result = new XSBoolean(false);
+        	}
          }
       }
       catch (javax.xml.transform.TransformerException ex) {
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 c7b23fdd1..298ae10af 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-06-05T10:25:15Z" fail="12" name="character-map" pass="15" skipped="0" statusUnknown="2" totalRun="29">
+<?xml version="1.0" encoding="UTF-8"?><testrun dateTime="2025-06-05T15:53:12Z" fail="12" name="character-map" pass="15" skipped="0" statusUnknown="2" totalRun="29">
    <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 60d87a5f0..9456bb5d4 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-06-05T10:25:15Z" fail="39" name="function" pass="22" skipped="4" statusUnknown="5" totalRun="70">
+<?xml version="1.0" encoding="UTF-8"?><testrun dateTime="2025-06-05T15:53:12Z" fail="39" name="function" pass="22" skipped="4" statusUnknown="5" totalRun="70">
    <testResult status="fail" testName="function-0001">
       <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 743ecae97..c772c3551 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-06-05T10:25:15Z" fail="29" name="axes" pass="172" skipped="0" statusUnknown="0" totalRun="201">
+<?xml version="1.0" encoding="UTF-8"?><testrun dateTime="2025-06-05T15:53:12Z" fail="29" name="axes" pass="172" skipped="0" statusUnknown="0" totalRun="201">
    <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 c48586f92..9912ee011 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,20 +1,8 @@
-<?xml version="1.0" encoding="UTF-8"?><testrun dateTime="2025-06-05T10:25:15Z" fail="9" name="castable" pass="0" skipped="0" statusUnknown="0" totalRun="9">
-   <testResult status="fail" testName="castable-001"/>
-   <testResult status="fail" testName="castable-002">
-      <outResult>
-         <errTrace>XTTE0570 : The source xdm sequence cannot be cast to the provided sequence type.</errTrace>
-      </outResult>
-   </testResult>
-   <testResult status="fail" testName="castable-003">
-      <outResult>
-         <errTrace>XTTE0570 : The source xdm sequence cannot be cast to the provided sequence type.</errTrace>
-      </outResult>
-   </testResult>
-   <testResult status="fail" testName="castable-004">
-      <outResult>
-         <errTrace>XTTE0570 : The source xdm sequence cannot be cast to the provided sequence type.</errTrace>
-      </outResult>
-   </testResult>
+<?xml version="1.0" encoding="UTF-8"?><testrun dateTime="2025-06-05T15:53:13Z" fail="5" name="castable" pass="4" skipped="0" statusUnknown="0" totalRun="9">
+   <testResult status="pass" testName="castable-001"/>
+   <testResult status="pass" testName="castable-002"/>
+   <testResult status="pass" testName="castable-003"/>
+   <testResult status="pass" testName="castable-004"/>
    <testResult status="fail" testName="castable-005">
       <outResult>
          <errTrace>Failed calling setNamespace method</errTrace>
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 67533b923..4ec87e928 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-06-05T10:25:15Z" fail="0" name="expression" pass="9" skipped="0" statusUnknown="1" totalRun="10">
+<?xml version="1.0" encoding="UTF-8"?><testrun dateTime="2025-06-05T15:53:13Z" fail="0" name="expression" pass="9" skipped="0" statusUnknown="1" totalRun="10">
    <testResult status="pass" testName="expression-0101"/>
    <testResult status="pass" testName="expression-0301"/>
    <testResult status="pass" testName="expression-0302"/>
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 dc0c8758d..00e032ecb 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-06-05T10:25:16Z" fail="2" name="for" pass="1" skipped="0" statusUnknown="1" totalRun="4">
+<?xml version="1.0" encoding="UTF-8"?><testrun dateTime="2025-06-05T15:53:14Z" fail="2" name="for" pass="1" skipped="0" statusUnknown="1" totalRun="4">
    <testResult status="fail" testName="for-001"/>
    <testResult status="fail" testName="for-002"/>
    <testResult status="pass" 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 365eebcd1..3199f71db 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-06-05T10:25:18Z" fail="6" name="higher-order-functions" pass="18" skipped="0" statusUnknown="1" totalRun="25">
+<?xml version="1.0" encoding="UTF-8"?><testrun dateTime="2025-06-05T15:53:17Z" fail="6" name="higher-order-functions" pass="18" skipped="0" statusUnknown="1" totalRun="25">
    <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 a91a9b0e2..4bc5e6666 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-06-05T10:25:17Z" fail="39" name="math" pass="108" skipped="0" statusUnknown="1" totalRun="148">
+<?xml version="1.0" encoding="UTF-8"?><testrun dateTime="2025-06-05T15:53:16Z" fail="39" name="math" pass="108" skipped="0" statusUnknown="1" totalRun="148">
    <testResult status="pass" testName="math-0101"/>
    <testResult status="fail" testName="math-0102">
       <outResult/>
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 1cffb7e26..6fea8a865 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-06-05T10:25:18Z" fail="36" name="nodetest" pass="2" skipped="0" statusUnknown="0" totalRun="38">
+<?xml version="1.0" encoding="UTF-8"?><testrun dateTime="2025-06-05T15:53:17Z" fail="36" name="nodetest" pass="2" skipped="0" statusUnknown="0" totalRun="38">
    <testResult status="pass" testName="nodetest-001"/>
    <testResult status="pass" testName="nodetest-002"/>
    <testResult status="fail" 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 da9f13bf5..f3a8a2d22 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-06-05T10:25:18Z" fail="3" name="path" pass="7" skipped="0" statusUnknown="0" totalRun="10">
+<?xml version="1.0" encoding="UTF-8"?><testrun dateTime="2025-06-05T15:53:17Z" 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 ff60c0024..1477e019a 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,4 +1,4 @@
-<?xml version="1.0" encoding="UTF-8"?><testrun dateTime="2025-06-05T10:25:19Z" fail="7" name="predicate" pass="50" skipped="0" statusUnknown="0" totalRun="57">
+<?xml version="1.0" encoding="UTF-8"?><testrun dateTime="2025-06-05T15:53:18Z" 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"/>
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 4b6b47434..7703b69b8 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-06-05T10:25:19Z" fail="0" name="deep-equal" pass="2" skipped="0" statusUnknown="0" totalRun="2">
+<?xml version="1.0" encoding="UTF-8"?><testrun dateTime="2025-06-05T15:53:19Z" 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/_key-test-set_result.xml b/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/fn/_key-test-set_result.xml
index 28edfbe83..cbb828ff5 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-06-05T10:25:20Z" fail="3" name="key" pass="21" skipped="0" statusUnknown="1" totalRun="25">
+<?xml version="1.0" encoding="UTF-8"?><testrun dateTime="2025-06-05T15:53:21Z" fail="3" name="key" pass="21" skipped="0" statusUnknown="1" totalRun="25">
    <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 7e45fedf4..bb6ea5b98 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-06-05T10:25:19Z" fail="8" name="position" pass="108" skipped="0" statusUnknown="1" totalRun="117">
+<?xml version="1.0" encoding="UTF-8"?><testrun dateTime="2025-06-05T15:53:19Z" fail="8" name="position" pass="108" skipped="0" statusUnknown="1" totalRun="117">
    <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 5b7f19c59..0fc79e862 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-06-05T10:25:20Z" fail="4" name="root" pass="6" skipped="0" statusUnknown="0" totalRun="10">
+<?xml version="1.0" encoding="UTF-8"?><testrun dateTime="2025-06-05T15:53:21Z" fail="4" name="root" pass="6" skipped="0" statusUnknown="0" totalRun="10">
    <testResult status="fail" 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/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 49b4e3b5e..24ee30288 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-06-05T10:25:07Z" fail="17" name="analyze-string" pass="36" skipped="5" statusUnknown="0" totalRun="58">
+<?xml version="1.0" encoding="UTF-8"?><testrun dateTime="2025-06-05T15:52:57Z" fail="17" name="analyze-string" pass="36" skipped="5" statusUnknown="0" totalRun="58">
    <testResult status="pass" testName="analyze-string-001"/>
    <testResult status="pass" testName="analyze-string-002"/>
    <testResult status="pass" testName="analyze-string-003"/>
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 83bcf1609..24f33a794 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-06-05T10:25:07Z" fail="26" name="apply-templates" pass="22" skipped="2" statusUnknown="0" totalRun="50">
+<?xml version="1.0" encoding="UTF-8"?><testrun dateTime="2025-06-05T15:52:59Z" fail="26" name="apply-templates" pass="22" skipped="2" statusUnknown="0" totalRun="50">
    <testResult status="fail" testName="apply-templates-001">
       <outResult>&lt;?xml version="1.0" encoding="UTF-8"?&gt;&#13;
 &#13;
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 8c1dc503a..98657a889 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-06-05T10:25:08Z" fail="12" name="attribute" pass="7" skipped="0" statusUnknown="2" totalRun="21">
+<?xml version="1.0" encoding="UTF-8"?><testrun dateTime="2025-06-05T15:53:01Z" fail="12" name="attribute" pass="7" skipped="0" statusUnknown="2" totalRun="21">
    <testResult status="fail" testName="attribute-0001"/>
    <testResult status="fail" testName="attribute-0002">
       <outResult/>
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 e1de80ddb..3460a383e 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-06-05T10:25:09Z" fail="15" name="call-template" pass="26" skipped="1" statusUnknown="0" totalRun="42">
+<?xml version="1.0" encoding="UTF-8"?><testrun dateTime="2025-06-05T15:53:02Z" fail="15" name="call-template" pass="26" skipped="1" statusUnknown="0" totalRun="42">
    <testResult status="fail" testName="call-template-0001">
       <outResult>
          <errTrace>XPTY0004 : An error occured while evaluating an XPath expression ancestor-or-self::*.</errTrace>
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 4cb052bdb..1a025c21e 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-06-05T10:25:09Z" fail="6" name="choose" pass="17" skipped="0" statusUnknown="1" totalRun="24">
+<?xml version="1.0" encoding="UTF-8"?><testrun dateTime="2025-06-05T15:53:03Z" fail="6" name="choose" pass="17" skipped="0" statusUnknown="1" totalRun="24">
    <testResult status="pass" testName="choose-0101"/>
    <testResult status="pass" testName="choose-0102"/>
    <testResult status="fail" 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 9d2f0962d..abcb669f3 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-06-05T10:25:11Z" fail="43" name="copy" pass="16" skipped="0" statusUnknown="1" totalRun="60">
+<?xml version="1.0" encoding="UTF-8"?><testrun dateTime="2025-06-05T15:53:06Z" fail="43" name="copy" pass="16" skipped="0" statusUnknown="1" totalRun="60">
    <testResult status="fail" testName="copy-0101"/>
    <testResult status="pass" testName="copy-0102"/>
    <testResult status="fail" 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 8a5cdb227..c1b6daf0c 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-06-05T10:25:13Z" fail="14" name="element" pass="8" skipped="0" statusUnknown="1" totalRun="23">
+<?xml version="1.0" encoding="UTF-8"?><testrun dateTime="2025-06-05T15:53:10Z" fail="14" name="element" pass="8" skipped="0" statusUnknown="1" totalRun="23">
    <testResult status="fail" testName="element-0001">
       <outResult/>
    </testResult>
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 19dcfa902..4ea701f64 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-06-05T10:25:08Z" fail="29" name="for-each-group" pass="44" skipped="4" statusUnknown="1" totalRun="78">
+<?xml version="1.0" encoding="UTF-8"?><testrun dateTime="2025-06-05T15:52:59Z" fail="29" name="for-each-group" pass="44" skipped="4" statusUnknown="1" totalRun="78">
    <testResult status="pass" testName="for-each-group-001"/>
    <testResult status="skipped" xsltVersion="2.0 only"/>
    <testResult status="pass" 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 21473964f..12e1942dd 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-06-05T10:25:11Z" fail="32" name="iterate" pass="11" skipped="0" statusUnknown="1" totalRun="44">
+<?xml version="1.0" encoding="UTF-8"?><testrun dateTime="2025-06-05T15:53:07Z" fail="32" name="iterate" pass="11" skipped="0" statusUnknown="1" 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/_sequence-test-set_result.xml b/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/insn/_sequence-test-set_result.xml
index 81cbf8582..e3cd677a7 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-06-05T10:25:12Z" fail="19" name="sequence" pass="7" skipped="0" statusUnknown="1" totalRun="27">
+<?xml version="1.0" encoding="UTF-8"?><testrun dateTime="2025-06-05T15:53:08Z" fail="19" name="sequence" pass="7" skipped="0" statusUnknown="1" totalRun="27">
    <testResult status="fail" testName="sequence-0101"/>
    <testResult status="fail" testName="sequence-0102"/>
    <testResult status="pass" testName="sequence-0103"/>
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 7e3ef98a4..fbb9cd5fd 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-06-05T10:25:14Z" fail="44" name="sort" pass="35" skipped="0" statusUnknown="1" totalRun="80">
+<?xml version="1.0" encoding="UTF-8"?><testrun dateTime="2025-06-05T15:53:12Z" fail="44" name="sort" pass="35" skipped="0" statusUnknown="1" totalRun="80">
    <testResult status="pass" testName="sort-001"/>
    <testResult status="pass" testName="sort-002"/>
    <testResult status="fail" testName="sort-003">
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 33cff3b14..563403177 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-06-05T10:25:08Z" fail="26" name="try" pass="11" skipped="5" statusUnknown="0" totalRun="42">
+<?xml version="1.0" encoding="UTF-8"?><testrun dateTime="2025-06-05T15:53:01Z" fail="26" name="try" pass="11" skipped="5" statusUnknown="0" totalRun="42">
    <testResult status="pass" testName="try-001"/>
    <testResult status="fail" testName="try-002">
       <outResult/>
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 b59c3d64a..deb7bbadc 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-06-05T10:25:19Z" fail="22" name="boolean" pass="90" skipped="0" statusUnknown="0" totalRun="112">
+<?xml version="1.0" encoding="UTF-8"?><testrun dateTime="2025-06-05T15:53:19Z" fail="22" name="boolean" pass="90" skipped="0" statusUnknown="0" totalRun="112">
    <testResult status="pass" testName="boolean-001"/>
    <testResult status="pass" testName="boolean-002"/>
    <testResult status="pass" testName="boolean-003"/>
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 dfb96f6b8..2451153e3 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-06-05T10:25:19Z" fail="17" name="node" pass="15" skipped="0" statusUnknown="0" totalRun="32">
+<?xml version="1.0" encoding="UTF-8"?><testrun dateTime="2025-06-05T15:53:19Z" fail="17" name="node" pass="15" skipped="0" statusUnknown="0" totalRun="32">
    <testResult status="pass" testName="node-0101"/>
    <testResult status="pass" testName="node-0201"/>
    <testResult status="fail" 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 b83bcd52a..69beb7ea5 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,4 +1,4 @@
-<?xml version="1.0" encoding="UTF-8"?><testrun dateTime="2025-06-05T10:25:19Z" fail="8" name="string" pass="128" skipped="0" statusUnknown="0" totalRun="136">
+<?xml version="1.0" encoding="UTF-8"?><testrun dateTime="2025-06-05T15:53:19Z" fail="8" name="string" pass="128" skipped="0" statusUnknown="0" totalRun="136">
    <testResult status="pass" testName="string-001"/>
    <testResult status="pass" testName="string-002"/>
    <testResult status="pass" testName="string-003"/>
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 308664d1e..e5d0020f8 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,12 +1,12 @@
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<testResult dateTime="2025-06-05T10:25:35Z" desc="W3C XSLT 3.0 test suite results" fail="527" pass="1014" skipped="21" success="65.34%" totalRun="1584" xslt_processor="Xalan-J XSLT 3.0 development code">
+<testResult dateTime="2025-06-05T15:53:34Z" desc="W3C XSLT 3.0 test suite results" fail="523" pass="1018" skipped="21" success="65.59%" totalRun="1584" xslt_processor="Xalan-J XSLT 3.0 development code">
   <decl>
     <character-map fail="12" pass="15" skipped="0" success="51.72%" totalRun="29"/>
     <function fail="39" pass="22" skipped="4" success="37.14%" totalRun="70"/>
   </decl>
   <expr>
     <axes fail="29" pass="172" skipped="0" success="85.57%" totalRun="201"/>
-    <castable fail="9" pass="0" skipped="0" success="0.0%" totalRun="9"/>
+    <castable fail="5" pass="4" skipped="0" success="44.44%" totalRun="9"/>
     <expression fail="0" pass="9" skipped="0" success="90.0%" totalRun="10"/>
     <for fail="2" pass="1" skipped="0" success="25.0%" totalRun="4"/>
     <higher-order-functions fail="6" pass="18" skipped="0" success="72.0%" totalRun="25"/>


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@xalan.apache.org
For additional commands, e-mail: commits-help@xalan.apache.org