XERCESC-2208: XSValue is implemented in terms of explicitly-sized integer types
diff --git a/src/xercesc/framework/psvi/XSValue.cpp b/src/xercesc/framework/psvi/XSValue.cpp
index 107252e..5581cb8 100644
--- a/src/xercesc/framework/psvi/XSValue.cpp
+++ b/src/xercesc/framework/psvi/XSValue.cpp
@@ -25,6 +25,7 @@
 #include <ctype.h>
 #include <math.h>
 #include <float.h>
+#include <limits>
 
 #include <xercesc/framework/psvi/XSValue.hpp>
 
@@ -95,21 +96,21 @@
  *    dt_ENTITY                           str              [4] NCName           NA             content
  *    ---------------------------------------------------------------------------------------------------------
  * 30 dt_ENTITIES                         str              ws seped ENTITY      NA             content
- *    dt_integer               num                         lexical              yes            long
- *    dt_nonPositiveInteger    num                         lexical              yes            long
- *    dt_negativeInteger       num                         lexical              yes            long
- *    dt_long                  num                         lexical              yes            long
+ *    dt_integer               num                         lexical              yes            int64_t
+ *    dt_nonPositiveInteger    num                         lexical              yes            int64_t
+ *    dt_negativeInteger       num                         lexical              yes            int64_t
+ *    dt_long                  num                         lexical              yes            int64_t
  *    ---------------------------------------------------------------------------------------------------------
- * 35 dt_int                   num                         lexical              yes            int
- *    dt_short                 num                         lexical              yes            short
- *    dt_byte                  num                         lexical              yes            char
- *    dt_nonNegativeInteger    num                         lexical              yes            unsigned long
- *    dt_unsignedLong          num                         lexical              yes            unsigned long
+ * 35 dt_int                   num                         lexical              yes            int32_t
+ *    dt_short                 num                         lexical              yes            int16_t
+ *    dt_byte                  num                         lexical              yes            int8_t
+ *    dt_nonNegativeInteger    num                         lexical              yes            uint64_t
+ *    dt_unsignedLong          num                         lexical              yes            uint64_t
  *    ---------------------------------------------------------------------------------------------------------
- * 40 dt_unsignedInt           num                         lexical              yes            unsigned int
- *    dt_unsignedShort         num                         lexical              yes            unsigned short
- *    dt_unsignedByte          num                         lexical              yes            unsigned char
- *    dt_positiveInteger       num                         lexical              yes            unsigned long
+ * 40 dt_unsignedInt           num                         lexical              yes            uint32_t
+ *    dt_unsignedShort         num                         lexical              yes            uint16_t
+ *    dt_unsignedByte          num                         lexical              yes            uint8_t
+ *    dt_positiveInteger       num                         lexical              yes            uint64_t
  *
  ***/
 
@@ -1316,25 +1317,25 @@
                     retVal->fData.fValue.f_long = actVal.f_long;
                     break;
                 case XSValue::dt_int:
-                    retVal->fData.fValue.f_int = (int) actVal.f_long;
+                    retVal->fData.fValue.f_int = static_cast<int32_t>(actVal.f_long);
                     break;
                 case XSValue::dt_short:
-                    retVal->fData.fValue.f_short = (short) actVal.f_long;
+                    retVal->fData.fValue.f_short = static_cast<int16_t>(actVal.f_long);
                     break;
                 case XSValue::dt_byte:
-                    retVal->fData.fValue.f_char = (char) actVal.f_long;
+                    retVal->fData.fValue.f_char = static_cast<int8_t>(actVal.f_long);
                     break;
                 case XSValue::dt_unsignedLong:
                     retVal->fData.fValue.f_ulong = actVal.f_ulong;
                     break;
                 case XSValue::dt_unsignedInt:
-                    retVal->fData.fValue.f_uint = (unsigned int) actVal.f_ulong;
+                    retVal->fData.fValue.f_uint = static_cast<uint32_t>(actVal.f_ulong);
                     break;
                 case XSValue::dt_unsignedShort:
-                    retVal->fData.fValue.f_ushort = (unsigned short) actVal.f_ulong;
+                    retVal->fData.fValue.f_ushort = static_cast<uint16_t>(actVal.f_ulong);
                     break;
                 case XSValue::dt_unsignedByte:
-                    retVal->fData.fValue.f_uchar = (unsigned char) actVal.f_ulong;
+                    retVal->fData.fValue.f_uchar = static_cast<uint8_t>(actVal.f_ulong);
                     break;
                 default:
                     return 0;
@@ -1570,7 +1571,7 @@
 
     if (XSValue::numericSign[datatype])
     {
-        retVal.f_long = strtol(nptr, &endptr, (int)10);
+        retVal.f_long = strtoll(nptr, &endptr, (int)10);
     }
     else
     {
@@ -1580,7 +1581,7 @@
             return false;
         }
 
