From bcaeffa3a5802f411acea403913cef72d6b874b4 Mon Sep 17 00:00:00 2001
From: Alberto Massari <amassari@apache.org>
Date: Mon, 9 Jul 2007 09:09:51 +0000
Subject: [PATCH] XSerializeEngine should use XMLSize_t (XERCESC-1531)

git-svn-id: https://svn.apache.org/repos/asf/xerces/c/trunk@554580 13f79535-47bb-0310-9956-ffa450edef68
---
 src/xercesc/internal/XSerializeEngine.cpp    |  72 +++---
 src/xercesc/internal/XSerializeEngine.hpp    |  64 +++---
 src/xercesc/internal/XTemplateSerializer.cpp | 220 +++++++++----------
 src/xercesc/util/KVStringPair.cpp            |  12 +-
 src/xercesc/util/KVStringPair.hpp            |  26 +--
 src/xercesc/util/QName.cpp                   |  14 +-
 src/xercesc/util/QName.hpp                   |   6 +-
 src/xercesc/util/XMLDateTime.cpp             |  40 ++--
 src/xercesc/util/XMLDateTime.hpp             |  24 +-
 9 files changed, 232 insertions(+), 246 deletions(-)

diff --git a/src/xercesc/internal/XSerializeEngine.cpp b/src/xercesc/internal/XSerializeEngine.cpp
index ebabaa587..5a6180c55 100644
--- a/src/xercesc/internal/XSerializeEngine.cpp
+++ b/src/xercesc/internal/XSerializeEngine.cpp
@@ -95,7 +95,7 @@ XSerializeEngine::~XSerializeEngine()
 
 XSerializeEngine::XSerializeEngine(BinInputStream*         inStream
                                  , XMLGrammarPool* const   gramPool
-                                 , unsigned long           bufSize)
+                                 , XMLSize_t               bufSize)
 :fStoreLoad(mode_Load)
 ,fStorerLevel(0)
 ,fGrammarPool(gramPool)
@@ -120,7 +120,7 @@ XSerializeEngine::XSerializeEngine(BinInputStream*         inStream
 
 XSerializeEngine::XSerializeEngine(BinOutputStream*        outStream
                                  , XMLGrammarPool* const   gramPool
-                                 , unsigned long           bufSize)
+                                 , XMLSize_t               bufSize)
 :fStoreLoad(mode_Store)
 ,fStorerLevel(0)
 ,fGrammarPool(gramPool)
