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]

Reply via email to