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/28 11:07:39 UTC

(xalan-java) branch xalan-j_xslt3.0_mvn updated: committing implementation improvements to xalan-j xslt 3.0 code base, by specifying xpath 3.1 F&O defined function arity information for functions that've been implemented within this xalan-j dev repos branch

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 b25ba65d9 committing implementation improvements to xalan-j xslt 3.0 code base, by specifying xpath 3.1 F&O defined function arity information for functions that've been implemented within this xalan-j dev repos branch
b25ba65d9 is described below

commit b25ba65d90d90c1562284c48f7f34c7fb8572a4e
Author: Mukul Gandhi <ga...@gmail.com>
AuthorDate: Sat Jun 28 16:37:18 2025 +0530

    committing implementation improvements to xalan-j xslt 3.0 code base, by specifying xpath 3.1 F&O defined function arity information for functions that've been implemented within this xalan-j dev repos branch
---
 README                                             |   8 +-
 .../java/org/apache/xpath/compiler/Keywords.java   |  26 ++--
 .../org/apache/xpath/compiler/XPathParser.java     |  36 +++---
 .../java/org/apache/xpath/functions/FuncAvg.java   |   7 ++
 .../org/apache/xpath/functions/FuncBoolean.java    |   2 +-
 .../org/apache/xpath/functions/FuncCollection.java |   7 ++
 .../java/org/apache/xpath/functions/FuncCount.java |   7 ++
 .../org/apache/xpath/functions/FuncCurrent.java    |   7 ++
 .../apache/xpath/functions/FuncCurrentDate.java    |  11 +-
 .../xpath/functions/FuncCurrentDateTime.java       |  22 ++--
 .../apache/xpath/functions/FuncCurrentTime.java    |  11 +-
 .../java/org/apache/xpath/functions/FuncData.java  |   8 +-
 .../org/apache/xpath/functions/FuncDeepEqual.java  |   2 +-
 .../xpath/functions/FuncDefaultCollation.java      |   7 ++
 .../apache/xpath/functions/FuncDistinctValues.java |   7 ++
 .../java/org/apache/xpath/functions/FuncDoc.java   |   2 +-
 .../apache/xpath/functions/FuncDocAvailable.java   |   7 ++
 .../java/org/apache/xpath/functions/FuncEmpty.java |   7 ++
 .../org/apache/xpath/functions/FuncExists.java     |   7 ++
 .../java/org/apache/xpath/functions/FuncFalse.java |   7 ++
 .../apache/xpath/functions/FuncFunctionArity.java  |  62 +++++----
 .../org/apache/xpath/functions/FuncGenerateId.java |   7 ++
 .../java/org/apache/xpath/functions/FuncHead.java  |   7 ++
 .../java/org/apache/xpath/functions/FuncId.java    |   7 ++
 .../xpath/functions/FuncImplicitTimezone.java      |   7 ++
 .../xpath/functions/FuncInScopePrefixes.java       |   7 ++
 .../org/apache/xpath/functions/FuncIndexOf.java    |   7 ++
 .../apache/xpath/functions/FuncInsertBefore.java   |   7 ++
 .../java/org/apache/xpath/functions/FuncLang.java  |   7 ++
 .../java/org/apache/xpath/functions/FuncLast.java  |   7 ++
 .../org/apache/xpath/functions/FuncLocalName.java  |   7 ++
 .../xpath/functions/FuncLocalNameFromQName.java    |   7 ++
 .../java/org/apache/xpath/functions/FuncMax.java   |   7 ++
 .../java/org/apache/xpath/functions/FuncMin.java   |   7 ++
 .../java/org/apache/xpath/functions/FuncName.java  |   7 ++
 .../apache/xpath/functions/FuncNamespaceUri.java   |   7 ++
 .../xpath/functions/FuncNamespaceUriForPrefix.java |   7 ++
 .../xpath/functions/FuncNamespaceUriFromQName.java |   7 ++
 .../org/apache/xpath/functions/FuncNodeName.java   |   7 ++
 .../java/org/apache/xpath/functions/FuncNot.java   |   7 ++
 .../org/apache/xpath/functions/FuncParseXml.java   |   7 ++
 .../xpath/functions/FuncParseXmlFragment.java      |   7 ++
 .../org/apache/xpath/functions/FuncPosition.java   |   7 ++
 .../xpath/functions/FuncPrefixFromQName.java       |   7 ++
 .../java/org/apache/xpath/functions/FuncQName.java |   7 ++
 .../org/apache/xpath/functions/FuncRemove.java     |   7 ++
 .../apache/xpath/functions/FuncResolveQName.java   |   7 ++
 .../org/apache/xpath/functions/FuncReverse.java    |   9 +-
 .../java/org/apache/xpath/functions/FuncRoot.java  |   9 +-
 .../java/org/apache/xpath/functions/FuncRound.java |   2 +-
 .../apache/xpath/functions/FuncSubsequence.java    |   7 ++
 .../java/org/apache/xpath/functions/FuncSum.java   |   7 ++
 .../apache/xpath/functions/FuncSystemProperty.java |   8 ++
 .../java/org/apache/xpath/functions/FuncTail.java  |  10 +-
 .../org/apache/xpath/functions/FuncTransform.java  |   6 +
 .../java/org/apache/xpath/functions/FuncTrue.java  |   7 ++
 .../org/apache/xpath/functions/FuncUnordered.java  |   7 ++
 .../xpath/functions/FuncUnparsedEntityURI.java     |   7 ++
 .../apache/xpath/functions/FuncUnparsedText.java   |   7 ++
 .../xpath/functions/FuncUnparsedTextLines.java     |   7 ++
 .../xpath/functions/XSL3FunctionService.java       | 139 +++++++++++++++++++++
 .../xpath/functions/array/FuncArrayAppend.java     |   7 ++
 .../xpath/functions/array/FuncArrayFilter.java     |   7 ++
 .../xpath/functions/array/FuncArrayFlatten.java    |   7 ++
 .../xpath/functions/array/FuncArrayFoldLeft.java   |   7 ++
 .../xpath/functions/array/FuncArrayFoldRight.java  |   7 ++
 .../xpath/functions/array/FuncArrayForEach.java    |   7 ++
 .../functions/array/FuncArrayForEachPair.java      |   7 ++
 .../apache/xpath/functions/array/FuncArrayGet.java |   7 ++
 .../xpath/functions/array/FuncArrayHead.java       |   7 ++
 .../functions/array/FuncArrayInsertBefore.java     |   7 ++
 .../xpath/functions/array/FuncArrayJoin.java       |   7 ++
 .../apache/xpath/functions/array/FuncArrayPut.java |   7 ++
 .../xpath/functions/array/FuncArrayRemove.java     |   7 ++
 .../xpath/functions/array/FuncArrayReverse.java    |   7 ++
 .../xpath/functions/array/FuncArraySize.java       |   7 ++
 .../xpath/functions/array/FuncArraySort.java       |   7 ++
 .../xpath/functions/array/FuncArrayTail.java       |   7 ++
 .../apache/xpath/functions/array/FuncSubarray.java |   7 ++
 .../xpath/functions/datetime/FuncDateTime.java     |   7 ++
 .../xpath/functions/datetime/FuncDayFromDate.java  |   7 ++
 .../functions/datetime/FuncDayFromDateTime.java    |   9 +-
 .../functions/datetime/FuncHoursFromDateTime.java  |   7 ++
 .../functions/datetime/FuncHoursFromTime.java      |   7 ++
 .../datetime/FuncMinutesFromDateTime.java          |   7 ++
 .../functions/datetime/FuncMinutesFromTime.java    |   7 ++
 .../functions/datetime/FuncMonthFromDate.java      |   7 ++
 .../functions/datetime/FuncMonthFromDateTime.java  |   7 ++
 .../datetime/FuncSecondsFromDateTime.java          |   7 ++
 .../functions/datetime/FuncSecondsFromTime.java    |   7 ++
 .../functions/datetime/FuncTimezoneFromDate.java   |   7 ++
 .../datetime/FuncTimezoneFromDateTime.java         |   7 ++
 .../functions/datetime/FuncTimezoneFromTime.java   |   7 ++
 .../xpath/functions/datetime/FuncYearFromDate.java |   7 ++
 .../functions/datetime/FuncYearFromDateTime.java   |   7 ++
 .../functions/duration/FuncDaysFromDuration.java   |   7 ++
 .../functions/duration/FuncHoursFromDuration.java  |   7 ++
 .../duration/FuncMinutesFromDuration.java          |   7 ++
 .../functions/duration/FuncMonthsFromDuration.java |   7 ++
 .../duration/FuncSecondsFromDuration.java          |   7 ++
 .../functions/duration/FuncYearsFromDuration.java  |   7 ++
 .../org/apache/xpath/functions/hof/FuncApply.java  |   7 ++
 .../org/apache/xpath/functions/hof/FuncFilter.java |   7 ++
 .../apache/xpath/functions/hof/FuncFoldLeft.java   |   7 ++
 .../apache/xpath/functions/hof/FuncFoldRight.java  |   7 ++
 .../apache/xpath/functions/hof/FuncForEach.java    |   7 ++
 .../xpath/functions/hof/FuncForEachPair.java       |   7 ++
 .../org/apache/xpath/functions/hof/FuncSort.java   |   7 ++
 .../apache/xpath/functions/json/FuncJsonDoc.java   |   2 +
 .../apache/xpath/functions/json/FuncJsonToXml.java |   2 +
 .../apache/xpath/functions/json/FuncParseJson.java |   2 +
 .../apache/xpath/functions/json/FuncXmlToJson.java |   7 ++
 .../apache/xpath/functions/json/JsonFunction.java  |   4 +-
 .../xpath/functions/map/FuncMapContains.java       |   7 ++
 .../apache/xpath/functions/map/FuncMapEntry.java   |   7 ++
 .../apache/xpath/functions/map/FuncMapFind.java    |   7 ++
 .../apache/xpath/functions/map/FuncMapForEach.java |   7 ++
 .../org/apache/xpath/functions/map/FuncMapGet.java |   7 ++
 .../apache/xpath/functions/map/FuncMapKeys.java    |   7 ++
 .../apache/xpath/functions/map/FuncMapMerge.java   |   7 ++
 .../org/apache/xpath/functions/map/FuncMapPut.java |   7 ++
 .../apache/xpath/functions/map/FuncMapRemove.java  |   7 ++
 .../apache/xpath/functions/map/FuncMapSize.java    |   7 ++
 .../w3c/xslt3/result/attr/_as-test-set_result.xml  |   2 +-
 .../w3c/xslt3/result/attr/_avt-test-set_result.xml |   2 +-
 .../xslt3/result/attr/_match-test-set_result.xml   |   2 +-
 .../xslt3/result/attr/_select-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      |   2 +-
 .../result/decl/_variable-test-set_result.xml      |   2 +-
 .../xslt3/result/expr/_axes-test-set_result.xml    |   2 +-
 .../result/expr/_castable-test-set_result.xml      |   2 +-
 .../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 +-
 .../result/fn/_format-number-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 +-
 .../result/insn/_xsl-document-test-set_result.xml  |   6 +-
 .../xslt3/result/misc/_regex-test-set_result.xml   |   2 +-
 .../xslt3/result/type/_boolean-test-set_result.xml |   2 +-
 .../xslt3/result/type/_date-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  |   2 +-
 .../xalan/tests/xpath3/FnFunctionArityTests.java   |  10 ++
 .../resources/fn_function_arity/gold/test3.out     |   6 +
 src/test/resources/fn_function_arity/test3.xsl     |  50 ++++++++
 167 files changed, 1106 insertions(+), 138 deletions(-)

diff --git a/README b/README
index 161d2410e..392b63ab4 100644
--- a/README
+++ b/README
@@ -17,7 +17,7 @@
 
 Copyright 1999-2025 The Apache Software Foundation
 
-Document last modified : 2025-06-27
+Document last modified : 2025-06-28
 
 Authors:
    Gary Gregory <gg...@apache.org>
@@ -59,16 +59,16 @@ The Maven build results like following shall be produced:
 [INFO]  T E S T S
 [INFO] -------------------------------------------------------
 [INFO] Running org.apache.xalan.tests.main.AllXalanXSLT3Tests
-[INFO] Tests run: 1107, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 38.404 s - in org.apache.xalan.tests.main.AllXalanXSLT3Tests
+[INFO] Tests run: 1108, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 41.92 s - in org.apache.xalan.tests.main.AllXalanXSLT3Tests
 [INFO]
 [INFO] Results:
 [INFO]
-[INFO] Tests run: 1107, Failures: 0, Errors: 0, Skipped: 0
+[INFO] Tests run: 1108, Failures: 0, Errors: 0, Skipped: 0
 [INFO]
 [INFO] ------------------------------------------------------------------------
 [INFO] BUILD SUCCESS
 [INFO] ------------------------------------------------------------------------
-[INFO] Total time:  01:46 min
+[INFO] Total time:  01:31 min
 
 
 If the user needs to run Xalan-J's XSLT 3.0 implementation via Java code, the value of JVM's system property 
diff --git a/src/main/java/org/apache/xpath/compiler/Keywords.java b/src/main/java/org/apache/xpath/compiler/Keywords.java
index 883f68f26..a391dac94 100644
--- a/src/main/java/org/apache/xpath/compiler/Keywords.java
+++ b/src/main/java/org/apache/xpath/compiler/Keywords.java
@@ -51,43 +51,43 @@ public class Keywords
   private static Hashtable m_nodetypes = new Hashtable();
 
   /** ancestor axes string. */
-  private static final String FROM_ANCESTORS_STRING = "ancestor";
+  static final String FROM_ANCESTORS_STRING = "ancestor";
 
   /** ancestor-or-self axes string. */
-  private static final String FROM_ANCESTORS_OR_SELF_STRING = "ancestor-or-self";
+  static final String FROM_ANCESTORS_OR_SELF_STRING = "ancestor-or-self";
 
   /** attribute axes string. */
-  private static final String FROM_ATTRIBUTES_STRING = "attribute";
+  static final String FROM_ATTRIBUTES_STRING = "attribute";
 
   /** child axes string. */
-  private static final String FROM_CHILDREN_STRING = "child";
+  static final String FROM_CHILDREN_STRING = "child";
 
   /** descendant-or-self axes string. */
-  private static final String FROM_DESCENDANTS_STRING = "descendant";
+  static final String FROM_DESCENDANTS_STRING = "descendant";
 
   /** ancestor axes string. */
-  private static final String FROM_DESCENDANTS_OR_SELF_STRING = "descendant-or-self";
+  static final String FROM_DESCENDANTS_OR_SELF_STRING = "descendant-or-self";
 
   /** following axes string. */
-  private static final String FROM_FOLLOWING_STRING = "following";
+  static final String FROM_FOLLOWING_STRING = "following";
 
   /** following-sibling axes string. */
-  private static final String FROM_FOLLOWING_SIBLINGS_STRING = "following-sibling";
+  static final String FROM_FOLLOWING_SIBLINGS_STRING = "following-sibling";
 
   /** parent axes string. */
-  private static final String FROM_PARENT_STRING = "parent";
+  static final String FROM_PARENT_STRING = "parent";
 
   /** preceding axes string. */
-  private static final String FROM_PRECEDING_STRING = "preceding";
+  static final String FROM_PRECEDING_STRING = "preceding";
 
   /** preceding-sibling axes string. */
-  private static final String FROM_PRECEDING_SIBLINGS_STRING = "preceding-sibling";
+  static final String FROM_PRECEDING_SIBLINGS_STRING = "preceding-sibling";
 
   /** self axes string. */
-  private static final String FROM_SELF_STRING = "self";
+  static final String FROM_SELF_STRING = "self";
 
   /** namespace axes string. */
-  private static final String FROM_NAMESPACE_STRING = "namespace";
+  static final String FROM_NAMESPACE_STRING = "namespace";
 
   /** self axes abreviated string. */
   private static final String FROM_SELF_ABBREVIATED_STRING = ".";
diff --git a/src/main/java/org/apache/xpath/compiler/XPathParser.java b/src/main/java/org/apache/xpath/compiler/XPathParser.java
index 3a88ad6ae..654219fbb 100644
--- a/src/main/java/org/apache/xpath/compiler/XPathParser.java
+++ b/src/main/java/org/apache/xpath/compiler/XPathParser.java
@@ -135,7 +135,7 @@ public class XPathParser
   private static final String CONTINUE_AFTER_FATAL_ERROR = "CONTINUE_AFTER_FATAL_ERROR";
 
   /**
-   * Results from checking FilterExpr syntax
+   * Results from checking FilterExpr syntax.
    */
   protected final static int FILTER_MATCH_FAILED     = 0;
   protected final static int FILTER_MATCH_PRIMARY    = 1;
@@ -6622,7 +6622,7 @@ public class XPathParser
     * an XPath axis name prefix.
     * 
     * @param strValue			Supplied string value
