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]