-        retVal.f_ulong = strtoul(nptr, &endptr, (int)10);
+        retVal.f_ulong = strtoull(nptr, &endptr, (int)10);
     }
 
     // need to check out-of-bounds before checking erange...
@@ -1601,8 +1602,8 @@
             break;
         case XSValue::dt_int:
             // strtol will set value to LONG_MIN/LONG_MAX if ERANGE error
-            if ((retVal.f_long < INT_MIN) ||
-                (retVal.f_long > INT_MAX) ||
+            if ((retVal.f_long < std::numeric_limits<int32_t>::min()) ||
+                (retVal.f_long > std::numeric_limits<int32_t>::max()) ||
                 (errno == ERANGE))
             {
                 status = st_FOCA0002;
@@ -1610,16 +1611,16 @@
             }
             break;
         case XSValue::dt_short:
-            if ((retVal.f_long < SHRT_MIN) ||
-                (retVal.f_long > SHRT_MAX))
+            if ((retVal.f_long < std::numeric_limits<int16_t>::min()) ||
+                (retVal.f_long > std::numeric_limits<int16_t>::max()))
             {
                 status = st_FOCA0002;
                 return false;
             }
             break;
         case XSValue::dt_byte:
-            if ((retVal.f_long < SCHAR_MIN) ||
-                (retVal.f_long > SCHAR_MAX))
+            if ((retVal.f_long < std::numeric_limits<int8_t>::min()) ||
+                (retVal.f_long > std::numeric_limits<int8_t>::max()))
             {
                 status = st_FOCA0002;
                 return false;
@@ -1627,7 +1628,7 @@
             break;
         case XSValue::dt_unsignedInt:
             // strtoul will set value to LONG_INT if ERANGE error
-            if ((retVal.f_ulong > UINT_MAX)  ||
+            if ((retVal.f_ulong > std::numeric_limits<uint32_t>::max())  ||
                 (errno == ERANGE))
             {
                 status = st_FOCA0002;
@@ -1635,14 +1636,14 @@
             }
             break;
         case XSValue::dt_unsignedShort:
-            if (retVal.f_ulong > USHRT_MAX)
+            if (retVal.f_ulong > std::numeric_limits<uint16_t>::max())
             {
                 status = st_FOCA0002;
                 return false;
             }
             break;
         case XSValue::dt_unsignedByte:
-            if (retVal.f_ulong > UCHAR_MAX)
+            if (retVal.f_ulong > std::numeric_limits<uint8_t>::max())
             {
                 status = st_FOCA0002;
                 return false;
diff --git a/src/xercesc/framework/psvi/XSValue.hpp b/src/xercesc/framework/psvi/XSValue.hpp
index 8ec086b..ee212a8 100644
--- a/src/xercesc/framework/psvi/XSValue.hpp
+++ b/src/xercesc/framework/psvi/XSValue.hpp
@@ -205,14 +205,14 @@
 
         union {
                          bool      f_bool;
-                         char      f_char;
-                unsigned char      f_uchar;
-                         short     f_short;
-                unsigned short     f_ushort;
-                         int       f_int;
-                unsigned int       f_uint;
-                         long      f_long;
-                unsigned long      f_ulong;
+                         int8_t    f_char;
+                         uint8_t   f_uchar;
+                         int16_t   f_short;
+                         uint16_t  f_ushort;
+                         int32_t   f_int;
+                         uint32_t  f_uint;
+                         int64_t   f_long;
+                         uint64_t  f_ulong;
                          float     f_float;
                          double    f_double;
                          XMLCh*    f_strVal;
@@ -253,8 +253,8 @@
 
     typedef union
     {
-                long  f_long;
-       unsigned long  f_ulong;
+      int64_t  f_long;
+      uint64_t f_ulong;
     } t_value;
 
     /** @name Constructors */
diff --git a/tests/src/XSValueTest/XSValueTest.cpp b/tests/src/XSValueTest/XSValueTest.cpp
index 1b95625..5991133 100644
--- a/tests/src/XSValueTest/XSValueTest.cpp
+++ b/tests/src/XSValueTest/XSValueTest.cpp
@@ -764,23 +764,14 @@
     const char lex_v_ran64_iv_1[]="18446744073709551616.999";
     const char lex_v_ran64_iv_2[]="999.18446744073709551616";
 
-#if SIZEOF_LONG != 8
-    const char lex_v_ran32_v_1[]="4294967295.999";
-    const char lex_v_ran32_v_2[]="999.4294967295";
-#endif
-//    const char lex_v_ran32_iv_1[]="4294967296.999";
-//    const char lex_v_ran32_iv_2[]="999.4294967296";
-
     const char lex_iv_1[]="12b34.456";
     const char lex_iv_2[]="1234.56.789";
 
     XSValue::XSValue_Data act_v_ran_v_1;   act_v_ran_v_1.fValue.f_double = (double)1234.567;
-#if SIZEOF_LONG == 8
     XSValue::XSValue_Data act_v_ran64_v_1; act_v_ran64_v_1.fValue.f_double = (double)18446744073709551615.999;
     XSValue::XSValue_Data act_v_ran64_v_2; act_v_ran64_v_2.fValue.f_double = (double)999.18446744073709551615;
     //XSValue::XSValue_Data act_v_ran64_iv_1;="18446744073709551616.999";
     //XSValue::XSValue_Data act_v_ran64_iv_2;="999.18446744073709551616";
-#endif
 
     XSValue::XSValue_Data act_v_ran32_v_1; act_v_ran32_v_1.fValue.f_double = (double)4294967295.999;
     XSValue::XSValue_Data act_v_ran32_v_2; act_v_ran32_v_2.fValue.f_double = (double)999.4294967295;
@@ -867,17 +858,10 @@
 
         ACTVALUE_TEST(lex_v_ran_v_1,    dt, toValidate, EXP_RET_VALUE_TRUE,  DONT_CARE, act_v_ran_v_1);
 
-#if SIZEOF_LONG == 8
         ACTVALUE_TEST(lex_v_ran64_v_1 , dt, toValidate, EXP_RET_VALUE_TRUE,  DONT_CARE, act_v_ran64_v_1);
         ACTVALUE_TEST(lex_v_ran64_v_2 , dt, toValidate, EXP_RET_VALUE_TRUE,  DONT_CARE, act_v_ran64_v_2);
         //ACTVALUE_TEST(lex_v_ran64_iv_1, dt, toValidate, EXP_RET_VALUE_FALSE, XSValue::st_FOCA0001);
         //ACTVALUE_TEST(lex_v_ran64_iv_2, dt, toValidate, EXP_RET_VALUE_FALSE, XSValue::st_FOCA0001);
-#else
-        ACTVALUE_TEST(lex_v_ran32_v_1,  dt, toValidate, EXP_RET_VALUE_TRUE,  DONT_CARE, act_v_ran32_v_1);
-        ACTVALUE_TEST(lex_v_ran32_v_2,  dt, toValidate, EXP_RET_VALUE_TRUE,  DONT_CARE, act_v_ran32_v_2);
-        //ACTVALUE_TEST(lex_v_ran32_iv_1, dt, toValidate, EXP_RET_VALUE_FALSE, XSValue::st_FOCA0001);
-        //ACTVALUE_TEST(lex_v_ran32_iv_2, dt, toValidate, EXP_RET_VALUE_FALSE, XSValue::st_FOCA0001);
-#endif
 
         ACTVALUE_TEST(lex_iv_1,         dt, toValidate, EXP_RET_VALUE_FALSE, XSValue::st_FOCA0002, act_v_ran32_v_1);
         ACTVALUE_TEST(lex_iv_2,         dt, toValidate, EXP_RET_VALUE_FALSE, XSValue::st_FOCA0002, act_v_ran32_v_1);
@@ -1337,20 +1321,11 @@
     const char lex_v_ran64_iv_1[]="+9223372036854775808";
     const char lex_v_ran64_iv_2[]="-9223372036854775809";
 
-#if SIZEOF_LONG != 8
-    const char lex_v_ran32_v_1[]="+2147483647";
-    const char lex_v_ran32_v_2[]="-2147483648";
-    const char lex_v_ran32_iv_1[]="+2147483648";
-    const char lex_v_ran32_iv_2[]="-2147483649";
-#endif
-
-    XSValue::XSValue_Data act_v_ran_v_1;   act_v_ran_v_1.fValue.f_long = (long)1234;
-#if SIZEOF_LONG == 8
-    XSValue::XSValue_Data act_v_ran64_v_1; act_v_ran64_v_1.fValue.f_long = (long)+9223372036854775807;
-    XSValue::XSValue_Data act_v_ran64_v_2; act_v_ran64_v_2.fValue.f_long = (long)-9223372036854775808;
-#endif
-    XSValue::XSValue_Data act_v_ran32_v_1; act_v_ran32_v_1.fValue.f_long = (long)+2147483647;
-    XSValue::XSValue_Data act_v_ran32_v_2; act_v_ran32_v_2.fValue.f_long = (long)-2147483648;
+    XSValue::XSValue_Data act_v_ran_v_1;   act_v_ran_v_1.fValue.f_long = (int64_t)1234ll;
+    XSValue::XSValue_Data act_v_ran64_v_1; act_v_ran64_v_1.fValue.f_long = (int64_t)+9223372036854775807ll;
+    XSValue::XSValue_Data act_v_ran64_v_2; act_v_ran64_v_2.fValue.f_long = (int64_t)-9223372036854775808ll;
+    XSValue::XSValue_Data act_v_ran32_v_1; act_v_ran32_v_1.fValue.f_long = (int64_t)+2147483647ll;
+    XSValue::XSValue_Data act_v_ran32_v_2; act_v_ran32_v_2.fValue.f_long = (int64_t)-2147483648ll;
 
     const char lex_v_ran64_v_1_canrep[]="9223372036854775807";
     const char lex_v_ran64_v_2_canrep[]="-9223372036854775808";
@@ -1428,17 +1403,10 @@
 
         ACTVALUE_TEST(lex_v_ran_v_1,    dt, toValidate, EXP_RET_VALUE_TRUE,  DONT_CARE, act_v_ran_v_1);
 
-#if SIZEOF_LONG == 8
         ACTVALUE_TEST(lex_v_ran64_v_1 , dt, toValidate, EXP_RET_VALUE_TRUE,  DONT_CARE, act_v_ran64_v_1);
         ACTVALUE_TEST(lex_v_ran64_v_2 , dt, toValidate, EXP_RET_VALUE_TRUE,  DONT_CARE, act_v_ran64_v_2);
         ACTVALUE_TEST(lex_v_ran64_iv_1, dt, toValidate, EXP_RET_VALUE_FALSE, XSValue::st_FOCA0003, act_v_ran64_v_1);
         ACTVALUE_TEST(lex_v_ran64_iv_2, dt, toValidate, EXP_RET_VALUE_FALSE, XSValue::st_FOCA0003, act_v_ran64_v_1);
-#else
-        ACTVALUE_TEST(lex_v_ran32_v_1,  dt, toValidate, EXP_RET_VALUE_TRUE,  DONT_CARE, act_v_ran32_v_1);
-        ACTVALUE_TEST(lex_v_ran32_v_2,  dt, toValidate, EXP_RET_VALUE_TRUE,  DONT_CARE, act_v_ran32_v_2);
-        ACTVALUE_TEST(lex_v_ran32_iv_1, dt, toValidate, EXP_RET_VALUE_FALSE, XSValue::st_FOCA0003, act_v_ran32_v_1);
-        ACTVALUE_TEST(lex_v_ran32_iv_2, dt, toValidate, EXP_RET_VALUE_FALSE, XSValue::st_FOCA0003, act_v_ran32_v_1);
-#endif
 
         ACTVALUE_TEST(lex_iv_1,         dt, toValidate, EXP_RET_VALUE_FALSE, XSValue::st_FOCA0002, act_v_ran32_v_1);
         ACTVALUE_TEST(lex_iv_2,         dt, toValidate, EXP_RET_VALUE_FALSE, XSValue::st_FOCA0002, act_v_ran32_v_1);
@@ -1496,16 +1464,9 @@
     const char lex_v_ran64_v_2[]="-9223372036854775808";
     const char lex_v_ran64_iv_2[]="-9223372036854775809";
 
-#if SIZEOF_LONG != 8
-    const char lex_v_ran32_v_2[]="-2147483648";
-    const char lex_v_ran32_iv_2[]="-2147483649";
-#endif
-
-    XSValue::XSValue_Data act_v_ran_v_1;     act_v_ran_v_1.fValue.f_long = (long)-1234;
-#if SIZEOF_LONG == 8
-    XSValue::XSValue_Data act_v_ran64_v_2;   act_v_ran64_v_2.fValue.f_long = (long)-9223372036854775808;
-#endif
-    XSValue::XSValue_Data act_v_ran32_v_2;   act_v_ran32_v_2.fValue.f_long = (long)-2147483648;
+    XSValue::XSValue_Data act_v_ran_v_1;     act_v_ran_v_1.fValue.f_long = (int64_t)-1234ll;
+    XSValue::XSValue_Data act_v_ran64_v_2;   act_v_ran64_v_2.fValue.f_long = (int64_t)-9223372036854775808ll;
+    XSValue::XSValue_Data act_v_ran32_v_2;   act_v_ran32_v_2.fValue.f_long = (int64_t)-2147483648ll;
 
     const char lex_v_ran64_v_2_canrep[]="-9223372036854775808";
     const char lex_v_ran64_iv_2_canrep[]="-9223372036854775809";
@@ -1582,13 +1543,8 @@
 
         ACTVALUE_TEST(lex_v_ran_v_1,    dt, toValidate, EXP_RET_VALUE_TRUE,  DONT_CARE, act_v_ran_v_1);
 
-#if SIZEOF_LONG == 8
         ACTVALUE_TEST(lex_v_ran64_v_2 , dt, toValidate, EXP_RET_VALUE_TRUE,  DONT_CARE, act_v_ran64_v_2);
         ACTVALUE_TEST(lex_v_ran64_iv_2, dt, toValidate, EXP_RET_VALUE_FALSE, XSValue::st_FOCA0003, act_v_ran64_v_2);
-#else
-        ACTVALUE_TEST(lex_v_ran32_v_2,  dt, toValidate, EXP_RET_VALUE_TRUE,  DONT_CARE, act_v_ran32_v_2);
-        ACTVALUE_TEST(lex_v_ran32_iv_2, dt, toValidate, EXP_RET_VALUE_FALSE, XSValue::st_FOCA0003, act_v_ran32_v_2);
-#endif
 
         ACTVALUE_TEST(lex_iv_1,         dt, toValidate, EXP_RET_VALUE_FALSE, XSValue::st_FOCA0002, act_v_ran32_v_2);
         ACTVALUE_TEST(lex_iv_2,         dt, toValidate, EXP_RET_VALUE_FALSE, XSValue::st_FOCA0002, act_v_ran32_v_2);
@@ -1644,16 +1600,9 @@
     const char lex_v_ran64_v_2[]="-9223372036854775808";
     const char lex_v_ran64_iv_2[]="-9223372036854775809";
 
-#if SIZEOF_LONG != 8
-    const char lex_v_ran32_v_2[]="-2147483648";
-    const char lex_v_ran32_iv_2[]="-2147483649";
-#endif
-
-    XSValue::XSValue_Data act_v_ran_v_1;     act_v_ran_v_1.fValue.f_long = (long)-1234;
-#if SIZEOF_LONG == 8
-    XSValue::XSValue_Data act_v_ran64_v_2;   act_v_ran64_v_2.fValue.f_long = (long)-9223372036854775808;
-#endif
-    XSValue::XSValue_Data act_v_ran32_v_2;   act_v_ran32_v_2.fValue.f_long = (long)-2147483648;
+    XSValue::XSValue_Data act_v_ran_v_1;     act_v_ran_v_1.fValue.f_long = (int64_t)-1234ll;
+    XSValue::XSValue_Data act_v_ran64_v_2;   act_v_ran64_v_2.fValue.f_long = (int64_t)-9223372036854775808ll;
+    XSValue::XSValue_Data act_v_ran32_v_2;   act_v_ran32_v_2.fValue.f_long = (int64_t)-2147483648ll;
 
     const char lex_v_ran64_v_2_canrep[]="-9223372036854775808";
     const char lex_v_ran64_iv_2_canrep[]="-9223372036854775809";
@@ -1727,13 +1676,8 @@
 
         ACTVALUE_TEST(lex_v_ran_v_1,    dt, toValidate, EXP_RET_VALUE_TRUE,  DONT_CARE, act_v_ran_v_1);
 
-#if SIZEOF_LONG == 8
         ACTVALUE_TEST(lex_v_ran64_v_2 , dt, toValidate, EXP_RET_VALUE_TRUE,  DONT_CARE, act_v_ran64_v_2);
         ACTVALUE_TEST(lex_v_ran64_iv_2, dt, toValidate, EXP_RET_VALUE_FALSE, XSValue::st_FOCA0003, act_v_ran64_v_2);
-#else
-        ACTVALUE_TEST(lex_v_ran32_v_2,  dt, toValidate, EXP_RET_VALUE_TRUE,  DONT_CARE, act_v_ran32_v_2);
-        ACTVALUE_TEST(lex_v_ran32_iv_2, dt, toValidate, EXP_RET_VALUE_FALSE, XSValue::st_FOCA0003, act_v_ran32_v_2);
-#endif
 
         ACTVALUE_TEST(lex_iv_1,         dt, toValidate, EXP_RET_VALUE_FALSE, XSValue::st_FOCA0002, act_v_ran32_v_2);
         ACTVALUE_TEST(lex_iv_2,         dt, toValidate, EXP_RET_VALUE_FALSE, XSValue::st_FOCA0002, act_v_ran32_v_2);
@@ -1788,20 +1732,11 @@
     const char lex_v_ran64_iv_1[]="+9223372036854775808";
     const char lex_v_ran64_iv_2[]="-9223372036854775809";
 
-#if SIZEOF_LONG != 8
-    const char lex_v_ran32_v_1[]="+2147483647";
-    const char lex_v_ran32_v_2[]="-2147483648";
-    const char lex_v_ran32_iv_1[]="+2147483648";
-    const char lex_v_ran32_iv_2[]="-2147483649";
-#endif
-
-    XSValue::XSValue_Data act_v_ran_v_1;     act_v_ran_v_1.fValue.f_long = (long)1234;
-#if SIZEOF_LONG == 8
-    XSValue::XSValue_Data act_v_ran64_v_1;   act_v_ran64_v_1.fValue.f_long = (long)+9223372036854775807;
-    XSValue::XSValue_Data act_v_ran64_v_2;   act_v_ran64_v_2.fValue.f_long = (long)-9223372036854775808;
-#endif
-    XSValue::XSValue_Data act_v_ran32_v_1;   act_v_ran32_v_1.fValue.f_long = (long)+2147483647;
-    XSValue::XSValue_Data act_v_ran32_v_2;   act_v_ran32_v_2.fValue.f_long = (long)-2147483648;
+    XSValue::XSValue_Data act_v_ran_v_1;     act_v_ran_v_1.fValue.f_long = (int64_t)1234ll;
+    XSValue::XSValue_Data act_v_ran64_v_1;   act_v_ran64_v_1.fValue.f_long = (int64_t)+9223372036854775807ll;
+    XSValue::XSValue_Data act_v_ran64_v_2;   act_v_ran64_v_2.fValue.f_long = (int64_t)-9223372036854775808ll;
+    XSValue::XSValue_Data act_v_ran32_v_1;   act_v_ran32_v_1.fValue.f_long = (int64_t)+2147483647ll;
+    XSValue::XSValue_Data act_v_ran32_v_2;   act_v_ran32_v_2.fValue.f_long = (int64_t)-2147483648ll;
 
     const char lex_v_ran64_v_1_canrep[]="9223372036854775807";
     const char lex_v_ran64_v_2_canrep[]="-9223372036854775808";
@@ -1881,17 +1816,10 @@
 
         ACTVALUE_TEST(lex_v_ran_v_1,    dt, toValidate, EXP_RET_VALUE_TRUE,  DONT_CARE, act_v_ran_v_1);
 
-#if SIZEOF_LONG == 8
         ACTVALUE_TEST(lex_v_ran64_v_1 , dt, toValidate, EXP_RET_VALUE_TRUE,  DONT_CARE, act_v_ran64_v_1);
         ACTVALUE_TEST(lex_v_ran64_v_2 , dt, toValidate, EXP_RET_VALUE_TRUE,  DONT_CARE, act_v_ran64_v_2);
         ACTVALUE_TEST(lex_v_ran64_iv_1, dt, toValidate, EXP_RET_VALUE_FALSE, XSValue::st_FOCA0003, act_v_ran64_v_1);
         ACTVALUE_TEST(lex_v_ran64_iv_2, dt, toValidate, EXP_RET_VALUE_FALSE, XSValue::st_FOCA0003, act_v_ran64_v_1);
-#else
-        ACTVALUE_TEST(lex_v_ran32_v_1,  dt, toValidate, EXP_RET_VALUE_TRUE,  DONT_CARE, act_v_ran32_v_1);
-        ACTVALUE_TEST(lex_v_ran32_v_2,  dt, toValidate, EXP_RET_VALUE_TRUE,  DONT_CARE, act_v_ran32_v_2);
-        ACTVALUE_TEST(lex_v_ran32_iv_1, dt, toValidate, EXP_RET_VALUE_FALSE, XSValue::st_FOCA0003, act_v_ran32_v_1);
-        ACTVALUE_TEST(lex_v_ran32_iv_2, dt, toValidate, EXP_RET_VALUE_FALSE, XSValue::st_FOCA0003, act_v_ran32_v_1);
-#endif
 
         ACTVALUE_TEST(lex_iv_1,         dt, toValidate, EXP_RET_VALUE_FALSE, XSValue::st_FOCA0002, act_v_ran32_v_1);
         ACTVALUE_TEST(lex_iv_2,         dt, toValidate, EXP_RET_VALUE_FALSE, XSValue::st_FOCA0002, act_v_ran32_v_1);
@@ -2413,16 +2341,9 @@
     const char lex_v_ran64_v_2[]="+18446744073709551615";
     const char lex_v_ran64_iv_2[]="+18446744073709551616";
 
-#if SIZEOF_LONG != 8
-    const char lex_v_ran32_v_2[]="4294967295";
-    const char lex_v_ran32_iv_2[]="4294967296";
-#endif
-
-    XSValue::XSValue_Data act_v_ran_v_1;    act_v_ran_v_1.fValue.f_ulong = (unsigned long)1234;
-#if SIZEOF_LONG == 8
-    XSValue::XSValue_Data act_v_ran64_v_2;  act_v_ran64_v_2.fValue.f_ulong = (unsigned long)+18446744073709551615;
-#endif
-    XSValue::XSValue_Data act_v_ran32_v_2;  act_v_ran32_v_2.fValue.f_ulong = (unsigned long)4294967295;
+    XSValue::XSValue_Data act_v_ran_v_1;    act_v_ran_v_1.fValue.f_ulong = (uint64_t)1234ull;
+    XSValue::XSValue_Data act_v_ran64_v_2;  act_v_ran64_v_2.fValue.f_ulong = (uint64_t)18446744073709551615ull;
+    XSValue::XSValue_Data act_v_ran32_v_2;  act_v_ran32_v_2.fValue.f_ulong = (uint64_t)4294967295ull;
 
     const char lex_v_ran64_v_2_canrep[]="18446744073709551615";
     const char lex_v_ran64_iv_2_canrep[]="18446744073709551616";
@@ -2499,13 +2420,8 @@
 
         ACTVALUE_TEST(lex_v_ran_v_1,    dt, toValidate, EXP_RET_VALUE_TRUE,  DONT_CARE, act_v_ran_v_1);
 
-#if SIZEOF_LONG == 8
         ACTVALUE_TEST(lex_v_ran64_v_2 , dt, toValidate, EXP_RET_VALUE_TRUE,  DONT_CARE, act_v_ran64_v_2);
         ACTVALUE_TEST(lex_v_ran64_iv_2, dt, toValidate, EXP_RET_VALUE_FALSE, XSValue::st_FOCA0003, act_v_ran64_v_2);
-#else
-        ACTVALUE_TEST(lex_v_ran32_v_2,  dt, toValidate, EXP_RET_VALUE_TRUE,  DONT_CARE, act_v_ran32_v_2);
-        ACTVALUE_TEST(lex_v_ran32_iv_2, dt, toValidate, EXP_RET_VALUE_FALSE, XSValue::st_FOCA0003, act_v_ran32_v_2);
-#endif
 
         ACTVALUE_TEST(lex_iv_1,         dt, toValidate, EXP_RET_VALUE_FALSE, XSValue::st_FOCA0002, act_v_ran32_v_2);
         ACTVALUE_TEST(lex_iv_2,         dt, toValidate, EXP_RET_VALUE_FALSE, XSValue::st_FOCA0002, act_v_ran32_v_2);
@@ -2563,20 +2479,11 @@
     const char lex_v_ran64_iv_1[]="+18446744073709551616";
     const char lex_v_ran64_iv_2[]="-1";
 
-#if SIZEOF_LONG != 8
-    const char lex_v_ran32_v_1[]="+4294967295";
-    const char lex_v_ran32_v_2[]="0";
-    const char lex_v_ran32_iv_1[]="4294967296";
-    const char lex_v_ran32_iv_2[]="-1";
-#endif
-
-    XSValue::XSValue_Data act_v_ran_v_1;    act_v_ran_v_1.fValue.f_ulong = (unsigned long)1234;
-#if SIZEOF_LONG == 8
-    XSValue::XSValue_Data act_v_ran64_v_1;  act_v_ran64_v_1.fValue.f_ulong = (unsigned long)+18446744073709551615;
-    XSValue::XSValue_Data act_v_ran64_v_2;  act_v_ran64_v_2.fValue.f_ulong = (unsigned long)0;
-#endif
-    XSValue::XSValue_Data act_v_ran32_v_1;  act_v_ran32_v_1.fValue.f_ulong = (unsigned long)+4294967295;
-    XSValue::XSValue_Data act_v_ran32_v_2;  act_v_ran32_v_2.fValue.f_ulong = (unsigned long)0;
+    XSValue::XSValue_Data act_v_ran_v_1;    act_v_ran_v_1.fValue.f_ulong = (uint64_t)1234ull;
+    XSValue::XSValue_Data act_v_ran64_v_1;  act_v_ran64_v_1.fValue.f_ulong = (uint64_t)18446744073709551615ull;
+    XSValue::XSValue_Data act_v_ran64_v_2;  act_v_ran64_v_2.fValue.f_ulong = (uint64_t)0ull;
+    XSValue::XSValue_Data act_v_ran32_v_1;  act_v_ran32_v_1.fValue.f_ulong = (uint64_t)4294967295ull;
+    XSValue::XSValue_Data act_v_ran32_v_2;  act_v_ran32_v_2.fValue.f_ulong = (uint64_t)0ull;
 
     const char lex_v_ran64_v_1_canrep[]="18446744073709551615";
     const char lex_v_ran64_v_2_canrep[]="0";
@@ -2656,17 +2563,10 @@
 
         ACTVALUE_TEST(lex_v_ran_v_1,    dt, toValidate, EXP_RET_VALUE_TRUE,  DONT_CARE, act_v_ran_v_1);
 
-#if SIZEOF_LONG == 8
         ACTVALUE_TEST(lex_v_ran64_v_1 , dt, toValidate, EXP_RET_VALUE_TRUE,  DONT_CARE, act_v_ran64_v_1);
         ACTVALUE_TEST(lex_v_ran64_v_2 , dt, toValidate, EXP_RET_VALUE_TRUE,  DONT_CARE, act_v_ran64_v_2);
         ACTVALUE_TEST(lex_v_ran64_iv_1, dt, toValidate, EXP_RET_VALUE_FALSE, XSValue::st_FOCA0003, act_v_ran64_v_1);
         ACTVALUE_TEST(lex_v_ran64_iv_2, dt, toValidate, EXP_RET_VALUE_FALSE, XSValue::st_FOCA0002, act_v_ran64_v_1);
-#else
-        ACTVALUE_TEST(lex_v_ran32_v_1,  dt, toValidate, EXP_RET_VALUE_TRUE,  DONT_CARE, act_v_ran32_v_1);
-        ACTVALUE_TEST(lex_v_ran32_v_2,  dt, toValidate, EXP_RET_VALUE_TRUE,  DONT_CARE, act_v_ran32_v_2);
-        ACTVALUE_TEST(lex_v_ran32_iv_1, dt, toValidate, EXP_RET_VALUE_FALSE, XSValue::st_FOCA0003, act_v_ran32_v_1);
-        ACTVALUE_TEST(lex_v_ran32_iv_2, dt, toValidate, EXP_RET_VALUE_FALSE, XSValue::st_FOCA0002, act_v_ran32_v_1);
-#endif
 
         ACTVALUE_TEST(lex_iv_1,         dt, toValidate, EXP_RET_VALUE_FALSE, XSValue::st_FOCA0002, act_v_ran32_v_1);
         ACTVALUE_TEST(lex_iv_2,         dt, toValidate, EXP_RET_VALUE_FALSE, XSValue::st_FOCA0002, act_v_ran32_v_1);
@@ -3180,16 +3080,9 @@
     const char lex_v_ran64_v_2[]="+18446744073709551615";
     const char lex_v_ran64_iv_2[]="+18446744073709551616";
 
-#if SIZEOF_LONG != 8
-    const char lex_v_ran32_v_2[]="4294967295";
-    const char lex_v_ran32_iv_2[]="4294967296";
-#endif
-
-    XSValue::XSValue_Data act_v_ran_v_1;    act_v_ran_v_1.fValue.f_ulong = (unsigned long)1234;
-#if SIZEOF_LONG == 8
-    XSValue::XSValue_Data act_v_ran64_v_2;  act_v_ran64_v_2.fValue.f_ulong = (unsigned long)+18446744073709551615;
-#endif
-    XSValue::XSValue_Data act_v_ran32_v_2;  act_v_ran32_v_2.fValue.f_ulong = (unsigned long)+4294967295;
+    XSValue::XSValue_Data act_v_ran_v_1;    act_v_ran_v_1.fValue.f_ulong = (uint64_t)1234ull;
+    XSValue::XSValue_Data act_v_ran64_v_2;  act_v_ran64_v_2.fValue.f_ulong = (uint64_t)18446744073709551615ull;
+    XSValue::XSValue_Data act_v_ran32_v_2;  act_v_ran32_v_2.fValue.f_ulong = (uint64_t)4294967295ull;
 
     const char lex_v_ran64_v_2_canrep[]="18446744073709551615";
     const char lex_v_ran64_iv_2_canrep[]="18446744073709551616";
@@ -3265,13 +3158,8 @@
 
         ACTVALUE_TEST(lex_v_ran_v_1,    dt, toValidate, EXP_RET_VALUE_TRUE,  DONT_CARE, act_v_ran_v_1);
 
-#if SIZEOF_LONG == 8
         ACTVALUE_TEST(lex_v_ran64_v_2 , dt, toValidate, EXP_RET_VALUE_TRUE,  DONT_CARE, act_v_ran64_v_2);
         ACTVALUE_TEST(lex_v_ran64_iv_2, dt, toValidate, EXP_RET_VALUE_FALSE, XSValue::st_FOCA0003, act_v_ran64_v_2);
-#else
-        ACTVALUE_TEST(lex_v_ran32_v_2,  dt, toValidate, EXP_RET_VALUE_TRUE,  DONT_CARE, act_v_ran32_v_2);
-        ACTVALUE_TEST(lex_v_ran32_iv_2, dt, toValidate, EXP_RET_VALUE_FALSE, XSValue::st_FOCA0003, act_v_ran32_v_2);
-#endif
 
         ACTVALUE_TEST(lex_iv_1,         dt, toValidate, EXP_RET_VALUE_FALSE, XSValue::st_FOCA0002, act_v_ran32_v_2);
         ACTVALUE_TEST(lex_iv_2,         dt, toValidate, EXP_RET_VALUE_FALSE, XSValue::st_FOCA0002, act_v_ran32_v_2);