peiyongz    2003/10/17 14:17:13

  Modified:    c/src/xercesc/validators/schema ComplexTypeInfo.cpp
                        SchemaAttDef.cpp SchemaAttDefList.cpp
                        SchemaElementDecl.cpp SchemaGrammar.cpp
                        XercesAttGroupInfo.cpp XercesGroupInfo.cpp
                        XMLSchemaDescriptionImpl.cpp
  Log:
  using XTemplateSerializer
  
  Revision  Changes    Path
  1.14      +31 -158   xml-xerces/c/src/xercesc/validators/schema/ComplexTypeInfo.cpp
  
  Index: ComplexTypeInfo.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xerces/c/src/xercesc/validators/schema/ComplexTypeInfo.cpp,v
  retrieving revision 1.13
  retrieving revision 1.14
  diff -u -r1.13 -r1.14
  --- ComplexTypeInfo.cpp       14 Oct 2003 15:22:28 -0000      1.13
  +++ ComplexTypeInfo.cpp       17 Oct 2003 21:17:12 -0000      1.14
  @@ -56,6 +56,9 @@
   
   /*
    * $Log$
  + * Revision 1.14  2003/10/17 21:17:12  peiyongz
  + * using XTemplateSerializer
  + *
    * Revision 1.13  2003/10/14 15:22:28  peiyongz
    * Implementation of Serialization/Deserialization
    *
  @@ -192,6 +195,8 @@
   #include <xercesc/validators/common/SimpleContentModel.hpp>
   #include <xercesc/validators/schema/XSDLocator.hpp>
   
  +#include <xercesc/internal/XTemplateSerializer.hpp>
  +
   XERCES_CPP_NAMESPACE_BEGIN
   
   // ---------------------------------------------------------------------------
  @@ -933,78 +938,16 @@
           /***
            * 
            * Serialize RefVectorOf<SchemaElementDecl>*    fElements;
  -         *
  -         ***/
  -        if (serEng.needToWriteTemplateObject(fElements))
  -        {
  -            int vectorLength = fElements->size();
  -            serEng<<vectorLength;
  -
  -            for ( int i = 0 ; i < vectorLength; i++)
  -            {
  -                serEng<<fElements->elementAt(i);
  -            }
  -        }
  -
  -        /***
  -         *
  -         * Serialize RefVectorOf<ContentSpecNode>
  -         *
  -         ***/
  -        if (serEng.needToWriteTemplateObject(fSpecNodesToDelete))
  -        {
  -            int vectorLength = fSpecNodesToDelete->size();
  -            serEng<<vectorLength;
  -
  -            for ( int i = 0 ; i < vectorLength; i++)
  -            {
  -                serEng<<fSpecNodesToDelete->elementAt(i);
  -            }
  -        }
  -
  -        /***
  -         *
            * Serialize RefHash2KeysTableOf<SchemaAttDef>* fAttDefs;
  -         *
  -         ***/    
  -        if (serEng.needToWriteTemplateObject(fAttDefs))
  -        {
  -            int itemNumber = 0;
  -
  -            RefHash2KeysTableOfEnumerator<SchemaAttDef> e(fAttDefs);
  -            while (e.hasMoreElements())
  -            {
  -                e.nextElement();
  -                itemNumber++;
  -            }
  -
  -            serEng<<itemNumber;
  -
  -            e.Reset();
  -            while (e.hasMoreElements())
  -            {
  -                SchemaAttDef& attDef = e.nextElement();
  -                attDef.serialize(serEng);
  -            }
  -
  -        }
  -
  -         /***
  -          *   Don't serialize 
  -          *
  -          *   fContentModel;
  -          *   fFormattedModel;
  -          *   
  -          ***/
  +         ***/
  +        XTemplateSerializer::storeObject(fElements, serEng);
  +        XTemplateSerializer::storeObject(fAttDefs, serEng);
   
           /***
            * 
            * fContentSpecOrgURI:     start of the array
            * fContentSpecOrgURISize: size of the array
            * fUniqueURI:             the current last element in the array
  -         *
  -         * TODO: could we treat this the same way as fContentModel?
  -         *
            ***/
           if (fContentSpecOrgURI)
           {
  @@ -1024,12 +967,14 @@
               serEng<<(int)0;
           }
   
  -        /***
  -         *  don't serialize
  -         *  TODO
  -         *  fLocator;
  -         ***/
  -
  +         /***
  +          *   Don't serialize 
  +          *
  +          *   fContentModel;
  +          *   fFormattedModel;
  +          *   fLocator;
  +          *   fSpecNodesToDelete
  +          ***/
       }
       else
       {
  @@ -1060,94 +1005,16 @@
           /***
            * 
            * Deserialize RefVectorOf<SchemaElementDecl>*    fElements;
  -         *
  -         ***/
  -        if (serEng.needToReadTemplateObject((void**)&fElements))
  -        {
  -            if (!fElements)
  -            {
  -                fElements = new (fMemoryManager) RefVectorOf<SchemaElementDecl>(8, 
true, fMemoryManager);
  -            }
  -
  -            serEng.registerTemplateObject(fElements);
  -
  -            int vectorLength = 0;
  -            serEng>>vectorLength;
  -            for ( int i = 0 ; i < vectorLength; i++)
  -            {            
  -                SchemaElementDecl* node;
  -                serEng>>node;
  -                fElements->addElement(node);
  -            }
  -        }
  -
  -        /***
  -         *
  -         * Deserialize RefVectorOf<ContentSpecNode>*    ;
  -         *
  -         ***/
  -        if (serEng.needToReadTemplateObject((void**)&fSpecNodesToDelete))
  -        {
  -            if (!fSpecNodesToDelete)
  -            {
  -                fSpecNodesToDelete = new (fMemoryManager) 
RefVectorOf<ContentSpecNode>(8, true, fMemoryManager);
  -            }
  -
  -            serEng.registerTemplateObject(fSpecNodesToDelete);
  -
  -            int vectorLength = 0;
  -            serEng>>vectorLength;
  -            for ( int i = 0 ; i < vectorLength; i++)
  -            {            
  -                ContentSpecNode* node;
  -                serEng>>node;
  -                fSpecNodesToDelete->addElement(node);
  -            }
  -        }
  -
  -        /***
  -         *
            * Deserialize RefHash2KeysTableOf<SchemaAttDef>* fAttDefs;
  -         *
  -         ***/    
  -         if (serEng.needToReadTemplateObject((void**)&fAttDefs))
  -        {
  -            if (!fAttDefs)
  -            {
  -                fAttDefs = new (fMemoryManager) 
RefHash2KeysTableOf<SchemaAttDef>(3, fMemoryManager);
  -            }
  -
  -            serEng.registerTemplateObject(fAttDefs);
  -
  -            int itemNumber = 0;
  -            serEng>>itemNumber;
  -
  -            for (int itemIndex = 0; itemIndex < itemNumber; itemIndex++)
  -            {               
  -                SchemaAttDef*  data = new (fMemoryManager) 
SchemaAttDef(fMemoryManager);
  -                data->serialize(serEng);
  -                fAttDefs->put(data->getAttName()->getLocalPart(), data->getId(), 
data);                
  -            }
  -        }
  -
  -         /***
  -          *   Don't serialize 
  -          *
  -          *   fContentModel;
  -          *   fFormattedModel;
  -          *   
  -          ***/
  -         fContentModel   = 0;
  -         fFormattedModel = 0;
  +         ***/
  +        XTemplateSerializer::loadObject(&fElements, 8, true, serEng);
  +        XTemplateSerializer::loadObject(&fAttDefs, 8, true, serEng);
   
           /***
            * 
            * fContentSpecOrgURI:     start of the array
            * fContentSpecOrgURISize: size of the array
            * fUniqueURI:             the current last element in the array
  -         *
  -         * TODO: could we treat this the same way as fContentModel?
  -         *
            ***/
            int i;
            serEng>>i;
  @@ -1174,12 +1041,18 @@
            }
            //else do nothing             
   
  -        /***
  -         *  don't serialize
  -         *  TODO
  -         *  fLocator;
  -         ***/
  -        fLocator = 0;
  +         /***
  +          *   Don't deserialize 
  +          *
  +          *   fContentModel;
  +          *   fFormattedModel;
  +          *   fLocator; 
  +          *   fSpecNodesToDelete
  +          ***/
  +         fContentModel   = 0;
  +         fFormattedModel = 0;
  +         fLocator = 0;
  +         fSpecNodesToDelete = 0;
       }
   }
   
  
  
  
  1.8       +7 -35     xml-xerces/c/src/xercesc/validators/schema/SchemaAttDef.cpp
  
  Index: SchemaAttDef.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xerces/c/src/xercesc/validators/schema/SchemaAttDef.cpp,v
  retrieving revision 1.7
  retrieving revision 1.8
  diff -u -r1.7 -r1.8
  --- SchemaAttDef.cpp  10 Oct 2003 16:25:40 -0000      1.7
  +++ SchemaAttDef.cpp  17 Oct 2003 21:17:12 -0000      1.8
  @@ -56,6 +56,9 @@
   
   /*
    * $Log$
  + * Revision 1.8  2003/10/17 21:17:12  peiyongz
  + * using XTemplateSerializer
  + *
    * Revision 1.7  2003/10/10 16:25:40  peiyongz
    * Implementation of Serialization/Deserialization
    *
  @@ -98,6 +101,8 @@
   #include <xercesc/framework/XMLElementDecl.hpp>
   #include <xercesc/validators/schema/SchemaAttDef.hpp>
   
  +#include <xercesc/internal/XTemplateSerializer.hpp>
  +
   XERCES_CPP_NAMESPACE_BEGIN
   
   // ---------------------------------------------------------------------------
  @@ -224,21 +229,9 @@
           DatatypeValidator::storeDV(serEng, 
(DatatypeValidator*)fMemberTypeValidator);
   
           /***
  -         *
            * Serialize ValueVectorOf<unsigned int>
  -         *
            ***/
  -        if (serEng.needToWriteTemplateObject(fNamespaceList))
  -        {
  -            unsigned int listSize = fNamespaceList->size();
  -            serEng<<listSize;
  -
  -            for (unsigned int i=0; i < listSize; i++) 
  -            {
  -                serEng<<fNamespaceList->elementAt(i);
  -            }
  -
  -        }
  +        XTemplateSerializer::storeObject(fNamespaceList, serEng);
   
           serEng<<(int)fValidity;
           serEng<<(int)fValidation;
  @@ -253,30 +246,9 @@
           fMemberTypeValidator  = DatatypeValidator::loadDV(serEng);
   
           /***
  -         *
            * Deserialize ValueVectorOf<unsigned int>
  -         *
            ***/
  -        if (serEng.needToReadTemplateObject((void**)&fNamespaceList))
  -        {
  -            if (!fNamespaceList)
  -            {
  -                fNamespaceList = new (getMemoryManager()) ValueVectorOf<unsigned 
int>(8, getMemoryManager());
  -            }
  -
  -            serEng.registerTemplateObject(fNamespaceList);
  -
  -            unsigned int listSize;
  -            serEng>>listSize;
  -
  -            for (unsigned int i=0; i < listSize; i++) 
  -            {
  -                unsigned int uriId;
  -                serEng>>uriId;
  -                fNamespaceList->addElement(uriId);
  -            }
  -
  -        }
  +        XTemplateSerializer::loadObject(&fNamespaceList, 8, false, serEng);
   
           int i;
           serEng>>i;
  
  
  
  1.5       +12 -45    xml-xerces/c/src/xercesc/validators/schema/SchemaAttDefList.cpp
  
  Index: SchemaAttDefList.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xerces/c/src/xercesc/validators/schema/SchemaAttDefList.cpp,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- SchemaAttDefList.cpp      10 Oct 2003 16:25:40 -0000      1.4
  +++ SchemaAttDefList.cpp      17 Oct 2003 21:17:12 -0000      1.5
  @@ -56,6 +56,9 @@
   
   /*
    * $Log$
  + * Revision 1.5  2003/10/17 21:17:12  peiyongz
  + * using XTemplateSerializer
  + *
    * Revision 1.4  2003/10/10 16:25:40  peiyongz
    * Implementation of Serialization/Deserialization
    *
  @@ -82,6 +85,8 @@
   // ---------------------------------------------------------------------------
   #include <xercesc/validators/schema/SchemaAttDefList.hpp>
   
  +#include <xercesc/internal/XTemplateSerializer.hpp>
  +
   XERCES_CPP_NAMESPACE_BEGIN
   
   // ---------------------------------------------------------------------------
  @@ -180,27 +185,7 @@
            * Serialize RefHash2KeysTableOf<SchemaAttDef>
            *
            ***/
  -        if (serEng.needToWriteTemplateObject(fList))
  -        {
  -            int itemNumber = 0;
  -            fEnum->Reset();
  -
  -            while (fEnum->hasMoreElements())
  -            {
  -                fEnum->nextElement();
  -                itemNumber++;
  -            }
  -
  -            serEng<<itemNumber;
  -
  -            fEnum->Reset();
  -            while (fEnum->hasMoreElements())
  -            {
  -                SchemaAttDef& curAttDef = fEnum->nextElement();
  -                curAttDef.serialize(serEng);
  -            }
  -
  -        }
  +        XTemplateSerializer::storeObject(fList, serEng);
   
           // do not serialize fEnum
       }
  @@ -208,33 +193,15 @@
       {
           /***
            *
  -         * Deserialize   RefHash2KeysTableOf<SchemaAttDef>           
  +         * Deserialize RefHash2KeysTableOf<SchemaAttDef>           
            *
            ***/
  -        if (serEng.needToReadTemplateObject((void**)&fList))
  +        XTemplateSerializer::loadObject(&fList, 3, true, serEng);
  +
  +        if (!fEnum && fList)
           {
  -            if (!fList)
  -            {
  -                fList = new RefHash2KeysTableOf<SchemaAttDef>(3);
  -            }
  -
  -            serEng.registerTemplateObject(fList);
  -
  -            int itemNumber = 0;
  -            serEng>>itemNumber;
  -
  -            for (int itemIndex = 0; itemIndex < itemNumber; itemIndex++)
  -            {
  -                SchemaAttDef*  data = new SchemaAttDef();
  -                data->serialize(serEng);            
  -                fList->put(data->getAttName()->getLocalPart(), data->getId(), 
data);                
  -            }
  -         }
  -
  -         if (!fEnum)
  -         {
  -             fEnum = new RefHash2KeysTableOfEnumerator<SchemaAttDef>(fList);
  -         }
  +            fEnum = new RefHash2KeysTableOfEnumerator<SchemaAttDef>(fList);
  +        }
       }
   
   }
  
  
  
  1.14      +10 -79    xml-xerces/c/src/xercesc/validators/schema/SchemaElementDecl.cpp
  
  Index: SchemaElementDecl.cpp
  ===================================================================
  RCS file: 
