peiyongz 2003/10/29 08:19:47 Modified: c/src/xercesc/validators/common Grammar.cpp Grammar.hpp Log: storeGrammar()/loadGrammar added Revision Changes Path 1.2 +55 -2 xml-xerces/c/src/xercesc/validators/common/Grammar.cpp Index: Grammar.cpp =================================================================== RCS file: /home/cvs/xml-xerces/c/src/xercesc/validators/common/Grammar.cpp,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- Grammar.cpp 14 Oct 2003 15:19:24 -0000 1.1 +++ Grammar.cpp 29 Oct 2003 16:19:47 -0000 1.2 @@ -58,6 +58,9 @@ /* * $Id$ * $Log$ + * Revision 1.2 2003/10/29 16:19:47 peiyongz + * storeGrammar()/loadGrammar added + * * Revision 1.1 2003/10/14 15:19:24 peiyongz * Implementation of Serialization/Deserialization * @@ -65,6 +68,13 @@ #include <xercesc/validators/common/Grammar.hpp> +//since we need to dynamically created each and every derivatives +//during deserialization by XSerializeEngine>>Derivative, we got +//to include all hpp + +#include <xercesc/validators/DTD/DTDGrammar.hpp> +#include <xercesc/validators/schema/SchemaGrammar.hpp> + XERCES_CPP_NAMESPACE_BEGIN /*** @@ -76,6 +86,49 @@ void Grammar::serialize(XSerializeEngine& serEng) { //no data +} + +void Grammar::storeGrammar(XSerializeEngine& serEng + , Grammar* const grammar) +{ + if (grammar) + { + serEng<<(int) grammar->getGrammarType(); + serEng<<grammar; + } + else + { + serEng<<(int) UnKnown; + } + +} + +Grammar* Grammar::loadGrammar(XSerializeEngine& serEng) +{ + + int type; + serEng>>type; + + switch((GrammarType)type) + { + case DTDGrammarType: + DTDGrammar* dtdGrammar; + serEng>>dtdGrammar; + return dtdGrammar; + break; + case SchemaGrammarType: + SchemaGrammar* schemaGrammar; + serEng>>schemaGrammar; + return schemaGrammar; + break; + case UnKnown: + return 0; + break; + default: //we treat this same as UnKnown + return 0; + break; + } + } XERCES_CPP_NAMESPACE_END 1.9 +9 -0 xml-xerces/c/src/xercesc/validators/common/Grammar.hpp Index: Grammar.hpp =================================================================== RCS file: /home/cvs/xml-xerces/c/src/xercesc/validators/common/Grammar.hpp,v retrieving revision 1.8 retrieving revision 1.9 diff -u -r1.8 -r1.9 --- Grammar.hpp 14 Oct 2003 15:19:24 -0000 1.8 +++ Grammar.hpp 29 Oct 2003 16:19:47 -0000 1.9 @@ -56,6 +56,9 @@ /* * $Log$ + * Revision 1.9 2003/10/29 16:19:47 peiyongz + * storeGrammar()/loadGrammar added + * * Revision 1.8 2003/10/14 15:19:24 peiyongz * Implementation of Serialization/Deserialization * @@ -140,6 +143,7 @@ enum GrammarType { DTDGrammarType , SchemaGrammarType + , UnKnown }; enum { @@ -257,6 +261,11 @@ * Support for Serialization/De-serialization ***/ DECL_XSERIALIZABLE(Grammar) + + static void storeGrammar(XSerializeEngine& serEng + , Grammar* const grammar); + + static Grammar* loadGrammar(XSerializeEngine& serEng); protected : // -----------------------------------------------------------------------
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]