@@ -210,18 +210,17 @@ void XSerializeEngine::write(XProtoType* const protoType)
  *
 ***/ 
 void XSerializeEngine::write(const XMLCh* const toWrite
-                           ,       int          writeLen)
+                           ,       XMLSize_t    writeLen)
 {
     write((XMLByte*)toWrite, (sizeof(XMLCh)/sizeof(XMLByte)) * writeLen);
 }
 
 
 void XSerializeEngine::write(const XMLByte* const toWrite
-                           ,       int            writeLen)
+                           ,       XMLSize_t      writeLen)
 {
     ensureStoring();
     ensurePointer((void*)toWrite);
-    ensureBufferLen(writeLen);
     ensureStoreBuffer();
 
     if (writeLen == 0)
@@ -230,7 +229,7 @@ void XSerializeEngine::write(const XMLByte* const toWrite
     /***
      *  If the available space is sufficient, write it up
      ***/
-    int bufAvail = fBufEnd - fBufCur;
+    XMLSize_t bufAvail = fBufEnd - fBufCur;
 
     if (writeLen <= bufAvail)
     {
@@ -240,7 +239,7 @@ void XSerializeEngine::write(const XMLByte* const toWrite
     }
 
     const XMLByte*  tempWrite   = (const XMLByte*) toWrite;
-    unsigned int    writeRemain = writeLen;
+    XMLSize_t       writeRemain = writeLen;
 
     // fill up the avaiable space and flush
     memcpy(fBufCur, tempWrite, bufAvail);
@@ -283,7 +282,7 @@ void XSerializeEngine::write(const XMLByte* const toWrite
  */
 
 void XSerializeEngine::writeString(const XMLCh* const toWrite
-                                 , const int          bufferLen
+                                 , const XMLSize_t    bufferLen
                                  , bool               toWriteBufLen)
 {
     if (toWrite) 
@@ -291,7 +290,7 @@ void XSerializeEngine::writeString(const XMLCh* const toWrite
         if (toWriteBufLen)
             *this<<bufferLen;
 
-        int strLen = XMLString::stringLen(toWrite);
+        XMLSize_t strLen = XMLString::stringLen(toWrite);
         *this<<strLen;
 
         write(toWrite, strLen);
@@ -304,7 +303,7 @@ void XSerializeEngine::writeString(const XMLCh* const toWrite
 }
 
 void XSerializeEngine::writeString(const XMLByte* const toWrite
-                                 , const int            bufferLen
+                                 , const XMLSize_t      bufferLen
                                  , bool                 toWriteBufLen)
 {
 
@@ -313,7 +312,7 @@ void XSerializeEngine::writeString(const XMLByte* const toWrite
         if (toWriteBufLen)
             *this<<bufferLen;
 
-        int strLen = XMLString::stringLen((char*)toWrite);
+        XMLSize_t strLen = XMLString::stringLen((char*)toWrite);
         *this<<strLen;
         write(toWrite, strLen);
     }
@@ -404,16 +403,15 @@ bool XSerializeEngine::read(XProtoType*            const    protoType
 }
 
 void XSerializeEngine::read(XMLCh* const toRead
-                          , int          readLen)
+                          , XMLSize_t    readLen)
 {
     read((XMLByte*)toRead, (sizeof(XMLCh)/sizeof(XMLByte))*readLen);
 }
 
 void XSerializeEngine::read(XMLByte* const toRead
-                          , int            readLen)
+                          , XMLSize_t      readLen)
 {
     ensureLoading();
-    ensureBufferLen(readLen);
     ensurePointer(toRead);
     ensureLoadBuffer();
 
@@ -423,7 +421,7 @@ void XSerializeEngine::read(XMLByte* const toRead
     /***
      *  If unread is sufficient, read it up
      ***/
-    int dataAvail = fBufLoadMax - fBufCur;
+    XMLSize_t dataAvail = fBufLoadMax - fBufCur;
 
     if (readLen <= dataAvail)
     {
@@ -441,7 +439,7 @@ void XSerializeEngine::read(XMLByte* const toRead
      *
      ***/
     XMLByte*     tempRead   = (XMLByte*) toRead;
-    unsigned int readRemain = readLen;
+    XMLSize_t    readRemain = readLen;
 
     // read the unread
     memcpy(tempRead, fBufCur, dataAvail);
@@ -482,10 +480,10 @@ void XSerializeEngine::read(XMLByte* const toRead
  *     only integer:   noDataFollowed
  *     >
  */
-void XSerializeEngine::readString(XMLCh*&  toRead
-                                , int&     bufferLen
-                                , int&     dataLen
-                                , bool     toReadBufLen)
+void XSerializeEngine::readString(XMLCh*&       toRead
+                                , XMLSize_t&    bufferLen
+                                , XMLSize_t&    dataLen
+                                , bool          toReadBufLen)
 {
     /***
      * Check if any data written
@@ -514,10 +512,10 @@ void XSerializeEngine::readString(XMLCh*&  toRead
     toRead[dataLen] = 0;
 }
 
-void XSerializeEngine::readString(XMLByte*&  toRead
-                                , int&       bufferLen
-                                , int&       dataLen
-                                , bool       toReadBufLen)
+void XSerializeEngine::readString(XMLByte*&     toRead
+                                , XMLSize_t&    bufferLen
+                                , XMLSize_t&    dataLen
+                                , bool          toReadBufLen)
 {
     /***
      * Check if any data written
@@ -850,13 +848,13 @@ void XSerializeEngine::fillBuffer()
      * InputStream MUST fill in the exact amount of bytes as requested
      * to do: combine the checking and create a new exception code later
      ***/
-    TEST_THROW_ARG2( (bytesRead < (int)fBufSize)
+    TEST_THROW_ARG2( (bytesRead < fBufSize)
                , bytesRead
                , fBufSize
                , XMLExcepts::XSer_InStream_Read_LT_Req
                )
 
-    TEST_THROW_ARG2( (bytesRead > (int)fBufSize)
+    TEST_THROW_ARG2( (bytesRead > fBufSize)
                , bytesRead
                , fBufSize
                , XMLExcepts::XSer_InStream_Read_OverFlow
@@ -890,7 +888,7 @@ void XSerializeEngine::flushBuffer()
     fBufCount++;
 }
 
-inline void XSerializeEngine::checkAndFlushBuffer(int bytesNeedToWrite)
+inline void XSerializeEngine::checkAndFlushBuffer(XMLSize_t bytesNeedToWrite)
 {
     TEST_THROW_ARG1( (bytesNeedToWrite <= 0)
                    , bytesNeedToWrite
@@ -902,7 +900,7 @@ inline void XSerializeEngine::checkAndFlushBuffer(int bytesNeedToWrite)
         flushBuffer();
 }
 
-inline void XSerializeEngine::checkAndFillBuffer(int bytesNeedToRead)
+inline void XSerializeEngine::checkAndFillBuffer(XMLSize_t bytesNeedToRead)
 {
 
     TEST_THROW_ARG1( (bytesNeedToRead <= 0)
@@ -922,8 +920,8 @@ inline void XSerializeEngine::ensureStoreBuffer() const
 {
 
     TEST_THROW_ARG2 ( !((fBufStart <= fBufCur) && (fBufCur <= fBufEnd))
-                    , (int)(fBufCur - fBufStart)
-                    , (int)(fBufEnd - fBufCur)
+                    , (fBufCur - fBufStart)
+                    , (fBufEnd - fBufCur)
                     , XMLExcepts::XSer_StoreBuffer_Violation
                     )
 
@@ -933,8 +931,8 @@ inline void XSerializeEngine::ensureLoadBuffer() const
 {
 
     TEST_THROW_ARG2 ( !((fBufStart <= fBufCur) && (fBufCur <= fBufLoadMax))
-                    , (int)(fBufCur - fBufStart)
-                    , (int)(fBufLoadMax - fBufCur)
+                    , (fBufCur - fBufStart)
+                    , (fBufLoadMax - fBufCur)
                     , XMLExcepts::XSer_LoadBuffer_Violation
                     )
 
@@ -950,16 +948,6 @@ inline void XSerializeEngine::ensurePointer(void* const ptr) const
 
 }
 
-inline void XSerializeEngine::ensureBufferLen(int bufferLen) const
-{
-
-    TEST_THROW_ARG1( (bufferLen < 0)
-                   , bufferLen
-                   , XMLExcepts::XSer_Inv_Buffer_Len
-                   )
-
-}
-
 inline void XSerializeEngine::resetBuffer()
 {
     memset(fBufStart, 0, fBufSize * sizeof(XMLByte));
diff --git a/src/xercesc/internal/XSerializeEngine.hpp b/src/xercesc/internal/XSerializeEngine.hpp
index 4ca58d489..fc67a9681 100644
--- a/src/xercesc/internal/XSerializeEngine.hpp
+++ b/src/xercesc/internal/XSerializeEngine.hpp
@@ -76,7 +76,7 @@ public:
       ***/
     XSerializeEngine(BinInputStream*         inStream
                    , XMLGrammarPool* const   gramPool
-                   , unsigned long           bufSize = 8192 );
+                   , XMLSize_t               bufSize = 8192 );
 
 
     /***
@@ -95,7 +95,7 @@ public:
       ***/
     XSerializeEngine(BinOutputStream*        outStream
                    , XMLGrammarPool* const   gramPool
-                   , unsigned long           bufSize = 8192 ); 
+                   , XMLSize_t               bufSize = 8192 ); 
 
     /***
       *
@@ -203,7 +203,7 @@ public:
       *
       ***/
            void           write(const XMLByte* const toWrite
-                               ,      int            writeLen);
+                               ,      XMLSize_t      writeLen);
 
     /***
       *
@@ -217,7 +217,7 @@ public:
       *
       ***/
            void           write(const XMLCh* const toWrite
-                               ,      int          writeLen);
+                               ,      XMLSize_t    writeLen);
 
     /***
       *
@@ -235,7 +235,7 @@ public:
       *
       ***/
            void           writeString(const XMLCh* const toWrite
-                                    , const int          bufferLen = 0
+                                    , const XMLSize_t    bufferLen = 0
                                     , bool               toWriteBufLen = false);
 
     /***
@@ -254,7 +254,7 @@ public:
       *
       ***/
            void           writeString(const XMLByte* const toWrite
-                                    , const int            bufferLen = 0
+                                    , const XMLSize_t      bufferLen = 0
                                     , bool                 toWriteBufLen = false);
 
     static const bool toWriteBufferLen;
@@ -299,7 +299,7 @@ public:
       *
       ***/
            void           read(XMLByte* const toRead
-                             , int            readLen);
+                             , XMLSize_t      readLen);
 
     /***
       *
@@ -313,7 +313,7 @@ public:
       *
       ***/
            void           read(XMLCh* const toRead
-                             , int          readLen);
+                             , XMLSize_t    readLen);
 
     /***
       *
@@ -332,8 +332,8 @@ public:
       *
       ***/
            void           readString(XMLCh*&        toRead
-                                   , int&           bufferLen
-                                   , int&           dataLen
+                                   , XMLSize_t&     bufferLen
+                                   , XMLSize_t&     dataLen
                                    , bool           toReadBufLen = false);
 
      /***
@@ -351,7 +351,7 @@ public:
        *
        ***/
             inline void     readString(XMLCh*&        toRead
-                                    , int&            bufferLen);
+                                    , XMLSize_t&      bufferLen);
  
      /***
        *
@@ -382,8 +382,8 @@ public:
       *
       ***/
            void           readString(XMLByte*&      toRead
-                                   , int&           bufferLen
-                                   , int&           dataLen
+                                   , XMLSize_t&     bufferLen
+                                   , XMLSize_t&     dataLen
                                    , bool           toReadBufLen = false);
 
 
@@ -402,7 +402,7 @@ public:
        *
        ***/
             inline void       readString(XMLByte*&      toRead
-                                       , int&           bufferLen);
+                                       , XMLSize_t&     bufferLen);
  
      /***
        *
@@ -517,13 +517,13 @@ public:
       *
       ***/
     inline 
-    unsigned long   getBufSize()    const; 
+    XMLSize_t       getBufSize()    const; 
 
     inline 
-    unsigned long   getBufCur()     const; 
+    XMLSize_t       getBufCur()     const; 
 
     inline 
-    unsigned long   getBufCurAccumulated()     const; 
+    XMLSize_t       getBufCurAccumulated()     const; 
 
     inline 
     unsigned long   getBufCount()    const; 
@@ -559,9 +559,9 @@ private:
       *    Intenal Buffer Operations
       *
       ***/
-    inline void           checkAndFillBuffer(int bytesNeedToRead);
+    inline void           checkAndFillBuffer(XMLSize_t bytesNeedToRead);
 
-    inline void           checkAndFlushBuffer(int bytesNeedToWrite);
+    inline void           checkAndFlushBuffer(XMLSize_t bytesNeedToWrite);
 
            void           fillBuffer();
 
@@ -586,8 +586,6 @@ private:
 
     inline void            ensurePointer(void* const)               const;
 
-    inline void            ensureBufferLen(int  bufferLen)          const;
-
     inline void            Assert(bool  toEval
                                 , const XMLExcepts::Codes toThrow)  const;
 
@@ -661,7 +659,7 @@ private:
     unsigned long                          fBufCount;
 
     //buffer
-    const unsigned long                    fBufSize;
+    const XMLSize_t                        fBufSize;
 	XMLByte* const                         fBufStart;
 	XMLByte* const                         fBufEnd; 
     XMLByte*                               fBufCur;
@@ -738,47 +736,47 @@ inline void XSerializeEngine::Assert(bool toEval
 }
 
 inline void XSerializeEngine::readString(XMLCh*&        toRead
-                                       , int&           bufferLen)
+                                       , XMLSize_t&     bufferLen)
 {
-    int  dummyDataLen;                
+    XMLSize_t dummyDataLen;                
     readString(toRead, bufferLen, dummyDataLen);
 }
 
 inline void XSerializeEngine::readString(XMLCh*&        toRead)
 {
-    int  dummyBufferLen;
-    int  dummyDataLen;
+    XMLSize_t dummyBufferLen;
+    XMLSize_t dummyDataLen;
     readString(toRead, dummyBufferLen, dummyDataLen);
 }
 
 inline void XSerializeEngine::readString(XMLByte*&      toRead
-                                       , int&           bufferLen)
+                                       , XMLSize_t&     bufferLen)
 {
-    int  dummyDataLen;
+    XMLSize_t dummyDataLen;
     readString(toRead, bufferLen, dummyDataLen);
 }
 
 inline void XSerializeEngine::readString(XMLByte*&      toRead)
 {
-    int  dummyBufferLen;
-    int  dummyDataLen;
+    XMLSize_t dummyBufferLen;
+    XMLSize_t dummyDataLen;
     readString(toRead, dummyBufferLen, dummyDataLen);
 }
 
 inline 
-unsigned long XSerializeEngine::getBufSize() const
+XMLSize_t XSerializeEngine::getBufSize() const
 {
     return fBufSize;
 }
 
 inline 
-unsigned long XSerializeEngine::getBufCur() const
+XMLSize_t XSerializeEngine::getBufCur() const
 {
     return (fBufCur-fBufStart);
 }
 
 inline 
-unsigned long XSerializeEngine::getBufCurAccumulated() const
+XMLSize_t XSerializeEngine::getBufCurAccumulated() const
 {
     return (fBufCount - (isStoring() ? 0: 1)) * fBufSize + (fBufCur-fBufStart);
 }
diff --git a/src/xercesc/internal/XTemplateSerializer.cpp b/src/xercesc/internal/XTemplateSerializer.cpp
index e02e120ba..96d6137c3 100644
--- a/src/xercesc/internal/XTemplateSerializer.cpp
+++ b/src/xercesc/internal/XTemplateSerializer.cpp
@@ -263,10 +263,10 @@ void XTemplateSerializer::storeObject(ValueVectorOf<SchemaElementDecl*>* const o
 
     if (serEng.needToStoreObject(objToStore))
     {
-        int vectorSize = objToStore->size();
+        unsigned int vectorSize = objToStore->size();
         serEng<<vectorSize;
 
-        for ( int i = 0; i < vectorSize; i++)
+        for ( unsigned int i = 0; i < vectorSize; i++)
         {            
             SchemaElementDecl*& data = objToStore->elementAt(i);
             serEng<<data;
@@ -297,10 +297,10 @@ void XTemplateSerializer::loadObject(ValueVectorOf<SchemaElementDecl*>**       o
 
         serEng.registerObject(*objToLoad);
 
-        int vectorSize = 0;
+        unsigned int vectorSize = 0;
         serEng>>vectorSize;
 
-        for ( int i = 0; i < vectorSize; i++)
+        for ( unsigned int i = 0; i < vectorSize; i++)
         {
             SchemaElementDecl* data;
             serEng>>data;
@@ -315,10 +315,10 @@ void XTemplateSerializer::storeObject(ValueVectorOf<unsigned int>* const objToSt
 
     if (serEng.needToStoreObject(objToStore))
     {
-        int vectorSize = objToStore->size();
+        unsigned int vectorSize = objToStore->size();
         serEng<<vectorSize;
 
-        for ( int i = 0; i < vectorSize; i++)
+        for ( unsigned int i = 0; i < vectorSize; i++)
         {            
             unsigned int& data = objToStore->elementAt(i);
             serEng<<data;
@@ -349,10 +349,10 @@ void XTemplateSerializer::loadObject(ValueVectorOf<unsigned int>**       objToLo
 
         serEng.registerObject(*objToLoad);
 
-        int vectorSize = 0;
+        unsigned int vectorSize = 0;
         serEng>>vectorSize;
 
-        for ( int i = 0; i < vectorSize; i++)
+        for ( unsigned int i = 0; i < vectorSize; i++)
         {
             unsigned int data;
             serEng>>data;
@@ -376,10 +376,10 @@ void XTemplateSerializer::storeObject(RefArrayVectorOf<XMLCh>* const objToStore
 
     if (serEng.needToStoreObject(objToStore))
     {
-        int vectorSize = objToStore->size();
+        unsigned int vectorSize = objToStore->size();
         serEng<<vectorSize;
 
-        for ( int i = 0; i < vectorSize; i++)
+        for ( unsigned int i = 0; i < vectorSize; i++)
         {            
             serEng.writeString(objToStore->elementAt(i));
         }
@@ -410,10 +410,10 @@ void XTemplateSerializer::loadObject(RefArrayVectorOf<XMLCh>**  objToLoad
 
         serEng.registerObject(*objToLoad);
 
-        int vectorSize = 0;
+        unsigned int vectorSize = 0;
         serEng>>vectorSize;
 
-        for ( int i = 0; i < vectorSize; i++)
+        for ( unsigned int i = 0; i < vectorSize; i++)
         {
             XMLCh* data;
             serEng.readString(data);
@@ -446,10 +446,10 @@ void XTemplateSerializer::storeObject(RefVectorOf<SchemaAttDef>* const objToStor
     if (serEng.needToStoreObject(objToStore))
     {
 
-        int vectorLength = objToStore->size();
+        unsigned int vectorLength = objToStore->size();
         serEng<<vectorLength;
 
-        for ( int i = 0; i < vectorLength; i++)
+        for ( unsigned int i = 0; i < vectorLength; i++)
         {
             SchemaAttDef* data = objToStore->elementAt(i);
             serEng<<data;
@@ -483,9 +483,9 @@ void XTemplateSerializer::loadObject(RefVectorOf<SchemaAttDef>** objToLoad
 
         serEng.registerObject(*objToLoad);
 
-        int vectorLength = 0;
+        unsigned int vectorLength = 0;
         serEng>>vectorLength;
-        for ( int i = 0 ; i < vectorLength; i++)
+        for ( unsigned int i = 0 ; i < vectorLength; i++)
         {            
             SchemaAttDef* data;
             serEng>>data;
@@ -503,10 +503,10 @@ void XTemplateSerializer::storeObject(RefVectorOf<SchemaElementDecl>* const objT
     if (serEng.needToStoreObject(objToStore))
     {
 
-        int vectorLength = objToStore->size();
+        unsigned int vectorLength = objToStore->size();
         serEng<<vectorLength;
 
-        for ( int i = 0; i < vectorLength; i++)
+        for ( unsigned int i = 0; i < vectorLength; i++)
         {
             SchemaElementDecl* data = objToStore->elementAt(i);
             serEng<<data;
@@ -539,9 +539,9 @@ void XTemplateSerializer::loadObject(RefVectorOf<SchemaElementDecl>** objToLoad
 
         serEng.registerObject(*objToLoad);
 
-        int vectorLength = 0;
+        unsigned int vectorLength = 0;
         serEng>>vectorLength;
-        for ( int i = 0 ; i < vectorLength; i++)
+        for ( unsigned int i = 0 ; i < vectorLength; i++)
         {            
             SchemaElementDecl* data;
             serEng>>data;
@@ -557,10 +557,10 @@ void XTemplateSerializer::storeObject(RefVectorOf<ContentSpecNode>* const objToS
 
     if (serEng.needToStoreObject(objToStore))
     {
-        int vectorLength = objToStore->size();
+        unsigned int vectorLength = objToStore->size();
         serEng<<vectorLength;
 
-        for ( int i = 0; i < vectorLength; i++)
+        for ( unsigned int i = 0; i < vectorLength; i++)
         {
             ContentSpecNode* data = objToStore->elementAt(i);
             serEng<<data;
@@ -592,9 +592,9 @@ void XTemplateSerializer::loadObject(RefVectorOf<ContentSpecNode>** objToLoad
 
         serEng.registerObject(*objToLoad);
 
-        int vectorLength = 0;
+        unsigned int vectorLength = 0;
         serEng>>vectorLength;
-        for ( int i = 0 ; i < vectorLength; i++)
+        for ( unsigned int i = 0 ; i < vectorLength; i++)
         {            
             ContentSpecNode* data;
             serEng>>data;
@@ -610,10 +610,10 @@ void XTemplateSerializer::storeObject(RefVectorOf<IC_Field>* const objToStore
 
     if (serEng.needToStoreObject(objToStore))
     {
-        int vectorLength = objToStore->size();
+        unsigned int vectorLength = objToStore->size();
         serEng<<vectorLength;
 
-        for ( int i = 0; i < vectorLength; i++)
+        for ( unsigned int i = 0; i < vectorLength; i++)
         {
             IC_Field* data = objToStore->elementAt(i);
             serEng<<data;
@@ -645,9 +645,9 @@ void XTemplateSerializer::loadObject(RefVectorOf<IC_Field>** objToLoad
 
         serEng.registerObject(*objToLoad);
 
-        int vectorLength = 0;
+        unsigned int vectorLength = 0;
         serEng>>vectorLength;
-        for ( int i = 0 ; i < vectorLength; i++)
+        for ( unsigned int i = 0 ; i < vectorLength; i++)
         {            
             IC_Field* data;
             serEng>>data;
@@ -663,10 +663,10 @@ void XTemplateSerializer::storeObject(RefVectorOf<DatatypeValidator>* const objT
 
     if (serEng.needToStoreObject(objToStore))
     {
-        int vectorLength = objToStore->size();
+        unsigned int vectorLength = objToStore->size();
         serEng<<vectorLength;
 
-        for ( int i = 0; i < vectorLength; i++)
+        for ( unsigned int i = 0; i < vectorLength; i++)
         {
             DatatypeValidator* data = objToStore->elementAt(i);
             DatatypeValidator::storeDV(serEng, data);
@@ -698,9 +698,9 @@ void XTemplateSerializer::loadObject(RefVectorOf<DatatypeValidator>** objToLoad
 
         serEng.registerObject(*objToLoad);
 
-        int vectorLength = 0;
+        unsigned int vectorLength = 0;
         serEng>>vectorLength;
-        for ( int i = 0 ; i < vectorLength; i++)
+        for ( unsigned int i = 0 ; i < vectorLength; i++)
         {            
             DatatypeValidator*  data;
             data = DatatypeValidator::loadDV(serEng);
@@ -716,10 +716,10 @@ void XTemplateSerializer::storeObject(RefVectorOf<IdentityConstraint>* const obj
 
     if (serEng.needToStoreObject(objToStore))
     {
-        int vectorLength = objToStore->size();
+        unsigned int vectorLength = objToStore->size();
         serEng<<vectorLength;
 
-        for ( int i = 0; i < vectorLength; i++)
+        for ( unsigned int i = 0; i < vectorLength; i++)
         {
             IdentityConstraint* data = objToStore->elementAt(i);
             IdentityConstraint::storeIC(serEng, data);
@@ -751,9 +751,9 @@ void XTemplateSerializer::loadObject(RefVectorOf<IdentityConstraint>** objToLoad
 
         serEng.registerObject(*objToLoad);
 
-        int vectorLength = 0;
+        unsigned int vectorLength = 0;
         serEng>>vectorLength;
-        for ( int i = 0 ; i < vectorLength; i++)
+        for ( unsigned int i = 0 ; i < vectorLength; i++)
         {            
             IdentityConstraint*  data;
             data = IdentityConstraint::loadIC(serEng);
@@ -769,10 +769,10 @@ void XTemplateSerializer::storeObject(RefVectorOf<XMLNumber>* const objToStore
 
     if (serEng.needToStoreObject(objToStore))
     {
-        int vectorLength = objToStore->size();
+        unsigned int vectorLength = objToStore->size();
         serEng<<vectorLength;
 
-        for ( int i = 0; i < vectorLength; i++)
+        for ( unsigned int i = 0; i < vectorLength; i++)
         {
             XMLNumber* data = objToStore->elementAt(i);
             serEng<<data;
@@ -805,9 +805,9 @@ void XTemplateSerializer::loadObject(RefVectorOf<XMLNumber>** objToLoad
 
         serEng.registerObject(*objToLoad);
 
-        int vectorLength = 0;
+        unsigned int vectorLength = 0;
         serEng>>vectorLength;
-        for ( int i = 0 ; i < vectorLength; i++)
+        for ( unsigned int i = 0 ; i < vectorLength; i++)
         {            
             XMLNumber*  data;
             data = XMLNumber::loadNumber(numType , serEng);
@@ -823,10 +823,10 @@ void XTemplateSerializer::storeObject(RefVectorOf<XercesLocationPath>* const obj
 
     if (serEng.needToStoreObject(objToStore))
     {
-        int vectorLength = objToStore->size();
+        unsigned int vectorLength = objToStore->size();
         serEng<<vectorLength;
 
-        for ( int i = 0; i < vectorLength; i++)
+        for ( unsigned int i = 0; i < vectorLength; i++)
         {
             XercesLocationPath* data = objToStore->elementAt(i);
             serEng<<data;
@@ -858,9 +858,9 @@ void XTemplateSerializer::loadObject(RefVectorOf<XercesLocationPath>** objToLoad
 
         serEng.registerObject(*objToLoad);
 
-        int vectorLength = 0;
+        unsigned int vectorLength = 0;
         serEng>>vectorLength;
-        for ( int i = 0 ; i < vectorLength; i++)
+        for ( unsigned int i = 0 ; i < vectorLength; i++)
         {            
             XercesLocationPath*  data;
             serEng>>data;
@@ -876,10 +876,10 @@ void XTemplateSerializer::storeObject(RefVectorOf<XercesStep>* const objToStore
 
     if (serEng.needToStoreObject(objToStore))
     {
-        int vectorLength = objToStore->size();
+        unsigned int vectorLength = objToStore->size();
         serEng<<vectorLength;
 
-        for ( int i = 0; i < vectorLength; i++)
+        for ( unsigned int i = 0; i < vectorLength; i++)
         {
             XercesStep* data = objToStore->elementAt(i);
             serEng<<data;
@@ -911,9 +911,9 @@ void XTemplateSerializer::loadObject(RefVectorOf<XercesStep>** objToLoad
 
         serEng.registerObject(*objToLoad);
 
-        int vectorLength = 0;
+        unsigned int vectorLength = 0;
         serEng>>vectorLength;
-        for ( int i = 0 ; i < vectorLength; i++)
+        for ( unsigned int i = 0 ; i < vectorLength; i++)
         {            
             XercesStep*  data;
             serEng>>data;
@@ -925,7 +925,7 @@ void XTemplateSerializer::loadObject(RefVectorOf<XercesStep>** objToLoad
 
 /**********************************************************
  *
- * RefHasbTableOf
+ * RefHashTableOf
  *
  *   KVStringPair
  *   XMLAttDef
@@ -948,7 +948,7 @@ void XTemplateSerializer::storeObject(RefHashTableOf<KVStringPair>* const objToS
         serEng<<objToStore->getHashModulus();
 
         RefHashTableOfEnumerator<KVStringPair> e(objToStore, false, objToStore->getMemoryManager());
-        int itemNumber = 0;        
+        unsigned int itemNumber = 0;        
 
         while (e.hasMoreElements())
         {
@@ -964,7 +964,7 @@ void XTemplateSerializer::storeObject(RefHashTableOf<KVStringPair>* const objToS
         SORT_KEYSET_ONEKEY(serEng.getMemoryManager())
 
         //to store the data
-        for (int i=0; i < itemNumber; i++)
+        for (unsigned int i=0; i < itemNumber; i++)
         {
             GET_NEXT_KEYSET()
 
@@ -1004,10 +1004,10 @@ void XTemplateSerializer::loadObject(RefHashTableOf<KVStringPair>** objToLoad
 
         serEng.registerObject(*objToLoad);
 
-        int itemNumber = 0;
+        unsigned int itemNumber = 0;
         serEng>>itemNumber;
 
-        for (int itemIndex = 0; itemIndex < itemNumber; itemIndex++)
+        for (unsigned int itemIndex = 0; itemIndex < itemNumber; itemIndex++)
         {
             KVStringPair*  data;
             serEng>>data;
@@ -1026,7 +1026,7 @@ void XTemplateSerializer::storeObject(RefHashTableOf<XMLAttDef>* const objToStor
         serEng<<objToStore->getHashModulus();
 
         RefHashTableOfEnumerator<XMLAttDef> e(objToStore, false, objToStore->getMemoryManager());
-        int itemNumber = 0;        
+        unsigned int itemNumber = 0;        
 
         while (e.hasMoreElements())
         {
@@ -1042,7 +1042,7 @@ void XTemplateSerializer::storeObject(RefHashTableOf<XMLAttDef>* const objToStor
         SORT_KEYSET_ONEKEY(serEng.getMemoryManager())
 
         //to store the data
-        for (int i=0; i < itemNumber; i++)
+        for (unsigned int i=0; i < itemNumber; i++)
         {
             GET_NEXT_KEYSET()
 
@@ -1083,10 +1083,10 @@ void XTemplateSerializer::loadObject(RefHashTableOf<XMLAttDef>** objToLoad
 
         serEng.registerObject(*objToLoad);
 
-        int itemNumber = 0;
+        unsigned int itemNumber = 0;
         serEng>>itemNumber;
 
-        for (int itemIndex = 0; itemIndex < itemNumber; itemIndex++)
+        for (unsigned int itemIndex = 0; itemIndex < itemNumber; itemIndex++)
         {
             //This is used solely by SchemaGrammar and by all means it must be
             //SchemaAttDef, ideally we may change it to RefHashTableOf<SchemaAttDef>
@@ -1111,7 +1111,7 @@ void XTemplateSerializer::storeObject(RefHashTableOf<DTDAttDef>* const objToStor
         serEng<<objToStore->getHashModulus();
 
         RefHashTableOfEnumerator<DTDAttDef> e(objToStore, false, objToStore->getMemoryManager());
-        int itemNumber = 0;        
+        unsigned int itemNumber = 0;        
 
         while (e.hasMoreElements())
         {
@@ -1127,7 +1127,7 @@ void XTemplateSerializer::storeObject(RefHashTableOf<DTDAttDef>* const objToStor
         SORT_KEYSET_ONEKEY(serEng.getMemoryManager())
 
         //to store the data
-        for (int i=0; i < itemNumber; i++)
+        for (unsigned int i=0; i < itemNumber; i++)
         {
             GET_NEXT_KEYSET()
 
@@ -1168,10 +1168,10 @@ void XTemplateSerializer::loadObject(RefHashTableOf<DTDAttDef>** objToLoad
 
         serEng.registerObject(*objToLoad);
 
-        int itemNumber = 0;
+        unsigned int itemNumber = 0;
         serEng>>itemNumber;
 
-        for (int itemIndex = 0; itemIndex < itemNumber; itemIndex++)
+        for (unsigned int itemIndex = 0; itemIndex < itemNumber; itemIndex++)
         {
             DTDAttDef*  data;
             serEng>>data;
@@ -1191,7 +1191,7 @@ void XTemplateSerializer::storeObject(RefHashTableOf<ComplexTypeInfo>* const obj
         serEng<<objToStore->getHashModulus();
 
         RefHashTableOfEnumerator<ComplexTypeInfo> e(objToStore, false, objToStore->getMemoryManager());
-        int itemNumber = 0;        
+        unsigned int itemNumber = 0;        
 
         while (e.hasMoreElements())
         {
@@ -1207,7 +1207,7 @@ void XTemplateSerializer::storeObject(RefHashTableOf<ComplexTypeInfo>* const obj
         SORT_KEYSET_ONEKEY(serEng.getMemoryManager())
 
         //to store the data
-        for (int i=0; i < itemNumber; i++)
+        for (unsigned int i=0; i < itemNumber; i++)
         {
             GET_NEXT_KEYSET()
 
@@ -1248,10 +1248,10 @@ void XTemplateSerializer::loadObject(RefHashTableOf<ComplexTypeInfo>** objToLoad
 
         serEng.registerObject(*objToLoad);
 
-        int itemNumber = 0;
+        unsigned int itemNumber = 0;
         serEng>>itemNumber;
 
-        for (int itemIndex = 0; itemIndex < itemNumber; itemIndex++)
+        for (unsigned int itemIndex = 0; itemIndex < itemNumber; itemIndex++)
         {
             ComplexTypeInfo*  data;
             serEng>>data;
@@ -1271,7 +1271,7 @@ void XTemplateSerializer::storeObject(RefHashTableOf<XercesGroupInfo>* const obj
         serEng<<objToStore->getHashModulus();
 
         RefHashTableOfEnumerator<XercesGroupInfo> e(objToStore, false, objToStore->getMemoryManager());
-        int itemNumber = 0;        
+        unsigned int itemNumber = 0;        
 
         while (e.hasMoreElements())
         {
@@ -1287,7 +1287,7 @@ void XTemplateSerializer::storeObject(RefHashTableOf<XercesGroupInfo>* const obj
         SORT_KEYSET_ONEKEY(serEng.getMemoryManager())
 
         //to store the data
-        for (int i=0; i < itemNumber; i++)
+        for (unsigned int i=0; i < itemNumber; i++)
         {
             GET_NEXT_KEYSET()
 
@@ -1349,10 +1349,10 @@ void XTemplateSerializer::loadObject(RefHashTableOf<XercesGroupInfo>** objToLoad
 
         serEng.registerObject(*objToLoad);
 
-        int itemNumber = 0;
+        unsigned int itemNumber = 0;
         serEng>>itemNumber;
 
-        for (int itemIndex = 0; itemIndex < itemNumber; itemIndex++)
+        for (unsigned int itemIndex = 0; itemIndex < itemNumber; itemIndex++)
         {
             unsigned int id;
             serEng>>id;
@@ -1377,7 +1377,7 @@ void XTemplateSerializer::storeObject(RefHashTableOf<XercesAttGroupInfo>* const
         serEng<<objToStore->getHashModulus();
 
         RefHashTableOfEnumerator<XercesAttGroupInfo> e(objToStore, false, objToStore->getMemoryManager());
-        int itemNumber = 0;        
+        unsigned int itemNumber = 0;        
 
         while (e.hasMoreElements())
         {
@@ -1393,7 +1393,7 @@ void XTemplateSerializer::storeObject(RefHashTableOf<XercesAttGroupInfo>* const
         SORT_KEYSET_ONEKEY(serEng.getMemoryManager())
 
         //to store the data
-        for (int i=0; i < itemNumber; i++)
+        for (unsigned int i=0; i < itemNumber; i++)
         {
             GET_NEXT_KEYSET()
 
@@ -1434,15 +1434,15 @@ void XTemplateSerializer::loadObject(RefHashTableOf<XercesAttGroupInfo>** objToL
 
         serEng.registerObject(*objToLoad);
 
-        int itemNumber = 0;
+        unsigned int itemNumber = 0;
         serEng>>itemNumber;
 
-        for (int itemIndex = 0; itemIndex < itemNumber; itemIndex++)
+        for (unsigned int itemIndex = 0; itemIndex < itemNumber; itemIndex++)
         {
             XercesAttGroupInfo*  data;
             serEng>>data;
 
-           XMLCh* key = (XMLCh*) serEng.getStringPool()->getValueForId(data->getNameId());          
+            XMLCh* key = (XMLCh*) serEng.getStringPool()->getValueForId(data->getNameId());          
             (*objToLoad)->put((void*)key, data);
         }
     }
@@ -1458,7 +1458,7 @@ void XTemplateSerializer::storeObject(RefHashTableOf<XMLRefInfo>* const objToSto
         serEng<<objToStore->getHashModulus();
 
         RefHashTableOfEnumerator<XMLRefInfo> e(objToStore, false, objToStore->getMemoryManager());
-        int itemNumber = 0;        
+        unsigned int itemNumber = 0;        
 
         while (e.hasMoreElements())
         {
@@ -1474,7 +1474,7 @@ void XTemplateSerializer::storeObject(RefHashTableOf<XMLRefInfo>* const objToSto
         SORT_KEYSET_ONEKEY(serEng.getMemoryManager())
 
         //to store the data
-        for (int i=0; i < itemNumber; i++)
+        for (unsigned int i=0; i < itemNumber; i++)
         {
             GET_NEXT_KEYSET()
 
@@ -1520,10 +1520,10 @@ void XTemplateSerializer::loadObject(RefHashTableOf<XMLRefInfo>** objToLoad
 
         serEng.registerObject(*objToLoad);
 
-        int itemNumber = 0;
+        unsigned int itemNumber = 0;
         serEng>>itemNumber;
 
-        for (int itemIndex = 0; itemIndex < itemNumber; itemIndex++)
+        for (unsigned int itemIndex = 0; itemIndex < itemNumber; itemIndex++)
         {
             XMLCh*      key;
             serEng.readString(key);
@@ -1546,7 +1546,7 @@ void XTemplateSerializer::storeObject(RefHashTableOf<DatatypeValidator>* const o
         serEng<<objToStore->getHashModulus();
 
         RefHashTableOfEnumerator<DatatypeValidator> e(objToStore, false, objToStore->getMemoryManager());
-        int itemNumber = 0;        
+        unsigned int itemNumber = 0;        
 
         while (e.hasMoreElements())
         {
@@ -1562,7 +1562,7 @@ void XTemplateSerializer::storeObject(RefHashTableOf<DatatypeValidator>* const o
         SORT_KEYSET_ONEKEY(serEng.getMemoryManager())
 
         //to store the data
-        for (int i=0; i < itemNumber; i++)
+        for (unsigned int i=0; i < itemNumber; i++)
         {
             GET_NEXT_KEYSET()
 
@@ -1611,10 +1611,10 @@ void XTemplateSerializer::loadObject(RefHashTableOf<DatatypeValidator>** objToLo
 
         serEng.registerObject(*objToLoad);
 
-        int itemNumber = 0;
+        unsigned int itemNumber = 0;
         serEng>>itemNumber;
 
-        for (int itemIndex = 0; itemIndex < itemNumber; itemIndex++)
+        for (unsigned int itemIndex = 0; itemIndex < itemNumber; itemIndex++)
         {           
             DatatypeValidator*  data;
             data = DatatypeValidator::loadDV(serEng);
@@ -1660,7 +1660,7 @@ void XTemplateSerializer::storeObject(RefHashTableOf<Grammar>* const objToStore
         serEng<<objToStore->getHashModulus();
 
         RefHashTableOfEnumerator<Grammar> e(objToStore, false, objToStore->getMemoryManager());
-        int itemNumber = 0;        
+        unsigned int itemNumber = 0;        
 
         while (e.hasMoreElements())
         {
@@ -1676,7 +1676,7 @@ void XTemplateSerializer::storeObject(RefHashTableOf<Grammar>* const objToStore
         SORT_KEYSET_ONEKEY(serEng.getMemoryManager())
 
         //to store the data
-        for (int i=0; i < itemNumber; i++)
+        for (unsigned int i=0; i < itemNumber; i++)
         {
             GET_NEXT_KEYSET()
 
@@ -1718,10 +1718,10 @@ void XTemplateSerializer::loadObject(RefHashTableOf<Grammar>** objToLoad
 
         serEng.registerObject(*objToLoad);
 
-        int itemNumber = 0;
+        unsigned int itemNumber = 0;
         serEng>>itemNumber;
 
-        for (int itemIndex = 0; itemIndex < itemNumber; itemIndex++)
+        for (unsigned int itemIndex = 0; itemIndex < itemNumber; itemIndex++)
         {
             Grammar*  data;
             data = Grammar::loadGrammar(serEng);
@@ -1746,7 +1746,7 @@ void XTemplateSerializer::storeObject(RefHashTableOf<XSAnnotation>* const objToS
 
 #ifdef XERCES_DEBUG_SORT_GRAMMAR
         //get the total item number
-        int   itemNumber = 0;
+        unsigned int   itemNumber = 0;
         while (e.hasMoreElements())
         {
             void* key = e.nextElementKey();
@@ -1780,7 +1780,7 @@ void XTemplateSerializer::storeObject(RefHashTableOf<XSAnnotation>* const objToS
         sortArray.sort();
 
         //to store the data
-        for (int i=0; i < itemNumber; i++)
+        for (unsigned int i=0; i < itemNumber; i++)
         {
             GET_NEXT_KEYSET()
 
@@ -1806,10 +1806,10 @@ void XTemplateSerializer::storeObject(RefHashTableOf<XSAnnotation>* const objToS
             }
         }
 
-        int itemNumber = ids.size();
+        unsigned int itemNumber = ids.size();
         serEng<<itemNumber;
 
-        for (int i=0; i<itemNumber; i++)
+        for (unsigned int i=0; i<itemNumber; i++)
         {
             XSerializeEngine::XSerializedObjectId_t keyId = ids.elementAt(i);
             XSAnnotation* data = objToStore->get(keys.elementAt(i));
@@ -1844,10 +1844,10 @@ void XTemplateSerializer::loadObject(RefHashTableOf<XSAnnotation>** objToLoad
 
         serEng.registerObject(*objToLoad);
 
-        int itemNumber = 0;
+        unsigned int itemNumber = 0;
         serEng>>itemNumber;
 
-        int itemIndex;
+        unsigned int itemIndex;
         XSerializeEngine::XSerializedObjectId_t keyId;
         void* key;
         XSAnnotation*  data;
@@ -1889,7 +1889,7 @@ void XTemplateSerializer::storeObject(RefHash2KeysTableOf<SchemaAttDef>* const o
 
         serEng<<objToStore->getHashModulus();
 
-        int itemNumber = 0;
+        unsigned int itemNumber = 0;
 
         RefHash2KeysTableOfEnumerator<SchemaAttDef> e(objToStore, false, objToStore->getMemoryManager());
 
@@ -1907,7 +1907,7 @@ void XTemplateSerializer::storeObject(RefHash2KeysTableOf<SchemaAttDef>* const o
         SORT_KEYSET_TWOKEYS(serEng.getMemoryManager())
 
         //to store the data
-        for (int i=0; i < itemNumber; i++)
+        for (unsigned int i=0; i < itemNumber; i++)
         {
             GET_NEXT_KEYSET()
 
@@ -1956,10 +1956,10 @@ void XTemplateSerializer::loadObject(RefHash2KeysTableOf<SchemaAttDef>** objToLo
 
         serEng.registerObject(*objToLoad);
 
-        int itemNumber = 0;
+        unsigned int itemNumber = 0;
         serEng>>itemNumber;
 
-        for (int itemIndex = 0; itemIndex < itemNumber; itemIndex++)
+        for (unsigned int itemIndex = 0; itemIndex < itemNumber; itemIndex++)
         {               
             SchemaAttDef*  data;
             serEng>>data;
@@ -1984,7 +1984,7 @@ void XTemplateSerializer::storeObject(RefHash2KeysTableOf<ElemVector>* const obj
 
         serEng<<objToStore->getHashModulus();
 
-        int itemNumber = 0;
+        unsigned int itemNumber = 0;
 
         RefHash2KeysTableOfEnumerator<ElemVector> e(objToStore, false, objToStore->getMemoryManager());
 
@@ -2003,7 +2003,7 @@ void XTemplateSerializer::storeObject(RefHash2KeysTableOf<ElemVector>* const obj
         SORT_KEYSET_TWOKEYS(serEng.getMemoryManager())
 
         //to store the data
-        for (int i=0; i < itemNumber; i++)
+        for (unsigned int i=0; i < itemNumber; i++)
         {
             GET_NEXT_KEYSET()
 
@@ -2057,10 +2057,10 @@ void XTemplateSerializer::loadObject(RefHash2KeysTableOf<ElemVector>**      objT
 
         serEng.registerObject(*objToLoad);
 
-        int itemNumber = 0;
+        unsigned int itemNumber = 0;
         serEng>>itemNumber;
 
-        for (int itemIndex = 0; itemIndex < itemNumber; itemIndex++)
+        for (unsigned int itemIndex = 0; itemIndex < itemNumber; itemIndex++)
         {               
             XMLCh*      key1;
             serEng.readString(key1);
@@ -2082,8 +2082,8 @@ void XTemplateSerializer::loadObject(RefHash2KeysTableOf<ElemVector>**      objT
             
             // bool FOUND=false;
 
-            int vectorSize = data->size();
-            for ( int i = 0; i < vectorSize; i++)
+            unsigned int vectorSize = data->size();
+            for ( unsigned int i = 0; i < vectorSize; i++)
             {            
                 SchemaElementDecl*& elem   = data->elementAt(i);
                 SchemaElementDecl*  subElem = elem->getSubstitutionGroupElem();
@@ -2176,12 +2176,12 @@ void XTemplateSerializer::loadObject(RefHash3KeysIdPool<SchemaElementDecl>** obj
 
         serEng.registerObject(*objToLoad);
 
-        int itemNumber = 0;
+        unsigned int itemNumber = 0;
         serEng>>itemNumber;
 
         int scopeKey;
         SchemaElementDecl*  elemDecl;
-        for (int itemIndex = 0; itemIndex < itemNumber; itemIndex++)
+        for (unsigned int itemIndex = 0; itemIndex < itemNumber; itemIndex++)
         {                                                   
             serEng>>scopeKey;
             serEng>>elemDecl;
@@ -2249,10 +2249,10 @@ void XTemplateSerializer::loadObject(NameIdPool<DTDElementDecl>** objToLoad
 
         serEng.registerObject(*objToLoad);
 
-        int itemNumber = 0;
+        unsigned int itemNumber = 0;
         serEng>>itemNumber;
 
-        for (int itemIndex = 0; itemIndex < itemNumber; itemIndex++)
+        for (unsigned int itemIndex = 0; itemIndex < itemNumber; itemIndex++)
         {               
             DTDElementDecl*  data = new (serEng.getMemoryManager())
                                     DTDElementDecl(serEng.getMemoryManager());
@@ -2306,10 +2306,10 @@ void XTemplateSerializer::loadObject(NameIdPool<DTDEntityDecl>** objToLoad
 
         serEng.registerObject(*objToLoad);
 
-        int itemNumber = 0;
+        unsigned int itemNumber = 0;
         serEng>>itemNumber;
 
-        for (int itemIndex = 0; itemIndex < itemNumber; itemIndex++)
+        for (unsigned int itemIndex = 0; itemIndex < itemNumber; itemIndex++)
         {               
             DTDEntityDecl*  data = new (serEng.getMemoryManager()) 
                                    DTDEntityDecl(serEng.getMemoryManager());
@@ -2363,10 +2363,10 @@ void XTemplateSerializer::loadObject(NameIdPool<XMLNotationDecl>** objToLoad
 
         serEng.registerObject(*objToLoad);
 
-        int itemNumber = 0;
+        unsigned int itemNumber = 0;
         serEng>>itemNumber;
 
-        for (int itemIndex = 0; itemIndex < itemNumber; itemIndex++)
+        for (unsigned int itemIndex = 0; itemIndex < itemNumber; itemIndex++)
         {               
             XMLNotationDecl*  data = new (serEng.getMemoryManager()) 
                                      XMLNotationDecl(serEng.getMemoryManager());
diff --git a/src/xercesc/util/KVStringPair.cpp b/src/xercesc/util/KVStringPair.cpp
index 15c49d3f0..55c23e33e 100644
--- a/src/xercesc/util/KVStringPair.cpp
+++ b/src/xercesc/util/KVStringPair.cpp
@@ -54,7 +54,7 @@ KVStringPair::KVStringPair(const XMLCh* const key,
 
 KVStringPair::KVStringPair(const XMLCh* const key,
                            const XMLCh* const value,
-                           const unsigned int valueLength,
+                           const XMLSize_t    valueLength,
                            MemoryManager* const manager)
 :fKeyAllocSize(0)
 ,fValueAllocSize(0)
@@ -67,9 +67,9 @@ KVStringPair::KVStringPair(const XMLCh* const key,
 }
 
 KVStringPair::KVStringPair(const XMLCh* const key,
-                           const unsigned int keyLength,
+                           const XMLSize_t    keyLength,
                            const XMLCh* const value,
-                           const unsigned int valueLength,
+                           const XMLSize_t    valueLength,
                            MemoryManager* const manager)
 :fKeyAllocSize(0)
 ,fValueAllocSize(0)
@@ -116,9 +116,9 @@ void KVStringPair::serialize(XSerializeEngine& serEng)
     }
     else
     {
-        int dataLen = 0;
-        serEng.readString(fKey,   (int&)fKeyAllocSize,   dataLen, XSerializeEngine::toReadBufferLen);
-        serEng.readString(fValue, (int&)fValueAllocSize, dataLen, XSerializeEngine::toReadBufferLen);
+        XMLSize_t dataLen = 0;
+        serEng.readString(fKey,   fKeyAllocSize,   dataLen, XSerializeEngine::toReadBufferLen);
+        serEng.readString(fValue, fValueAllocSize, dataLen, XSerializeEngine::toReadBufferLen);
     }
 
 }
diff --git a/src/xercesc/util/KVStringPair.hpp b/src/xercesc/util/KVStringPair.hpp
index c0657ec79..aeb787ae1 100644
--- a/src/xercesc/util/KVStringPair.hpp
+++ b/src/xercesc/util/KVStringPair.hpp
@@ -51,15 +51,15 @@ public:
     (
         const XMLCh* const key
         , const XMLCh* const value
-        , const unsigned int valueLength
+        , const XMLSize_t    valueLength
         , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
     );
     KVStringPair
     (
         const XMLCh* const key
-        , const unsigned int keyLength
+        , const XMLSize_t    keyLength
         , const XMLCh* const value
-        , const unsigned int valueLength
+        , const XMLSize_t    valueLength
         , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
     );
     KVStringPair(const KVStringPair& toCopy);
@@ -85,12 +85,12 @@ public:
     void setKey
     (
         const   XMLCh* const newKey
-        , const unsigned int newKeyLength
+        , const XMLSize_t    newKeyLength
     );
     void setValue
     (
         const   XMLCh* const newValue
-        , const unsigned int newValueLength
+        , const XMLSize_t    newValueLength
     );
     void set
     (
@@ -100,9 +100,9 @@ public:
     void set
     (
         const     XMLCh* const newKey
-        , const   unsigned int newKeyLength
+        , const   XMLSize_t    newKeyLength
         , const   XMLCh* const newValue
-        , const   unsigned int newValueLength
+        , const   XMLSize_t    newValueLength
     );
 
     /***
@@ -130,8 +130,8 @@ private :
     //      The amount of memory allocated for fValue.
     //
     // -----------------------------------------------------------------------
-    unsigned long  fKeyAllocSize;
-    unsigned long  fValueAllocSize;
+    XMLSize_t      fKeyAllocSize;
+    XMLSize_t      fValueAllocSize;
     XMLCh*         fKey;
     XMLCh*         fValue;
     MemoryManager* fMemoryManager;
@@ -174,7 +174,7 @@ inline void KVStringPair::setValue(const XMLCh* const newValue)
 }
 
 inline void KVStringPair::setKey(  const XMLCh* const newKey
-                                 , const unsigned int newKeyLength)
+                                 , const XMLSize_t    newKeyLength)
 {
     if (newKeyLength >= fKeyAllocSize)
     {
@@ -188,7 +188,7 @@ inline void KVStringPair::setKey(  const XMLCh* const newKey
 }
 
 inline void KVStringPair::setValue(  const XMLCh* const newValue
-                                   , const unsigned int newValueLength)
+                                   , const XMLSize_t    newValueLength)
 {
     if (newValueLength >= fValueAllocSize)
     {
@@ -209,9 +209,9 @@ inline void KVStringPair::set(  const   XMLCh* const    newKey
 }
 
 inline void KVStringPair::set(  const   XMLCh* const newKey
-                              , const   unsigned int newKeyLength
+                              , const   XMLSize_t    newKeyLength
                               , const   XMLCh* const newValue
-                              , const   unsigned int newValueLength)
+                              , const   XMLSize_t    newValueLength)
 {
     setKey(newKey, newKeyLength);
     setValue(newValue, newValueLength);
diff --git a/src/xercesc/util/QName.cpp b/src/xercesc/util/QName.cpp
index 86990b2f3..64504a54b 100644
--- a/src/xercesc/util/QName.cpp
+++ b/src/xercesc/util/QName.cpp
@@ -171,7 +171,7 @@ const XMLCh* QName::getRawName() const
             //  might be a little wasteful of memory but we don't have to do
             //  string len operations on the two strings.
             //
-            const unsigned int neededLen = fPrefixBufSz + fLocalPartBufSz + 1;
+            const XMLSize_t neededLen = fPrefixBufSz + fLocalPartBufSz + 1;
 
             //
             //  If no buffer, or the current one is too small, then allocate one
@@ -193,7 +193,7 @@ const XMLCh* QName::getRawName() const
                 *fRawName = 0;
             }
 
-            const unsigned int prefixLen = XMLString::stringLen(fPrefix);
+            const XMLSize_t prefixLen = XMLString::stringLen(fPrefix);
 
             XMLString::moveChars(fRawName, fPrefix, prefixLen);
             fRawName[prefixLen] = chColon;
@@ -227,7 +227,7 @@ XMLCh* QName::getRawName()
             //  might be a little wasteful of memory but we don't have to do
             //  string len operations on the two strings.
             //
-            const unsigned int neededLen = fPrefixBufSz + fLocalPartBufSz + 1;
+            const XMLSize_t neededLen = fPrefixBufSz + fLocalPartBufSz + 1;
 
             //
             //  If no buffer, or the current one is too small, then allocate one
@@ -250,7 +250,7 @@ XMLCh* QName::getRawName()
             }
 
 
-            const unsigned int prefixLen = XMLString::stringLen(fPrefix);
+            const XMLSize_t prefixLen = XMLString::stringLen(fPrefix);
 
             XMLString::moveChars(fRawName, fPrefix, prefixLen);
             fRawName[prefixLen] = chColon;
@@ -414,11 +414,11 @@ void QName::serialize(XSerializeEngine& serEng)
     }
     else
     {
-        int dataLen = 0;
+        XMLSize_t dataLen = 0;
 
-        serEng.readString(fPrefix, (int&)fPrefixBufSz, dataLen, XSerializeEngine::toReadBufferLen);
+        serEng.readString(fPrefix, fPrefixBufSz, dataLen, XSerializeEngine::toReadBufferLen);
 
-        serEng.readString(fLocalPart, (int&)fLocalPartBufSz, dataLen, XSerializeEngine::toReadBufferLen);
+        serEng.readString(fLocalPart, fLocalPartBufSz, dataLen, XSerializeEngine::toReadBufferLen);
 
         //force raw name rebuilt
         fRawNameBufSz = 0;        
diff --git a/src/xercesc/util/QName.hpp b/src/xercesc/util/QName.hpp
index 9d922ce23..ec98527ad 100644
--- a/src/xercesc/util/QName.hpp
+++ b/src/xercesc/util/QName.hpp
@@ -151,9 +151,9 @@ private :
     //  fURIId
     //      The id of the URI that this attribute belongs to.
     // -----------------------------------------------------------------------
-    unsigned int        fPrefixBufSz;
-    unsigned int        fLocalPartBufSz;
-    unsigned int        fRawNameBufSz;
+    XMLSize_t           fPrefixBufSz;
+    XMLSize_t           fLocalPartBufSz;
+    XMLSize_t           fRawNameBufSz;
     unsigned int        fURIId;
     XMLCh*              fPrefix;
     XMLCh*              fLocalPart;
diff --git a/src/xercesc/util/XMLDateTime.cpp b/src/xercesc/util/XMLDateTime.cpp
index 07378d370..be9cca426 100644
--- a/src/xercesc/util/XMLDateTime.cpp
+++ b/src/xercesc/util/XMLDateTime.cpp
@@ -797,7 +797,7 @@ void XMLDateTime::parseDuration()
     int endDate = indexOf(fStart, fEnd, DATETIME_SEPARATOR);
     if ( endDate == NOT_FOUND )
     {
-        endDate = fEnd;  // 'T' absent
+        endDate = (int)fEnd;  // 'T' absent
     }
 
     //find 'Y'
@@ -1007,7 +1007,7 @@ void XMLDateTime::getTime()
     int sign = findUTCSign(fStart);
 
     //parse miliseconds
-    int milisec = (fBuffer[fStart] == MILISECOND_SEPARATOR)? fStart : NOT_FOUND;
+    int milisec = (fBuffer[fStart] == MILISECOND_SEPARATOR)? (int)fStart : NOT_FOUND;
     if ( milisec != NOT_FOUND )
     {
         fStart++;   // skip the '.'
@@ -1065,7 +1065,7 @@ void XMLDateTime::getYearMonth()
         //"Imcomplete YearMonth Format";
 
     // skip the first leading '-'
-    int start = ( fBuffer[0] == chDash ) ? fStart + 1 : fStart;
+    XMLSize_t start = ( fBuffer[0] == chDash ) ? fStart + 1 : fStart;
 
     //
     // search for year separator '-'
@@ -1124,7 +1124,7 @@ void XMLDateTime::parseTimeZone()
 // Note: Assuming fStart points to the beginning of TimeZone section
 //       fStart updated to meet fEnd
 //
-void XMLDateTime::getTimeZone(const int sign)
+void XMLDateTime::getTimeZone(const XMLSize_t sign)
 {
 
     if ( fBuffer[sign] == UTC_STD_CHAR )
@@ -1349,25 +1349,25 @@ void XMLDateTime::validateDateTime() const
 // -----------------------------------------------------------------------
 // locator and converter
 // -----------------------------------------------------------------------
-int XMLDateTime::indexOf(const int start, const int end, const XMLCh ch) const
+int XMLDateTime::indexOf(const XMLSize_t start, const XMLSize_t end, const XMLCh ch) const
 {
-    for ( int i = start; i < end; i++ )
+    for ( XMLSize_t i = start; i < end; i++ )
         if ( fBuffer[i] == ch )
-            return i;
+            return (int)i;
 
     return NOT_FOUND;
 }
 
-int XMLDateTime::findUTCSign (const int start)
+int XMLDateTime::findUTCSign (const XMLSize_t start)
 {
     int  pos;
-    for ( int index = start; index < fEnd; index++ )
+    for ( XMLSize_t index = start; index < fEnd; index++ )
     {
         pos = XMLString::indexOf(UTC_SET, fBuffer[index]);
         if ( pos != NOT_FOUND)
         {
             fValue[utc] = pos+1;   // refer to utcType, there is 1 diff
-            return index;
+            return (int)index;
         }
     }
 
@@ -1380,10 +1380,10 @@ int XMLDateTime::findUTCSign (const int start)
 //    end:   ending point in fBuffer (exclusive)
 //    fStart NOT updated
 //
-int XMLDateTime::parseInt(const int start, const int end) const
+int XMLDateTime::parseInt(const XMLSize_t start, const XMLSize_t end) const
 {
     unsigned int retVal = 0;
-    for (int i=start; i < end; i++) {
+    for (XMLSize_t i=start; i < end; i++) {
 
         if (fBuffer[i] < chDigit_0 || fBuffer[i] > chDigit_9)
             ThrowXMLwithMemMgr(NumberFormatException, XMLExcepts::XMLNUM_Inv_chars, fMemoryManager);
@@ -1400,12 +1400,12 @@ int XMLDateTime::parseInt(const int start, const int end) const
 //    end:   pointing to one position after the last digit
 //    fStart NOT updated
 //
-double XMLDateTime::parseMiliSecond(const int start, const int end) const
+double XMLDateTime::parseMiliSecond(const XMLSize_t start, const XMLSize_t end) const
 {
     double div = 10;
     double retval = 0;
     
-    for (int i=start; i < end; i++) {
+    for (XMLSize_t i=start; i < end; i++) {
 
         if (fBuffer[i] < chDigit_0 || fBuffer[i] > chDigit_9)
             ThrowXMLwithMemMgr(NumberFormatException, XMLExcepts::XMLNUM_Inv_chars, fMemoryManager);
@@ -1426,12 +1426,12 @@ double XMLDateTime::parseMiliSecond(const int start, const int end) const
 //       end (exclusive)
 //       fStart NOT updated
 //
-int XMLDateTime::parseIntYear(const int end) const
+int XMLDateTime::parseIntYear(const XMLSize_t end) const
 {
     // skip the first leading '-'
-    int start = ( fBuffer[0] == chDash ) ? fStart + 1 : fStart;
+    XMLSize_t start = ( fBuffer[0] == chDash ) ? fStart + 1 : fStart;
 
-    int length = end - start;
+    XMLSize_t length = end - start;
     if (length < 4)
     {
         ThrowXMLwithMemMgr1(SchemaDateTimeException
@@ -1479,7 +1479,7 @@ XMLCh* XMLDateTime::getDateTimeCanonicalRepresentation(MemoryManager* const memM
 {
     XMLCh *miliStartPtr, *miliEndPtr;
     searchMiliSeconds(miliStartPtr, miliEndPtr);
-    int miliSecondsLen = miliEndPtr - miliStartPtr;
+    XMLSize_t miliSecondsLen = miliEndPtr - miliStartPtr;
     int utcSize = (fValue[utc] == UTC_UNKNOWN) ? 0 : 1;
 
     MemoryManager* toUse = memMgr? memMgr : fMemoryManager;
@@ -1692,7 +1692,7 @@ XMLCh* XMLDateTime::getTimeCanonicalRepresentation(MemoryManager* const memMgr)
 {
     XMLCh *miliStartPtr, *miliEndPtr;
     searchMiliSeconds(miliStartPtr, miliEndPtr);
-    int miliSecondsLen = miliEndPtr - miliStartPtr;
+    XMLSize_t miliSecondsLen = miliEndPtr - miliStartPtr;
     int utcSize = (fValue[utc] == UTC_UNKNOWN) ? 0 : 1;
     
     MemoryManager* toUse = memMgr? memMgr : fMemoryManager;
@@ -1853,7 +1853,7 @@ void XMLDateTime::serialize(XSerializeEngine& serEng)
         serEng>>fStart;
         serEng>>fEnd;
 
-        int dataLen = 0;
+        XMLSize_t dataLen = 0;
         serEng.readString(fBuffer, fBufferMaxLen, dataLen ,XSerializeEngine::toReadBufferLen);
 
     }
diff --git a/src/xercesc/util/XMLDateTime.hpp b/src/xercesc/util/XMLDateTime.hpp
index 604606138..cab46dc5c 100644
--- a/src/xercesc/util/XMLDateTime.hpp
+++ b/src/xercesc/util/XMLDateTime.hpp
@@ -194,7 +194,7 @@ private:
 
     void                  getYearMonth();
 
-    void                  getTimeZone(const int);
+    void                  getTimeZone(const XMLSize_t);
 
     void                  parseTimeZone();
 
@@ -202,19 +202,19 @@ private:
     // locator and converter
     // -----------------------------------------------------------------------
 
-    int                   findUTCSign(const int start);
+    int                   findUTCSign(const XMLSize_t start);
 
-    int                   indexOf(const int start
-                                , const int end
+    int                   indexOf(const XMLSize_t start
+                                , const XMLSize_t end
                                 , const XMLCh ch)     const;
 
-    int                   parseInt(const int start
-                                 , const int end)     const;
+    int                   parseInt(const XMLSize_t start
+                                 , const XMLSize_t end)     const;
 
-    int                   parseIntYear(const int end) const;
+    int                   parseIntYear(const XMLSize_t end) const;
 
-    double                parseMiliSecond(const int start
-                                        , const int end) const;
+    double                parseMiliSecond(const XMLSize_t start
+                                        , const XMLSize_t end) const;
 
     // -----------------------------------------------------------------------
     // validator and normalizer
@@ -255,9 +255,9 @@ private:
 
     int          fValue[TOTAL_SIZE];
     int          fTimeZone[TIMEZONE_ARRAYSIZE];
-    int          fStart;
-    int          fEnd;
-    int          fBufferMaxLen;
+    XMLSize_t    fStart;
+    XMLSize_t    fEnd;
+    XMLSize_t    fBufferMaxLen;
 
     double       fMiliSecond;
     bool         fHasTime;
-- 
GitLab