/home/cvs/xml-xerces/c/src/xercesc/validators/schema/SchemaElementDecl.cpp,v
  retrieving revision 1.13
  retrieving revision 1.14
  diff -u -r1.13 -r1.14
  --- SchemaElementDecl.cpp     16 Oct 2003 09:21:53 -0000      1.13
  +++ SchemaElementDecl.cpp     17 Oct 2003 21:17:12 -0000      1.14
  @@ -56,8 +56,8 @@
   
   /*
    * $Log$
  - * Revision 1.13  2003/10/16 09:21:53  gareth
  - * use correct new.
  + * Revision 1.14  2003/10/17 21:17:12  peiyongz
  + * using XTemplateSerializer
    *
    * Revision 1.12  2003/10/14 15:22:28  peiyongz
    * Implementation of Serialization/Deserialization
  @@ -164,6 +164,8 @@
   #include <xercesc/validators/schema/SchemaElementDecl.hpp>
   #include <xercesc/validators/schema/identity/IdentityConstraint.hpp>
   
  +#include <xercesc/internal/XTemplateSerializer.hpp>
  +
   XERCES_CPP_NAMESPACE_BEGIN
   
   // ---------------------------------------------------------------------------
  @@ -443,52 +445,19 @@
           serEng<<fComplexTypeInfo;
   
           /***
  -         *
            * Serialize RefHash2KeysTableOf<SchemaAttDef>* fAttDefs;
  -         *
  -         */
  -        if (serEng.needToWriteTemplateObject(fAttDefs))
  -        {
  -            int itemNumber = 0;
  -
  -            RefHash2KeysTableOfEnumerator<SchemaAttDef> e(fAttDefs);
  -            while (e.hasMoreElements())
  -            {
  -                e.nextElement();
  -                itemNumber++;
  -            }
  -
  -            serEng<<itemNumber;
  -
  -            e.Reset();
  -            while (e.hasMoreElements())
  -            {
  -                SchemaAttDef& curAttDef = e.nextElement();
  -                curAttDef.serialize(serEng);
  -            }
  -
  -        }
  +         ***/
   
  +        XTemplateSerializer::storeObject(fAttDefs, serEng);
   
           serEng<<fXsiComplexTypeInfo;
   
           DatatypeValidator::storeDV(serEng, (DatatypeValidator*)fXsiSimpleTypeInfo);
   
           /***
  -         * 
            * Serialize RefVectorOf<IdentityConstraint>*   fIdentityConstraints;
  -         *
  -         */
  -        if (serEng.needToWriteTemplateObject(fIdentityConstraints))
  -        {
  -            int vectorLength = fIdentityConstraints->size();
  -            serEng<<vectorLength;
  -
  -            for ( int i = 0 ; i < vectorLength; i++)
  -            {
  -                IdentityConstraint::storeIC(serEng, 
fIdentityConstraints->elementAt(i));
  -            }
  -        }
  +         ***/
  +        XTemplateSerializer::storeObject(fIdentityConstraints, serEng);
   
           serEng<<fAttWildCard;
           serEng<<fSubstitutionGroupElem;
  @@ -517,56 +486,18 @@
           serEng>>fComplexTypeInfo;
   
           /***
  -         *
            * DeSerialize RefHash2KeysTableOf<SchemaAttDef>* fAttDefs;
  -         *
  -         */
  -        if (serEng.needToReadTemplateObject((void**)&fAttDefs))
  -        {
  -            if (!fAttDefs)
  -            {
  -                fAttDefs = new 
(getMemoryManager())RefHash2KeysTableOf<SchemaAttDef>(3, true, getMemoryManager());
  -            }
  -
  -            serEng.registerTemplateObject(fAttDefs);
  -
  -            int itemNumber = 0;
  -            serEng>>itemNumber;
  -
  -            for (int itemIndex = 0; itemIndex < itemNumber; itemIndex++)
  -            {
  -                SchemaAttDef*  data = new (getMemoryManager())SchemaAttDef();
  -                data->serialize(serEng);            
  -                fAttDefs->put(data->getAttName()->getLocalPart(), data->getId(), 
data);                
  -            }
  -         }
  +         ***/
  +        XTemplateSerializer::loadObject(&fAttDefs, 3, true, serEng);
   
           serEng>>fXsiComplexTypeInfo;
   
           fXsiSimpleTypeInfo = DatatypeValidator::loadDV(serEng);
   
           /***
  -         *
            * DeSerialize RefVectorOf<IdentityConstraint>*   fIdentityConstraints;
  -         *
  -         */
  -        if (serEng.needToReadTemplateObject((void**)&fIdentityConstraints))
  -        {
  -            if (!fIdentityConstraints)
  -            {
  -                fIdentityConstraints = new (getMemoryManager()) 
RefVectorOf<IdentityConstraint>(8, true, getMemoryManager());
  -            }
  -
  -            serEng.registerTemplateObject(fIdentityConstraints);
  -
  -            int vectorLength = 0;
  -            serEng>>vectorLength;
  -            for ( int i = 0 ; i < vectorLength; i++)
  -            {            
  -                IdentityConstraint* node = IdentityConstraint::loadIC(serEng);      
              ;
  -                fIdentityConstraints->addElement(node);
  -            }
  -        }
  +         ***/
  +        XTemplateSerializer::loadObject(&fIdentityConstraints, 8, true, serEng);
   
           serEng>>fAttWildCard;
           serEng>>fSubstitutionGroupElem;
  
  
  
  1.11      +84 -87    xml-xerces/c/src/xercesc/validators/schema/SchemaGrammar.cpp
  
  Index: SchemaGrammar.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xerces/c/src/xercesc/validators/schema/SchemaGrammar.cpp,v
  retrieving revision 1.10
  retrieving revision 1.11
  diff -u -r1.10 -r1.11
  --- SchemaGrammar.cpp 14 Oct 2003 15:22:28 -0000      1.10
  +++ SchemaGrammar.cpp 17 Oct 2003 21:17:12 -0000      1.11
  @@ -56,6 +56,9 @@
   
   /*
    * $Log$
  + * Revision 1.11  2003/10/17 21:17:12  peiyongz
  + * using XTemplateSerializer
  + *
    * Revision 1.10  2003/10/14 15:22:28  peiyongz
    * Implementation of Serialization/Deserialization
    *
  @@ -135,6 +138,8 @@
   #include <xercesc/validators/schema/XMLSchemaDescriptionImpl.hpp>
   #include <xercesc/util/OutOfMemoryException.hpp>
   
  +#include <xercesc/internal/XTemplateSerializer.hpp>
  +
   XERCES_CPP_NAMESPACE_BEGIN
   
   // ---------------------------------------------------------------------------
  @@ -327,117 +332,109 @@
   void SchemaGrammar::serialize(XSerializeEngine& serEng)
   {
   
  -    Grammar::serialize(serEng);
  -
       /***
  -    XMLCh*                                 fTargetNamespace;
  -    RefHash3KeysIdPool<SchemaElementDecl>* fElemDeclPool;
  -    RefHash3KeysIdPool<SchemaElementDecl>* fElemNonDeclPool;
  -    RefHash3KeysIdPool<SchemaElementDecl>* fGroupElemDeclPool;
  -    NameIdPool<XMLNotationDecl>*           fNotationDeclPool;
  -    RefHashTableOf<XMLAttDef>*             fAttributeDeclRegistry;
  -    RefHashTableOf<ComplexTypeInfo>*       fComplexTypeRegistry;
  -    RefHashTableOf<XercesGroupInfo>*       fGroupInfoRegistry;
  -    RefHashTableOf<XercesAttGroupInfo>*    fAttGroupInfoRegistry;
  -    NamespaceScope*                        fNamespaceScope;
  -    RefHash2KeysTableOf<ElemVector>*       fValidSubstitutionGroups;
  -    RefHashTableOf<XMLRefInfo>*            fIDRefList;
  -    MemoryManager*                         fMemoryManager;
  -    bool                                   fValidated;
  -    DatatypeValidatorFactory               fDatatypeRegistry;
  -    XMLSchemaDescription*                  fGramDesc;
  -    ***/
  +     * don't serialize NamespaceScope* fNamespaceScope;
  +     ***/
  +
  +    Grammar::serialize(serEng);
   
       if (serEng.isStoring())
       {
  -        serEng.writeString(fTargetNamespace);
  -
           /***
            *
            * Serialize RefHash3KeysIdPool<SchemaElementDecl>* fElemDeclPool;
  +         * Serialize RefHash3KeysIdPool<SchemaElementDecl>* fElemNonDeclPool;
  +         * Serialize RefHash3KeysIdPool<SchemaElementDecl>* fGroupElemDeclPool;
            *
  -         ***/
  -        if (serEng.needToWriteTemplateObject(fElemDeclPool))
  -        {
  -            int itemNumber = 0;
  -            RefHash3KeysIdPoolEnumerator<SchemaElementDecl> e(fElemDeclPool);
  -
  -            while (e.hasMoreElements())
  -            {
  -                e.nextElement();
  -                itemNumber++;
  -            }
  -
  -            serEng<<itemNumber;
  -
  -            e.Reset();
  -            while (e.hasMoreElements())
  -            {
  -                SchemaElementDecl& curElem = e.nextElement();
  -                curElem.serialize(serEng);
  -            }
  -
  -        }
  +        ***/
  +        XTemplateSerializer::storeObject(fElemDeclPool, serEng);
  +        //todo: will fElemNonDeclPool data be removed
  +        XTemplateSerializer::storeObject(fElemNonDeclPool, serEng);
  +        XTemplateSerializer::storeObject(fGroupElemDeclPool, serEng);
   
           /***
  +         * Serialize NameIdPool<XMLNotationDecl>*           fNotationDeclPool;
  +         ***/
  +        XTemplateSerializer::storeObject(fNotationDeclPool, serEng);        
  +    
  +        /***
  +         *
  +         * Serialize RefHashTableOf<XMLAttDef>*             fAttributeDeclRegistry;
  +         * Serialize RefHashTableOf<ComplexTypeInfo>*       fComplexTypeRegistry;
  +         * Serialize RefHashTableOf<XercesGroupInfo>*       fGroupInfoRegistry;
  +         * Serialize RefHashTableOf<XercesAttGroupInfo>*    fAttGroupInfoRegistry;
  +         * Serialize RefHashTableOf<XMLRefInfo>*            fIDRefList;
            *
  -         * Serialize RefHash3KeysIdPool<SchemaElementDecl>* fElemNonDeclPool;
  -         * TODO: will this data be removed
            ***/
  -        if (serEng.needToWriteTemplateObject(fElemDeclPool))
  -        {
  -            int itemNumber = 0;
  -            RefHash3KeysIdPoolEnumerator<SchemaElementDecl> e(fElemDeclPool);
  -
  -            while (e.hasMoreElements())
  -            {
  -                e.nextElement();
  -                itemNumber++;
  -            }
  -
  -            serEng<<itemNumber;
  -
  -            e.Reset();
  -            while (e.hasMoreElements())
  -            {
  -                SchemaElementDecl& curElem = e.nextElement();
  -                curElem.serialize(serEng);
  -            }
  -
  -        }
   
  +        XTemplateSerializer::storeObject(fAttributeDeclRegistry, serEng);
  +        XTemplateSerializer::storeObject(fComplexTypeRegistry, serEng);
  +        XTemplateSerializer::storeObject(fGroupInfoRegistry, serEng);
  +        XTemplateSerializer::storeObject(fAttGroupInfoRegistry, serEng);
  +        //fIDRefList todo: tobe removed
  +        XTemplateSerializer::storeObject(fIDRefList, serEng);
  +       
           /***
            *
  -         * Serialize RefHash3KeysIdPool<SchemaElementDecl>* fGroupElemDeclPool;
  -         *
  +         * Serialize RefHash2KeysTableOf<ElemVector>*       
fValidSubstitutionGroups;
  +         * todo
            ***/
  +
  +        fDatatypeRegistry.serialize(serEng);
  +        serEng.writeString(fTargetNamespace);
  +        serEng<<fValidated;
  +        serEng<<fGramDesc;
  +
       }
       else
       {
           /***
            *
            * Deserialize RefHash3KeysIdPool<SchemaElementDecl>* fElemDeclPool;
  +         * Deserialize RefHash3KeysIdPool<SchemaElementDecl>* fElemNonDeclPool;
  +         * Deserialize RefHash3KeysIdPool<SchemaElementDecl>* fGroupElemDeclPool;
  +         *
  +        ***/
  +        XTemplateSerializer::loadObject(&fElemDeclPool, 109, true, 128, serEng);
  +        //todo: will fElemNonDeclPool data be removed
  +        XTemplateSerializer::loadObject(&fElemNonDeclPool, 109, true, 128, serEng);
  +        XTemplateSerializer::loadObject(&fGroupElemDeclPool, 109, true, 128, 
serEng);
  +
  +        /***
  +         * Deserialize NameIdPool<XMLNotationDecl>*           fNotationDeclPool;
  +         ***/
  +        XTemplateSerializer::loadObject(&fNotationDeclPool, 109, 128, serEng);      
  
  +    
  +        /***
  +         *
  +         * Deserialize RefHashTableOf<XMLAttDef>*             
fAttributeDeclRegistry;
  +         * Deserialize RefHashTableOf<ComplexTypeInfo>*       fComplexTypeRegistry;
  +         * Deserialize RefHashTableOf<XercesGroupInfo>*       fGroupInfoRegistry;
  +         * Deserialize RefHashTableOf<XercesAttGroupInfo>*    fAttGroupInfoRegistry;
  +         * Deserialize RefHashTableOf<XMLRefInfo>*            fIDRefList;
  +         *
  +         ***/
  +
  +        XTemplateSerializer::loadObject(&fAttributeDeclRegistry, 29, true, serEng);
  +        XTemplateSerializer::loadObject(&fComplexTypeRegistry, 29, true, serEng);
  +        XTemplateSerializer::loadObject(&fGroupInfoRegistry, 29, true, serEng);
  +        XTemplateSerializer::loadObject(&fAttGroupInfoRegistry, 29, true, serEng);
  +        //todo: fIDRefList to be removed
  +        XTemplateSerializer::loadObject(&fIDRefList, 29, true, serEng);
  +       
  +        /***
            *
  +         * Deserialize RefHash2KeysTableOf<ElemVector>*       
fValidSubstitutionGroups;
  +         * todo
            ***/
  -        if (serEng.needToReadTemplateObject((void**)&fElemDeclPool))
  -        {
  -            if (!fElemDeclPool)
  -            {
  -                fElemDeclPool = new (serEng.getMemoryManager()) 
RefHash3KeysIdPool<SchemaElementDecl>(109, true, 128, serEng.getMemoryManager());
  -            }
  -
  -            serEng.registerTemplateObject(fElemDeclPool);
  -
  -            int itemNumber = 0;
  -            serEng>>itemNumber;
  -
  -            for (int itemIndex = 0; itemIndex < itemNumber; itemIndex++)
  -            {               
  -                SchemaElementDecl*  elemDecl = new (fMemoryManager) 
SchemaElementDecl(fMemoryManager);
  -                elemDecl->serialize(serEng);
  -                fElemDeclPool->put(elemDecl->getBaseName(), elemDecl->getURI(), 
elemDecl->getEnclosingScope(), elemDecl);
  -            }
  -        }
  +
  +        fDatatypeRegistry.serialize(serEng);
  +        serEng.readString(fTargetNamespace);
  +        serEng>>fValidated;
  +
  +        XMLSchemaDescriptionImpl* gramDesc;
  +        serEng>>gramDesc;
  +        fGramDesc = gramDesc;
   
       }
   }
  
  
  
  1.6       +9 -55     
