diff --git a/src/xercesc/util/Compilers/BorlandCDefs.hpp b/src/xercesc/util/Compilers/BorlandCDefs.hpp
index 0bda9d10301e278753b72e0a4def4c3a63710f14..7b3d2df6d1af15bc90d80e76794c621f553443b6 100644
--- a/src/xercesc/util/Compilers/BorlandCDefs.hpp
+++ b/src/xercesc/util/Compilers/BorlandCDefs.hpp
@@ -61,6 +61,12 @@
 #if !defined(BORLANDCDEFS_HPP)
 #define BORLANDCDEFS_HPP
 
+// ---------------------------------------------------------------------------
+//  Include some runtime files that will be needed product wide
+// ---------------------------------------------------------------------------
+#include <sys/types.h>  // for size_t and ssize_t
+#include <limits.h>  // for MAX of size_t and ssize_t
+
 
 // ---------------------------------------------------------------------------
 // The following values represent various compiler version levels stored in
@@ -127,14 +133,19 @@ typedef unsigned int    XMLUInt32;
 typedef int             XMLInt32;
 
 // ---------------------------------------------------------------------------
-//  XMLSize_t and DOMSize_t are the unsigned integral type.
+//  XMLSize_t is the unsigned integral type.
 // ---------------------------------------------------------------------------
-#ifdef _SIZE_T
-typedef size_t              XMLSize_t;
+#if defined(_SIZE_T) && defined(SIZE_MAX) && defined(_SSIZE_T) && defined(SSIZE_MAX)
+    typedef size_t              XMLSize_t
+    #define XML_SIZE_MAX        SIZE_MAX
+    typedef ssize_t             XMLSSize_t
+    #define XML_SSIZE_MAX       SSIZE_MAX
 #else
-typedef unsigned long       XMLSize_t;
+    typedef unsigned long       XMLSize_t;
+    #define XML_SIZE_MAX        ULONG_MAX
+    typedef long                XMLSSize_t;
+    #define XML_SSIZE_MAX       LONG_MAX
 #endif
-typedef XMLSize_t           DOMSize_t;
 
 
 //WLH-2000-08-18 -- Add more compiler quirk cross-defines
