From c6604407196e698660f5c3a03254bf5bc313803d Mon Sep 17 00:00:00 2001 From: PeiYong Zhang <peiyongz@apache.org> Date: Fri, 12 Dec 2003 18:34:43 +0000 Subject: [PATCH] loadElement/storeElement git-svn-id: https://svn.apache.org/repos/asf/xerces/c/trunk@175548 13f79535-47bb-0310-9956-ffa450edef68 --- src/xercesc/framework/XMLElementDecl.cpp | 44 ++++++++++++++++++++++++ src/xercesc/framework/XMLElementDecl.hpp | 17 +++++++++ 2 files changed, 61 insertions(+) diff --git a/src/xercesc/framework/XMLElementDecl.cpp b/src/xercesc/framework/XMLElementDecl.cpp index cd2190f65..9eb1b3dc3 100644 --- a/src/xercesc/framework/XMLElementDecl.cpp +++ b/src/xercesc/framework/XMLElementDecl.cpp @@ -66,6 +66,9 @@ #include <xercesc/util/XMLUniDefs.hpp> #include <xercesc/util/XMLUni.hpp> +#include <xercesc/validators/schema/SchemaElementDecl.hpp> +#include <xercesc/validators/DTD/DTDElementDecl.hpp> + XERCES_CPP_NAMESPACE_BEGIN // --------------------------------------------------------------------------- @@ -165,5 +168,46 @@ void XMLElementDecl::serialize(XSerializeEngine& serEng) } +void +XMLElementDecl::storeElementDecl(XSerializeEngine& serEng + , XMLElementDecl* const element) +{ + if (element) + { + serEng<<(int) element->getObjectType(); + serEng<<element; + } + else + { + serEng<<(int) UnKnown; + } +} + +XMLElementDecl* +XMLElementDecl::loadElementDecl(XSerializeEngine& serEng) +{ + int type; + serEng>>type; + + switch((XMLElementDecl::objectType)type) + { + case Schema: + SchemaElementDecl* schemaElementDecl; + serEng>>schemaElementDecl; + return schemaElementDecl; + break; + case DTD: + DTDElementDecl* dtdElementDecl; + serEng>>dtdElementDecl; + return dtdElementDecl; + break; + case UnKnown: + //fall through + default: + return 0; + break; + } +} + XERCES_CPP_NAMESPACE_END diff --git a/src/xercesc/framework/XMLElementDecl.hpp b/src/xercesc/framework/XMLElementDecl.hpp index 2b8b38036..dfa26cd93 100644 --- a/src/xercesc/framework/XMLElementDecl.hpp +++ b/src/xercesc/framework/XMLElementDecl.hpp @@ -56,6 +56,9 @@ /* * $Log$ + * Revision 1.11 2003/12/12 18:34:43 peiyongz + * loadElement/storeElement + * * Revision 1.10 2003/11/27 06:08:18 neilg * mark DOMTypeInfo-related methods on XMLElementDecl deprecated since they are not thread-safe * @@ -610,6 +613,20 @@ class XMLPARSER_EXPORT XMLElementDecl : public XSerializable, public XMemory ***/ DECL_XSERIALIZABLE(XMLElementDecl) + enum objectType + { + Schema + , DTD + , UnKnown + }; + + virtual XMLElementDecl::objectType getObjectType() const = 0; + + static void storeElementDecl(XSerializeEngine& serEng + , XMLElementDecl* const element); + + static XMLElementDecl* loadElementDecl(XSerializeEngine& serEng); + protected : // ----------------------------------------------------------------------- // Hidden constructors -- GitLab