xml-xerces/c/src/xercesc/validators/schema/XercesAttGroupInfo.cpp
  
  Index: XercesAttGroupInfo.cpp
  ===================================================================
  RCS file: 
/home/cvs/xml-xerces/c/src/xercesc/validators/schema/XercesAttGroupInfo.cpp,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- XercesAttGroupInfo.cpp    14 Oct 2003 15:22:28 -0000      1.5
  +++ XercesAttGroupInfo.cpp    17 Oct 2003 21:17:12 -0000      1.6
  @@ -56,6 +56,9 @@
   
   /*
    * $Log$
  + * Revision 1.6  2003/10/17 21:17:12  peiyongz
  + * using XTemplateSerializer
  + *
    * Revision 1.5  2003/10/14 15:22:28  peiyongz
    * Implementation of Serialization/Deserialization
    *
  @@ -91,6 +94,8 @@
   #include <xercesc/validators/schema/XercesAttGroupInfo.hpp>
   #include <xercesc/util/QName.hpp>
   
  +#include <xercesc/internal/XTemplateSerializer.hpp>
  +
   XERCES_CPP_NAMESPACE_BEGIN
   
   // ---------------------------------------------------------------------------
  @@ -183,32 +188,14 @@
            * Serialize RefVectorOf<SchemaAttDef>* fAttributes;
            *
            ***/
  -        if (serEng.needToWriteTemplateObject(fAttributes))
  -        {
  -            int vectorLength = fAttributes->size();
  -            serEng<<vectorLength;
  -
  -            for ( int i = 0 ; i < vectorLength; i++)
  -            {
  -                serEng<<fAttributes->elementAt(i);
  -            }
  -        }
  +        XTemplateSerializer::storeObject(fAttributes, serEng);
   
           /***
            *
            * Serialize RefVectorOf<SchemaAttDef>* fAnyAttributes;
            *
            ***/
  -        if (serEng.needToWriteTemplateObject(fAnyAttributes))
  -        {
  -            int vectorLength = fAnyAttributes->size();
  -            serEng<<vectorLength;
  -
  -            for ( int i = 0 ; i < vectorLength; i++)
  -            {
  -                serEng<<fAnyAttributes->elementAt(i);
  -            }
  -        }
  +        XTemplateSerializer::storeObject(fAnyAttributes, serEng);
   
           serEng<<fCompleteWildCard;
       }
  @@ -221,48 +208,15 @@
            * Deserialize RefVectorOf<SchemaAttDef>* fAttributes;
            *
            ***/
  -        if (serEng.needToReadTemplateObject((void**)&fAttributes))
  -        {
  -            if (!fAttributes)
  -            {
  -                fAttributes = new (fMemoryManager) RefVectorOf<SchemaAttDef>(8, 
true, fMemoryManager);
  -            }
  -
  -            serEng.registerTemplateObject(fAttributes);
  -
  -            int vectorLength = 0;
  -            serEng>>vectorLength;
  -            for ( int i = 0 ; i < vectorLength; i++)
  -            {            
  -                SchemaAttDef* node;
  -                serEng>>node;
  -                fAttributes->addElement(node);
  -            }
  -        }
  +        XTemplateSerializer::loadObject(&fAttributes, 8, true, serEng);
   
           /***
            *
            * Deserialize RefVectorOf<SchemaAttDef>* fAnyAttributes;
            *
            ***/
  -        if (serEng.needToReadTemplateObject((void**)&fAnyAttributes))
  -        {
  -            if (!fAnyAttributes)
  -            {
  -                fAnyAttributes = new (fMemoryManager) RefVectorOf<SchemaAttDef>(8, 
true, fMemoryManager);
  -            }
   
  -            serEng.registerTemplateObject(fAnyAttributes);
  -
  -            int vectorLength = 0;
  -            serEng>>vectorLength;
  -            for ( int i = 0 ; i < vectorLength; i++)
  -            {            
  -                SchemaAttDef* node;
  -                serEng>>node;
  -                fAnyAttributes->addElement(node);
  -            }
  -        }
  +        XTemplateSerializer::loadObject(&fAnyAttributes, 8, true, serEng);
   
           serEng>>fCompleteWildCard;
       }
  
  
  
  1.8       +8 -28     xml-xerces/c/src/xercesc/validators/schema/XercesGroupInfo.cpp
  
  Index: XercesGroupInfo.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xerces/c/src/xercesc/validators/schema/XercesGroupInfo.cpp,v
  retrieving revision 1.7
  retrieving revision 1.8
  diff -u -r1.7 -r1.8
  --- XercesGroupInfo.cpp       14 Oct 2003 15:22:28 -0000      1.7
  +++ XercesGroupInfo.cpp       17 Oct 2003 21:17:12 -0000      1.8
  @@ -56,6 +56,9 @@
   
   /*
    * $Log$
  + * Revision 1.8  2003/10/17 21:17:12  peiyongz
  + * using XTemplateSerializer
  + *
    * Revision 1.7  2003/10/14 15:22:28  peiyongz
    * Implementation of Serialization/Deserialization
    *
  @@ -92,6 +95,8 @@
   #include <xercesc/validators/common/ContentSpecNode.hpp>
   #include <xercesc/validators/schema/XSDLocator.hpp>
   
  +#include <xercesc/internal/XTemplateSerializer.hpp>
  +
   XERCES_CPP_NAMESPACE_BEGIN
   
   // ---------------------------------------------------------------------------
  @@ -148,16 +153,8 @@
            * Serialize RefVectorOf<SchemaElementDecl>* fElements;
            *
            ***/
  -        if (serEng.needToWriteTemplateObject(fElements))
  -        {
  -            int vectorLength = fElements->size();
  -            serEng<<vectorLength;
  -
  -            for ( int i = 0 ; i < vectorLength; i++)
  -            {
  -                serEng<<fElements->elementAt(i);
  -            }
  -        }
  +
  +        XTemplateSerializer::storeObject(fElements, serEng);
   
           serEng<<fBaseGroup;
   
  @@ -174,24 +171,7 @@
            * Deserialize RefVectorOf<SchemaElementDecl>*    fElements;
            *
            ***/
  -        if (serEng.needToReadTemplateObject((void**)&fElements))
  -        {
  -            if (!fElements)
  -            {
  -                fElements = new (serEng.getMemoryManager()) 
RefVectorOf<SchemaElementDecl>(8, true, serEng.getMemoryManager());
  -            }
  -
  -            serEng.registerTemplateObject(fElements);
  -
  -            int vectorLength = 0;
  -            serEng>>vectorLength;
  -            for ( int i = 0 ; i < vectorLength; i++)
  -            {            
  -                SchemaElementDecl* node;
  -                serEng>>node;
  -                fElements->addElement(node);
  -            }
  -        }
  +        XTemplateSerializer::loadObject(&fElements, 8, true, serEng);
   
           serEng>>fBaseGroup;
   
  
  
  
  1.5       +8 -29     
