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]