peiyongz 2003/12/12 10:34:43
Modified: c/src/xercesc/framework XMLElementDecl.cpp
XMLElementDecl.hpp
Log:
loadElement/storeElement
Revision Changes Path
1.8 +45 -1 xml-xerces/c/src/xercesc/framework/XMLElementDecl.cpp
Index: XMLElementDecl.cpp
===================================================================
RCS file: /home/cvs/xml-xerces/c/src/xercesc/framework/XMLElementDecl.cpp,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -r1.7 -r1.8
--- XMLElementDecl.cpp 10 Oct 2003 16:23:29 -0000 1.7
+++ XMLElementDecl.cpp 12 Dec 2003 18:34:43 -0000 1.8
@@ -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
// ---------------------------------------------------------------------------
@@ -163,6 +166,47 @@
serEng>>fExternalElement;
}
+}
+
+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
1.11 +18 -1 xml-xerces/c/src/xercesc/framework/XMLElementDecl.hpp
Index: XMLElementDecl.hpp
===================================================================
RCS file: /home/cvs/xml-xerces/c/src/xercesc/framework/XMLElementDecl.hpp,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -r1.10 -r1.11
--- XMLElementDecl.hpp 27 Nov 2003 06:08:18 -0000 1.10
+++ XMLElementDecl.hpp 12 Dec 2003 18:34:43 -0000 1.11
@@ -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
*
@@ -609,6 +612,20 @@
* Support for Serialization/De-serialization
***/
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 :
// -----------------------------------------------------------------------
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]