diff --git a/src/xercesc/util/Compilers/CSetDefs.hpp b/src/xercesc/util/Compilers/CSetDefs.hpp
index 1ec55f3b4d34c6ea8dcc7a6be5c01639e780f304..970d5e149b47c0eab2c5bfd7ab018b9447ba81b5 100644
--- a/src/xercesc/util/Compilers/CSetDefs.hpp
+++ b/src/xercesc/util/Compilers/CSetDefs.hpp
@@ -56,6 +56,9 @@
 
 /*
  * $Log$
+ * Revision 1.3  2002/05/27 18:02:40  tng
+ * define XMLSize_t, XMLSSize_t and their associate MAX
+ *
  * Revision 1.2  2002/05/21 19:45:53  tng
  * Define DOMSize_t and XMLSize_t
  *
@@ -103,6 +106,12 @@
 #if !defined(CSETDEFS_HPP)
 #define CSETDEFS_HPP
 
+// ---------------------------------------------------------------------------
+//  Include some runtime files that will be needed product wide
+// ---------------------------------------------------------------------------
+#include <sys/types.h>  // for size_t and ssize_t
+#include <limits.h>  // for MAX of size_t and ssize_t
+
 // ---------------------------------------------------------------------------
 // Define these away for this platform
 // ---------------------------------------------------------------------------
@@ -144,14 +153,20 @@ typedef unsigned int   XMLUInt32;
 typedef int             XMLInt32;
 
 // ---------------------------------------------------------------------------
-//  XMLSize_t and DOMSize_t are the unsigned integral type.
+//  XMLSize_t is the unsigned integral type.
 // ---------------------------------------------------------------------------
-#ifdef _SIZE_T
-typedef size_t              XMLSize_t;
+#if defined(_SIZE_T) && defined(SIZE_MAX) && defined(_SSIZE_T) && defined(SSIZE_MAX)
+    typedef size_t              XMLSize_t
+    #define XML_SIZE_MAX        SIZE_MAX
+    typedef ssize_t             XMLSSize_t
+    #define XML_SSIZE_MAX       SSIZE_MAX
 #else
-typedef unsigned long       XMLSize_t;
+    typedef unsigned long       XMLSize_t;
+    #define XML_SIZE_MAX        ULONG_MAX
+    typedef long                XMLSSize_t;
+    #define XML_SSIZE_MAX       LONG_MAX
 #endif
-typedef XMLSize_t           DOMSize_t;
+
 
 // ---------------------------------------------------------------------------
 //  Force on the Xerces debug token if it was on in the build environment
diff --git a/src/xercesc/util/Compilers/CodeWarriorDefs.hpp b/src/xercesc/util/Compilers/CodeWarriorDefs.hpp
index 9b71e01bf9d6e37bdce418f534a0f906e420795c..77a8710f252b32f320ff4c7a777b3c74001ea89a 100644
--- a/src/xercesc/util/Compilers/CodeWarriorDefs.hpp
+++ b/src/xercesc/util/Compilers/CodeWarriorDefs.hpp
@@ -61,6 +61,12 @@
 #if !defined(CODEWARRIORDEFS_HPP)
 #define CODEWARRIORDEFS_HPP
 
+// ---------------------------------------------------------------------------
+//  Include some runtime files that will be needed product wide
+// ---------------------------------------------------------------------------
+#include <sys/types.h>  // for size_t and ssize_t
+#include <limits.h>  // for MAX of size_t and ssize_t
+
 
 // ---------------------------------------------------------------------------
 //  A define in the build for each project is also used to control whether
@@ -107,14 +113,19 @@ typedef unsigned int    XMLUInt32;
 typedef int             XMLInt32;
 
 // ---------------------------------------------------------------------------
-//  XMLSize_t and DOMSize_t are the unsigned integral type.
+//  XMLSize_t is the unsigned integral type.
 // ---------------------------------------------------------------------------
-#ifdef _SIZE_T
-typedef size_t              XMLSize_t;
+#if defined(_SIZE_T) && defined(SIZE_MAX) && defined(_SSIZE_T) && defined(SSIZE_MAX)
+    typedef size_t              XMLSize_t
+    #define XML_SIZE_MAX        SIZE_MAX
+    typedef ssize_t             XMLSSize_t
+    #define XML_SSIZE_MAX       SSIZE_MAX
 #else
-typedef unsigned long       XMLSize_t;
+    typedef unsigned long       XMLSize_t;
+    #define XML_SIZE_MAX        ULONG_MAX
+    typedef long                XMLSSize_t;
+    #define XML_SSIZE_MAX       LONG_MAX
 #endif
-typedef XMLSize_t           DOMSize_t;
 
 // ---------------------------------------------------------------------------
 //  Force on the Xerces debug token if it was on in the build environment
diff --git a/src/xercesc/util/Compilers/DECCXXDefs.hpp b/src/xercesc/util/Compilers/DECCXXDefs.hpp
index a3f6ed5e20329dbca9b17a1328b19f7b745ac785..ea400a5f05b0d935efb9e6c49e6e602af154c45d 100644
--- a/src/xercesc/util/Compilers/DECCXXDefs.hpp
+++ b/src/xercesc/util/Compilers/DECCXXDefs.hpp
@@ -61,6 +61,12 @@
 #if !defined(DECCXXDEFS_HPP)
 #define	DECCXXDEFS_HPP
 
+// ---------------------------------------------------------------------------
+//  Include some runtime files that will be needed product wide
+// ---------------------------------------------------------------------------
+#include <sys/types.h>  // for size_t and ssize_t
+#include <limits.h>  // for MAX of size_t and ssize_t
+
 // ---------------------------------------------------------------------------
 // Define these away for this platform
 // ---------------------------------------------------------------------------
@@ -100,14 +106,19 @@ typedef unsigned int    XMLUInt32;
 typedef int             XMLInt32;
 
 // ---------------------------------------------------------------------------
-//  XMLSize_t and DOMSize_t are the unsigned integral type.
+//  XMLSize_t is the unsigned integral type.
 // ---------------------------------------------------------------------------
-#ifdef _SIZE_T
-typedef size_t              XMLSize_t;
+#if defined(_SIZE_T) && defined(SIZE_MAX) && defined(_SSIZE_T) && defined(SSIZE_MAX)
+    typedef size_t              XMLSize_t
+    #define XML_SIZE_MAX        SIZE_MAX
+    typedef ssize_t             XMLSSize_t
+    #define XML_SSIZE_MAX       SSIZE_MAX
 #else
-typedef unsigned long       XMLSize_t;
+    typedef unsigned long       XMLSize_t;
+    #define XML_SIZE_MAX        ULONG_MAX
+    typedef long                XMLSSize_t;
+    #define XML_SSIZE_MAX       LONG_MAX
 #endif
-typedef XMLSize_t           DOMSize_t;
 
 // ---------------------------------------------------------------------------
 //  Force on the Xerces debug token if it was on in the build environment
diff --git a/src/xercesc/util/Compilers/GCCDefs.hpp b/src/xercesc/util/Compilers/GCCDefs.hpp
index d18769337aba75f5ddddd0020935ff370e5abeab..d87ab610c37888a8b385259a2c1d220ff0102636 100644
--- a/src/xercesc/util/Compilers/GCCDefs.hpp
+++ b/src/xercesc/util/Compilers/GCCDefs.hpp
@@ -56,6 +56,9 @@
 
 /*
  * $Log$
+ * Revision 1.3  2002/05/27 18:02:40  tng
+ * define XMLSize_t, XMLSSize_t and their associate MAX
+ *
  * Revision 1.2  2002/05/21 19:45:53  tng
  * Define DOMSize_t and XMLSize_t
  *
@@ -115,6 +118,8 @@
 // ---------------------------------------------------------------------------
 //  Include some runtime files that will be needed product wide
 // ---------------------------------------------------------------------------
+#include <sys/types.h>  // for size_t and ssize_t
+#include <limits.h>  // for MAX of size_t and ssize_t
 
 
 // ---------------------------------------------------------------------------
@@ -158,14 +163,19 @@ typedef unsigned int    XMLUInt32;
 typedef int             XMLInt32;
 
 // ---------------------------------------------------------------------------
-//  XMLSize_t and DOMSize_t are the unsigned integral type.
+//  XMLSize_t is the unsigned integral type.
 // ---------------------------------------------------------------------------
-#ifdef _SIZE_T
-typedef size_t              XMLSize_t;
+#if defined(_SIZE_T) && defined(SIZE_MAX) && defined(_SSIZE_T) && defined(SSIZE_MAX)
+    typedef size_t              XMLSize_t
+    #define XML_SIZE_MAX        SIZE_MAX
+    typedef ssize_t             XMLSSize_t
+    #define XML_SSIZE_MAX       SSIZE_MAX
 #else
-typedef unsigned long       XMLSize_t;
+    typedef unsigned long       XMLSize_t;
+    #define XML_SIZE_MAX        ULONG_MAX
+    typedef long                XMLSSize_t;
+    #define XML_SSIZE_MAX       LONG_MAX
 #endif
-typedef XMLSize_t           DOMSize_t;
 
 // ---------------------------------------------------------------------------
 //  Force on the Xerces debug token if it was on in the build environment
diff --git a/src/xercesc/util/Compilers/HPCCDefs.hpp b/src/xercesc/util/Compilers/HPCCDefs.hpp
index eec4d4154fd4975148f902d072c788b6a00babbb..8122d64b09159c6164212ed26bf4e9a91e35d6c3 100644
--- a/src/xercesc/util/Compilers/HPCCDefs.hpp
+++ b/src/xercesc/util/Compilers/HPCCDefs.hpp
@@ -56,6 +56,9 @@
 
 /*
  * $Log$
+ * Revision 1.3  2002/05/27 18:02:40  tng
+ * define XMLSize_t, XMLSSize_t and their associate MAX
+ *
  * Revision 1.2  2002/05/21 19:45:53  tng
  * Define DOMSize_t and XMLSize_t
  *
@@ -110,6 +113,12 @@
 #if !defined(HPCCDEFS_HPP)
 #define HPCCDEFS_HPP
 
+// ---------------------------------------------------------------------------
+//  Include some runtime files that will be needed product wide
+// ---------------------------------------------------------------------------
+#include <sys/types.h>  // for size_t and ssize_t
+#include <limits.h>  // for MAX of size_t and ssize_t
+
 
 // ---------------------------------------------------------------------------
 // Define these away for this platform
@@ -150,14 +159,20 @@ typedef unsigned int    XMLUInt32;
 typedef int             XMLInt32;
 
 // ---------------------------------------------------------------------------
-//  XMLSize_t and DOMSize_t are the unsigned integral type.
+//  XMLSize_t is the unsigned integral type.
 // ---------------------------------------------------------------------------
-#ifdef _SIZE_T
-typedef size_t              XMLSize_t;
+#if defined(_SIZE_T) && defined(SIZE_MAX) && defined(_SSIZE_T) && defined(SSIZE_MAX)
+    typedef size_t              XMLSize_t
+    #define XML_SIZE_MAX        SIZE_MAX
+    typedef ssize_t             XMLSSize_t
+    #define XML_SSIZE_MAX       SSIZE_MAX
 #else
-typedef unsigned long       XMLSize_t;
+    typedef unsigned long       XMLSize_t;
+    #define XML_SIZE_MAX        ULONG_MAX
+    typedef long                XMLSSize_t;
+    #define XML_SSIZE_MAX       LONG_MAX
 #endif
-typedef XMLSize_t           DOMSize_t;
+
 
 // ---------------------------------------------------------------------------
 //  Force on the Xerces debug token if it was on in the build environment
diff --git a/src/xercesc/util/Compilers/IBMVAOS2Defs.hpp b/src/xercesc/util/Compilers/IBMVAOS2Defs.hpp
index 3171e845d8f605053e055e20ca3b5b43bc1a53cb..c04c6b306888682f983b02208a089d5366eb3d4f 100644
--- a/src/xercesc/util/Compilers/IBMVAOS2Defs.hpp
+++ b/src/xercesc/util/Compilers/IBMVAOS2Defs.hpp
@@ -64,10 +64,9 @@
 // ---------------------------------------------------------------------------
 //  Include some common headers that are needed product wide
 // ---------------------------------------------------------------------------
-#include <STRING.h>
-#include <FLOAT.h>
-#include <MEMORY.h>
-#include <BOOL.h>
+#include <sys/types.h>  // for size_t and ssize_t
+#include <limits.h>  // for MAX of size_t and ssize_t
+
 
 // ---------------------------------------------------------------------------
 //  A define in the build for each project is also used to control whether
@@ -119,14 +118,19 @@ typedef unsigned int   XMLUInt32;
 typedef int             XMLInt32;
 
 // ---------------------------------------------------------------------------
-//  XMLSize_t and DOMSize_t are the unsigned integral type.
+//  XMLSize_t is the unsigned integral type.
 // ---------------------------------------------------------------------------
-#ifdef _SIZE_T
-typedef size_t              XMLSize_t;
+#if defined(_SIZE_T) && defined(SIZE_MAX) && defined(_SSIZE_T) && defined(SSIZE_MAX)
+    typedef size_t              XMLSize_t
+    #define XML_SIZE_MAX        SIZE_MAX
+    typedef ssize_t             XMLSSize_t
+    #define XML_SSIZE_MAX       SSIZE_MAX
 #else
-typedef unsigned long       XMLSize_t;
+    typedef unsigned long       XMLSize_t;
+    #define XML_SIZE_MAX        ULONG_MAX
+    typedef long                XMLSSize_t;
+    #define XML_SSIZE_MAX       LONG_MAX
 #endif
-typedef XMLSize_t           DOMSize_t;
 
 // ---------------------------------------------------------------------------
 //  Force on the Xerces debug token if it was on in the build environment
diff --git a/src/xercesc/util/Compilers/IBMVAW32Defs.hpp b/src/xercesc/util/Compilers/IBMVAW32Defs.hpp
index 95b22e7dc41b47cb812f18015fce97d11824282f..481cc2cd68ec9c241147691558577d9476b2646c 100644
--- a/src/xercesc/util/Compilers/IBMVAW32Defs.hpp
+++ b/src/xercesc/util/Compilers/IBMVAW32Defs.hpp
@@ -56,6 +56,9 @@
 
 /*
  * $Log$
+ * Revision 1.3  2002/05/27 18:02:40  tng
+ * define XMLSize_t, XMLSSize_t and their associate MAX
+ *
  * Revision 1.2  2002/05/21 19:45:53  tng
  * Define DOMSize_t and XMLSize_t
  *
@@ -84,6 +87,11 @@
 #if !defined(IBMVAW32DEFS_HPP)
 #define IBMVAW32DEFS_HPP
 
+// ---------------------------------------------------------------------------
+//  Include some runtime files that will be needed product wide
+// ---------------------------------------------------------------------------
+#include <sys/types.h>  // for size_t and ssize_t
+#include <limits.h>  // for MAX of size_t and ssize_t
 
 // ---------------------------------------------------------------------------
 //  A define in the build for each project is also used to control whether
@@ -126,14 +134,19 @@ typedef unsigned int   XMLUInt32;
 typedef int            XMLInt32;
 
 // ---------------------------------------------------------------------------
-//  XMLSize_t and DOMSize_t are the unsigned integral type.
+//  XMLSize_t is the unsigned integral type.
 // ---------------------------------------------------------------------------
-#ifdef _SIZE_T
-typedef size_t              XMLSize_t;
+#if defined(_SIZE_T) && defined(SIZE_MAX) && defined(_SSIZE_T) && defined(SSIZE_MAX)
+    typedef size_t              XMLSize_t
+    #define XML_SIZE_MAX        SIZE_MAX
+    typedef ssize_t             XMLSSize_t
+    #define XML_SSIZE_MAX       SSIZE_MAX
 #else
-typedef unsigned long       XMLSize_t;
+    typedef unsigned long       XMLSize_t;
+    #define XML_SIZE_MAX        ULONG_MAX
+    typedef long                XMLSSize_t;
+    #define XML_SSIZE_MAX       LONG_MAX
 #endif
-typedef XMLSize_t           DOMSize_t;
 
 // ---------------------------------------------------------------------------
 //  Force on the Xerces debug token if it was on in the build environment
diff --git a/src/xercesc/util/Compilers/MIPSproDefs.hpp b/src/xercesc/util/Compilers/MIPSproDefs.hpp
index fb7407fa27af35cbd8d693d53fb4d9c03d6d4957..12a3a01a8abebace817965e7f9bf3b3825d31cd8 100644
--- a/src/xercesc/util/Compilers/MIPSproDefs.hpp
+++ b/src/xercesc/util/Compilers/MIPSproDefs.hpp
@@ -56,6 +56,9 @@
 
 /*
  * $Log$
+ * Revision 1.3  2002/05/27 18:02:40  tng
+ * define XMLSize_t, XMLSSize_t and their associate MAX
+ *
  * Revision 1.2  2002/05/21 19:45:53  tng
  * Define DOMSize_t and XMLSize_t
  *
@@ -91,6 +94,12 @@
 #if !defined(MIPSPRODEFS_HPP)
 #define MIPSPRODEFS_HPP
 
+// ---------------------------------------------------------------------------
+//  Include some runtime files that will be needed product wide
+// ---------------------------------------------------------------------------
+#include <sys/types.h>  // for size_t and ssize_t
+#include <limits.h>  // for MAX of size_t and ssize_t
+
 
 // ---------------------------------------------------------------------------
 // Define these away for this platform
@@ -133,14 +142,19 @@ typedef unsigned int    XMLUInt32;
 typedef int             XMLInt32;
 
 // ---------------------------------------------------------------------------
-//  XMLSize_t and DOMSize_t are the unsigned integral type.
+//  XMLSize_t is the unsigned integral type.
 // ---------------------------------------------------------------------------
-#ifdef _SIZE_T
-typedef size_t              XMLSize_t;
+#if defined(_SIZE_T) && defined(SIZE_MAX) && defined(_SSIZE_T) && defined(SSIZE_MAX)
+    typedef size_t              XMLSize_t
+    #define XML_SIZE_MAX        SIZE_MAX
+    typedef ssize_t             XMLSSize_t
+    #define XML_SSIZE_MAX       SSIZE_MAX
 #else
-typedef unsigned long       XMLSize_t;
+    typedef unsigned long       XMLSize_t;
+    #define XML_SIZE_MAX        ULONG_MAX
+    typedef long                XMLSSize_t;
+    #define XML_SSIZE_MAX       LONG_MAX
 #endif
-typedef XMLSize_t           DOMSize_t;
 
 // ---------------------------------------------------------------------------
 //  Force on the Xerces debug token if it was on in the build environment
diff --git a/src/xercesc/util/Compilers/MVSCPPDefs.hpp b/src/xercesc/util/Compilers/MVSCPPDefs.hpp
index f8ff524ae889aa88ad2a1e7176672b81e2a01d1a..1411ded5d8b81b8b2dd8b9617f6cb6dccdc8f23f 100644
--- a/src/xercesc/util/Compilers/MVSCPPDefs.hpp
+++ b/src/xercesc/util/Compilers/MVSCPPDefs.hpp
@@ -56,6 +56,9 @@
 
 /*
  * $Log$
+ * Revision 1.3  2002/05/27 18:02:40  tng
+ * define XMLSize_t, XMLSSize_t and their associate MAX
+ *
  * Revision 1.2  2002/05/21 19:45:53  tng
  * Define DOMSize_t and XMLSize_t
  *
@@ -109,6 +112,12 @@
 #if !defined(MVSCPPDEFS_HPP)
 #define MVSCPPDEFS_HPP
 
+// ---------------------------------------------------------------------------
+//  Include some runtime files that will be needed product wide
+// ---------------------------------------------------------------------------
+#include <sys/types.h>  // for size_t and ssize_t
+#include <limits.h>  // for MAX of size_t and ssize_t
+
 // ---------------------------------------------------------------------------
 // Define these away for this platform
 // ---------------------------------------------------------------------------
@@ -148,15 +157,20 @@ typedef unsigned int   XMLUInt32;
 typedef int            XMLInt32;
 
 // ---------------------------------------------------------------------------
-//  XMLSize_t and DOMSize_t are the unsigned integral type.
+//  XMLSize_t is the unsigned integral type.
 // ---------------------------------------------------------------------------
-#ifdef _SIZE_T
-typedef size_t              XMLSize_t;
+#if defined(_SIZE_T) && defined(SIZE_MAX) && defined(_SSIZE_T) && defined(SSIZE_MAX)
+    typedef size_t              XMLSize_t
+    #define XML_SIZE_MAX        SIZE_MAX
+    typedef ssize_t             XMLSSize_t
+    #define XML_SSIZE_MAX       SSIZE_MAX
 #else
-typedef unsigned long       XMLSize_t;
+    typedef unsigned long       XMLSize_t;
+    #define XML_SIZE_MAX        ULONG_MAX
+    typedef long                XMLSSize_t;
+    #define XML_SSIZE_MAX       LONG_MAX
 #endif
-typedef XMLSize_t           DOMSize_t;
-n
+
 // ---------------------------------------------------------------------------
 //  Force on the Xerces debug token if it was on in the build environment
 // ---------------------------------------------------------------------------
diff --git a/src/xercesc/util/Compilers/OS400SetDefs.hpp b/src/xercesc/util/Compilers/OS400SetDefs.hpp
index 6d935710f080c7a8a6c9d55f4ca82bcdaf8a9cb9..840f654066b3e6c7a792d76b0fbe6f3d21875ec5 100644
--- a/src/xercesc/util/Compilers/OS400SetDefs.hpp
+++ b/src/xercesc/util/Compilers/OS400SetDefs.hpp
@@ -62,6 +62,12 @@
 #ifndef OS400SETDEFS_H
 #define OS400SETDEFS_H
 
+// ---------------------------------------------------------------------------
+//  Include some runtime files that will be needed product wide
+// ---------------------------------------------------------------------------
+#include <sys/types.h>  // for size_t and ssize_t
+#include <limits.h>  // for MAX of size_t and ssize_t
+
 // ---------------------------------------------------------------------------
 // Define these away for this platform
 // ---------------------------------------------------------------------------
@@ -104,14 +110,19 @@ typedef unsigned int   XMLUInt32;
 typedef int            XMLInt32;
 
 // ---------------------------------------------------------------------------
-//  XMLSize_t and DOMSize_t are the unsigned integral type.
+//  XMLSize_t is the unsigned integral type.
 // ---------------------------------------------------------------------------
-#ifdef _SIZE_T
-typedef size_t              XMLSize_t;
+#if defined(_SIZE_T) && defined(SIZE_MAX) && defined(_SSIZE_T) && defined(SSIZE_MAX)
+    typedef size_t              XMLSize_t
+    #define XML_SIZE_MAX        SIZE_MAX
+    typedef ssize_t             XMLSSize_t
+    #define XML_SSIZE_MAX       SSIZE_MAX
 #else
-typedef unsigned long       XMLSize_t;
+    typedef unsigned long       XMLSize_t;
+    #define XML_SIZE_MAX        ULONG_MAX
+    typedef long                XMLSSize_t;
+    #define XML_SSIZE_MAX       LONG_MAX
 #endif
-typedef XMLSize_t           DOMSize_t;
 
 // ---------------------------------------------------------------------------
 //  Force on the Xerces debug token if it was on in the build environment
diff --git a/src/xercesc/util/Compilers/PTXCCDefs.hpp b/src/xercesc/util/Compilers/PTXCCDefs.hpp
index ac5236d5221f1bfe0c98358c1ae79df32e143ad2..b9e96150603fc3c892058310f0ac724279769e64 100644
--- a/src/xercesc/util/Compilers/PTXCCDefs.hpp
+++ b/src/xercesc/util/Compilers/PTXCCDefs.hpp
@@ -56,6 +56,9 @@
 
 /*
  * $Log$
+ * Revision 1.3  2002/05/27 18:02:40  tng
+ * define XMLSize_t, XMLSSize_t and their associate MAX
+ *
  * Revision 1.2  2002/05/21 19:45:53  tng
  * Define DOMSize_t and XMLSize_t
  *
@@ -74,6 +77,12 @@
 #if !defined(PTXCCDEFS_HPP)
 #define PTXCCDEFS_HPP
 
+// ---------------------------------------------------------------------------
+//  Include some runtime files that will be needed product wide
+// ---------------------------------------------------------------------------
+#include <sys/types.h>  // for size_t and ssize_t
+#include <limits.h>  // for MAX of size_t and ssize_t
+
 // ---------------------------------------------------------------------------
 // Define these away for this platform
 // ---------------------------------------------------------------------------
@@ -113,14 +122,20 @@ typedef unsigned int    XMLUInt32;
 typedef int             XMLInt32;
 
 // ---------------------------------------------------------------------------
-//  XMLSize_t and DOMSize_t are the unsigned integral type.
+//  XMLSize_t is the unsigned integral type.
 // ---------------------------------------------------------------------------
-#ifdef _SIZE_T
-typedef size_t              XMLSize_t;
+#if defined(_SIZE_T) && defined(SIZE_MAX) && defined(_SSIZE_T) && defined(SSIZE_MAX)
+    typedef size_t              XMLSize_t
+    #define XML_SIZE_MAX        SIZE_MAX
+    typedef ssize_t             XMLSSize_t
+    #define XML_SSIZE_MAX       SSIZE_MAX
 #else
-typedef unsigned long       XMLSize_t;
+    typedef unsigned long       XMLSize_t;
+    #define XML_SIZE_MAX        ULONG_MAX
+    typedef long                XMLSSize_t;
+    #define XML_SSIZE_MAX       LONG_MAX
 #endif
-typedef XMLSize_t           DOMSize_t;
+
 
 // ---------------------------------------------------------------------------
 //  Force on the Xerces debug token if it was on in the build environment
diff --git a/src/xercesc/util/Compilers/SCOCCDefs.hpp b/src/xercesc/util/Compilers/SCOCCDefs.hpp
index a857bd035e35ac6d9496797931c3b27e54895b03..fd6d4bbf13dae51ab38c21dc7e93d38f1af12b65 100644
--- a/src/xercesc/util/Compilers/SCOCCDefs.hpp
+++ b/src/xercesc/util/Compilers/SCOCCDefs.hpp
@@ -56,6 +56,9 @@
 
 /*
  * $Log$
+ * Revision 1.3  2002/05/27 18:02:40  tng
+ * define XMLSize_t, XMLSSize_t and their associate MAX
+ *
  * Revision 1.2  2002/05/21 19:45:53  tng
  * Define DOMSize_t and XMLSize_t
  *
@@ -80,6 +83,12 @@
 #if !defined(SCOCCDEFS_HPP)
 #define SCOCCDEFS_HPP
 
+// ---------------------------------------------------------------------------
+//  Include some runtime files that will be needed product wide
+// ---------------------------------------------------------------------------
+#include <sys/types.h>  // for size_t and ssize_t
+#include <limits.h>  // for MAX of size_t and ssize_t
+
 
 // ---------------------------------------------------------------------------
 // Define these away for this platform
@@ -120,14 +129,20 @@ typedef unsigned int    XMLUInt32;
 typedef int             XMLInt32;
 
 // ---------------------------------------------------------------------------
-//  XMLSize_t and DOMSize_t are the unsigned integral type.
+//  XMLSize_t is the unsigned integral type.
 // ---------------------------------------------------------------------------
-#ifdef _SIZE_T
-typedef size_t              XMLSize_t;
+#if defined(_SIZE_T) && defined(SIZE_MAX) && defined(_SSIZE_T) && defined(SSIZE_MAX)
+    typedef size_t              XMLSize_t
+    #define XML_SIZE_MAX        SIZE_MAX
+    typedef ssize_t             XMLSSize_t
+    #define XML_SSIZE_MAX       SSIZE_MAX
 #else
-typedef unsigned long       XMLSize_t;
+    typedef unsigned long       XMLSize_t;
+    #define XML_SIZE_MAX        ULONG_MAX
+    typedef long                XMLSSize_t;
+    #define XML_SSIZE_MAX       LONG_MAX
 #endif
-typedef XMLSize_t           DOMSize_t;
+
 
 // ---------------------------------------------------------------------------
 //  Force on the Xerces debug token if it was on in the build environment
diff --git a/src/xercesc/util/Compilers/SunCCDefs.hpp b/src/xercesc/util/Compilers/SunCCDefs.hpp
index 0cc7dabc1ee2261fe7a365ca3aa1abf524147f94..35b7fdf02c5ea9320f3785fe0a3d261b5ae13e35 100644
--- a/src/xercesc/util/Compilers/SunCCDefs.hpp
+++ b/src/xercesc/util/Compilers/SunCCDefs.hpp
@@ -56,6 +56,9 @@
 
 /*
  * $Log$
+ * Revision 1.3  2002/05/27 18:02:40  tng
+ * define XMLSize_t, XMLSSize_t and their associate MAX
+ *
  * Revision 1.2  2002/05/21 19:45:53  tng
  * Define DOMSize_t and XMLSize_t
  *
@@ -111,6 +114,12 @@
 #if !defined(SUNCCDEFS_HPP)
 #define SUNCCDEFS_HPP
 
+// ---------------------------------------------------------------------------
+//  Include some runtime files that will be needed product wide
+// ---------------------------------------------------------------------------
+#include <sys/types.h>  // for size_t and ssize_t
+#include <limits.h>  // for MAX of size_t and ssize_t
+
 // ---------------------------------------------------------------------------
 // Define these away for this platform
 // ---------------------------------------------------------------------------
@@ -154,14 +163,20 @@ typedef unsigned int    XMLUInt32;
 typedef int             XMLInt32;
 
 // ---------------------------------------------------------------------------
-//  XMLSize_t and DOMSize_t are the unsigned integral type.
+//  XMLSize_t is the unsigned integral type.
 // ---------------------------------------------------------------------------
-#ifdef _SIZE_T
-typedef size_t              XMLSize_t;
+#if defined(_SIZE_T) && defined(SIZE_MAX) && defined(_SSIZE_T) && defined(SSIZE_MAX)
+    typedef size_t              XMLSize_t
+    #define XML_SIZE_MAX        SIZE_MAX
+    typedef ssize_t             XMLSSize_t
+    #define XML_SSIZE_MAX       SSIZE_MAX
 #else
-typedef unsigned long       XMLSize_t;
+    typedef unsigned long       XMLSize_t;
+    #define XML_SIZE_MAX        ULONG_MAX
+    typedef long                XMLSSize_t;
+    #define XML_SSIZE_MAX       LONG_MAX
 #endif
-typedef XMLSize_t           DOMSize_t;
+
 
 // ---------------------------------------------------------------------------
 //  Force on the Xerces debug token if it was on in the build environment
diff --git a/src/xercesc/util/Compilers/SunKaiDefs.hpp b/src/xercesc/util/Compilers/SunKaiDefs.hpp
index badca2e6138a16e512b9e7132a1e5d3f9d99673b..d932e9eb47547e83bf080e45615645d18592720e 100644
--- a/src/xercesc/util/Compilers/SunKaiDefs.hpp
+++ b/src/xercesc/util/Compilers/SunKaiDefs.hpp
@@ -56,6 +56,9 @@
 
 /*
  * $Log$
+ * Revision 1.3  2002/05/27 18:02:40  tng
+ * define XMLSize_t, XMLSSize_t and their associate MAX
+ *
  * Revision 1.2  2002/05/21 19:45:53  tng
  * Define DOMSize_t and XMLSize_t
  *
@@ -90,7 +93,8 @@
 // ---------------------------------------------------------------------------
 #include <memory.h>
 #include <strings.h>
-
+#include <sys/types.h>  // for size_t and ssize_t
+#include <limits.h>  // for MAX of size_t and ssize_t
 
 
 // ---------------------------------------------------------------------------
@@ -136,14 +140,20 @@ typedef unsigned int    XMLUInt32;
 typedef int             XMLInt32;
 
 // ---------------------------------------------------------------------------
-//  XMLSize_t and DOMSize_t are the unsigned integral type.
+//  XMLSize_t is the unsigned integral type.
 // ---------------------------------------------------------------------------
-#ifdef _SIZE_T
-typedef size_t              XMLSize_t;
+#if defined(_SIZE_T) && defined(SIZE_MAX) && defined(_SSIZE_T) && defined(SSIZE_MAX)
+    typedef size_t              XMLSize_t
+    #define XML_SIZE_MAX        SIZE_MAX
+    typedef ssize_t             XMLSSize_t
+    #define XML_SSIZE_MAX       SSIZE_MAX
 #else
-typedef unsigned long       XMLSize_t;
+    typedef unsigned long       XMLSize_t;
+    #define XML_SIZE_MAX        ULONG_MAX
+    typedef long                XMLSSize_t;
+    #define XML_SSIZE_MAX       LONG_MAX
 #endif
-typedef XMLSize_t           DOMSize_t;
+
 
 // ---------------------------------------------------------------------------
 //  Force on the Xerces debug token if it was on in the build environment
diff --git a/src/xercesc/util/Compilers/TandemCCDefs.hpp b/src/xercesc/util/Compilers/TandemCCDefs.hpp
index 15ad3fc4c4d107ce9ac3002edacea8bc7b62ea3f..6af1fe64e73ac38aeb7bf5a1b8acc7e931b74c28 100644
--- a/src/xercesc/util/Compilers/TandemCCDefs.hpp
+++ b/src/xercesc/util/Compilers/TandemCCDefs.hpp
@@ -56,6 +56,9 @@
 
 /*
  * $Log$
+ * Revision 1.3  2002/05/27 18:02:40  tng
+ * define XMLSize_t, XMLSSize_t and their associate MAX
+ *
  * Revision 1.2  2002/05/21 19:45:53  tng
  * Define DOMSize_t and XMLSize_t
  *
@@ -87,6 +90,12 @@
 #if !defined(TANDEMCCDEFS_HPP)
 #define TANDEMCCDEFS_HPP
 
+// ---------------------------------------------------------------------------
+//  Include some runtime files that will be needed product wide
+// ---------------------------------------------------------------------------
+#include <sys/types.h>  // for size_t and ssize_t
+#include <limits.h>  // for MAX of size_t and ssize_t
+
 // ---------------------------------------------------------------------------
 // Define these away for this platform
 // ---------------------------------------------------------------------------
@@ -126,14 +135,19 @@ typedef unsigned int    XMLUInt32;
 typedef int             XMLInt32;
 
 // ---------------------------------------------------------------------------
-//  XMLSize_t and DOMSize_t are the unsigned integral type.
+//  XMLSize_t is the unsigned integral type.
 // ---------------------------------------------------------------------------
-#ifdef _SIZE_T
-typedef size_t              XMLSize_t;
+#if defined(_SIZE_T) && defined(SIZE_MAX) && defined(_SSIZE_T) && defined(SSIZE_MAX)
+    typedef size_t              XMLSize_t
+    #define XML_SIZE_MAX        SIZE_MAX
+    typedef ssize_t             XMLSSize_t
+    #define XML_SSIZE_MAX       SSIZE_MAX
 #else
-typedef unsigned long       XMLSize_t;
+    typedef unsigned long       XMLSize_t;
+    #define XML_SIZE_MAX        ULONG_MAX
+    typedef long                XMLSSize_t;
+    #define XML_SSIZE_MAX       LONG_MAX
 #endif
-typedef XMLSize_t           DOMSize_t;
 
 // ---------------------------------------------------------------------------
 //  Force on the Xerces debug token if it was on in the build environment
diff --git a/src/xercesc/util/Compilers/VCPPDefs.hpp b/src/xercesc/util/Compilers/VCPPDefs.hpp
index 1945b6e35dcd3f9826ee0df094c0b247100a4604..83eb7eccf707e2ccba0684b378e0a91b1ccdbdbd 100644
--- a/src/xercesc/util/Compilers/VCPPDefs.hpp
+++ b/src/xercesc/util/Compilers/VCPPDefs.hpp
@@ -56,6 +56,9 @@
 
 /*
  * $Log$
+ * Revision 1.4  2002/05/27 18:02:40  tng
+ * define XMLSize_t, XMLSSize_t and their associate MAX
+ *
  * Revision 1.3  2002/05/21 19:45:53  tng
  * Define DOMSize_t and XMLSize_t
  *
@@ -119,6 +122,12 @@
 #if !defined(VCPPDEFS_HPP)
 #define VCPPDEFS_HPP
 
+// ---------------------------------------------------------------------------
+//  Include some runtime files that will be needed product wide
+// ---------------------------------------------------------------------------
+#include <sys/types.h>  // for size_t and ssize_t
+#include <limits.h>  // for MAX of size_t and ssize_t
+
 
 // ---------------------------------------------------------------------------
 //  A define in the build for each project is also used to control whether
@@ -166,14 +175,19 @@ typedef unsigned int    XMLUInt32;
 typedef int             XMLInt32;
 
 // ---------------------------------------------------------------------------
-//  XMLSize_t and DOMSize_t are the unsigned integral type.
+//  XMLSize_t is the unsigned integral type.
 // ---------------------------------------------------------------------------
-#ifdef _SIZE_T
-typedef size_t              XMLSize_t;
+#if defined(_SIZE_T) && defined(SIZE_MAX) && defined(_SSIZE_T) && defined(SSIZE_MAX)
+    typedef size_t              XMLSize_t
+    #define XML_SIZE_MAX        SIZE_MAX
+    typedef ssize_t             XMLSSize_t
+    #define XML_SSIZE_MAX       SSIZE_MAX
 #else
-typedef unsigned long       XMLSize_t;
+    typedef unsigned long       XMLSize_t;
+    #define XML_SIZE_MAX        ULONG_MAX
+    typedef long                XMLSSize_t;
+    #define XML_SSIZE_MAX       LONG_MAX
 #endif
-typedef XMLSize_t           DOMSize_t;
 
 // ---------------------------------------------------------------------------
 //  Force on the Xerces debug token if it was on in the build environment