xml-xerces/c/src/xercesc/validators/schema/XMLSchemaDescriptionImpl.cpp
  
  Index: XMLSchemaDescriptionImpl.cpp
  ===================================================================
  RCS file: 
/home/cvs/xml-xerces/c/src/xercesc/validators/schema/XMLSchemaDescriptionImpl.cpp,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- XMLSchemaDescriptionImpl.cpp      14 Oct 2003 15:22:28 -0000      1.4
  +++ XMLSchemaDescriptionImpl.cpp      17 Oct 2003 21:17:12 -0000      1.5
  @@ -56,6 +56,9 @@
   
   /*
    * $Log$
  + * Revision 1.5  2003/10/17 21:17:12  peiyongz
  + * using XTemplateSerializer
  + *
    * Revision 1.4  2003/10/14 15:22:28  peiyongz
    * Implementation of Serialization/Deserialization
    *
  @@ -79,6 +82,8 @@
   #include <xercesc/validators/schema/XMLSchemaDescriptionImpl.hpp>
   #include <xercesc/util/QName.hpp>
   
  +#include <xercesc/internal/XTemplateSerializer.hpp>
  +
   XERCES_CPP_NAMESPACE_BEGIN
   
   // ---------------------------------------------------------------------------
  @@ -219,16 +224,7 @@
            * Serialize RefArrayVectorOf<XMLCh>*               fLocationHints;
            *
            ***/
  -        if (serEng.needToWriteTemplateObject(fLocationHints))
  -        {
  -            int enumLength = fLocationHints->size();
  -            serEng<<enumLength;
  -
  -            for ( int i = 0 ; i < enumLength; i++)
  -            {            
  -                serEng.writeString(fLocationHints->elementAt(i));
  -            }
  -        }
  +        XTemplateSerializer::storeObject(fLocationHints, serEng);
   
           QName* tempQName = (QName*)fTriggeringComponent;
           serEng<<tempQName;
  @@ -252,24 +248,7 @@
            *  Deserialize RefArrayVectorOf<XMLCh>    fLocationHints     
            *
            ***/
  -        if (serEng.needToReadTemplateObject((void**)&fLocationHints))
  -        {
  -            if (!fLocationHints)
  -            {
  -                fLocationHints = new (XMLGrammarDescription::getMemoryManager()) 
RefArrayVectorOf<XMLCh>(4, true, XMLGrammarDescription::getMemoryManager());
  -            }
  -
  -            serEng.registerTemplateObject(fLocationHints);
  -
  -            int enumLength = 0;
  -            serEng>>enumLength;
  -            for ( int i = 0; i < enumLength; i++)
  -            {
  -                XMLCh* enumVal;
  -                serEng.readString(enumVal);
  -                fLocationHints->addElement(enumVal);
  -            }
  -        }
  +        XTemplateSerializer::loadObject(&fLocationHints, 4, true, serEng);
   
           QName* tempQName;
           serEng>>tempQName;
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to