-    * @return					true if the supplied string value has an 
+    * @return					Boolean true if the supplied string value has an 
     *                           XPath axis name prefix.
     */
    public static boolean isStrHasXPathAxisNamePrefix(String strValue) {
@@ -6631,49 +6631,49 @@ public class XPathParser
 
 	   int idx = strValue.indexOf("::");
 	   if (idx >= 0) {
-		   String xpathAxis = strValue.substring(0, idx);
-		   switch (xpathAxis) {
-		   case "ancestor":
+		   String xpathAxisStrValue = strValue.substring(0, idx);
+		   switch (xpathAxisStrValue) {
+		   case Keywords.FROM_ANCESTORS_STRING:
 			   result = true;
 			   break;
-		   case "ancestor-or-self":
+		   case Keywords.FROM_ANCESTORS_OR_SELF_STRING:
 			   result = true;
 			   break;
-		   case "attribute":
+		   case Keywords.FROM_ATTRIBUTES_STRING:
 			   result = true;
 			   break;
-		   case "child":
+		   case Keywords.FROM_CHILDREN_STRING:
 			   result = true;
 			   break;
-		   case "descendant":
+		   case Keywords.FROM_DESCENDANTS_STRING:
 			   result = true;
 			   break;
-		   case "descendant-or-self":
+		   case Keywords.FROM_DESCENDANTS_OR_SELF_STRING:
 			   result = true;
 			   break;
-		   case "following":
+		   case Keywords.FROM_FOLLOWING_STRING:
 			   result = true;
 			   break;
-		   case "following-sibling":
+		   case Keywords.FROM_FOLLOWING_SIBLINGS_STRING:
 			   result = true;
 			   break;
-		   case "parent":
+		   case Keywords.FROM_PARENT_STRING:
 			   result = true;
 			   break;
-		   case "preceding":
+		   case Keywords.FROM_PRECEDING_STRING:
 			   result = true;
 			   break;
-		   case "preceding-sibling":
+		   case Keywords.FROM_PRECEDING_SIBLINGS_STRING:
 			   result = true;
 			   break;
-		   case "self":
+		   case Keywords.FROM_SELF_STRING:
 			   result = true;
 			   break;
-		   case "namespace":
+		   case Keywords.FROM_NAMESPACE_STRING:
 			   result = true;
 			   break;
 		   default:	   
-			   // NO OP
+			   // no op
 		   }
 	   }
 
diff --git a/src/main/java/org/apache/xpath/functions/FuncAvg.java b/src/main/java/org/apache/xpath/functions/FuncAvg.java
index 29d88723b..8f704f626 100644
--- a/src/main/java/org/apache/xpath/functions/FuncAvg.java
+++ b/src/main/java/org/apache/xpath/functions/FuncAvg.java
@@ -37,6 +37,13 @@ public class FuncAvg extends FunctionOneArg
 {
 
   private static final long serialVersionUID = 6282866669363344636L;
+  
+  /**
+   * Class constructor.
+   */
+  public FuncAvg() {
+	  m_defined_arity = new Short[] { 1 };
+  }
 
   /**
    * Execute the function. The function must return
diff --git a/src/main/java/org/apache/xpath/functions/FuncBoolean.java b/src/main/java/org/apache/xpath/functions/FuncBoolean.java
index a24425168..c6ad3796c 100644
--- a/src/main/java/org/apache/xpath/functions/FuncBoolean.java
+++ b/src/main/java/org/apache/xpath/functions/FuncBoolean.java
@@ -51,7 +51,7 @@ public class FuncBoolean extends FunctionOneArg
      * Default constructor.
      */
     public FuncBoolean() {
-       // no op	
+    	m_defined_arity = new Short[] { 1 };	
     }
     
     /**
diff --git a/src/main/java/org/apache/xpath/functions/FuncCollection.java b/src/main/java/org/apache/xpath/functions/FuncCollection.java
index 51b113edf..6e7ed3130 100644
--- a/src/main/java/org/apache/xpath/functions/FuncCollection.java
+++ b/src/main/java/org/apache/xpath/functions/FuncCollection.java
@@ -78,6 +78,13 @@ public class FuncCollection extends JsonFunction
 	 * fn:collection function's implementation.
 	 */
 	private static final String[] ALLOWED_FILE_EXTS = {XML, JSON, TEXT, CSV};
+	
+	/**
+     * Default constructor.
+     */
+    public FuncCollection() {
+    	m_defined_arity = new Short[] { 0, 1 };	
+    }
 
 	/**
 	 * Execute the function. The function must return a valid object.
diff --git a/src/main/java/org/apache/xpath/functions/FuncCount.java b/src/main/java/org/apache/xpath/functions/FuncCount.java
index fbfc204dd..507516167 100644
--- a/src/main/java/org/apache/xpath/functions/FuncCount.java
+++ b/src/main/java/org/apache/xpath/functions/FuncCount.java
@@ -33,6 +33,13 @@ import org.apache.xpath.objects.XObject;
 public class FuncCount extends FunctionOneArg
 {
     static final long serialVersionUID = -7116225100474153751L;
+    
+    /**
+     * Default constructor.
+     */
+    public FuncCount() {
+    	m_defined_arity = new Short[] { 1 };	
+    }
 
   /**
    * Execute the function. The function must return a valid object.
diff --git a/src/main/java/org/apache/xpath/functions/FuncCurrent.java b/src/main/java/org/apache/xpath/functions/FuncCurrent.java
index b0a84e931..88fefe7c6 100644
--- a/src/main/java/org/apache/xpath/functions/FuncCurrent.java
+++ b/src/main/java/org/apache/xpath/functions/FuncCurrent.java
@@ -39,6 +39,13 @@ import org.apache.xpath.patterns.StepPattern;
 public class FuncCurrent extends Function
 {
     static final long serialVersionUID = 5715316804877715008L;
+    
+    /**
+     * Default constructor.
+     */
+    public FuncCurrent() {
+    	m_defined_arity = new Short[] { 0 };	
+    }
 
   /**
    * Execute the function.  The function must return
diff --git a/src/main/java/org/apache/xpath/functions/FuncCurrentDate.java b/src/main/java/org/apache/xpath/functions/FuncCurrentDate.java
index a1d592b76..0e1b57809 100644
--- a/src/main/java/org/apache/xpath/functions/FuncCurrentDate.java
+++ b/src/main/java/org/apache/xpath/functions/FuncCurrentDate.java
@@ -30,9 +30,7 @@ import org.apache.xpath.res.XPATHErrorResources;
 import xml.xpath31.processor.types.XSDate;
 
 /**
- * Execute the current-date() function.
- * 
- * This function returns the current date.
+ * Implementation of XPath 3.1 function fn:current-date.
  * 
  * @author Mukul Gandhi <mu...@apache.org>
  * 
@@ -41,6 +39,13 @@ import xml.xpath31.processor.types.XSDate;
 public class FuncCurrentDate extends Function {
 
    private static final long serialVersionUID = -8672902204838660435L;
+   
+   /**
+    * Default constructor.
+    */
+   public FuncCurrentDate() {
+	   m_defined_arity = new Short[] { 0 };	
+   }
 
   /**
    * Execute the function. The function must return a valid object.
diff --git a/src/main/java/org/apache/xpath/functions/FuncCurrentDateTime.java b/src/main/java/org/apache/xpath/functions/FuncCurrentDateTime.java
index f779d914e..38d85096e 100644
--- a/src/main/java/org/apache/xpath/functions/FuncCurrentDateTime.java
+++ b/src/main/java/org/apache/xpath/functions/FuncCurrentDateTime.java
@@ -30,20 +30,7 @@ import org.apache.xpath.res.XPATHErrorResources;
 import xml.xpath31.processor.types.XSDateTime;
 
 /**
- * Execute the current-dateTime() function.
- * 
- * This function returns the current date and time (with timezone),
- * stored within the current XPath context.
- * 
- * XPath 3.1 spec mentions following, about this function,
- * 
- * "If the implementation supports data types from XSD 1.1 then the returned 
- * value will be an instance of xs:dateTimeStamp. Otherwise, the only guarantees 
- * are that it will be an instance of xs:dateTime and will have a timezone 
- * component."
- * 
- * The implementation of function fn:current-dateTime(), provided by this class,
- * returns an instance of xs:dateTime. 
+ * Implementation of XPath 3.1 function fn:current-dateTime.
  * 
  * @author Mukul Gandhi <mu...@apache.org>
  * 
@@ -52,6 +39,13 @@ import xml.xpath31.processor.types.XSDateTime;
 public class FuncCurrentDateTime extends Function {
 
    private static final long serialVersionUID = -2032033071326423919L;
+   
+   /**
+    * Default constructor.
+    */
+   public FuncCurrentDateTime() {
+	   m_defined_arity = new Short[] { 0 };	
+   }
 
    /**
    * Execute the function. The function must return a valid object.
diff --git a/src/main/java/org/apache/xpath/functions/FuncCurrentTime.java b/src/main/java/org/apache/xpath/functions/FuncCurrentTime.java
index b21895d96..44c7f57fa 100644
--- a/src/main/java/org/apache/xpath/functions/FuncCurrentTime.java
+++ b/src/main/java/org/apache/xpath/functions/FuncCurrentTime.java
@@ -30,9 +30,7 @@ import org.apache.xpath.res.XPATHErrorResources;
 import xml.xpath31.processor.types.XSTime;
 
 /**
- * Execute the current-time() function.
- * 
- * This function returns the current time.
+ * Implementation of XPath 3.1 function fn:current-time.
  * 
  * @author Mukul Gandhi <mu...@apache.org>
  * 
@@ -41,6 +39,13 @@ import xml.xpath31.processor.types.XSTime;
 public class FuncCurrentTime extends Function {
 
    private static final long serialVersionUID = -8672902204838660435L;
+   
+   /**
+    * Default constructor.
+    */
+   public FuncCurrentTime() {
+	   m_defined_arity = new Short[] { 0 };	
+   }
 
   /**
    * Execute the function. The function must return a valid object.
diff --git a/src/main/java/org/apache/xpath/functions/FuncData.java b/src/main/java/org/apache/xpath/functions/FuncData.java
index 396104f51..141df2c59 100644
--- a/src/main/java/org/apache/xpath/functions/FuncData.java
+++ b/src/main/java/org/apache/xpath/functions/FuncData.java
@@ -37,13 +37,7 @@ import xml.xpath31.processor.types.XSUntyped;
 import xml.xpath31.processor.types.XSUntypedAtomic;
 
 /**
- * Implementation of an XPath 3.1 function data().
- * 
- * Ref : https://www.w3.org/TR/xpath-functions-31/#func-data
- * 
- * This implementation of function fn:data() assumes that,
- * an XML input document has not been validated with an 
- * XML schema.
+ * Implementation of XPath 3.1 function fn:data.
  * 
  * @author Mukul Gandhi <mu...@apache.org>
  * 
diff --git a/src/main/java/org/apache/xpath/functions/FuncDeepEqual.java b/src/main/java/org/apache/xpath/functions/FuncDeepEqual.java
index 747d8d856..beff04030 100644
--- a/src/main/java/org/apache/xpath/functions/FuncDeepEqual.java
+++ b/src/main/java/org/apache/xpath/functions/FuncDeepEqual.java
@@ -60,7 +60,7 @@ public class FuncDeepEqual extends FunctionMultiArgs {
    * Default constructor.
    */
   public FuncDeepEqual() {
-	 // NO OP  
+	  m_defined_arity = new Short[] {2, 3}; 
   }
   
   /**
diff --git a/src/main/java/org/apache/xpath/functions/FuncDefaultCollation.java b/src/main/java/org/apache/xpath/functions/FuncDefaultCollation.java
index d8e841aca..6d405cc20 100644
--- a/src/main/java/org/apache/xpath/functions/FuncDefaultCollation.java
+++ b/src/main/java/org/apache/xpath/functions/FuncDefaultCollation.java
@@ -34,6 +34,13 @@ import xml.xpath31.processor.types.XSString;
 public class FuncDefaultCollation extends Function {
 
   private static final long serialVersionUID = 2310223969416091883L;
+  
+  /**
+   * Default constructor.
+   */
+  public FuncDefaultCollation() {
+	  m_defined_arity = new Short[] { 0 }; 
+  }
 
   /**
    * Execute the function. The function must return a valid object.
diff --git a/src/main/java/org/apache/xpath/functions/FuncDistinctValues.java b/src/main/java/org/apache/xpath/functions/FuncDistinctValues.java
index 943e446b8..eb052b94b 100644
--- a/src/main/java/org/apache/xpath/functions/FuncDistinctValues.java
+++ b/src/main/java/org/apache/xpath/functions/FuncDistinctValues.java
@@ -45,6 +45,13 @@ import xml.xpath31.processor.types.XSUntypedAtomic;
 public class FuncDistinctValues extends FunctionMultiArgs {
     
    private static final long serialVersionUID = -1637800188441824456L;
+   
+   /**
+    * Default constructor.
+    */
+   public FuncDistinctValues() {
+ 	  m_defined_arity = new Short[] { 1, 2 }; 
+   }
 
   /**
    * Execute the function. The function must return a valid object.
diff --git a/src/main/java/org/apache/xpath/functions/FuncDoc.java b/src/main/java/org/apache/xpath/functions/FuncDoc.java
index 4fedb773f..bb60bc107 100644
--- a/src/main/java/org/apache/xpath/functions/FuncDoc.java
+++ b/src/main/java/org/apache/xpath/functions/FuncDoc.java
@@ -48,7 +48,7 @@ public class FuncDoc extends FunctionOneArg {
      * Default constructor.
      */
     public FuncDoc() {
-       // NO OP	
+    	m_defined_arity = new Short[] { 1 };	
     }
     
     /**
diff --git a/src/main/java/org/apache/xpath/functions/FuncDocAvailable.java b/src/main/java/org/apache/xpath/functions/FuncDocAvailable.java
index 73a39f64c..e7049ca73 100644
--- a/src/main/java/org/apache/xpath/functions/FuncDocAvailable.java
+++ b/src/main/java/org/apache/xpath/functions/FuncDocAvailable.java
@@ -36,6 +36,13 @@ import xml.xpath31.processor.types.XSBoolean;
 public class FuncDocAvailable extends FunctionOneArg {
 
 	private static final long serialVersionUID = -737728533828222724L;
+	
+	/**
+     * Default constructor.
+     */
+    public FuncDocAvailable() {
+    	m_defined_arity = new Short[] { 1 };	
+    }
 
 	/**
      * Execute the function. The function must return a valid object.
diff --git a/src/main/java/org/apache/xpath/functions/FuncEmpty.java b/src/main/java/org/apache/xpath/functions/FuncEmpty.java
index 6f71f0352..3572d9f13 100644
--- a/src/main/java/org/apache/xpath/functions/FuncEmpty.java
+++ b/src/main/java/org/apache/xpath/functions/FuncEmpty.java
@@ -34,6 +34,13 @@ import org.apache.xpath.objects.XObject;
 public class FuncEmpty extends FunctionOneArg {
     
     private static final long serialVersionUID = 8023120626582040786L;
+    
+    /**
+	 * Class constructor.
+	 */
+	public FuncEmpty() {
+		m_defined_arity = new Short[] { 1 }; 
+	}
 
     /**
      * Execute the function. The function must return a valid object.
diff --git a/src/main/java/org/apache/xpath/functions/FuncExists.java b/src/main/java/org/apache/xpath/functions/FuncExists.java
index dcd980aa6..c68fbb746 100644
--- a/src/main/java/org/apache/xpath/functions/FuncExists.java
+++ b/src/main/java/org/apache/xpath/functions/FuncExists.java
@@ -32,6 +32,13 @@ import org.apache.xpath.objects.XObject;
 public class FuncExists extends FunctionOneArg {
 
     private static final long serialVersionUID = -3106224966062352967L;
+    
+    /**
+	 * Class constructor.
+	 */
+	public FuncExists() {
+		m_defined_arity = new Short[] { 1 }; 
+	}
 
     /**
      * Execute the function. The function must return a valid object.
diff --git a/src/main/java/org/apache/xpath/functions/FuncFalse.java b/src/main/java/org/apache/xpath/functions/FuncFalse.java
index bd7a2b786..47ae8ad22 100644
--- a/src/main/java/org/apache/xpath/functions/FuncFalse.java
+++ b/src/main/java/org/apache/xpath/functions/FuncFalse.java
@@ -31,6 +31,13 @@ import org.apache.xpath.objects.XObject;
 public class FuncFalse extends Function
 {
     static final long serialVersionUID = 6150918062759769887L;
+    
+    /**
+	 * Class constructor.
+	 */
+	public FuncFalse() {
+	   m_defined_arity = new Short[] { 0 };
+	}
 
   /**
    * Execute the function.  The function must return
diff --git a/src/main/java/org/apache/xpath/functions/FuncFunctionArity.java b/src/main/java/org/apache/xpath/functions/FuncFunctionArity.java
index 50ac61243..55b1a28a9 100644
--- a/src/main/java/org/apache/xpath/functions/FuncFunctionArity.java
+++ b/src/main/java/org/apache/xpath/functions/FuncFunctionArity.java
@@ -20,6 +20,7 @@ package org.apache.xpath.functions;
 import java.util.Arrays;
 import java.util.List;
 
+import javax.xml.XMLConstants;
 import javax.xml.transform.SourceLocator;
 import javax.xml.transform.TransformerException;
 
@@ -56,7 +57,7 @@ public class FuncFunctionArity extends FunctionDef1Arg
 	final short FUNC_ARITY_NOT_KNOWN = -1; 
 
 	/**
-	 * Class constructor;
+	 * Class constructor.
 	 */
 	public FuncFunctionArity() {
 		m_defined_arity = new Short[] { 1 };
@@ -175,37 +176,56 @@ public class FuncFunctionArity extends FunctionDef1Arg
 		
 		SourceLocator srcLocator = xctxt.getSAXLocator();
 		
+		/**
+		 * This is an XPath function's arity value, computed mainly during
+		 * XPath parse of function expression specified within an XSL
+		 * stylesheet or an XPath literal expression. This arity value is
+		 * further verified below with an XPath function's arity value 
+		 * defined within XPath 3.1 F&O spec and correspondingly configured
+		 * within Xalan-J code.
+		 */
+		final Short runTimeArity = xpathNamedFunctionReference.getArity();
+		
+		short funcActualArity = FUNC_ARITY_NOT_KNOWN;
+		
 		String funcName = xpathNamedFunctionReference.getFuncName();
-		String funcNamespace = xpathNamedFunctionReference.getFuncNamespace();			   
+		String funcNamespace = xpathNamedFunctionReference.getFuncNamespace();
+		
+		String funcNameRefStr = "{" + funcNamespace + "}" + funcName + "#" + runTimeArity;
+		
 		if ((FunctionTable.XPATH_BUILT_IN_FUNCS_NS_URI).equals(funcNamespace) || (FunctionTable.XPATH_BUILT_IN_MATH_FUNCS_NS_URI).equals(funcNamespace) ||
 				                                                                 (FunctionTable.XPATH_BUILT_IN_MAP_FUNCS_NS_URI).equals(funcNamespace) || 
-				                                                                 (FunctionTable.XPATH_BUILT_IN_ARRAY_FUNCS_NS_URI).equals(funcNamespace)) {				   
+				                                                                 (FunctionTable.XPATH_BUILT_IN_ARRAY_FUNCS_NS_URI).equals(funcNamespace) ||
+				                                                                 (XMLConstants.W3C_XML_SCHEMA_NS_URI).equals(funcNamespace)) {				   
 			XSL3FunctionService xsl3FunctionService = XSLFunctionBuilder.getXSLFunctionService();
 			Function function = xsl3FunctionService.getXPathBuiltInFunction(funcName, funcNamespace, xctxt);
 			
-			/**
-			 * This is an XPath function's arity value, computed mainly during
-			 * XPath parse of function expression specified within an XSL
-			 * stylesheet or an XPath literal expression. This arity value is
-			 * further verified below with an XPath function's actual arity value.
-			 */
-			final Short runTimeArity = xpathNamedFunctionReference.getArity();
-			
-			short funcActualArity = FUNC_ARITY_NOT_KNOWN; 
-			Short[] funcDefinedArityArr = function.getDefinedArity();						
-			List<Short> funcDefinedArityList = Arrays.asList(funcDefinedArityArr);
-			if (funcDefinedArityList.contains(runTimeArity)) {
-				funcActualArity = runTimeArity;
-				result = new XSInteger(String.valueOf(funcActualArity));
-			}
+			if ((function == null) && (XMLConstants.W3C_XML_SCHEMA_NS_URI).equals(funcNamespace)) {
+				if (xsl3FunctionService.isXmlSchemaBuiltInAtomicTypeName(funcName)) {  
+				   funcActualArity = 1;
+				   result = new XSInteger(String.valueOf(funcActualArity));
+				}
+			}									
 			else {
-				String funcNameRefStr = "{" + funcNamespace + "}" + funcName + "#" + runTimeArity; 
-				throw new TransformerException("XPST0017 : An XSL function definition for function reference " + funcNameRefStr 
-																											   + " not found.", srcLocator); 
+				Short[] funcDefinedArityArr = function.getDefinedArity();						
+				List<Short> funcDefinedArityList = Arrays.asList(funcDefinedArityArr);
+				if (funcDefinedArityList.contains(runTimeArity)) {
+					funcActualArity = runTimeArity;
+					result = new XSInteger(String.valueOf(funcActualArity));
+				}
+				else {					 
+					throw new TransformerException("XPST0017 : An XSL function definition for function reference " + funcNameRefStr 
+																												   + " not found.", srcLocator); 
+				}
 			}
 			
 		}
 		
+		if (result == null) {
+			throw new TransformerException("XPST0017 : An XSL function definition for function reference " + funcNameRefStr 
+					   																					   + " not found.", srcLocator);
+		}
+		
 		return result;
 	}
 	
diff --git a/src/main/java/org/apache/xpath/functions/FuncGenerateId.java b/src/main/java/org/apache/xpath/functions/FuncGenerateId.java
index 8e7024a8e..660601d89 100644
--- a/src/main/java/org/apache/xpath/functions/FuncGenerateId.java
+++ b/src/main/java/org/apache/xpath/functions/FuncGenerateId.java
@@ -32,6 +32,13 @@ import org.apache.xpath.objects.XString;
 public class FuncGenerateId extends FunctionDef1Arg
 {
     static final long serialVersionUID = 973544842091724273L;
+    
+    /**
+	 * Class constructor.
+	 */
+	public FuncGenerateId() {
+	   m_defined_arity = new Short[] { 0, 1 };
+	}
 
   /**
    * Execute the function.  The function must return
diff --git a/src/main/java/org/apache/xpath/functions/FuncHead.java b/src/main/java/org/apache/xpath/functions/FuncHead.java
index 10a6b2e52..75e7f2c38 100644
--- a/src/main/java/org/apache/xpath/functions/FuncHead.java
+++ b/src/main/java/org/apache/xpath/functions/FuncHead.java
@@ -32,6 +32,13 @@ import org.apache.xpath.objects.XObject;
 public class FuncHead extends FunctionOneArg {
 
     private static final long serialVersionUID = -9160853897326799993L;
+    
+    /**
+	 * Class constructor.
+	 */
+	public FuncHead() {
+	   m_defined_arity = new Short[] { 1 };
+	}
 
     /**
      * Execute the function. The function must return a valid object.
diff --git a/src/main/java/org/apache/xpath/functions/FuncId.java b/src/main/java/org/apache/xpath/functions/FuncId.java
index 281bc2eb9..1153c8d24 100644
--- a/src/main/java/org/apache/xpath/functions/FuncId.java
+++ b/src/main/java/org/apache/xpath/functions/FuncId.java
@@ -38,6 +38,13 @@ import org.apache.xpath.res.XPATHErrorResources;
 public class FuncId extends FunctionOneArg
 {
     static final long serialVersionUID = 8930573966143567310L;
+    
+    /**
+	 * Class constructor.
+	 */
+	public FuncId() {
+	   m_defined_arity = new Short[] { 1, 2 };
+	}
 
   /**
    * Fill in a list with nodes that match a space delimited list if ID 
diff --git a/src/main/java/org/apache/xpath/functions/FuncImplicitTimezone.java b/src/main/java/org/apache/xpath/functions/FuncImplicitTimezone.java
index 32bcdff7a..2feacf263 100644
--- a/src/main/java/org/apache/xpath/functions/FuncImplicitTimezone.java
+++ b/src/main/java/org/apache/xpath/functions/FuncImplicitTimezone.java
@@ -44,6 +44,13 @@ import xml.xpath31.processor.types.XSDuration;
 public class FuncImplicitTimezone extends Function {
 
    private static final long serialVersionUID = -429445379499398972L;
+   
+   /**
+    * Class constructor.
+    */
+   public FuncImplicitTimezone() {
+	   m_defined_arity = new Short[] { 0 };
+   }
 
   /**
    * Execute the function. The function must return a valid object.
diff --git a/src/main/java/org/apache/xpath/functions/FuncInScopePrefixes.java b/src/main/java/org/apache/xpath/functions/FuncInScopePrefixes.java
index beb59240c..b403e9cd7 100644
--- a/src/main/java/org/apache/xpath/functions/FuncInScopePrefixes.java
+++ b/src/main/java/org/apache/xpath/functions/FuncInScopePrefixes.java
@@ -45,6 +45,13 @@ import xml.xpath31.processor.types.XSString;
 public class FuncInScopePrefixes extends FunctionOneArg {
 
    private static final long serialVersionUID = 2372823852330912332L;
+   
+   /**
+    * Class constructor.
+    */
+   public FuncInScopePrefixes() {
+	   m_defined_arity = new Short[] { 1 };
+   }
 
    /**
    * Implementation of the function. The function must return
diff --git a/src/main/java/org/apache/xpath/functions/FuncIndexOf.java b/src/main/java/org/apache/xpath/functions/FuncIndexOf.java
index 834942f7e..e2306f141 100644
--- a/src/main/java/org/apache/xpath/functions/FuncIndexOf.java
+++ b/src/main/java/org/apache/xpath/functions/FuncIndexOf.java
@@ -47,6 +47,13 @@ import xml.xpath31.processor.types.XSUntypedAtomic;
 public class FuncIndexOf extends FunctionMultiArgs {
 
    private static final long serialVersionUID = 2912594883291006421L;
+   
+   /**
+    * Class constructor.
+    */
+   public FuncIndexOf() {
+	   m_defined_arity = new Short[] { 2, 3 };
+   }
 
   /**
    * Execute the function. The function must return a valid object.
diff --git a/src/main/java/org/apache/xpath/functions/FuncInsertBefore.java b/src/main/java/org/apache/xpath/functions/FuncInsertBefore.java
index d304b3870..f398da3b1 100644
--- a/src/main/java/org/apache/xpath/functions/FuncInsertBefore.java
+++ b/src/main/java/org/apache/xpath/functions/FuncInsertBefore.java
@@ -37,6 +37,13 @@ import xml.xpath31.processor.types.XSNumericType;
 public class FuncInsertBefore extends Function3Args {
 
     private static final long serialVersionUID = 4238468031173924757L;
+    
+    /**
+     * Class constructor.
+     */
+    public FuncInsertBefore() {
+ 	   m_defined_arity = new Short[] { 3 };
+    }
 
     /**
      * Execute the function. The function must return a valid object.
diff --git a/src/main/java/org/apache/xpath/functions/FuncLang.java b/src/main/java/org/apache/xpath/functions/FuncLang.java
index 137846d83..3e89553ab 100644
--- a/src/main/java/org/apache/xpath/functions/FuncLang.java
+++ b/src/main/java/org/apache/xpath/functions/FuncLang.java
@@ -44,6 +44,13 @@ import xml.xpath31.processor.types.XSBoolean;
 public class FuncLang extends FunctionMultiArgs {
 	
 	   private static final long serialVersionUID = -7868705139354872185L;
+	   
+	   /**
+	    * Class constructor.
+	    */
+	   public FuncLang() {
+		   m_defined_arity = new Short[] { 1, 2 };
+	   }
 
 	   /**
 	   * Implementation of the function. The function must return
diff --git a/src/main/java/org/apache/xpath/functions/FuncLast.java b/src/main/java/org/apache/xpath/functions/FuncLast.java
index ae3737a39..a3224d44d 100644
--- a/src/main/java/org/apache/xpath/functions/FuncLast.java
+++ b/src/main/java/org/apache/xpath/functions/FuncLast.java
@@ -36,6 +36,13 @@ public class FuncLast extends Function
   
   private boolean m_isTopLevel;
   
+  /**
+   * Class constructor.
+   */
+  public FuncLast() {
+	  m_defined_arity = new Short[] { 0 };
+  }
+  
   /**
    * Figure out if we're executing a toplevel expression.
    * If so, we can't be inside of a predicate. 
diff --git a/src/main/java/org/apache/xpath/functions/FuncLocalName.java b/src/main/java/org/apache/xpath/functions/FuncLocalName.java
index 1c787a449..030ecab34 100644
--- a/src/main/java/org/apache/xpath/functions/FuncLocalName.java
+++ b/src/main/java/org/apache/xpath/functions/FuncLocalName.java
@@ -38,6 +38,13 @@ import xml.xpath31.processor.types.XSString;
 public class FuncLocalName extends FunctionDef1Arg {
 	
 	private static final long serialVersionUID = -1472285426859105850L;
+	
+	/**
+	 * Class constructor.
+	 */
+	public FuncLocalName() {
+		m_defined_arity = new Short[] { 0, 1 };
+	}
 
 	/**
 	  * Implementation of the function. The function must return
diff --git a/src/main/java/org/apache/xpath/functions/FuncLocalNameFromQName.java b/src/main/java/org/apache/xpath/functions/FuncLocalNameFromQName.java
index 51c81bff1..59aaf7d07 100644
--- a/src/main/java/org/apache/xpath/functions/FuncLocalNameFromQName.java
+++ b/src/main/java/org/apache/xpath/functions/FuncLocalNameFromQName.java
@@ -36,6 +36,13 @@ import xml.xpath31.processor.types.XSQName;
 public class FuncLocalNameFromQName extends FunctionDef1Arg {
 
 	private static final long serialVersionUID = -6264955161789592394L;
+	
+	/**
+	 * Class constructor.
+	 */
+	public FuncLocalNameFromQName() {
+		m_defined_arity = new Short[] { 1 };
+	}
 
    /**
    * Implementation of the function. The function must return
diff --git a/src/main/java/org/apache/xpath/functions/FuncMax.java b/src/main/java/org/apache/xpath/functions/FuncMax.java
index 161d31062..01c5cf8bb 100644
--- a/src/main/java/org/apache/xpath/functions/FuncMax.java
+++ b/src/main/java/org/apache/xpath/functions/FuncMax.java
@@ -55,6 +55,13 @@ public class FuncMax extends FunctionMultiArgs
 {
 
    private static final long serialVersionUID = 6488632087250018194L;
+   
+   /**
+    * Class constructor.
+    */
+   public FuncMax() {
+	   m_defined_arity = new Short[] { 1, 2 };
+   }
     
    /**
     * The number of arguments passed to the fn:max function 
diff --git a/src/main/java/org/apache/xpath/functions/FuncMin.java b/src/main/java/org/apache/xpath/functions/FuncMin.java
index 98d85067c..fe0c019cf 100644
--- a/src/main/java/org/apache/xpath/functions/FuncMin.java
+++ b/src/main/java/org/apache/xpath/functions/FuncMin.java
@@ -56,6 +56,13 @@ public class FuncMin extends FunctionMultiArgs
     
   private static final long serialVersionUID = 3366369283941946933L;
   
+  /**
+   * Class constructor.
+   */
+  public FuncMin() {
+	  m_defined_arity = new Short[] { 1, 2 };
+  }
+  
   /**
    * The number of arguments passed to the fn:min function 
    * call.
diff --git a/src/main/java/org/apache/xpath/functions/FuncName.java b/src/main/java/org/apache/xpath/functions/FuncName.java
index b310c2375..44fdc13cb 100644
--- a/src/main/java/org/apache/xpath/functions/FuncName.java
+++ b/src/main/java/org/apache/xpath/functions/FuncName.java
@@ -40,6 +40,13 @@ import xml.xpath31.processor.types.XSString;
 public class FuncName extends FunctionMultiArgs {
 
   private static final long serialVersionUID = -3263417937216412681L;
+  
+  /**
+   * Class constructor.
+   */
+  public FuncName() {
+	  m_defined_arity = new Short[] { 0, 1 };
+  }
 
   /**
    * Implementation of the function. The function must return
diff --git a/src/main/java/org/apache/xpath/functions/FuncNamespaceUri.java b/src/main/java/org/apache/xpath/functions/FuncNamespaceUri.java
index a390325d1..fad035bc3 100644
--- a/src/main/java/org/apache/xpath/functions/FuncNamespaceUri.java
+++ b/src/main/java/org/apache/xpath/functions/FuncNamespaceUri.java
@@ -37,6 +37,13 @@ public class FuncNamespaceUri extends FunctionDef1Arg
 {
 
    private static final long serialVersionUID = 6358386272825912243L;
+   
+   /**
+    * Class constructor.
+    */
+   public FuncNamespaceUri() {
+ 	  m_defined_arity = new Short[] { 0, 1 };
+   }
 
   /**
    * Implementation of the function. The function must return
diff --git a/src/main/java/org/apache/xpath/functions/FuncNamespaceUriForPrefix.java b/src/main/java/org/apache/xpath/functions/FuncNamespaceUriForPrefix.java
index 85c4fbf41..9826c3eff 100644
--- a/src/main/java/org/apache/xpath/functions/FuncNamespaceUriForPrefix.java
+++ b/src/main/java/org/apache/xpath/functions/FuncNamespaceUriForPrefix.java
@@ -43,6 +43,13 @@ import xml.xpath31.processor.types.XSAnyURI;
 public class FuncNamespaceUriForPrefix extends Function2Args {
 
 	private static final long serialVersionUID = 6212323137442859818L;
+	
+	/**
+	 * Class constructor.
+	 */
+	public FuncNamespaceUriForPrefix() {
+		m_defined_arity = new Short[] { 2 };
+	}
 
    /**
    * Implementation of the function. The function must return
diff --git a/src/main/java/org/apache/xpath/functions/FuncNamespaceUriFromQName.java b/src/main/java/org/apache/xpath/functions/FuncNamespaceUriFromQName.java
index cba5b76d0..8a968b53b 100644
--- a/src/main/java/org/apache/xpath/functions/FuncNamespaceUriFromQName.java
+++ b/src/main/java/org/apache/xpath/functions/FuncNamespaceUriFromQName.java
@@ -36,6 +36,13 @@ import xml.xpath31.processor.types.XSQName;
 public class FuncNamespaceUriFromQName extends FunctionDef1Arg {
 
 	private static final long serialVersionUID = 4356910888178229773L;
+	
+	/**
+	 * Class constructor.
+	 */
+	public FuncNamespaceUriFromQName() {
+		m_defined_arity = new Short[] { 1 };
+	}
 
    /**
    * Implementation of the function. The function must return
diff --git a/src/main/java/org/apache/xpath/functions/FuncNodeName.java b/src/main/java/org/apache/xpath/functions/FuncNodeName.java
index cf06a25fc..d3fdf8cdb 100644
--- a/src/main/java/org/apache/xpath/functions/FuncNodeName.java
+++ b/src/main/java/org/apache/xpath/functions/FuncNodeName.java
@@ -37,6 +37,13 @@ import xml.xpath31.processor.types.XSQName;
 public class FuncNodeName extends FunctionDef1Arg {
 
    private static final long serialVersionUID = -6613114399818352830L;
+   
+   /**
+    * Class constructor.
+    */
+   public FuncNodeName() {
+	   m_defined_arity = new Short[] { 0, 1 };
+   }
 
    /**
    * Execute the function. The function must return a valid object.
diff --git a/src/main/java/org/apache/xpath/functions/FuncNot.java b/src/main/java/org/apache/xpath/functions/FuncNot.java
index f4bf0db90..b03909487 100644
--- a/src/main/java/org/apache/xpath/functions/FuncNot.java
+++ b/src/main/java/org/apache/xpath/functions/FuncNot.java
@@ -33,6 +33,13 @@ import xml.xpath31.processor.types.XSBoolean;
 public class FuncNot extends FunctionOneArg
 {
    static final long serialVersionUID = 7299699961076329790L;
+   
+   /**
+    * Class constructor.
+    */
+   public FuncNot() {
+   	 m_defined_arity = new Short[] { 1 };	
+   }
 
   /**
    * Implementation of the function. The function must return
diff --git a/src/main/java/org/apache/xpath/functions/FuncParseXml.java b/src/main/java/org/apache/xpath/functions/FuncParseXml.java
index 0833f8f41..141d31f38 100644
--- a/src/main/java/org/apache/xpath/functions/FuncParseXml.java
+++ b/src/main/java/org/apache/xpath/functions/FuncParseXml.java
@@ -43,6 +43,13 @@ import org.xml.sax.ErrorHandler;
 public class FuncParseXml extends FunctionOneArg {
 
     private static final long serialVersionUID = -6262670777202140694L;
+    
+    /**
+     * Class constructor.
+     */
+    public FuncParseXml() {
+ 	   m_defined_arity = new Short[] { 1 };
+    }
 
     /**
      * Execute the function. The function must return a valid object.
diff --git a/src/main/java/org/apache/xpath/functions/FuncParseXmlFragment.java b/src/main/java/org/apache/xpath/functions/FuncParseXmlFragment.java
index d6d04787b..b695c11ee 100644
--- a/src/main/java/org/apache/xpath/functions/FuncParseXmlFragment.java
+++ b/src/main/java/org/apache/xpath/functions/FuncParseXmlFragment.java
@@ -44,6 +44,13 @@ import org.w3c.dom.NodeList;
 public class FuncParseXmlFragment extends FunctionOneArg {
 
     private static final long serialVersionUID = -3212697250471567672L;
+    
+    /**
+     * Class constructor.
+     */
+    public FuncParseXmlFragment() {
+ 	   m_defined_arity = new Short[] { 1 };
+    }
 
     /**
      * Execute the function. The function must return a valid object.
diff --git a/src/main/java/org/apache/xpath/functions/FuncPosition.java b/src/main/java/org/apache/xpath/functions/FuncPosition.java
index 64f69600c..7ece1673d 100644
--- a/src/main/java/org/apache/xpath/functions/FuncPosition.java
+++ b/src/main/java/org/apache/xpath/functions/FuncPosition.java
@@ -40,6 +40,13 @@ public class FuncPosition extends Function
   
   public static int m_forEachGroupGroupByPos = 0;
   
+  /**
+   * Class constructor.
+   */
+  public FuncPosition() {
+	  m_defined_arity = new Short[] { 0 };
+  }
+  
   /**
    * Figure out if we're executing a toplevel expression.
    * If so, we can't be inside of a predicate. 
diff --git a/src/main/java/org/apache/xpath/functions/FuncPrefixFromQName.java b/src/main/java/org/apache/xpath/functions/FuncPrefixFromQName.java
index 8b868deb5..58d7f94aa 100644
--- a/src/main/java/org/apache/xpath/functions/FuncPrefixFromQName.java
+++ b/src/main/java/org/apache/xpath/functions/FuncPrefixFromQName.java
@@ -36,6 +36,13 @@ import xml.xpath31.processor.types.XSQName;
 public class FuncPrefixFromQName extends FunctionDef1Arg {
 
    private static final long serialVersionUID = -543831700974347652L;
+   
+   /**
+    * Class constructor.
+    */
+   public FuncPrefixFromQName() {
+ 	  m_defined_arity = new Short[] { 1 };
+   }
 
    /**
    * Implementation of the function. The function must return
diff --git a/src/main/java/org/apache/xpath/functions/FuncQName.java b/src/main/java/org/apache/xpath/functions/FuncQName.java
index 0c5efb296..8285d397c 100644
--- a/src/main/java/org/apache/xpath/functions/FuncQName.java
+++ b/src/main/java/org/apache/xpath/functions/FuncQName.java
@@ -39,6 +39,13 @@ public class FuncQName extends Function2Args
 {
 
 	private static final long serialVersionUID = -8738986526447227857L;
+	
+	/**
+	 * Class constructor.
+	 */
+	public FuncQName() {
+		m_defined_arity = new Short[] { 2 };
+	}
 
 	/**
       * Execute the function. The function must return a valid object.
diff --git a/src/main/java/org/apache/xpath/functions/FuncRemove.java b/src/main/java/org/apache/xpath/functions/FuncRemove.java
index 1fcdf4765..6e6e31e7c 100644
--- a/src/main/java/org/apache/xpath/functions/FuncRemove.java
+++ b/src/main/java/org/apache/xpath/functions/FuncRemove.java
@@ -37,6 +37,13 @@ import xml.xpath31.processor.types.XSNumericType;
 public class FuncRemove extends Function2Args {
 
     private static final long serialVersionUID = -8240867333953131047L;
+    
+    /**
+     * Class constructor.
+     */
+    public FuncRemove() {
+    	m_defined_arity = new Short[] { 2 };
+    }
 
     /**
      * Execute the function. The function must return a valid object.
diff --git a/src/main/java/org/apache/xpath/functions/FuncResolveQName.java b/src/main/java/org/apache/xpath/functions/FuncResolveQName.java
index b8f40400a..fe44f489a 100644
--- a/src/main/java/org/apache/xpath/functions/FuncResolveQName.java
+++ b/src/main/java/org/apache/xpath/functions/FuncResolveQName.java
@@ -45,6 +45,13 @@ public class FuncResolveQName extends Function2Args
 {
 
 	private static final long serialVersionUID = -6607276959184577402L;
+	
+	/**
+     * Class constructor.
+     */
+    public FuncResolveQName() {
+    	m_defined_arity = new Short[] { 2 };
+    }
 
 	/**
       * Execute the function. The function must return a valid object.
diff --git a/src/main/java/org/apache/xpath/functions/FuncReverse.java b/src/main/java/org/apache/xpath/functions/FuncReverse.java
index 4d30b4df5..0e0189002 100644
--- a/src/main/java/org/apache/xpath/functions/FuncReverse.java
+++ b/src/main/java/org/apache/xpath/functions/FuncReverse.java
@@ -16,8 +16,6 @@
  */
 package org.apache.xpath.functions;
 
-import javax.xml.transform.SourceLocator;
-
 import org.apache.xalan.xslt.util.XslTransformEvaluationHelper;
 import org.apache.xpath.XPathContext;
 import org.apache.xpath.objects.ResultSequence;
@@ -33,6 +31,13 @@ import org.apache.xpath.objects.XObject;
 public class FuncReverse extends FunctionOneArg {
 
     private static final long serialVersionUID = -6427731983746707296L;
+    
+    /**
+     * Class constructor.
+     */
+    public FuncReverse() {
+    	m_defined_arity = new Short[] { 1 };
+    }
 
     /**
      * Execute the function. The function must return a valid object.
diff --git a/src/main/java/org/apache/xpath/functions/FuncRoot.java b/src/main/java/org/apache/xpath/functions/FuncRoot.java
index 035cf6f9b..8c45218d3 100644
--- a/src/main/java/org/apache/xpath/functions/FuncRoot.java
+++ b/src/main/java/org/apache/xpath/functions/FuncRoot.java
@@ -32,13 +32,20 @@ import org.apache.xpath.objects.XObject;
 /**
  * Implementation of an XPath 3.1 fn:root function.
  * 
- * Author : Mukul Gandhi <mu...@apache.org>
+ * @author Mukul Gandhi <mu...@apache.org>
  * 
  * @xsl.usage advanced
  */
 public class FuncRoot extends FunctionMultiArgs {
 	
 	   private static final long serialVersionUID = -7868705139354872185L;
+	   
+	   /**
+	    * Class constructor.
+	    */
+	   public FuncRoot() {
+		   m_defined_arity = new Short[] { 0, 1 };
+	   }
 
 	   /**
 	   * Implementation of the function. The function must return
diff --git a/src/main/java/org/apache/xpath/functions/FuncRound.java b/src/main/java/org/apache/xpath/functions/FuncRound.java
index ab2ce29da..c533a46b5 100644
--- a/src/main/java/org/apache/xpath/functions/FuncRound.java
+++ b/src/main/java/org/apache/xpath/functions/FuncRound.java
@@ -49,7 +49,7 @@ public class FuncRound extends Function2Args
        * Class constructor.
        */
       public FuncRound() {
-    	  m_defined_arity = new Short[] {1, 2};  
+    	  m_defined_arity = new Short[] { 1, 2 };  
       }
     
       /**
diff --git a/src/main/java/org/apache/xpath/functions/FuncSubsequence.java b/src/main/java/org/apache/xpath/functions/FuncSubsequence.java
index d02733690..0b1df8f48 100644
--- a/src/main/java/org/apache/xpath/functions/FuncSubsequence.java
+++ b/src/main/java/org/apache/xpath/functions/FuncSubsequence.java
@@ -40,6 +40,13 @@ public class FuncSubsequence extends FunctionMultiArgs {
 
     private static final long serialVersionUID = -3680881808988095370L;
     
+    /**
+     * Class constructor.
+     */
+    public FuncSubsequence() {
+  	   m_defined_arity = new Short[] { 2, 3 };  
+    }
+    
     /**
      * The number of arguments passed to the fn:sort function 
      * call.
diff --git a/src/main/java/org/apache/xpath/functions/FuncSum.java b/src/main/java/org/apache/xpath/functions/FuncSum.java
index 55e84600b..242f21f54 100644
--- a/src/main/java/org/apache/xpath/functions/FuncSum.java
+++ b/src/main/java/org/apache/xpath/functions/FuncSum.java
@@ -33,6 +33,13 @@ import org.apache.xpath.objects.XObject;
 public class FuncSum extends FunctionOneArg
 {
     static final long serialVersionUID = -2719049259574677519L;
+    
+    /**
+     * Class constructor.
+     */
+    public FuncSum() {
+  	   m_defined_arity = new Short[] { 1, 2 };  
+    }
 
   /**
    * Execute the function.  The function must return
diff --git a/src/main/java/org/apache/xpath/functions/FuncSystemProperty.java b/src/main/java/org/apache/xpath/functions/FuncSystemProperty.java
index c7fcdfefb..2140ad63f 100644
--- a/src/main/java/org/apache/xpath/functions/FuncSystemProperty.java
+++ b/src/main/java/org/apache/xpath/functions/FuncSystemProperty.java
@@ -36,6 +36,14 @@ import org.apache.xpath.res.XPATHErrorResources;
 public class FuncSystemProperty extends FunctionOneArg
 {
     static final long serialVersionUID = 3694874980992204867L;
+    
+    /**
+     * Class constructor.
+     */
+    public FuncSystemProperty() {
+  	   m_defined_arity = new Short[] { 1 };  
+    }
+    
   /**
    * The path/filename of the property file: XSLTInfo.properties
    * Maintenance note: see also
diff --git a/src/main/java/org/apache/xpath/functions/FuncTail.java b/src/main/java/org/apache/xpath/functions/FuncTail.java
index a6f74d364..2557029b3 100644
--- a/src/main/java/org/apache/xpath/functions/FuncTail.java
+++ b/src/main/java/org/apache/xpath/functions/FuncTail.java
@@ -16,14 +16,13 @@
  */
 package org.apache.xpath.functions;
 
+import org.apache.xml.dtm.DTM;
 import org.apache.xml.dtm.DTMCursorIterator;
 import org.apache.xpath.XPathContext;
 import org.apache.xpath.objects.ResultSequence;
 import org.apache.xpath.objects.XMLNodeCursorImpl;
 import org.apache.xpath.objects.XObject;
 
-import com.sun.org.apache.xml.internal.dtm.DTM;
-
 /**
  * Implementation of the tail() function.
  * 
@@ -34,6 +33,13 @@ import com.sun.org.apache.xml.internal.dtm.DTM;
 public class FuncTail extends FunctionOneArg {
 
     private static final long serialVersionUID = -7505231181568257145L;
+    
+    /**
+     * Class constructor.
+     */
+    public FuncTail() {
+  	   m_defined_arity = new Short[] { 1 };  
+    }
 
     /**
      * Execute the function. The function must return a valid object.
diff --git a/src/main/java/org/apache/xpath/functions/FuncTransform.java b/src/main/java/org/apache/xpath/functions/FuncTransform.java
index 0ba53a61b..f10aab45b 100644
--- a/src/main/java/org/apache/xpath/functions/FuncTransform.java
+++ b/src/main/java/org/apache/xpath/functions/FuncTransform.java
@@ -96,6 +96,12 @@ public class FuncTransform extends FunctionDef1Arg
     
     public static final String OUTPUT = "output";
     
+    /**
+     * Class constructor.
+     */
+    public FuncTransform() {
+ 	   m_defined_arity = new Short[] { 1 };
+    }
 
 	/**
 	 * Execute the function. The function must return a valid object.
diff --git a/src/main/java/org/apache/xpath/functions/FuncTrue.java b/src/main/java/org/apache/xpath/functions/FuncTrue.java
index 6d108a69d..17ce4872c 100644
--- a/src/main/java/org/apache/xpath/functions/FuncTrue.java
+++ b/src/main/java/org/apache/xpath/functions/FuncTrue.java
@@ -31,6 +31,13 @@ import org.apache.xpath.objects.XObject;
 public class FuncTrue extends Function
 {
     static final long serialVersionUID = 5663314547346339447L;
+    
+    /**
+	 * Class constructor;
+	 */
+	public FuncTrue() {
+	   m_defined_arity = new Short[] { 0 };
+	}
 
   /**
    * Execute the function.  The function must return
diff --git a/src/main/java/org/apache/xpath/functions/FuncUnordered.java b/src/main/java/org/apache/xpath/functions/FuncUnordered.java
index e235cc2d1..0e440b098 100644
--- a/src/main/java/org/apache/xpath/functions/FuncUnordered.java
+++ b/src/main/java/org/apache/xpath/functions/FuncUnordered.java
@@ -36,6 +36,13 @@ import org.apache.xpath.objects.XObject;
 public class FuncUnordered extends FunctionOneArg {
 
     private static final long serialVersionUID = 4192924071383539197L;
+    
+    /**
+     * Class constructor.
+     */
+    public FuncUnordered() {
+  	   m_defined_arity = new Short[] { 1 };  
+    }
 
     /**
      * Execute the function. The function must return a valid object.
diff --git a/src/main/java/org/apache/xpath/functions/FuncUnparsedEntityURI.java b/src/main/java/org/apache/xpath/functions/FuncUnparsedEntityURI.java
index 9e6fd581e..7f75666c6 100644
--- a/src/main/java/org/apache/xpath/functions/FuncUnparsedEntityURI.java
+++ b/src/main/java/org/apache/xpath/functions/FuncUnparsedEntityURI.java
@@ -31,6 +31,13 @@ import org.apache.xpath.objects.XString;
 public class FuncUnparsedEntityURI extends FunctionOneArg
 {
     static final long serialVersionUID = 845309759097448178L;
+    
+    /**
+     * Class constructor.
+     */
+    public FuncUnparsedEntityURI() {
+  	   m_defined_arity = new Short[] { 1, 2 };  
+    }
 
   /**
    * Execute the function.  The function must return
diff --git a/src/main/java/org/apache/xpath/functions/FuncUnparsedText.java b/src/main/java/org/apache/xpath/functions/FuncUnparsedText.java
index e97919944..eabfade54 100644
--- a/src/main/java/org/apache/xpath/functions/FuncUnparsedText.java
+++ b/src/main/java/org/apache/xpath/functions/FuncUnparsedText.java
@@ -43,6 +43,13 @@ import org.apache.xpath.res.XPATHErrorResources;
 public class FuncUnparsedText extends Function2Args {
   
   private static final long serialVersionUID = 1760543978696171233L;
+  
+  /**
+   * Class constructor.
+   */
+  public FuncUnparsedText() {
+	  m_defined_arity = new Short[] { 1, 2 };  
+  }
 
   /**
    * Execute the function. The function must return a valid object.
diff --git a/src/main/java/org/apache/xpath/functions/FuncUnparsedTextLines.java b/src/main/java/org/apache/xpath/functions/FuncUnparsedTextLines.java
index 67d38fca5..2742c2558 100644
--- a/src/main/java/org/apache/xpath/functions/FuncUnparsedTextLines.java
+++ b/src/main/java/org/apache/xpath/functions/FuncUnparsedTextLines.java
@@ -34,6 +34,13 @@ import org.apache.xpath.objects.XString;
 public class FuncUnparsedTextLines extends FuncUnparsedText {
 
 	private static final long serialVersionUID = 2726874035370568232L;
+	
+	/**
+	 * Class constructor.
+	 */
+	public FuncUnparsedTextLines() {
+		m_defined_arity = new Short[] { 1, 2 };  
+	}
 
 	/**
 	 * Execute the function. The function must return a valid object.
diff --git a/src/main/java/org/apache/xpath/functions/XSL3FunctionService.java b/src/main/java/org/apache/xpath/functions/XSL3FunctionService.java
index 3267dec79..0053013cf 100644
--- a/src/main/java/org/apache/xpath/functions/XSL3FunctionService.java
+++ b/src/main/java/org/apache/xpath/functions/XSL3FunctionService.java
@@ -886,6 +886,145 @@ public class XSL3FunctionService {
         return result;
     }
     
+    /**
+     * Method definition to check whether the supplied string value
+     * is an XML Schema built-in atomic type name.
+     * 
+     * @param xsTypeNameStr				  The supplied string value
+     * @return							  Boolean value true or false
+     */
+    public boolean isXmlSchemaBuiltInAtomicTypeName(String xsTypeNameStr) {
+       
+       boolean result = false;
+       
+       switch (xsTypeNameStr) {
+          case Keywords.XS_STRING :
+        	  result = true;        	  
+        	  break;
+          case Keywords.XS_NORMALIZED_STRING :
+        	  result = true;        	  
+        	  break;
+          case Keywords.XS_TOKEN :
+        	  result = true;
+        	  break;
+          case Keywords.XS_DECIMAL :
+        	  result = true;
+        	  break;
+          case Keywords.XS_FLOAT :
+        	  result = true;
+        	  break;
+          case Keywords.XS_DOUBLE :
+        	  result = true;
+        	  break;
+          case Keywords.XS_INTEGER :
+        	  result = true;
+        	  break;
+          case Keywords.XS_NON_POSITIVE_INTEGER :
+        	  result = true;
+        	  break;
+          case Keywords.XS_NEGATIVE_INTEGER :
+        	  result = true;
+        	  break;
+          case Keywords.XS_NON_NEGATIVE_INTEGER :
+        	  result = true;
+        	  break;
+          case Keywords.XS_POSITIVE_INTEGER :
+        	  result = true;
+        	  break;
+          case Keywords.XS_LONG :
+        	  result = true;
+        	  break;
+          case Keywords.XS_INT :
+        	  result = true;
+        	  break;
+          case Keywords.XS_SHORT :
+        	  result = true;
+        	  break;
+          case Keywords.XS_BYTE :
+        	  result = true;
+        	  break;
+          case Keywords.XS_UNSIGNED_LONG :
+        	  result = true;
+        	  break;
+          case Keywords.XS_UNSIGNED_INT :
+        	  result = true;
+        	  break;
+          case Keywords.XS_UNSIGNED_SHORT :
+        	  result = true;
+        	  break;
+          case Keywords.XS_UNSIGNED_BYTE :
+        	  result = true;
+        	  break;
+          case Keywords.XS_DATE :
+        	  result = true;
+        	  break;
+          case Keywords.XS_DATETIME :
+        	  result = true;
+        	  break;
+          case Keywords.XS_DURATION :
+        	  result = true;
+        	  break;
+          case Keywords.XS_YEAR_MONTH_DURATION :
+        	  result = true;
+        	  break;
+          case Keywords.XS_DAY_TIME_DURATION :
+        	  result = true;
+        	  break;
+          case Keywords.XS_TIME :
+        	  result = true;
+        	  break;
+          case Keywords.XS_GYEAR_MONTH :
+        	  result = true;
+        	  break;
+          case Keywords.XS_GYEAR :
+        	  result = true;
+        	  break;
+          case Keywords.XS_GMONTH_DAY :
+        	  result = true;
+        	  break;
+          case Keywords.XS_GDAY :
+        	  result = true;
+        	  break;
+          case Keywords.XS_GMONTH :
+        	  result = true;
+        	  break;
+          case Keywords.XS_ANY_URI :
+        	  result = true;
+        	  break;   	  
+          case Keywords.XS_QNAME :
+        	  result = true;
+        	  break;
+          case Keywords.XS_BASE64BINARY :
+        	  result = true;
+        	  break;
+          case Keywords.XS_HEXBINARY :
+        	  result = true;
+        	  break;
+          case Keywords.XS_LANGUAGE :
+        	  result = true;
+        	  break;
+          case Keywords.XS_NAME :
+        	  result = true;
+        	  break;
+          case Keywords.XS_NCNAME :
+        	  result = true;
+        	  break;
+          case Keywords.XS_NMTOKEN :
+        	  result = true;
+        	  break;
+          case Keywords.XS_ID :
+        	  result = true;
+        	  break;
+          case Keywords.XS_IDREF :
+        	  result = true;
+        	  break;
+          default:
+        	  // no op
+       }
+       
+       return result;
+    }
+    
     /**
      * Evaluate the XPath built-in constructor function call.
      */
diff --git a/src/main/java/org/apache/xpath/functions/array/FuncArrayAppend.java b/src/main/java/org/apache/xpath/functions/array/FuncArrayAppend.java
index 4a570f834..4860cfb54 100644
--- a/src/main/java/org/apache/xpath/functions/array/FuncArrayAppend.java
+++ b/src/main/java/org/apache/xpath/functions/array/FuncArrayAppend.java
@@ -35,6 +35,13 @@ import org.apache.xpath.operations.Variable;
 public class FuncArrayAppend extends Function2Args {
 	
 	private static final long serialVersionUID = -4710039738232164809L;
+	
+	/**
+	 * Class constructor.
+	 */
+	public FuncArrayAppend() {
+		m_defined_arity = new Short[] { 2 };
+	}
 
 	public XObject execute(XPathContext xctxt) throws javax.xml.transform.TransformerException {
 	    XObject result = null;
diff --git a/src/main/java/org/apache/xpath/functions/array/FuncArrayFilter.java b/src/main/java/org/apache/xpath/functions/array/FuncArrayFilter.java
index 4c842258d..e5dca2613 100644
--- a/src/main/java/org/apache/xpath/functions/array/FuncArrayFilter.java
+++ b/src/main/java/org/apache/xpath/functions/array/FuncArrayFilter.java
@@ -54,6 +54,13 @@ public class FuncArrayFilter extends Function2Args {
    
    private static final long serialVersionUID = -7341393974878279742L;
    
+   /**
+	* Class constructor.
+	*/
+   public FuncArrayFilter() {
+	  m_defined_arity = new Short[] { 2 };
+   }
+   
    /**
     * This class field is used during, XPath.fixupVariables(..) action 
     * as performed within object of this class.  
diff --git a/src/main/java/org/apache/xpath/functions/array/FuncArrayFlatten.java b/src/main/java/org/apache/xpath/functions/array/FuncArrayFlatten.java
index ac1711b19..71cacec5c 100644
--- a/src/main/java/org/apache/xpath/functions/array/FuncArrayFlatten.java
+++ b/src/main/java/org/apache/xpath/functions/array/FuncArrayFlatten.java
@@ -36,6 +36,13 @@ import org.apache.xpath.operations.Variable;
 public class FuncArrayFlatten extends FunctionOneArg {
 
 	private static final long serialVersionUID = -2684722783678792071L;
+	
+	/**
+	 * Class constructor.
+	 */
+	public FuncArrayFlatten() {
+		m_defined_arity = new Short[] { 1 };
+	}
 
 	public XObject execute(XPathContext xctxt) throws javax.xml.transform.TransformerException
 	{
diff --git a/src/main/java/org/apache/xpath/functions/array/FuncArrayFoldLeft.java b/src/main/java/org/apache/xpath/functions/array/FuncArrayFoldLeft.java
index 7cbfd82d8..6396daee4 100644
--- a/src/main/java/org/apache/xpath/functions/array/FuncArrayFoldLeft.java
+++ b/src/main/java/org/apache/xpath/functions/array/FuncArrayFoldLeft.java
@@ -46,6 +46,13 @@ import org.apache.xpath.operations.Variable;
 public class FuncArrayFoldLeft extends Function3Args {
     
 	private static final long serialVersionUID = 6784981690288113546L;
+	
+	/**
+	 * Class constructor.
+	 */
+	public FuncArrayFoldLeft() {
+		m_defined_arity = new Short[] { 3 };
+	}
 
 	public XObject execute(XPathContext xctxt) throws javax.xml.transform.TransformerException
     {
diff --git a/src/main/java/org/apache/xpath/functions/array/FuncArrayFoldRight.java b/src/main/java/org/apache/xpath/functions/array/FuncArrayFoldRight.java
index cba422d59..55936cec7 100644
--- a/src/main/java/org/apache/xpath/functions/array/FuncArrayFoldRight.java
+++ b/src/main/java/org/apache/xpath/functions/array/FuncArrayFoldRight.java
@@ -45,6 +45,13 @@ import org.apache.xpath.operations.Variable;
 public class FuncArrayFoldRight extends Function3Args {
 
 	private static final long serialVersionUID = 2535975872380722894L;
+	
+	/**
+	 * Class constructor.
+	 */
+	public FuncArrayFoldRight() {
+		m_defined_arity = new Short[] { 3 };
+	}
 
 	public XObject execute(XPathContext xctxt) throws javax.xml.transform.TransformerException
     {
diff --git a/src/main/java/org/apache/xpath/functions/array/FuncArrayForEach.java b/src/main/java/org/apache/xpath/functions/array/FuncArrayForEach.java
index aef5f1a7d..3adc01c94 100644
--- a/src/main/java/org/apache/xpath/functions/array/FuncArrayForEach.java
+++ b/src/main/java/org/apache/xpath/functions/array/FuncArrayForEach.java
@@ -53,6 +53,13 @@ public class FuncArrayForEach extends Function2Args {
 
    private static final long serialVersionUID = 2912594883291006421L;
    
+   /**
+    * Class constructor.
+    */
+   public FuncArrayForEach() {
+	   m_defined_arity = new Short[] { 2 };
+   }
+   
    /**
     * This class field is used during, XPath.fixupVariables(..) action 
     * as performed within object of this class.  
diff --git a/src/main/java/org/apache/xpath/functions/array/FuncArrayForEachPair.java b/src/main/java/org/apache/xpath/functions/array/FuncArrayForEachPair.java
index feee68b72..9f0bc06f6 100644
--- a/src/main/java/org/apache/xpath/functions/array/FuncArrayForEachPair.java
+++ b/src/main/java/org/apache/xpath/functions/array/FuncArrayForEachPair.java
@@ -45,6 +45,13 @@ import org.apache.xpath.operations.Variable;
 public class FuncArrayForEachPair extends Function3Args {
 
 	private static final long serialVersionUID = -8011606044596320698L;
+	
+	/**
+	 * Class constructor.
+	 */
+	public FuncArrayForEachPair() {
+		m_defined_arity = new Short[] { 3 };
+	}
 
 	public XObject execute(XPathContext xctxt) throws javax.xml.transform.TransformerException
     {
diff --git a/src/main/java/org/apache/xpath/functions/array/FuncArrayGet.java b/src/main/java/org/apache/xpath/functions/array/FuncArrayGet.java
index 8e1205c38..9ad37e996 100644
--- a/src/main/java/org/apache/xpath/functions/array/FuncArrayGet.java
+++ b/src/main/java/org/apache/xpath/functions/array/FuncArrayGet.java
@@ -45,6 +45,13 @@ import xml.xpath31.processor.types.XSNumericType;
 public class FuncArrayGet extends Function2Args {
 	
 	private static final long serialVersionUID = 9085303963460501516L;
+	
+	/**
+	 * Class constructor.
+	 */
+	public FuncArrayGet() {
+		m_defined_arity = new Short[] { 2 };
+	}
 
 	public XObject execute(XPathContext xctxt) throws javax.xml.transform.TransformerException {
 		
diff --git a/src/main/java/org/apache/xpath/functions/array/FuncArrayHead.java b/src/main/java/org/apache/xpath/functions/array/FuncArrayHead.java
index 9b61005b4..33134edf6 100644
--- a/src/main/java/org/apache/xpath/functions/array/FuncArrayHead.java
+++ b/src/main/java/org/apache/xpath/functions/array/FuncArrayHead.java
@@ -35,6 +35,13 @@ import org.apache.xpath.operations.Variable;
 public class FuncArrayHead extends FunctionOneArg {
 	
 	private static final long serialVersionUID = -3207085299844796544L;
+	
+	/**
+	 * Class constructor.
+	 */
+	public FuncArrayHead() {
+		m_defined_arity = new Short[] { 1 };
+	}
 
 	public XObject execute(XPathContext xctxt) throws javax.xml.transform.TransformerException
 	{
diff --git a/src/main/java/org/apache/xpath/functions/array/FuncArrayInsertBefore.java b/src/main/java/org/apache/xpath/functions/array/FuncArrayInsertBefore.java
index f734a0fdd..706c3b65e 100644
--- a/src/main/java/org/apache/xpath/functions/array/FuncArrayInsertBefore.java
+++ b/src/main/java/org/apache/xpath/functions/array/FuncArrayInsertBefore.java
@@ -42,6 +42,13 @@ import xml.xpath31.processor.types.XSNumericType;
 public class FuncArrayInsertBefore extends Function3Args {
 
 	private static final long serialVersionUID = -6993811075719408978L;
+	
+	/**
+	 * Class constructor.
+	 */
+	public FuncArrayInsertBefore() {
+		m_defined_arity = new Short[] { 3 };
+	}
 
 	public XObject execute(XPathContext xctxt) throws javax.xml.transform.TransformerException
 	{
diff --git a/src/main/java/org/apache/xpath/functions/array/FuncArrayJoin.java b/src/main/java/org/apache/xpath/functions/array/FuncArrayJoin.java
index a0949f977..47deb1bfc 100644
--- a/src/main/java/org/apache/xpath/functions/array/FuncArrayJoin.java
+++ b/src/main/java/org/apache/xpath/functions/array/FuncArrayJoin.java
@@ -39,6 +39,13 @@ import org.apache.xpath.operations.Variable;
 public class FuncArrayJoin extends FunctionOneArg {
 
 	private static final long serialVersionUID = -6855946670900692995L;
+	
+	/**
+	 * Class constructor.
+	 */
+	public FuncArrayJoin() {
+		m_defined_arity = new Short[] { 1 };
+	}
 
 	public XObject execute(XPathContext xctxt) throws javax.xml.transform.TransformerException
 	{
diff --git a/src/main/java/org/apache/xpath/functions/array/FuncArrayPut.java b/src/main/java/org/apache/xpath/functions/array/FuncArrayPut.java
index 57b9fb370..6a99c5d32 100644
--- a/src/main/java/org/apache/xpath/functions/array/FuncArrayPut.java
+++ b/src/main/java/org/apache/xpath/functions/array/FuncArrayPut.java
@@ -41,6 +41,13 @@ import xml.xpath31.processor.types.XSNumericType;
 public class FuncArrayPut extends Function3Args {
 
 	private static final long serialVersionUID = -3699572884716214890L;
+	
+	/**
+	 * Class constructor.
+	 */
+	public FuncArrayPut() {
+		m_defined_arity = new Short[] { 3 };
+	}
 
 	public XObject execute(XPathContext xctxt) throws javax.xml.transform.TransformerException
 	{
diff --git a/src/main/java/org/apache/xpath/functions/array/FuncArrayRemove.java b/src/main/java/org/apache/xpath/functions/array/FuncArrayRemove.java
index 4f61f4af0..58bd464b2 100644
--- a/src/main/java/org/apache/xpath/functions/array/FuncArrayRemove.java
+++ b/src/main/java/org/apache/xpath/functions/array/FuncArrayRemove.java
@@ -40,6 +40,13 @@ import xml.xpath31.processor.types.XSNumericType;
 public class FuncArrayRemove extends Function2Args {
 
 	private static final long serialVersionUID = 7890619596202668602L;
+	
+	/**
+	 * Class constructor.
+	 */
+	public FuncArrayRemove() {
+		m_defined_arity = new Short[] { 2 };
+	}
 
 	public XObject execute(XPathContext xctxt) throws javax.xml.transform.TransformerException {
 		
diff --git a/src/main/java/org/apache/xpath/functions/array/FuncArrayReverse.java b/src/main/java/org/apache/xpath/functions/array/FuncArrayReverse.java
index 8ca6e9471..043ebad79 100644
--- a/src/main/java/org/apache/xpath/functions/array/FuncArrayReverse.java
+++ b/src/main/java/org/apache/xpath/functions/array/FuncArrayReverse.java
@@ -38,6 +38,13 @@ import org.apache.xpath.operations.Variable;
 public class FuncArrayReverse extends FunctionOneArg {
 
 	private static final long serialVersionUID = 8786348949335466009L;
+	
+	/**
+	 * Class constructor.
+	 */
+	public FuncArrayReverse() {
+		m_defined_arity = new Short[] { 1 };
+	}
 
 	public XObject execute(XPathContext xctxt) throws javax.xml.transform.TransformerException
 	{
diff --git a/src/main/java/org/apache/xpath/functions/array/FuncArraySize.java b/src/main/java/org/apache/xpath/functions/array/FuncArraySize.java
index 307857a96..b41169cef 100644
--- a/src/main/java/org/apache/xpath/functions/array/FuncArraySize.java
+++ b/src/main/java/org/apache/xpath/functions/array/FuncArraySize.java
@@ -40,6 +40,13 @@ public class FuncArraySize extends FunctionOneArg {
 
 	private static final long serialVersionUID = 5600653040311629451L;
 	
+	/**
+	 * Class constructor.
+	 */
+	public FuncArraySize() {
+		m_defined_arity = new Short[] { 1 };
+	}
+	
 	public XObject execute(XPathContext xctxt) throws javax.xml.transform.TransformerException
 	{
 	    XObject result = null;
diff --git a/src/main/java/org/apache/xpath/functions/array/FuncArraySort.java b/src/main/java/org/apache/xpath/functions/array/FuncArraySort.java
index 9fb13243d..ee6c69b40 100644
--- a/src/main/java/org/apache/xpath/functions/array/FuncArraySort.java
+++ b/src/main/java/org/apache/xpath/functions/array/FuncArraySort.java
@@ -55,6 +55,13 @@ public class FuncArraySort extends FunctionMultiArgs
     
 	private static final long serialVersionUID = 4848739188248412283L;
 	
+	/**
+	 * Class constructor.
+	 */
+	public FuncArraySort() {
+		m_defined_arity = new Short[] { 1, 2, 3 };
+	}
+	
 	/**
      * The number of arguments passed to the array:sort function 
      * call.
diff --git a/src/main/java/org/apache/xpath/functions/array/FuncArrayTail.java b/src/main/java/org/apache/xpath/functions/array/FuncArrayTail.java
index 57c74e5e3..d0edde422 100644
--- a/src/main/java/org/apache/xpath/functions/array/FuncArrayTail.java
+++ b/src/main/java/org/apache/xpath/functions/array/FuncArrayTail.java
@@ -37,6 +37,13 @@ import org.apache.xpath.operations.Variable;
 public class FuncArrayTail extends FunctionOneArg {
 	
 	private static final long serialVersionUID = 5783190267382201534L;
+	
+	/**
+	 * Class constructor.
+	 */
+	public FuncArrayTail() {
+		m_defined_arity = new Short[] { 1 };
+	}
 
 	public XObject execute(XPathContext xctxt) throws javax.xml.transform.TransformerException
 	{
diff --git a/src/main/java/org/apache/xpath/functions/array/FuncSubarray.java b/src/main/java/org/apache/xpath/functions/array/FuncSubarray.java
index bd9c73543..2470dadec 100644
--- a/src/main/java/org/apache/xpath/functions/array/FuncSubarray.java
+++ b/src/main/java/org/apache/xpath/functions/array/FuncSubarray.java
@@ -39,6 +39,13 @@ import xml.xpath31.processor.types.XSNumericType;
 public class FuncSubarray extends FunctionMultiArgs {
 
 	private static final long serialVersionUID = 8678849210209571670L;
+	
+	/**
+	 * Class constructor.
+	 */
+	public FuncSubarray() {
+		m_defined_arity = new Short[] { 2, 3 };
+	}
 
 	public XObject execute(XPathContext xctxt) throws javax.xml.transform.TransformerException {
 	    
diff --git a/src/main/java/org/apache/xpath/functions/datetime/FuncDateTime.java b/src/main/java/org/apache/xpath/functions/datetime/FuncDateTime.java
index 5ad85c469..a39d3b2cf 100644
--- a/src/main/java/org/apache/xpath/functions/datetime/FuncDateTime.java
+++ b/src/main/java/org/apache/xpath/functions/datetime/FuncDateTime.java
@@ -42,6 +42,13 @@ public class FuncDateTime extends Function2Args
 {
 
   private static final long serialVersionUID = 4597387349539359750L;
+  
+  /**
+   * Class constructor.
+   */
+  public FuncDateTime() {
+  	 m_defined_arity = new Short[] { 2 };	
+  }
 
   /**
    * Execute the function. The function must return
diff --git a/src/main/java/org/apache/xpath/functions/datetime/FuncDayFromDate.java b/src/main/java/org/apache/xpath/functions/datetime/FuncDayFromDate.java
index e81db01e3..810dab1fa 100644
--- a/src/main/java/org/apache/xpath/functions/datetime/FuncDayFromDate.java
+++ b/src/main/java/org/apache/xpath/functions/datetime/FuncDayFromDate.java
@@ -38,6 +38,13 @@ public class FuncDayFromDate extends FunctionOneArg
 {
 
   private static final long serialVersionUID = 8805032226367863328L;
+  
+  /**
+   * Class constructor.
+   */
+  public FuncDayFromDate() {
+  	 m_defined_arity = new Short[] { 1 };	
+  }
 
   /**
    * Execute the function. The function must return
diff --git a/src/main/java/org/apache/xpath/functions/datetime/FuncDayFromDateTime.java b/src/main/java/org/apache/xpath/functions/datetime/FuncDayFromDateTime.java
index 1221f6dfa..aaed965bb 100644
--- a/src/main/java/org/apache/xpath/functions/datetime/FuncDayFromDateTime.java
+++ b/src/main/java/org/apache/xpath/functions/datetime/FuncDayFromDateTime.java
@@ -37,7 +37,14 @@ import xml.xpath31.processor.types.XSInteger;
 public class FuncDayFromDateTime extends FunctionOneArg
 {
 
-	private static final long serialVersionUID = -442601948858028023L;
+   private static final long serialVersionUID = -442601948858028023L;
+   
+   /**
+    * Class constructor.
+    */
+   public FuncDayFromDateTime() {
+   	  m_defined_arity = new Short[] { 1 };	
+   }
 
    /**
    * Execute the function. The function must return
diff --git a/src/main/java/org/apache/xpath/functions/datetime/FuncHoursFromDateTime.java b/src/main/java/org/apache/xpath/functions/datetime/FuncHoursFromDateTime.java
index bb774ddc6..ce4514a86 100644
--- a/src/main/java/org/apache/xpath/functions/datetime/FuncHoursFromDateTime.java
+++ b/src/main/java/org/apache/xpath/functions/datetime/FuncHoursFromDateTime.java
@@ -38,6 +38,13 @@ public class FuncHoursFromDateTime extends FunctionOneArg
 {
 
   private static final long serialVersionUID = 4064554523944439456L;
+  
+  /**
+   * Class constructor.
+   */
+  public FuncHoursFromDateTime() {
+  	 m_defined_arity = new Short[] { 1 };	
+  }
 
   /**
    * Execute the function. The function must return
diff --git a/src/main/java/org/apache/xpath/functions/datetime/FuncHoursFromTime.java b/src/main/java/org/apache/xpath/functions/datetime/FuncHoursFromTime.java
index 13c8a2004..3cf8ebbbf 100644
--- a/src/main/java/org/apache/xpath/functions/datetime/FuncHoursFromTime.java
+++ b/src/main/java/org/apache/xpath/functions/datetime/FuncHoursFromTime.java
@@ -37,6 +37,13 @@ import xml.xpath31.processor.types.XSTime;
 public class FuncHoursFromTime extends FunctionOneArg
 {
    private static final long serialVersionUID = -935961991537736333L;
+   
+   /**
+    * Class constructor.
+    */
+   public FuncHoursFromTime() {
+   	  m_defined_arity = new Short[] { 1 };	
+   }
 
    /**
    * Execute the function. The function must return
diff --git a/src/main/java/org/apache/xpath/functions/datetime/FuncMinutesFromDateTime.java b/src/main/java/org/apache/xpath/functions/datetime/FuncMinutesFromDateTime.java
index 3625a42e6..feb9424e7 100644
--- a/src/main/java/org/apache/xpath/functions/datetime/FuncMinutesFromDateTime.java
+++ b/src/main/java/org/apache/xpath/functions/datetime/FuncMinutesFromDateTime.java
@@ -38,6 +38,13 @@ public class FuncMinutesFromDateTime extends FunctionOneArg
 {
 
   private static final long serialVersionUID = -1124900727770516453L;
+  
+  /**
+   * Class constructor.
+   */
+  public FuncMinutesFromDateTime() {
+  	 m_defined_arity = new Short[] { 1 };	
+  }
 
   /**
    * Execute the function. The function must return
diff --git a/src/main/java/org/apache/xpath/functions/datetime/FuncMinutesFromTime.java b/src/main/java/org/apache/xpath/functions/datetime/FuncMinutesFromTime.java
index e7d83d686..d7dd874b8 100644
--- a/src/main/java/org/apache/xpath/functions/datetime/FuncMinutesFromTime.java
+++ b/src/main/java/org/apache/xpath/functions/datetime/FuncMinutesFromTime.java
@@ -38,6 +38,13 @@ public class FuncMinutesFromTime extends FunctionOneArg
 {
 
   private static final long serialVersionUID = -5464517533030928416L;
+  
+  /**
+   * Class constructor.
+   */
+  public FuncMinutesFromTime() {
+  	 m_defined_arity = new Short[] { 1 };	
+  }
 
   /**
    * Execute the function. The function must return
diff --git a/src/main/java/org/apache/xpath/functions/datetime/FuncMonthFromDate.java b/src/main/java/org/apache/xpath/functions/datetime/FuncMonthFromDate.java
index 88ed8991d..063bfc512 100644
--- a/src/main/java/org/apache/xpath/functions/datetime/FuncMonthFromDate.java
+++ b/src/main/java/org/apache/xpath/functions/datetime/FuncMonthFromDate.java
@@ -38,6 +38,13 @@ public class FuncMonthFromDate extends FunctionOneArg
 {
 
    private static final long serialVersionUID = 2861349852450997092L;
+   
+   /**
+    * Class constructor.
+    */
+   public FuncMonthFromDate() {
+   	  m_defined_arity = new Short[] { 1 };	
+   }
 
    /**
    * Execute the function. The function must return
diff --git a/src/main/java/org/apache/xpath/functions/datetime/FuncMonthFromDateTime.java b/src/main/java/org/apache/xpath/functions/datetime/FuncMonthFromDateTime.java
index 55d00c201..6f875cc24 100644
--- a/src/main/java/org/apache/xpath/functions/datetime/FuncMonthFromDateTime.java
+++ b/src/main/java/org/apache/xpath/functions/datetime/FuncMonthFromDateTime.java
@@ -38,6 +38,13 @@ public class FuncMonthFromDateTime extends FunctionOneArg
 {
 
   private static final long serialVersionUID = 8318631526916045541L;
+  
+  /**
+   * Class constructor.
+   */
+  public FuncMonthFromDateTime() {
+  	 m_defined_arity = new Short[] { 1 };	
+  }
 
   /**
    * Execute the function. The function must return
diff --git a/src/main/java/org/apache/xpath/functions/datetime/FuncSecondsFromDateTime.java b/src/main/java/org/apache/xpath/functions/datetime/FuncSecondsFromDateTime.java
index 0cbb6417d..862ae32fd 100644
--- a/src/main/java/org/apache/xpath/functions/datetime/FuncSecondsFromDateTime.java
+++ b/src/main/java/org/apache/xpath/functions/datetime/FuncSecondsFromDateTime.java
@@ -38,6 +38,13 @@ public class FuncSecondsFromDateTime extends FunctionOneArg
 {
 
   private static final long serialVersionUID = -4967761326818696933L;
+  
+  /**
+   * Class constructor.
+   */
+  public FuncSecondsFromDateTime() {
+  	 m_defined_arity = new Short[] { 1 };	
+  }
 
   /**
    * Execute the function. The function must return
diff --git a/src/main/java/org/apache/xpath/functions/datetime/FuncSecondsFromTime.java b/src/main/java/org/apache/xpath/functions/datetime/FuncSecondsFromTime.java
index 4fc5d654c..fcd234993 100644
--- a/src/main/java/org/apache/xpath/functions/datetime/FuncSecondsFromTime.java
+++ b/src/main/java/org/apache/xpath/functions/datetime/FuncSecondsFromTime.java
@@ -37,6 +37,13 @@ import xml.xpath31.processor.types.XSTime;
 public class FuncSecondsFromTime extends FunctionOneArg
 {
   private static final long serialVersionUID = -5441092496752221630L;
+  
+  /**
+   * Class constructor.
+   */
+  public FuncSecondsFromTime() {
+  	 m_defined_arity = new Short[] { 1 };	
+  }
 
   /**
    * Execute the function. The function must return
diff --git a/src/main/java/org/apache/xpath/functions/datetime/FuncTimezoneFromDate.java b/src/main/java/org/apache/xpath/functions/datetime/FuncTimezoneFromDate.java
index 6af5589ca..94a5d15a1 100644
--- a/src/main/java/org/apache/xpath/functions/datetime/FuncTimezoneFromDate.java
+++ b/src/main/java/org/apache/xpath/functions/datetime/FuncTimezoneFromDate.java
@@ -38,6 +38,13 @@ public class FuncTimezoneFromDate extends FunctionOneArg
 {
 
   private static final long serialVersionUID = 9099356275948507441L;
+  
+  /**
+   * Class constructor.
+   */
+  public FuncTimezoneFromDate() {
+  	 m_defined_arity = new Short[] { 1 };	
+  }
 
   /**
    * Execute the function. The function must return
diff --git a/src/main/java/org/apache/xpath/functions/datetime/FuncTimezoneFromDateTime.java b/src/main/java/org/apache/xpath/functions/datetime/FuncTimezoneFromDateTime.java
index f65c31a5c..7b078ac9f 100644
--- a/src/main/java/org/apache/xpath/functions/datetime/FuncTimezoneFromDateTime.java
+++ b/src/main/java/org/apache/xpath/functions/datetime/FuncTimezoneFromDateTime.java
@@ -38,6 +38,13 @@ public class FuncTimezoneFromDateTime extends FunctionOneArg
 {
 
    private static final long serialVersionUID = 8271138934784319361L;
+   
+   /**
+    * Class constructor.
+    */
+   public FuncTimezoneFromDateTime() {
+   	  m_defined_arity = new Short[] { 1 };	
+   }
 
   /**
    * Execute the function. The function must return
diff --git a/src/main/java/org/apache/xpath/functions/datetime/FuncTimezoneFromTime.java b/src/main/java/org/apache/xpath/functions/datetime/FuncTimezoneFromTime.java
index 6e70c1271..b88adb034 100644
--- a/src/main/java/org/apache/xpath/functions/datetime/FuncTimezoneFromTime.java
+++ b/src/main/java/org/apache/xpath/functions/datetime/FuncTimezoneFromTime.java
@@ -39,6 +39,13 @@ public class FuncTimezoneFromTime extends FunctionOneArg
 {
 
   private static final long serialVersionUID = -3647176281412841183L;
+  
+  /**
+   * Class constructor.
+   */
+  public FuncTimezoneFromTime() {
+  	 m_defined_arity = new Short[] { 1 };	
+  }
 
   /**
    * Execute the function. The function must return
diff --git a/src/main/java/org/apache/xpath/functions/datetime/FuncYearFromDate.java b/src/main/java/org/apache/xpath/functions/datetime/FuncYearFromDate.java
index 16b8a0075..fec92e4bd 100644
--- a/src/main/java/org/apache/xpath/functions/datetime/FuncYearFromDate.java
+++ b/src/main/java/org/apache/xpath/functions/datetime/FuncYearFromDate.java
@@ -38,6 +38,13 @@ public class FuncYearFromDate extends FunctionOneArg
 {
 
    private static final long serialVersionUID = -2445864502968307459L;
+   
+   /**
+    * Class constructor.
+    */
+   public FuncYearFromDate() {
+   	  m_defined_arity = new Short[] { 1 };	
+   }
 
    /**
    * Execute the function. The function must return
diff --git a/src/main/java/org/apache/xpath/functions/datetime/FuncYearFromDateTime.java b/src/main/java/org/apache/xpath/functions/datetime/FuncYearFromDateTime.java
index 4b403ac20..2062cdedf 100644
--- a/src/main/java/org/apache/xpath/functions/datetime/FuncYearFromDateTime.java
+++ b/src/main/java/org/apache/xpath/functions/datetime/FuncYearFromDateTime.java
@@ -38,6 +38,13 @@ public class FuncYearFromDateTime extends FunctionOneArg
 {
 
    private static final long serialVersionUID = -8668351850166809529L;
+   
+   /**
+    * Class constructor.
+    */
+   public FuncYearFromDateTime() {
+   	  m_defined_arity = new Short[] { 1 };	
+   }
 
   /**
    * Execute the function. The function must return
diff --git a/src/main/java/org/apache/xpath/functions/duration/FuncDaysFromDuration.java b/src/main/java/org/apache/xpath/functions/duration/FuncDaysFromDuration.java
index 11bcb46ec..d5fdb29ad 100644
--- a/src/main/java/org/apache/xpath/functions/duration/FuncDaysFromDuration.java
+++ b/src/main/java/org/apache/xpath/functions/duration/FuncDaysFromDuration.java
@@ -40,6 +40,13 @@ import xml.xpath31.processor.types.XSInteger;
 public class FuncDaysFromDuration extends FunctionOneArg {
 
     private static final long serialVersionUID = -8471054241151786884L;
+    
+    /**
+     * Class constructor.
+     */
+    public FuncDaysFromDuration() {
+    	m_defined_arity = new Short[] { 1 };	
+    }
 
     public XObject execute(XPathContext xctxt) throws javax.xml.transform.TransformerException
     {
diff --git a/src/main/java/org/apache/xpath/functions/duration/FuncHoursFromDuration.java b/src/main/java/org/apache/xpath/functions/duration/FuncHoursFromDuration.java
index 52d5523ab..d6e15a19e 100644
--- a/src/main/java/org/apache/xpath/functions/duration/FuncHoursFromDuration.java
+++ b/src/main/java/org/apache/xpath/functions/duration/FuncHoursFromDuration.java
@@ -40,6 +40,13 @@ import xml.xpath31.processor.types.XSInteger;
 public class FuncHoursFromDuration extends FunctionOneArg {
 
     private static final long serialVersionUID = -7046073260941724285L;
+    
+    /**
+     * Class constructor.
+     */
+    public FuncHoursFromDuration() {
+    	m_defined_arity = new Short[] { 1 };	
+    }
 
     public XObject execute(XPathContext xctxt) throws javax.xml.transform.TransformerException
     {
diff --git a/src/main/java/org/apache/xpath/functions/duration/FuncMinutesFromDuration.java b/src/main/java/org/apache/xpath/functions/duration/FuncMinutesFromDuration.java
index 1f0b21e75..093044f00 100644
--- a/src/main/java/org/apache/xpath/functions/duration/FuncMinutesFromDuration.java
+++ b/src/main/java/org/apache/xpath/functions/duration/FuncMinutesFromDuration.java
@@ -40,6 +40,13 @@ import xml.xpath31.processor.types.XSInteger;
 public class FuncMinutesFromDuration extends FunctionOneArg {
 
     private static final long serialVersionUID = -1670079254820160771L;
+    
+    /**
+     * Class constructor.
+     */
+    public FuncMinutesFromDuration() {
+    	m_defined_arity = new Short[] { 1 };	
+    }
 
     public XObject execute(XPathContext xctxt) throws javax.xml.transform.TransformerException
     {
diff --git a/src/main/java/org/apache/xpath/functions/duration/FuncMonthsFromDuration.java b/src/main/java/org/apache/xpath/functions/duration/FuncMonthsFromDuration.java
index 806d72a36..c9d2e1bec 100644
--- a/src/main/java/org/apache/xpath/functions/duration/FuncMonthsFromDuration.java
+++ b/src/main/java/org/apache/xpath/functions/duration/FuncMonthsFromDuration.java
@@ -40,6 +40,13 @@ import xml.xpath31.processor.types.XSInteger;
 public class FuncMonthsFromDuration extends FunctionOneArg {
 
     private static final long serialVersionUID = -2529130205133544977L;
+    
+    /**
+     * Class constructor.
+     */
+    public FuncMonthsFromDuration() {
+    	m_defined_arity = new Short[] { 1 };	
+    }
 
     public XObject execute(XPathContext xctxt) throws javax.xml.transform.TransformerException
     {
diff --git a/src/main/java/org/apache/xpath/functions/duration/FuncSecondsFromDuration.java b/src/main/java/org/apache/xpath/functions/duration/FuncSecondsFromDuration.java
index 3c7e90657..9c4dea2e3 100644
--- a/src/main/java/org/apache/xpath/functions/duration/FuncSecondsFromDuration.java
+++ b/src/main/java/org/apache/xpath/functions/duration/FuncSecondsFromDuration.java
@@ -40,6 +40,13 @@ import xml.xpath31.processor.types.XSDuration;
 public class FuncSecondsFromDuration extends FunctionOneArg {
 
     private static final long serialVersionUID = -5785715296430278331L;
+    
+    /**
+     * Class constructor.
+     */
+    public FuncSecondsFromDuration() {
+    	m_defined_arity = new Short[] { 1 };	
+    }
 
     public XObject execute(XPathContext xctxt) throws javax.xml.transform.TransformerException
     {
diff --git a/src/main/java/org/apache/xpath/functions/duration/FuncYearsFromDuration.java b/src/main/java/org/apache/xpath/functions/duration/FuncYearsFromDuration.java
index e71f8c309..8e1d6b81b 100644
--- a/src/main/java/org/apache/xpath/functions/duration/FuncYearsFromDuration.java
+++ b/src/main/java/org/apache/xpath/functions/duration/FuncYearsFromDuration.java
@@ -40,6 +40,13 @@ import xml.xpath31.processor.types.XSInteger;
 public class FuncYearsFromDuration extends FunctionOneArg {
 
     private static final long serialVersionUID = -5098972397509827951L;
+    
+    /**
+     * Class constructor.
+     */
+    public FuncYearsFromDuration() {
+    	m_defined_arity = new Short[] { 1 };	
+    }
 
     public XObject execute(XPathContext xctxt) throws javax.xml.transform.TransformerException
     {
diff --git a/src/main/java/org/apache/xpath/functions/hof/FuncApply.java b/src/main/java/org/apache/xpath/functions/hof/FuncApply.java
index 9087d6e12..a6eb2922b 100644
--- a/src/main/java/org/apache/xpath/functions/hof/FuncApply.java
+++ b/src/main/java/org/apache/xpath/functions/hof/FuncApply.java
@@ -61,6 +61,13 @@ import org.apache.xpath.res.XPATHErrorResources;
 public class FuncApply extends Function2Args {
 
    private static final long serialVersionUID = 1073550747347273561L;
+   
+   /**
+    * Class constructor.
+    */
+   public FuncApply() {
+	   m_defined_arity = new Short[] { 2 };
+   }
 
    /**
     * Evaluate the function call.
diff --git a/src/main/java/org/apache/xpath/functions/hof/FuncFilter.java b/src/main/java/org/apache/xpath/functions/hof/FuncFilter.java
index 45b961e04..e682219cf 100644
--- a/src/main/java/org/apache/xpath/functions/hof/FuncFilter.java
+++ b/src/main/java/org/apache/xpath/functions/hof/FuncFilter.java
@@ -63,6 +63,13 @@ public class FuncFilter extends Function2Args {
 
    private static final long serialVersionUID = 2912594883291006421L;
    
+   /**
+    * Class constructor.
+    */
+   public FuncFilter() {
+	   m_defined_arity = new Short[] { 2 };
+   }
+   
    /**
     * This class field is used during, XPath.fixupVariables(..) action 
     * as performed within object of this class.  
diff --git a/src/main/java/org/apache/xpath/functions/hof/FuncFoldLeft.java b/src/main/java/org/apache/xpath/functions/hof/FuncFoldLeft.java
index e20080b88..81445cfc5 100644
--- a/src/main/java/org/apache/xpath/functions/hof/FuncFoldLeft.java
+++ b/src/main/java/org/apache/xpath/functions/hof/FuncFoldLeft.java
@@ -50,6 +50,13 @@ import org.apache.xpath.patterns.NodeTest;
 public class FuncFoldLeft extends XPathHigherOrderBuiltinFunction {
     
     private static final long serialVersionUID = -3772850377799360556L;
+    
+    /**
+     * Class constructor.
+     */
+    public FuncFoldLeft() {
+ 	   m_defined_arity = new Short[] { 3 };
+    }
 
     /**
      * Evaluate the function call.
diff --git a/src/main/java/org/apache/xpath/functions/hof/FuncFoldRight.java b/src/main/java/org/apache/xpath/functions/hof/FuncFoldRight.java
index 23e3b85bb..d85e13ada 100644
--- a/src/main/java/org/apache/xpath/functions/hof/FuncFoldRight.java
+++ b/src/main/java/org/apache/xpath/functions/hof/FuncFoldRight.java
@@ -50,6 +50,13 @@ import org.apache.xpath.patterns.NodeTest;
 public class FuncFoldRight extends XPathHigherOrderBuiltinFunction {
     
     private static final long serialVersionUID = 4675724832355053777L;
+    
+    /**
+     * Class constructor.
+     */
+    public FuncFoldRight() {
+ 	   m_defined_arity = new Short[] { 3 };
+    }
 
     /**
      * Evaluate the function call.
diff --git a/src/main/java/org/apache/xpath/functions/hof/FuncForEach.java b/src/main/java/org/apache/xpath/functions/hof/FuncForEach.java
index 7261e5f52..872da0366 100644
--- a/src/main/java/org/apache/xpath/functions/hof/FuncForEach.java
+++ b/src/main/java/org/apache/xpath/functions/hof/FuncForEach.java
@@ -59,6 +59,13 @@ public class FuncForEach extends Function2Args {
 
    private static final long serialVersionUID = 2912594883291006421L;
    
+   /**
+    * Class constructor.
+    */
+   public FuncForEach() {
+	   m_defined_arity = new Short[] { 2 };
+   }
+   
    /**
     * This class field is used during, XPath.fixupVariables(..) action 
     * as performed within object of this class.  
diff --git a/src/main/java/org/apache/xpath/functions/hof/FuncForEachPair.java b/src/main/java/org/apache/xpath/functions/hof/FuncForEachPair.java
index 117096043..8d07a29c3 100644
--- a/src/main/java/org/apache/xpath/functions/hof/FuncForEachPair.java
+++ b/src/main/java/org/apache/xpath/functions/hof/FuncForEachPair.java
@@ -53,6 +53,13 @@ import org.apache.xpath.patterns.NodeTest;
 public class FuncForEachPair extends XPathHigherOrderBuiltinFunction {
 
     private static final long serialVersionUID = 5864311267789581972L;
+    
+    /**
+     * Class constructor.
+     */
+    public FuncForEachPair() {
+ 	   m_defined_arity = new Short[] { 3 };
+    }
 
     /**
      * Evaluation of the function call. The function must return a valid object.
diff --git a/src/main/java/org/apache/xpath/functions/hof/FuncSort.java b/src/main/java/org/apache/xpath/functions/hof/FuncSort.java
index 86e0a1b4c..1c1623ba4 100644
--- a/src/main/java/org/apache/xpath/functions/hof/FuncSort.java
+++ b/src/main/java/org/apache/xpath/functions/hof/FuncSort.java
@@ -62,6 +62,13 @@ public class FuncSort extends FunctionMultiArgs
 
     private static final long serialVersionUID = -7037457505611880167L;
     
+    /**
+     * Class constructor.
+     */
+    public FuncSort() {
+ 	   m_defined_arity = new Short[] { 1, 2, 3 };
+    }
+    
     /**
      * The number of arguments passed to the fn:sort function 
      * call.
diff --git a/src/main/java/org/apache/xpath/functions/json/FuncJsonDoc.java b/src/main/java/org/apache/xpath/functions/json/FuncJsonDoc.java
index 6cb26fef4..84291cb8d 100644
--- a/src/main/java/org/apache/xpath/functions/json/FuncJsonDoc.java
+++ b/src/main/java/org/apache/xpath/functions/json/FuncJsonDoc.java
@@ -69,6 +69,8 @@ public class FuncJsonDoc extends JsonFunction {
     public FuncJsonDoc() {
        OPTIONS_SUPPORTED_LIST.add(XSLJsonConstants.LIBERAL);
        OPTIONS_SUPPORTED_LIST.add(XSLJsonConstants.DUPLICATES);
+       
+       m_defined_arity = new Short[] { 1, 2 };
     }
     
     /**
diff --git a/src/main/java/org/apache/xpath/functions/json/FuncJsonToXml.java b/src/main/java/org/apache/xpath/functions/json/FuncJsonToXml.java
index b6c172a8a..c59bf6661 100644
--- a/src/main/java/org/apache/xpath/functions/json/FuncJsonToXml.java
+++ b/src/main/java/org/apache/xpath/functions/json/FuncJsonToXml.java
@@ -80,6 +80,8 @@ public class FuncJsonToXml extends FunctionMultiArgs
     public FuncJsonToXml() {
        OPTIONS_SUPPORTED_LIST.add(XSLJsonConstants.LIBERAL);
        OPTIONS_SUPPORTED_LIST.add(XSLJsonConstants.DUPLICATES);
+       
+       m_defined_arity = new Short[] { 1, 2 };
     }
 
     /**
diff --git a/src/main/java/org/apache/xpath/functions/json/FuncParseJson.java b/src/main/java/org/apache/xpath/functions/json/FuncParseJson.java
index 1ba6def2d..495d09d59 100644
--- a/src/main/java/org/apache/xpath/functions/json/FuncParseJson.java
+++ b/src/main/java/org/apache/xpath/functions/json/FuncParseJson.java
@@ -64,6 +64,8 @@ public class FuncParseJson extends JsonFunction {
     public FuncParseJson() {
        OPTIONS_SUPPORTED_LIST.add(XSLJsonConstants.LIBERAL);
        OPTIONS_SUPPORTED_LIST.add(XSLJsonConstants.DUPLICATES);
+       
+       m_defined_arity = new Short[] { 1, 2 };
     }
     
     /**
diff --git a/src/main/java/org/apache/xpath/functions/json/FuncXmlToJson.java b/src/main/java/org/apache/xpath/functions/json/FuncXmlToJson.java
index cf912cfc6..ccb0c4816 100644
--- a/src/main/java/org/apache/xpath/functions/json/FuncXmlToJson.java
+++ b/src/main/java/org/apache/xpath/functions/json/FuncXmlToJson.java
@@ -73,6 +73,13 @@ public class FuncXmlToJson extends FunctionMultiArgs
 	private static final long serialVersionUID = -7072675375842927045L;
 	
 	private static final int CHAR_BUFF_SIZE = 512;   // char buffer size in bytes
+	
+	/**
+     * Class constructor.
+     */
+    public FuncXmlToJson() {       
+       m_defined_arity = new Short[] { 1, 2 };
+    }
 
 	/**
      * Implementation of the function. The function must return a valid object.
diff --git a/src/main/java/org/apache/xpath/functions/json/JsonFunction.java b/src/main/java/org/apache/xpath/functions/json/JsonFunction.java
index 30de5800f..3fbda7bad 100644
--- a/src/main/java/org/apache/xpath/functions/json/JsonFunction.java
+++ b/src/main/java/org/apache/xpath/functions/json/JsonFunction.java
@@ -33,8 +33,8 @@ import xml.xpath31.processor.types.XSDouble;
 import xml.xpath31.processor.types.XSString;
 
 /**
- * A class providing common methods and code, that're used
- * by XPath 3.1 implementation for functions fn:parse-json 
+ * A class providing common methods and code, that are used
+ * by Xalan-J's implementation of XPath 3.1 functions fn:parse-json 
  * and fn:json-doc.
  * 
  * @author Mukul Gandhi <mu...@apache.org>
diff --git a/src/main/java/org/apache/xpath/functions/map/FuncMapContains.java b/src/main/java/org/apache/xpath/functions/map/FuncMapContains.java
index 713129b35..1869d86e7 100644
--- a/src/main/java/org/apache/xpath/functions/map/FuncMapContains.java
+++ b/src/main/java/org/apache/xpath/functions/map/FuncMapContains.java
@@ -39,6 +39,13 @@ import xml.xpath31.processor.types.XSString;
 public class FuncMapContains extends Function2Args {
 
 	private static final long serialVersionUID = -749857579667076961L;
+	
+	/**
+	 * Class constructor.
+	 */
+	public FuncMapContains() {
+		m_defined_arity = new Short[] { 2 };	
+	}
 
 	public XObject execute(XPathContext xctxt) throws javax.xml.transform.TransformerException
 	{
diff --git a/src/main/java/org/apache/xpath/functions/map/FuncMapEntry.java b/src/main/java/org/apache/xpath/functions/map/FuncMapEntry.java
index e02dd545d..978f6d322 100644
--- a/src/main/java/org/apache/xpath/functions/map/FuncMapEntry.java
+++ b/src/main/java/org/apache/xpath/functions/map/FuncMapEntry.java
@@ -36,6 +36,13 @@ import xml.xpath31.processor.types.XSString;
 public class FuncMapEntry extends Function2Args {
 
 	private static final long serialVersionUID = -1419049097023024612L;
+	
+	/**
+	 * Class constructor.
+	 */
+	public FuncMapEntry() {
+		m_defined_arity = new Short[] { 2 };	
+	}
 
 	public XObject execute(XPathContext xctxt) throws javax.xml.transform.TransformerException
 	{
diff --git a/src/main/java/org/apache/xpath/functions/map/FuncMapFind.java b/src/main/java/org/apache/xpath/functions/map/FuncMapFind.java
index 96bef6cae..e5a431c70 100644
--- a/src/main/java/org/apache/xpath/functions/map/FuncMapFind.java
+++ b/src/main/java/org/apache/xpath/functions/map/FuncMapFind.java
@@ -43,6 +43,13 @@ import xml.xpath31.processor.types.XSAnyAtomicType;
 public class FuncMapFind extends Function2Args {
 
 	private static final long serialVersionUID = -7140205339584548625L;
+	
+	/**
+	 * Class constructor.
+	 */
+	public FuncMapFind() {
+		m_defined_arity = new Short[] { 2 };	
+	}
 
 	public XObject execute(XPathContext xctxt) throws javax.xml.transform.TransformerException
 	{
diff --git a/src/main/java/org/apache/xpath/functions/map/FuncMapForEach.java b/src/main/java/org/apache/xpath/functions/map/FuncMapForEach.java
index 7cfaa1c85..b689d614a 100644
--- a/src/main/java/org/apache/xpath/functions/map/FuncMapForEach.java
+++ b/src/main/java/org/apache/xpath/functions/map/FuncMapForEach.java
@@ -53,6 +53,13 @@ public class FuncMapForEach extends Function2Args {
 
 	private static final long serialVersionUID = 4474670594915534994L;
 	
+	/**
+	 * Class constructor.
+	 */
+	public FuncMapForEach() {
+		m_defined_arity = new Short[] { 2 };	
+	}
+	
 	/**
 	 * This class field is used during, XPath.fixupVariables(..) action 
 	 * as performed within object of this class.  
diff --git a/src/main/java/org/apache/xpath/functions/map/FuncMapGet.java b/src/main/java/org/apache/xpath/functions/map/FuncMapGet.java
index 83dbc7cfe..55f756ea0 100644
--- a/src/main/java/org/apache/xpath/functions/map/FuncMapGet.java
+++ b/src/main/java/org/apache/xpath/functions/map/FuncMapGet.java
@@ -41,6 +41,13 @@ import xml.xpath31.processor.types.XSString;
 public class FuncMapGet extends Function2Args {
 
 	private static final long serialVersionUID = -749857579667076961L;
+	
+	/**
+	 * Class constructor.
+	 */
+	public FuncMapGet() {
+		m_defined_arity = new Short[] { 2 };	
+	}
 
 	public XObject execute(XPathContext xctxt) throws javax.xml.transform.TransformerException {
 		
diff --git a/src/main/java/org/apache/xpath/functions/map/FuncMapKeys.java b/src/main/java/org/apache/xpath/functions/map/FuncMapKeys.java
index fe5eb1a8b..792374eb3 100644
--- a/src/main/java/org/apache/xpath/functions/map/FuncMapKeys.java
+++ b/src/main/java/org/apache/xpath/functions/map/FuncMapKeys.java
@@ -38,6 +38,13 @@ import org.apache.xpath.operations.Variable;
 public class FuncMapKeys extends FunctionOneArg {
 	
 	private static final long serialVersionUID = -7109316358636297324L;
+	
+	/**
+	 * Class constructor.
+	 */
+	public FuncMapKeys() {
+		m_defined_arity = new Short[] { 1 };	
+	}
 
 	public XObject execute(XPathContext xctxt) throws javax.xml.transform.TransformerException
 	{
diff --git a/src/main/java/org/apache/xpath/functions/map/FuncMapMerge.java b/src/main/java/org/apache/xpath/functions/map/FuncMapMerge.java
index d15d6d961..2db2330ef 100644
--- a/src/main/java/org/apache/xpath/functions/map/FuncMapMerge.java
+++ b/src/main/java/org/apache/xpath/functions/map/FuncMapMerge.java
@@ -61,6 +61,13 @@ public class FuncMapMerge extends FunctionMultiArgs {
 	
 	private static final String[] OPTIONS_ARR = new String[] { OPTION_REJECT, OPTION_USE_FIRST, OPTION_USE_LAST, 
 			                                                   OPTION_USE_ANY, OPTION_COMBINE };
+	
+	/**
+	 * Class constructor.
+	 */
+	public FuncMapMerge() {
+		m_defined_arity = new Short[] { 1, 2 };	
+	}
 
 	public XObject execute(XPathContext xctxt) throws javax.xml.transform.TransformerException
 	{
diff --git a/src/main/java/org/apache/xpath/functions/map/FuncMapPut.java b/src/main/java/org/apache/xpath/functions/map/FuncMapPut.java
index 583cb79bc..b1f0c5fe1 100644
--- a/src/main/java/org/apache/xpath/functions/map/FuncMapPut.java
+++ b/src/main/java/org/apache/xpath/functions/map/FuncMapPut.java
@@ -35,6 +35,13 @@ import org.apache.xpath.operations.Variable;
 public class FuncMapPut extends Function3Args {
 
 	private static final long serialVersionUID = -749857579667076961L;
+	
+	/**
+	 * Class constructor.
+	 */
+	public FuncMapPut() {
+		m_defined_arity = new Short[] { 3 };	
+	}
 
 	public XObject execute(XPathContext xctxt) throws javax.xml.transform.TransformerException
 	{
diff --git a/src/main/java/org/apache/xpath/functions/map/FuncMapRemove.java b/src/main/java/org/apache/xpath/functions/map/FuncMapRemove.java
index 4a5571cb0..b48fb8e95 100644
--- a/src/main/java/org/apache/xpath/functions/map/FuncMapRemove.java
+++ b/src/main/java/org/apache/xpath/functions/map/FuncMapRemove.java
@@ -43,6 +43,13 @@ import org.apache.xpath.operations.Variable;
 public class FuncMapRemove extends Function2Args {
 
 	private static final long serialVersionUID = 85207005600072930L;
+	
+	/**
+	 * Class constructor.
+	 */
+	public FuncMapRemove() {
+		m_defined_arity = new Short[] { 2 };	
+	}
 
 	public XObject execute(XPathContext xctxt) throws javax.xml.transform.TransformerException {
 		
diff --git a/src/main/java/org/apache/xpath/functions/map/FuncMapSize.java b/src/main/java/org/apache/xpath/functions/map/FuncMapSize.java
index 64e40a01a..759a8fc3b 100644
--- a/src/main/java/org/apache/xpath/functions/map/FuncMapSize.java
+++ b/src/main/java/org/apache/xpath/functions/map/FuncMapSize.java
@@ -37,6 +37,13 @@ public class FuncMapSize extends FunctionOneArg {
 
 	private static final long serialVersionUID = 5600653040311629451L;
 	
+	/**
+	 * Class constructor.
+	 */
+	public FuncMapSize() {
+		m_defined_arity = new Short[] { 1 };	
+	}
+	
 	public XObject execute(XPathContext xctxt) throws javax.xml.transform.TransformerException
 	{
 	    XObject result = null;
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 6d587b063..da53df98e 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-06-27T17:17:11Z" fail="53" name="as" pass="51" skipped="4" statusUnknown="1" totalRun="109">
+<?xml version="1.0" encoding="UTF-8"?><testrun dateTime="2025-06-28T10:52:11Z" fail="53" name="as" pass="51" skipped="4" statusUnknown="1" totalRun="109">
    <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 11418e4f9..c18a88111 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-06-27T17:17:13Z" fail="14" name="avt" pass="21" skipped="0" statusUnknown="0" totalRun="35">
+<?xml version="1.0" encoding="UTF-8"?><testrun dateTime="2025-06-28T10:52:13Z" fail="14" name="avt" pass="21" skipped="0" statusUnknown="0" totalRun="35">
    <testResult status="pass" testName="avt-0101"/>
    <testResult status="fail" testName="avt-0201"/>
    <testResult status="pass" testName="avt-0202"/>
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 8bd6d9387..1364b04c7 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-06-27T17:17:13Z" fail="65" name="match" pass="59" skipped="8" statusUnknown="5" totalRun="137">
+<?xml version="1.0" encoding="UTF-8"?><testrun dateTime="2025-06-28T10:52:13Z" fail="65" name="match" pass="59" skipped="8" statusUnknown="5" totalRun="137">
    <testResult status="pass" testName="match-001"/>
    <testResult status="pass" testName="match-002"/>
    <testResult status="pass" testName="match-003"/>
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 97a389328..35b4858ec 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-06-27T17:17:14Z" fail="7" name="select" pass="16" skipped="0" statusUnknown="2" totalRun="25">
+<?xml version="1.0" encoding="UTF-8"?><testrun dateTime="2025-06-28T10:52:14Z" fail="7" name="select" pass="16" skipped="0" statusUnknown="2" totalRun="25">
    <testResult status="pass" testName="select-0101"/>
    <testResult status="pass" testName="select-0102"/>
    <testResult status="fail" testName="select-0201"/>
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 3162e2b59..e8b8b8acd 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-06-27T17:17:24Z" fail="7" name="attribute-set" pass="41" skipped="1" statusUnknown="1" totalRun="50">
+<?xml version="1.0" encoding="UTF-8"?><testrun dateTime="2025-06-28T10:52:26Z" fail="7" name="attribute-set" pass="41" skipped="1" statusUnknown="1" totalRun="50">
    <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 b724aff11..5c078bc6c 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-27T17:17:24Z" fail="12" name="character-map" pass="15" skipped="0" statusUnknown="2" totalRun="29">
+<?xml version="1.0" encoding="UTF-8"?><testrun dateTime="2025-06-28T10:52:26Z" 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 cb250ca98..6710867b2 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-27T17:17:24Z" fail="38" name="function" pass="23" skipped="4" statusUnknown="5" totalRun="70">
+<?xml version="1.0" encoding="UTF-8"?><testrun dateTime="2025-06-28T10:52:25Z" fail="38" name="function" pass="23" 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/decl/_variable-test-set_result.xml b/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/decl/_variable-test-set_result.xml
index 8645abc4e..c2c2d835b 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-06-27T17:17:10Z" fail="3" name="variable" pass="16" skipped="0" statusUnknown="1" totalRun="20">
+<?xml version="1.0" encoding="UTF-8"?><testrun dateTime="2025-06-28T10:52:09Z" fail="3" name="variable" pass="16" skipped="0" statusUnknown="1" totalRun="20">
    <testResult status="pass" testName="variable-0101"/>
    <testResult status="pass" testName="variable-0102"/>
    <testResult status="pass" testName="variable-0103"/>
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 85c4ed9b7..002f97f23 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-27T17:17:24Z" fail="28" name="axes" pass="173" skipped="0" statusUnknown="0" totalRun="201">
+<?xml version="1.0" encoding="UTF-8"?><testrun dateTime="2025-06-28T10:52:26Z" fail="28" name="axes" pass="173" 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 3177f246b..98ba0ba04 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-06-27T17:17:25Z" fail="5" name="castable" pass="4" skipped="0" statusUnknown="0" totalRun="9">
+<?xml version="1.0" encoding="UTF-8"?><testrun dateTime="2025-06-28T10:52:27Z" 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"/>
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 d3ccad13d..3e5425de5 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-27T17:17:25Z" fail="0" name="expression" pass="9" skipped="0" statusUnknown="1" totalRun="10">
+<?xml version="1.0" encoding="UTF-8"?><testrun dateTime="2025-06-28T10:52:27Z" 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 62f139e73..f47796465 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-27T17:17:26Z" fail="2" name="for" pass="1" skipped="0" statusUnknown="1" totalRun="4">
+<?xml version="1.0" encoding="UTF-8"?><testrun dateTime="2025-06-28T10:52:27Z" 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 1576957cc..d8016a49b 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-27T17:17:29Z" 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-28T10:52:31Z" 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 b36a19818..0914aae7b 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-27T17:17:28Z" fail="39" name="math" pass="108" skipped="0" statusUnknown="1" totalRun="148">
+<?xml version="1.0" encoding="UTF-8"?><testrun dateTime="2025-06-28T10:52:30Z" 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 d319b75e8..d2521fdb8 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-27T17:17:29Z" fail="36" name="nodetest" pass="2" skipped="0" statusUnknown="0" totalRun="38">
+<?xml version="1.0" encoding="UTF-8"?><testrun dateTime="2025-06-28T10:52:31Z" 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 1c5b4a66f..dd67fe606 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-27T17:17:29Z" fail="3" name="path" pass="7" skipped="0" statusUnknown="0" totalRun="10">
+<?xml version="1.0" encoding="UTF-8"?><testrun dateTime="2025-06-28T10:52:31Z" 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 d086317f4..d37f7c341 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-27T17:17:30Z" fail="7" name="predicate" pass="50" skipped="0" statusUnknown="0" totalRun="57">
+<?xml version="1.0" encoding="UTF-8"?><testrun dateTime="2025-06-28T10:52:32Z" 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 049117b1e..37b22cf9f 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-27T17:20:03Z" fail="0" name="deep-equal" pass="2" skipped="0" statusUnknown="0" totalRun="2">
+<?xml version="1.0" encoding="UTF-8"?><testrun dateTime="2025-06-28T10:54:54Z" 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 4aca45ed5..86c553d05 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-06-27T17:20:05Z" fail="33" name="format-number" pass="37" skipped="4" statusUnknown="0" totalRun="74">
+<?xml version="1.0" encoding="UTF-8"?><testrun dateTime="2025-06-28T10:54:55Z" fail="33" name="format-number" pass="37" skipped="4" statusUnknown="0" totalRun="74">
    <testResult status="fail" testName="format-number-001"/>
    <testResult status="fail" testName="format-number-002"/>
    <testResult status="fail" testName="format-number-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 2d6f02529..2a13c9647 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-27T17:20:04Z" fail="3" name="key" pass="21" skipped="0" statusUnknown="1" totalRun="25">
+<?xml version="1.0" encoding="UTF-8"?><testrun dateTime="2025-06-28T10:54:55Z" fail="3" name="key" pass="21" skipped="0" statusUnknown="1" totalRun="25">
    <testResult status="pass" testName="key-001"/>
    <testResult status="fail" testName="key-002"/>
    <testResult status="pass" testName="key-003"/>
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 141bbaa90..e20c7647f 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-27T17:20:03Z" fail="11" name="position" pass="126" skipped="0" statusUnknown="1" totalRun="138">
+<?xml version="1.0" encoding="UTF-8"?><testrun dateTime="2025-06-28T10:54:54Z" fail="11" name="position" pass="126" skipped="0" statusUnknown="1" totalRun="138">
    <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 469374b44..08a9c5dcd 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-27T17:20:04Z" fail="4" name="root" pass="6" skipped="0" statusUnknown="0" totalRun="10">
+<?xml version="1.0" encoding="UTF-8"?><testrun dateTime="2025-06-28T10:54:55Z" 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 ee012c7c7..6181602f9 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-27T17:20:04Z" fail="17" name="analyze-string" pass="36" skipped="5" statusUnknown="0" totalRun="58">
+<?xml version="1.0" encoding="UTF-8"?><testrun dateTime="2025-06-28T10:54:54Z" 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 c0f8bfdb7..b9a9365ca 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-27T17:17:14Z" fail="29" name="apply-templates" pass="19" skipped="2" statusUnknown="0" totalRun="50">
+<?xml version="1.0" encoding="UTF-8"?><testrun dateTime="2025-06-28T10:52:14Z" fail="29" name="apply-templates" pass="19" 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 1a372441a..8bf9f5039 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-27T17:17:16Z" fail="21" name="attribute" pass="8" skipped="0" statusUnknown="1" totalRun="30">
+<?xml version="1.0" encoding="UTF-8"?><testrun dateTime="2025-06-28T10:52:17Z" fail="21" name="attribute" pass="8" skipped="0" statusUnknown="1" totalRun="30">
    <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 f7f1630a2..373c1e42d 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-27T17:17:16Z" fail="14" name="call-template" pass="27" skipped="1" statusUnknown="0" totalRun="42">
+<?xml version="1.0" encoding="UTF-8"?><testrun dateTime="2025-06-28T10:52:17Z" fail="14" name="call-template" pass="27" skipped="1" statusUnknown="0" totalRun="42">
    <testResult status="fail" testName="call-template-0001">
       <outResult>&lt;?xml version="1.0" encoding="UTF-8"?&gt;&lt;out/&gt;</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 9f8a8d87b..f0ece473b 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-27T17:17:16Z" fail="6" name="choose" pass="17" skipped="0" statusUnknown="1" totalRun="24">
+<?xml version="1.0" encoding="UTF-8"?><testrun dateTime="2025-06-28T10:52:17Z" 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 45cbcac2e..2dd403b60 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-27T17:17:18Z" fail="43" name="copy" pass="16" skipped="0" statusUnknown="1" totalRun="60">
+<?xml version="1.0" encoding="UTF-8"?><testrun dateTime="2025-06-28T10:52:20Z" 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 42242271e..afb75b834 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-27T17:17:23Z" fail="18" name="element" pass="11" skipped="0" statusUnknown="0" totalRun="29">
+<?xml version="1.0" encoding="UTF-8"?><testrun dateTime="2025-06-28T10:52:25Z" fail="18" name="element" pass="11" skipped="0" statusUnknown="0" totalRun="29">
    <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 cb27fa2df..cbbe45d6e 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-27T17:17:14Z" fail="27" name="for-each-group" pass="46" skipped="4" statusUnknown="1" totalRun="78">
+<?xml version="1.0" encoding="UTF-8"?><testrun dateTime="2025-06-28T10:52:15Z" fail="27" name="for-each-group" pass="46" 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 9e972cf54..3c50e9416 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-27T17:17:20Z" fail="32" name="iterate" pass="11" skipped="0" statusUnknown="1" totalRun="44">
+<?xml version="1.0" encoding="UTF-8"?><testrun dateTime="2025-06-28T10:52:22Z" 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 df5bfa713..afc74334a 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-27T17:17:20Z" fail="19" name="sequence" pass="7" skipped="0" statusUnknown="1" totalRun="27">
+<?xml version="1.0" encoding="UTF-8"?><testrun dateTime="2025-06-28T10:52:22Z" 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 5464502a8..8269d6d05 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-27T17:17:23Z" fail="44" name="sort" pass="35" skipped="0" statusUnknown="1" totalRun="80">
+<?xml version="1.0" encoding="UTF-8"?><testrun dateTime="2025-06-28T10:52:25Z" 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 447473515..355193af8 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-27T17:17:15Z" fail="26" name="try" pass="11" skipped="5" statusUnknown="0" totalRun="42">
+<?xml version="1.0" encoding="UTF-8"?><testrun dateTime="2025-06-28T10:52:16Z" 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/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 c6cb178cf..9fadbaee8 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,9 +1,9 @@
-<?xml version="1.0" encoding="UTF-8"?><testrun dateTime="2025-06-27T17:20:05Z" fail="13" name="xsl-document" pass="12" skipped="0" statusUnknown="0" totalRun="25">
+<?xml version="1.0" encoding="UTF-8"?><testrun dateTime="2025-06-28T10:54:55Z" fail="13" name="xsl-document" pass="12" skipped="0" statusUnknown="0" totalRun="25">
    <testResult status="pass" testName="xsl-document-0101"/>
    <testResult status="fail" testName="xsl-document-0102">
       <outResult>
          <errTrace>ERROR! Unknown op code: 0</errTrace>
-         <errTrace>java.lang.ArrayIndexOutOfBoundsException: -1</errTrace>
+         <errTrace>java.lang.ArrayIndexOutOfBoundsException</errTrace>
       </outResult>
    </testResult>
    <testResult status="pass" testName="xsl-document-0103"/>
@@ -17,7 +17,7 @@
    <testResult status="fail" testName="xsl-document-0301">
       <outResult>
          <errTrace>ERROR! Unknown op code: 0</errTrace>
-         <errTrace>java.lang.ArrayIndexOutOfBoundsException: -1</errTrace>
+         <errTrace>java.lang.ArrayIndexOutOfBoundsException</errTrace>
       </outResult>
    </testResult>
    <testResult status="pass" testName="xsl-document-0302"/>
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 fe4d65701..b771eb486 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-06-27T17:20:05Z" fail="12" name="regex" pass="33" skipped="0" statusUnknown="0" totalRun="45">
+<?xml version="1.0" encoding="UTF-8"?><testrun dateTime="2025-06-28T10:54:55Z" fail="12" name="regex" pass="33" skipped="0" statusUnknown="0" totalRun="45">
    <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 a02fb3b49..43e8350ff 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-27T17:17:30Z" fail="24" name="boolean" pass="88" skipped="0" statusUnknown="0" totalRun="112">
+<?xml version="1.0" encoding="UTF-8"?><testrun dateTime="2025-06-28T10:52:32Z" fail="24" name="boolean" pass="88" 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/_date-test-set_result.xml b/src/test/java/org/apache/xalan/tests/w3c/xslt3/result/type/_date-test-set_result.xml
index fe9b8efcd..1fb8795ee 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-06-27T17:17:31Z" fail="47" name="date" pass="37" skipped="0" statusUnknown="1" totalRun="85">
+<?xml version="1.0" encoding="UTF-8"?><testrun dateTime="2025-06-28T10:52:33Z" fail="47" name="date" pass="37" skipped="0" statusUnknown="1" totalRun="85">
    <testResult status="pass" testName="date-001"/>
    <testResult status="pass" testName="date-002"/>
    <testResult status="pass" testName="date-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 6e7092efd..9254b6e9d 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-27T17:17:31Z" fail="17" name="node" pass="15" skipped="0" statusUnknown="0" totalRun="32">
+<?xml version="1.0" encoding="UTF-8"?><testrun dateTime="2025-06-28T10:52:32Z" 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 200964431..8eb1a4248 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-27T17:17:31Z" fail="8" name="string" pass="128" skipped="0" statusUnknown="0" totalRun="136">
+<?xml version="1.0" encoding="UTF-8"?><testrun dateTime="2025-06-28T10:52:32Z" 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 9e0eaf8c5..a4ec5aab8 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,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<testResult dateTime="2025-06-27T17:20:23Z" desc="W3C XSLT 3.0 test suite results" fail="793" pass="1363" skipped="38" success="62.97%" totalRun="2225" xslt_processor="Xalan-J XSLT 3.0 development code">
+<testResult dateTime="2025-06-28T10:55:06Z" desc="W3C XSLT 3.0 test suite results" fail="793" pass="1363" skipped="38" success="62.97%" totalRun="2225" xslt_processor="Xalan-J XSLT 3.0 development code">
   <attr>
     <as fail="53" pass="51" skipped="4" success="50.46%" totalRun="109"/>
     <avt fail="14" pass="21" skipped="0" success="60.0%" totalRun="35"/>
diff --git a/src/test/java/org/apache/xalan/tests/xpath3/FnFunctionArityTests.java b/src/test/java/org/apache/xalan/tests/xpath3/FnFunctionArityTests.java
index 353485668..d6bb63082 100644
--- a/src/test/java/org/apache/xalan/tests/xpath3/FnFunctionArityTests.java
+++ b/src/test/java/org/apache/xalan/tests/xpath3/FnFunctionArityTests.java
@@ -66,5 +66,15 @@ public class FnFunctionArityTests extends XslTransformTestsUtil {
         
         runXslTransformAndAssertOutput(xmlFilePath, xslFilePath, goldFilePath, null);
     }
+    
+    @Test
+    public void xslFunctionArityTest3() {
+        String xmlFilePath = XSL_TRANSFORM_INPUT_DIRPATH + "test3.xsl"; 
+        String xslFilePath = XSL_TRANSFORM_INPUT_DIRPATH + "test3.xsl";
+        
+        String goldFilePath = XSL_TRANSFORM_GOLD_DIRPATH + "test3.out";                
+        
+        runXslTransformAndAssertOutput(xmlFilePath, xslFilePath, goldFilePath, null);
+    }
 
 }
diff --git a/src/test/resources/fn_function_arity/gold/test3.out b/src/test/resources/fn_function_arity/gold/test3.out
new file mode 100644
index 000000000..ce24a42c9
--- /dev/null
+++ b/src/test/resources/fn_function_arity/gold/test3.out
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?><result>
+  <one>1</one>
+  <two>1</two>
+  <three>1</three>
+  <four>1</four>
+</result>
diff --git a/src/test/resources/fn_function_arity/test3.xsl b/src/test/resources/fn_function_arity/test3.xsl
new file mode 100644
index 000000000..9beedc7e1
--- /dev/null
+++ b/src/test/resources/fn_function_arity/test3.xsl
@@ -0,0 +1,50 @@
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                xmlns:xs="http://www.w3.org/2001/XMLSchema"
+                exclude-result-prefixes="xs"				
+                version="3.0">
+                
+    <!-- Author: mukulg@apache.org -->
+    
+    <!-- An XSL stylesheet test case, to test XPath function 
+         fn:function-arity for built-in XML Schema atomic type. -->                
+ 
+    <xsl:output method="xml" indent="yes"/>
+ 
+    <xsl:template match="/">
+       <result>
+          <one>	   
+             <xsl:variable name="dtCons1" select="xs:date#1" as="function(*)"/>
+		     <xsl:value-of select="function-arity($dtCons1)"/>
+		  </one>
+		  <two>
+		     <xsl:value-of select="function-arity(xs:date#1)"/>
+		  </two>
+		  <three>	   
+             <xsl:variable name="strCons1" select="xs:normalizedString#1" as="function(*)"/>
+		     <xsl:value-of select="function-arity($strCons1)"/>
+		  </three>
+		  <four>
+		     <xsl:value-of select="function-arity(xs:normalizedString#1)"/>
+		  </four>
+       </result>
+    </xsl:template>
+    
+    <!--
+      * Licensed to the Apache Software Foundation (ASF) under one
+      * or more contributor license agreements. See the NOTICE file
+      * distributed with this work for additional information
+      * regarding copyright ownership. The ASF licenses this file
+      * to you under the Apache License, Version 2.0 (the "License");
+      * you may not use this file except in compliance with the License.
+      * You may obtain a copy of the License at
+      *
+      *     http://www.apache.org/licenses/LICENSE-2.0
+      *
+      * Unless required by applicable law or agreed to in writing, software
+      * distributed under the License is distributed on an "AS IS" BASIS,
+      * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+      * See the License for the specific language governing permissions and
+      * limitations under the License.
+    -->
+	
+</xsl:stylesheet>


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